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

View File

@@ -89,6 +89,9 @@ pub struct TableIdent {
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)]
#[builder(pattern = "mutable")]
pub struct TableMeta {
@@ -197,6 +200,7 @@ impl TableMeta {
.engine_options(self.engine_options.clone())
.options(self.options.clone())
.created_on(self.created_on)
.region_numbers(self.region_numbers.clone())
.next_column_id(self.next_column_id);
builder
@@ -572,6 +576,7 @@ mod tests {
.unwrap();
let new_meta = add_columns_to_meta(&meta);
assert_eq!(meta.region_numbers, new_meta.region_numbers);
let names: Vec<String> = new_meta
.schema
@@ -606,6 +611,8 @@ mod tests {
.build()
.unwrap();
assert_eq!(meta.region_numbers, new_meta.region_numbers);
let names: Vec<String> = new_meta
.schema
.column_schemas()