[#12102] feat(jdbc-doris): Support frequently-used table properties#12103
Merged
Conversation
…ties Register 5 frequently-used table properties in DorisTablePropertiesMetadata: - 3 writable: compression, bloom_filter_columns, storage_policy - 2 reserved (read-only): light_schema_change, enable_unique_key_merge_on_write Add comprehensive test coverage across Doris 1.2.x, 3.0.x, and 4.0.x: - Unit test: metadata validation (6 properties) + reserved property rejection test - IT: 3 version Docker tests covering round-trip and reserved property read-back All pre-commit checks passed: spotlessCheck, RAT, unit tests, Docker IT (1.2/3.0/4.0), build, gravitino-pr-precheck.py. Signed-off-by: jiangxt2 <jiangxt2@vip.qq.com>
- Filter reserved properties in appendNecessaryProperties() as defense-in-depth - Move REPLICATION_FACTOR under writable properties grouping comment - Use genRandomName for IT test table names to avoid collisions - Remove duplicate comment in reserved property rejection test Signed-off-by: jiangxt2 <jiangxt2@vip.qq.com>
…attribute table Signed-off-by: jiangxt2 <jiangxt2@vip.qq.com>
jiangxt2
force-pushed
the
feat/doris-table-properties-p0
branch
from
July 20, 2026 10:48
d6b186e to
21b95b0
Compare
Code Coverage Report
Files
|
yuqi1129
reviewed
Jul 21, 2026
… columns Signed-off-by: jiangxt2 <jiangxt2@vip.qq.com>
yuqi1129
reviewed
Jul 21, 2026
yuqi1129
reviewed
Jul 21, 2026
…ed-property classification - compression: set immutable=true (Doris 1.2/3.0/4.0 all reject ALTER TABLE SET compression) - light_schema_change: promote from reserved to writable with immutable=false (Doris allows ALTER TABLE SET) - enable_unique_key_merge_on_write: promote from reserved to writable with immutable=true (must be set at CREATE TABLE time) - Remove dead reserved-property filter in appendNecessaryProperties (no reserved table properties remain after this change) - Update unit tests, Docker ITs (tested on 1.2.x/3.0.x/4.0.x) with ALTER TABLE SET coverage, and documentation Signed-off-by: jiangxt2 <jiangxt2@vip.qq.com>
yuqi1129
approved these changes
Jul 23, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What changes were proposed in this pull request?
Register 5 frequently-used table properties in
DorisTablePropertiesMetadata:compression,bloom_filter_columns,storage_policylight_schema_change,enable_unique_key_merge_on_writeThe existing read and write paths are already generic, so the
new properties pass through without additional logic changes. A
defense-in-depth filter in
appendNecessaryPropertiesstrips reservedproperties from the DDL before SQL generation.
Why are the changes needed?
The jdbc-doris catalog currently only exposes
replication_num. Userscannot configure bloom filter columns, compression, or storage policy
through Gravitino, requiring manual SQL intervention after table
creation.
Fix: #12102
Does this PR introduce any user-facing change?
Yes — 3 new writable table properties and 2 new read-only properties
are exposed in
table.properties(). Writable properties can be setwhen creating or altering a table. Reserved properties are rejected
with a clear error if passed to
createTable.How was this patch tested?
./gradlew :catalogs:catalog-jdbc-doris:test -PskipITs(unit tests: metadata validation + reserved property rejection)
./gradlew :catalogs:catalog-jdbc-doris:test -PskipDockerTests=false -PdorisMultiVersionTest(Docker IT: 1.2.x / 3.0.x / 4.0.x, allpassing)
./gradlew :catalogs:catalog-jdbc-doris:spotlessCheck./gradlew rat