Skip to content

Commit 35a5103

Browse files
committed
add tests
1 parent d5bdde7 commit 35a5103

File tree

1 file changed

+45
-0
lines changed

1 file changed

+45
-0
lines changed

common_types/src/schema.rs

+45
Original file line numberDiff line numberDiff line change
@@ -1815,4 +1815,49 @@ mod tests {
18151815
assert_eq!("", idx.to_string());
18161816
assert_eq!(idx, Indexes::from_str("").unwrap());
18171817
}
1818+
1819+
#[test]
1820+
fn test_recovery_schema_from_pb() {
1821+
let columns = [
1822+
("tsid", schema_pb::DataType::Double, 1, false, false, false),
1823+
("ts", schema_pb::DataType::Timestamp, 2, false, false, false),
1824+
("t1", schema_pb::DataType::String, 3, false, false, false),
1825+
("t2", schema_pb::DataType::String, 4, false, false, false),
1826+
("t3", schema_pb::DataType::String, 5, false, false, false),
1827+
];
1828+
let columns = columns
1829+
.into_iter()
1830+
.map(|column_schema| schema_pb::ColumnSchema {
1831+
name: column_schema.0.to_string(),
1832+
data_type: column_schema.1 as i32,
1833+
id: column_schema.2,
1834+
is_nullable: column_schema.3,
1835+
is_tag: column_schema.4,
1836+
is_dictionary: column_schema.5,
1837+
comment: "".to_string(),
1838+
default_value: None,
1839+
})
1840+
.collect();
1841+
let pb_schema = schema_pb::TableSchema {
1842+
columns,
1843+
version: 123,
1844+
timestamp_id: 1,
1845+
primary_key_ids: vec![5, 4, 2],
1846+
};
1847+
1848+
let schema = Schema::try_from(pb_schema).unwrap();
1849+
assert_eq!(schema.primary_key_indexes, vec![4, 3, 1]);
1850+
assert_eq!(schema.timestamp_index, 1);
1851+
assert_eq!(schema.tsid_index, Some(0));
1852+
assert_eq!(schema.version, 123);
1853+
assert_eq!(
1854+
vec!["tsid", "ts", "t1", "t2", "t3"],
1855+
schema
1856+
.column_schemas
1857+
.columns
1858+
.iter()
1859+
.map(|col| col.name.as_str())
1860+
.collect::<Vec<_>>(),
1861+
);
1862+
}
18181863
}

0 commit comments

Comments
 (0)