MCPcopy Create free account
hub / github.com/NodeDB-Lab/nodedb / versioned_multiple_alters_accumulate

Function versioned_multiple_alters_accumulate

nodedb-strict/src/decode.rs:915–942  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

913
914 #[test]
915 fn versioned_multiple_alters_accumulate() {
916 // V0 (2 cols) → V1 adds `a INT64 DEFAULT 10` → V2 adds `b TEXT DEFAULT 'x'`.
917 // A V0 tuple must read defaults for both `a` and `b`.
918 let mut schema = base_schema();
919
920 let mut col_a = ColumnDef::required("a", ColumnType::Int64).with_default("10");
921 col_a.added_at_version = 2;
922 schema.columns.push(col_a);
923 schema.version = 2;
924
925 let mut col_b = ColumnDef::required("b", ColumnType::String).with_default("'x'");
926 col_b.added_at_version = 3;
927 schema.columns.push(col_b);
928 schema.version = 3;
929
930 let decoder = TupleDecoder::new(&schema);
931 let tuple = base_tuple(); // written at V1 (2 cols)
932
933 let a = decoder.extract_value_versioned(&tuple, 2, 2).unwrap();
934 assert_eq!(a, Value::Integer(10), "a default must be 10");
935
936 let b = decoder.extract_value_versioned(&tuple, 3, 2).unwrap();
937 assert_eq!(b, Value::String("x".into()), "b default must be 'x'");
938
939 // Original columns still decode correctly.
940 let id = decoder.extract_value_versioned(&tuple, 0, 2).unwrap();
941 assert_eq!(id, Value::Integer(7));
942 }
943
944 #[test]
945 fn versioned_nullable_column_no_default_returns_null() {

Callers

nothing calls this directly

Calls 6

base_schemaFunction · 0.85
requiredFunction · 0.85
base_tupleFunction · 0.85
with_defaultMethod · 0.80
pushMethod · 0.45

Tested by

no test coverage detected