jiangxt2 opened a new issue, #12102:
URL: https://github.com/apache/gravitino/issues/12102

   ### Describe the feature
   
   The jdbc-doris catalog currently only exposes `replication_num` as a
   table property. However, Doris supports 30+ table properties in the
   `PROPERTIES (...)` clause of `CREATE TABLE`. Users cannot configure
   commonly used properties like bloom filter columns, compression, or
   storage policy through Gravitino, requiring manual SQL intervention.
   
   This issue proposes registering 5 frequently-used table properties:
   
   | Property | Type | Description |
   |---|---|---|
   | `compression` | writable | Compression type (ZSTD, LZ4, LZ4F, ZLIB) |
   | `bloom_filter_columns` | writable | Comma-separated list of bloom filter 
columns |
   | `storage_policy`* | writable | Storage policy name for cold-hot separation 
|
   | `light_schema_change` | read-only | Whether light schema change is enabled 
|
   | `enable_unique_key_merge_on_write` | read-only | Whether merge-on-write is 
enabled for Unique Key tables |
   
   *Requires a pre-created storage policy resource. End-to-end testing is
   not feasible in Docker CI; metadata validation is covered by unit tests.
   
   The last two are registered as reserved (read-only) properties because
   they are auto-managed by Doris and should not be set by users.
   
   ### Motivation
   
   These properties are frequently used in production Doris deployments.
   Users currently must set them directly on the Doris side after table
   creation, which defeats the purpose of unified metadata management
   through Gravitino.
   
   ### Describe the solution
   
   Register 5 new `PropertyEntry` instances in
   `DorisTablePropertiesMetadata`:
   - 3 `stringOptionalPropertyEntry` for writable properties
   - 2 `stringReservedPropertyEntry` for read-only properties
   
   The read path (`DorisUtils.extractPropertiesFromSql`) already parses
   all properties from `SHOW CREATE TABLE`, so no read-side changes are
   needed. The write path (`DorisUtils.generatePropertiesSql`) writes all
   key-value pairs generically, so the new properties pass through without
   additional changes. Comprehensive tests are included across Doris
   1.2.x, 3.0.x, and 4.0.x.
   
   ### Additional context
   
   - `compression` is deprecated as a table-level property in Doris 4.0+
     (silently ignored by `SHOW CREATE TABLE`), but remains valid and
     persists in `SHOW CREATE TABLE` output in 1.2.x and 3.0.x.
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to