Skip to content

Commit 82a05cf

Browse files
authored
feat: initial support for table branching and tagging (#19035)
* branching and tag * table lvt * add test * update * fix review comments * fix * update
1 parent 7e32113 commit 82a05cf

File tree

163 files changed

+3869
-1023
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

163 files changed

+3869
-1023
lines changed

Cargo.lock

Lines changed: 14 additions & 22 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Cargo.toml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -107,6 +107,7 @@ databend-enterprise-resources-management = { path = "src/query/ee_features/resou
107107
databend-enterprise-row-access-policy-feature = { path = "src/query/ee_features/row_access_policy" }
108108
databend-enterprise-storage-encryption = { path = "src/query/ee_features/storage_encryption" }
109109
databend-enterprise-stream-handler = { path = "src/query/ee_features/stream_handler" }
110+
databend-enterprise-table-ref-handler = { path = "src/query/ee_features/table_ref_handler" }
110111
databend-enterprise-vacuum-handler = { path = "src/query/ee_features/vacuum_handler" }
111112
databend-enterprise-virtual-column = { path = "src/query/ee_features/virtual_column" }
112113
databend-functions-scalar-arithmetic = { path = "src/query/functions/src/scalars/arithmetic" }

src/common/cloud_control/Cargo.toml

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,6 @@ hyper-util = { workspace = true }
1616
prost = { workspace = true }
1717
serde = { workspace = true }
1818
tonic = { workspace = true }
19-
#tonic-prost = { workspace = true }
2019

2120
[build-dependencies]
2221
lenient_semver = { workspace = true }

src/common/exception/src/exception_code.rs

Lines changed: 17 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -333,6 +333,20 @@ build_exceptions! {
333333
UnsupportedEngineParams(2703),
334334
}
335335

336+
// Table reference Errors [2745-2749]
337+
build_exceptions! {
338+
/// Unknown reference
339+
UnknownReference(2745),
340+
/// Reference already exists
341+
ReferenceAlreadyExists(2746),
342+
/// Illegal reference
343+
IllegalReference(2747),
344+
/// Mismatched reference type
345+
MismatchedReferenceType(2748),
346+
/// Reference expired
347+
ReferenceExpired(2749),
348+
}
349+
336350
// License Errors [1401-1404]
337351
build_exceptions! {
338352
/// License key parse error
@@ -509,7 +523,7 @@ build_exceptions! {
509523
IllegalUser(2218),
510524
}
511525

512-
// Database and Catalog Management Errors [2301-2317, 2321-2323]
526+
// Database and Catalog Management Errors [2301-2317, 2321-2327]
513527
build_exceptions! {
514528
/// Database already exists
515529
DatabaseAlreadyExists(2301),
@@ -549,6 +563,8 @@ build_exceptions! {
549563
RowAccessPolicyAlreadyExists(2324),
550564
/// General failures met while garbage collecting database meta
551565
GeneralDbGcFailure(2325),
566+
/// Table snapshot expired
567+
TableSnapshotExpired(2327),
552568
}
553569

554570
// Stage and Connection Errors [2501-2505, 2510-2512]

src/common/license/src/license.rs

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,8 @@ pub enum Feature {
3939
StorageEncryption,
4040
#[serde(alias = "stream", alias = "STREAM")]
4141
Stream,
42+
#[serde(alias = "table_ref", alias = "TABLE_REF")]
43+
TableRef,
4244
#[serde(alias = "attach_table", alias = "ATTACH_TABLE")]
4345
AttacheTable,
4446
#[serde(alias = "amend_table", alias = "AMEND_TABLE")]
@@ -80,6 +82,7 @@ impl fmt::Display for Feature {
8082
Feature::ComputedColumn => write!(f, "computed_column"),
8183
Feature::StorageEncryption => write!(f, "storage_encryption"),
8284
Feature::Stream => write!(f, "stream"),
85+
Feature::TableRef => write!(f, "table_ref"),
8386
Feature::AttacheTable => write!(f, "attach_table"),
8487
Feature::AmendTable => write!(f, "amend_table"),
8588
Feature::SystemManagement => write!(f, "system_management"),
@@ -118,6 +121,7 @@ impl Feature {
118121
| (Feature::Vacuum, Feature::Vacuum)
119122
| (Feature::LicenseInfo, Feature::LicenseInfo)
120123
| (Feature::Stream, Feature::Stream)
124+
| (Feature::TableRef, Feature::TableRef)
121125
| (Feature::DataMask, Feature::DataMask)
122126
| (Feature::RowAccessPolicy, Feature::RowAccessPolicy)
123127
| (Feature::VirtualColumn, Feature::VirtualColumn)
@@ -226,6 +230,10 @@ mod tests {
226230
Feature::Stream,
227231
serde_json::from_str::<Feature>("\"Stream\"").unwrap()
228232
);
233+
assert_eq!(
234+
Feature::TableRef,
235+
serde_json::from_str::<Feature>("\"TableRef\"").unwrap()
236+
);
229237
assert_eq!(
230238
Feature::AttacheTable,
231239
serde_json::from_str::<Feature>("\"ATTACH_TABLE\"").unwrap()
@@ -287,6 +295,7 @@ mod tests {
287295
Feature::ComputedColumn,
288296
Feature::StorageEncryption,
289297
Feature::Stream,
298+
Feature::TableRef,
290299
Feature::AttacheTable,
291300
Feature::AmendTable,
292301
Feature::HilbertClustering,
@@ -298,7 +307,7 @@ mod tests {
298307
};
299308

300309
assert_eq!(
301-
"LicenseInfo{ type: enterprise, org: databend, tenants: [databend_tenant,foo], features: [amend_table,attach_table,computed_column,data_mask,hilbert_clustering,license_info,private_task,row_access_policy,storage_encryption,stream,system_history,vacuum,virtual_column,workload_group] }",
310+
"LicenseInfo{ type: enterprise, org: databend, tenants: [databend_tenant,foo], features: [amend_table,attach_table,computed_column,data_mask,hilbert_clustering,license_info,private_task,row_access_policy,storage_encryption,stream,system_history,table_ref,vacuum,virtual_column,workload_group] }",
302311
license_info.to_string()
303312
);
304313
}

src/common/timezone/Cargo.toml

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,6 @@ edition = { workspace = true }
1010
jiff = { workspace = true }
1111

1212
[dev-dependencies]
13-
rand = { workspace = true }
1413

1514
[lints]
1615
workspace = true

0 commit comments

Comments
 (0)