mirror of
https://github.com/GreptimeTeam/greptimedb.git
synced 2026-09-09 06:52:19 +00:00
* chore: gate soft-drop table behind the enterprise feature Soft-drop table becomes an enterprise-only feature: - metasrv rejects gc.experimental_soft_drop.enable=true at startup in non-enterprise builds, and ddl_soft_drop_enabled is hard-disabled without the enterprise feature as a second line of defense - the UNDROP TABLE parser/AST/statement variant, ADMIN purge_table() registration, and information_schema.recycle_bin registration are compiled out unless the enterprise feature is enabled - common-meta procedures, tombstone keys, and DdlTask serde stay unconditional for persisted-procedure recovery and wire compatibility - the [gc.experimental_soft_drop] section is removed from the OSS example config and generated docs (moving to the enterprise repo) - the soft-drop sqlness cases and their CI job are removed from OSS (moving to the enterprise repo); affected information_schema .result files are regenerated Signed-off-by: Lei, HUANG <ratuthomm@gmail.com> * refactor: limit unused_variables allow to non-enterprise builds Addresses review comment: apply the allow via cfg_attr so enterprise builds still catch accidental unused variables in register_admin_only. Signed-off-by: Lei, HUANG <ratuthomm@gmail.com> * refactor: include the config key in the soft-drop enterprise gate error Addresses review comment: name gc.experimental_soft_drop.enable in the startup validation error so users can locate the setting quickly when it is set via env vars or layered config. Signed-off-by: Lei, HUANG <ratuthomm@gmail.com> * test: limit unused_mut allow to non-enterprise builds Addresses review comment: apply the allow via cfg_attr so enterprise builds still catch unused mut in the table_ddl_event test setup. Signed-off-by: Lei, HUANG <ratuthomm@gmail.com> * feat: reject soft-drop DDL submissions in non-enterprise builds Addresses review comment: clients could bypass the SQL-level gates by submitting DdlTask::UndropTable or DdlTask::PurgeDroppedTable directly to the procedure service. Reject fresh submissions at the DdlManager boundary in non-enterprise builds while keeping the procedure loaders registered for crash recovery and wire compatibility. Signed-off-by: Lei, HUANG <ratuthomm@gmail.com> * test: stop --enable-gc from enabling soft drop in the sqlness template Addresses review comment: the metasrv test template rendered [gc.experimental_soft_drop] enable = true under the generic --enable-gc flag, which non-enterprise metasrv now rejects at startup, making the documented --enable-gc mode unusable in OSS. Keep the flag scoped to plain GC; enterprise soft-drop coverage moves to the enterprise repo. Signed-off-by: Lei, HUANG <ratuthomm@gmail.com> * fix: gate fresh soft-drop procedures Signed-off-by: Lei, HUANG <ratuthomm@gmail.com> * test: gate soft-drop fallback coverage Signed-off-by: Lei, HUANG <ratuthomm@gmail.com> * fix: gate soft-drop procedure implementation Signed-off-by: Lei, HUANG <ratuthomm@gmail.com> * refactor: gate drop table soft-drop behavior Signed-off-by: Lei, HUANG <ratuthomm@gmail.com> * refactor: gate expired soft-drop gc behavior Signed-off-by: Lei, HUANG <ratuthomm@gmail.com> * ci: test enterprise table ddl lifecycle Signed-off-by: Lei, HUANG <ratuthomm@gmail.com> * chore: mark purge_table as enterprise licensed The purge_table module is compiled only with the enterprise feature, so apply the Enterprise License header and register it with both license header configurations. Signed-off-by: Lei, HUANG <ratuthomm@gmail.com> * chore: mark recycle_bin as enterprise licensed The recycle_bin module is compiled only with the enterprise feature, so apply the Enterprise License header and register it with both license header configurations. Signed-off-by: Lei, HUANG <ratuthomm@gmail.com> * chore: mark soft-drop procedure sources as enterprise licensed The purge and undrop procedure implementations plus the recycle-bin test module compile only with the enterprise feature. Apply the Enterprise License header and register them with both license configurations. Signed-off-by: Lei, HUANG <ratuthomm@gmail.com> --------- Signed-off-by: Lei, HUANG <ratuthomm@gmail.com>
130 lines
3.5 KiB
TOML
130 lines
3.5 KiB
TOML
[package]
|
|
name = "tests-integration"
|
|
version.workspace = true
|
|
edition.workspace = true
|
|
license.workspace = true
|
|
autotests = false
|
|
|
|
[[test]]
|
|
name = "main"
|
|
path = "tests/main.rs"
|
|
|
|
[features]
|
|
dashboard = ["servers/dashboard"]
|
|
vector_index = []
|
|
enterprise = ["frontend/enterprise", "meta-srv/enterprise", "common-meta/enterprise"]
|
|
|
|
[lints]
|
|
workspace = true
|
|
|
|
[dependencies]
|
|
api.workspace = true
|
|
arrow-flight.workspace = true
|
|
async-stream.workspace = true
|
|
async-trait.workspace = true
|
|
auth.workspace = true
|
|
axum.workspace = true
|
|
base64.workspace = true
|
|
cache.workspace = true
|
|
catalog.workspace = true
|
|
chrono.workspace = true
|
|
clap.workspace = true
|
|
client = { workspace = true, features = ["testing"] }
|
|
cmd.workspace = true
|
|
common-base.workspace = true
|
|
common-catalog.workspace = true
|
|
common-config.workspace = true
|
|
common-datasource.workspace = true
|
|
common-error.workspace = true
|
|
common-event-recorder.workspace = true
|
|
common-frontend.workspace = true
|
|
common-grpc.workspace = true
|
|
common-memory-manager.workspace = true
|
|
common-meta = { workspace = true, features = ["testing"] }
|
|
common-options.workspace = true
|
|
common-procedure.workspace = true
|
|
common-query.workspace = true
|
|
common-recordbatch.workspace = true
|
|
common-runtime.workspace = true
|
|
common-stat.workspace = true
|
|
common-telemetry.workspace = true
|
|
common-test-util.workspace = true
|
|
common-time.workspace = true
|
|
common-wal.workspace = true
|
|
datanode = { workspace = true }
|
|
datatypes.workspace = true
|
|
dotenv.workspace = true
|
|
flate2 = "1.0"
|
|
flow.workspace = true
|
|
frontend = { workspace = true, features = ["testing"] }
|
|
futures.workspace = true
|
|
futures-util.workspace = true
|
|
http.workspace = true
|
|
hyper-util = { workspace = true, features = ["tokio"] }
|
|
log-query = { workspace = true }
|
|
loki-proto.workspace = true
|
|
meta-client.workspace = true
|
|
meta-srv = { workspace = true, features = ["mock"] }
|
|
mito2 = { workspace = true, features = ["test-shared-fs-region-migration"] }
|
|
object-store.workspace = true
|
|
operator = { workspace = true, features = ["testing"] }
|
|
plugins.workspace = true
|
|
prost.workspace = true
|
|
query.workspace = true
|
|
rand.workspace = true
|
|
serde_json.workspace = true
|
|
servers = { workspace = true, features = ["testing"] }
|
|
session.workspace = true
|
|
snafu.workspace = true
|
|
sql.workspace = true
|
|
sqlx = { workspace = true, features = [
|
|
"mysql",
|
|
"postgres",
|
|
"chrono",
|
|
] }
|
|
standalone.workspace = true
|
|
store-api.workspace = true
|
|
substrait.workspace = true
|
|
table.workspace = true
|
|
tempfile.workspace = true
|
|
time = "0.3"
|
|
tokio.workspace = true
|
|
tokio-stream = { workspace = true, features = ["net"] }
|
|
tonic.workspace = true
|
|
tower.workspace = true
|
|
uuid.workspace = true
|
|
zstd.workspace = true
|
|
|
|
[dev-dependencies]
|
|
common-procedure-test.workspace = true
|
|
common-wal = { workspace = true, features = ["testing"] }
|
|
datafusion.workspace = true
|
|
datafusion-expr.workspace = true
|
|
either.workspace = true
|
|
hex.workspace = true
|
|
http.workspace = true
|
|
itertools.workspace = true
|
|
jsonb.workspace = true
|
|
mysql_async = { version = "0.35", default-features = false, features = [
|
|
"time",
|
|
"default-rustls-ring",
|
|
] }
|
|
opentelemetry-proto.workspace = true
|
|
otel-arrow-rust.workspace = true
|
|
partition.workspace = true
|
|
paste.workspace = true
|
|
pipeline.workspace = true
|
|
prost.workspace = true
|
|
rand.workspace = true
|
|
rskafka.workspace = true
|
|
rstest.workspace = true
|
|
rstest_reuse.workspace = true
|
|
sea-query.workspace = true
|
|
session = { workspace = true, features = ["testing"] }
|
|
similar-asserts.workspace = true
|
|
store-api.workspace = true
|
|
tokio-postgres = { workspace = true }
|
|
url = "2.3"
|
|
urlencoding = "2.1"
|
|
yaml-rust = "0.4"
|