mirror of
https://github.com/GreptimeTeam/greptimedb.git
synced 2026-01-06 13:22:57 +00:00
fix: losing region numbers after altering table (#1209)
This commit is contained in:
@@ -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]
|
||||||
|
|||||||
@@ -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()
|
||||||
|
|||||||
Reference in New Issue
Block a user