Skip to content

Commit 9721200

Browse files
refreshable
1 parent b0c7146 commit 9721200

9 files changed

Lines changed: 463 additions & 215 deletions

File tree

apps/framework-cli/src/framework/core/infra_reality_checker.rs

Lines changed: 70 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -909,6 +909,76 @@ impl<T: OlapOperations + Sync> InfraRealityChecker<T> {
909909
}
910910
}
911911

912+
#[cfg(test)]
913+
mod materialized_view_diff_tests {
914+
use super::MaterializedViewDiff;
915+
916+
#[test]
917+
fn test_can_alter_refresh_only_change() {
918+
let diff = MaterializedViewDiff {
919+
select_changed: false,
920+
target_changed: false,
921+
kind_changed: false,
922+
refresh_config_changed: true,
923+
source_tables_changed: false,
924+
};
925+
assert!(diff.can_alter());
926+
assert!(!diff.requires_recreate());
927+
}
928+
929+
#[test]
930+
fn test_cannot_alter_when_select_changed() {
931+
let diff = MaterializedViewDiff {
932+
select_changed: true,
933+
target_changed: false,
934+
kind_changed: false,
935+
refresh_config_changed: true,
936+
source_tables_changed: false,
937+
};
938+
assert!(!diff.can_alter());
939+
assert!(diff.requires_recreate());
940+
}
941+
942+
#[test]
943+
fn test_cannot_alter_when_target_changed() {
944+
let diff = MaterializedViewDiff {
945+
select_changed: false,
946+
target_changed: true,
947+
kind_changed: false,
948+
refresh_config_changed: false,
949+
source_tables_changed: false,
950+
};
951+
assert!(!diff.can_alter());
952+
assert!(diff.requires_recreate());
953+
}
954+
955+
#[test]
956+
fn test_cannot_alter_when_kind_changed() {
957+
let diff = MaterializedViewDiff {
958+
select_changed: false,
959+
target_changed: false,
960+
kind_changed: true,
961+
refresh_config_changed: false,
962+
source_tables_changed: false,
963+
};
964+
assert!(!diff.can_alter());
965+
assert!(diff.requires_recreate());
966+
}
967+
968+
#[test]
969+
fn test_no_changes() {
970+
let diff = MaterializedViewDiff {
971+
select_changed: false,
972+
target_changed: false,
973+
kind_changed: false,
974+
refresh_config_changed: false,
975+
source_tables_changed: false,
976+
};
977+
assert!(!diff.can_alter());
978+
assert!(!diff.requires_recreate());
979+
}
980+
}
981+
912982
#[cfg(test)]
913983
mod tests {
914984
use super::*;

0 commit comments

Comments
 (0)