fix: losing region numbers after altering table (#1209)

This commit is contained in:
dennis zhuang
2023-03-21 11:19:43 +08:00
committed by GitHub
parent 21ce9c1163
commit 8fb97ea1d8
2 changed files with 9 additions and 0 deletions

View File

@@ -523,6 +523,7 @@ async fn test_alter_table_add_column() {
assert_eq!(new_schema.timestamp_column(), old_schema.timestamp_column()); assert_eq!(new_schema.timestamp_column(), old_schema.timestamp_column());
assert_eq!(new_schema.version(), old_schema.version() + 1); assert_eq!(new_schema.version(), old_schema.version() + 1);
assert_eq!(new_meta.next_column_id, old_meta.next_column_id + 2); assert_eq!(new_meta.next_column_id, old_meta.next_column_id + 2);
assert_eq!(new_meta.region_numbers, old_meta.region_numbers);
} }
#[tokio::test] #[tokio::test]
@@ -572,6 +573,7 @@ async fn test_alter_table_remove_column() {
assert_eq!(&[1, 2], &new_meta.value_indices[..]); assert_eq!(&[1, 2], &new_meta.value_indices[..]);
assert_eq!(new_schema.timestamp_column(), old_schema.timestamp_column()); assert_eq!(new_schema.timestamp_column(), old_schema.timestamp_column());
assert_eq!(new_schema.version(), old_schema.version() + 1); assert_eq!(new_schema.version(), old_schema.version() + 1);
assert_eq!(new_meta.region_numbers, old_meta.region_numbers);
} }
#[tokio::test] #[tokio::test]

View File

@@ -89,6 +89,9 @@ pub struct TableIdent {
pub version: TableVersion, pub version: TableVersion,
} }
/// The table medatadata
/// Note: if you add new fields to this struct, please ensure 'new_meta_builder' function works.
/// TODO(dennis): find a better way to ensure 'new_meta_builder' works when adding new fields.
#[derive(Clone, Debug, Builder, PartialEq, Eq)] #[derive(Clone, Debug, Builder, PartialEq, Eq)]
#[builder(pattern = "mutable")] #[builder(pattern = "mutable")]
pub struct TableMeta { pub struct TableMeta {
@@ -197,6 +200,7 @@ impl TableMeta {
.engine_options(self.engine_options.clone()) .engine_options(self.engine_options.clone())
.options(self.options.clone()) .options(self.options.clone())
.created_on(self.created_on) .created_on(self.created_on)
.region_numbers(self.region_numbers.clone())
.next_column_id(self.next_column_id); .next_column_id(self.next_column_id);
builder builder
@@ -572,6 +576,7 @@ mod tests {
.unwrap(); .unwrap();
let new_meta = add_columns_to_meta(&meta); let new_meta = add_columns_to_meta(&meta);
assert_eq!(meta.region_numbers, new_meta.region_numbers);
let names: Vec<String> = new_meta let names: Vec<String> = new_meta
.schema .schema
@@ -606,6 +611,8 @@ mod tests {
.build() .build()
.unwrap(); .unwrap();
assert_eq!(meta.region_numbers, new_meta.region_numbers);
let names: Vec<String> = new_meta let names: Vec<String> = new_meta
.schema .schema
.column_schemas() .column_schemas()