Reject text indexes on multidimensional array columns - #116895
Reject text indexes on multidimensional array columns#116895JasonLi-cn wants to merge 33 commits into
Conversation
d9833a7 to
dcc4b49
Compare
|
Workflow [PR], commit [ff01ca4] Summary: ✅
AI ReviewSummaryThis PR now consistently rejects new Missing context / blind spots
Final Verdict✅ No new findings in the current diff. LLVM Coverage ReportMeasured on commit ff01ca4.
Changed lines: Changed C/C++ lines covered: 45/48 (93.75%) · Uncovered code |
Reject new `text` indexes on multidimensional arrays with a `String` or `FixedString` base type during `CREATE TABLE`, `ALTER TABLE ... ADD INDEX`, replicated database DDL, and full-definition `ATTACH TABLE`. Keep startup, short `ATTACH`, restore, and recovery compatible with legacy metadata. Legacy indexes retain their existing runtime behavior until users remove them with `ALTER TABLE ... DROP INDEX`.
dcc4b49 to
db4be29
Compare
Build profile diff (arm_release)Comparing ✅ No significant changes. Binary sizes
The official master build is compiled with Compile time of recompiled translation units10 translation units recompiled, 88 s compile time in total, 10 of them have a recent master baseline. |
|
🕵 The remaining failures are unrelated to this change and are being addressed separately:
|
…-array' into HEAD
…s CI flavors The test reference expected the per-replica DDL status row from `CREATE TABLE` in a `Replicated` database, but the DBReplicated flavor sets `distributed_ddl_output_mode = none` (tests/config/users.d/database_replicated.xml), which suppresses that row, so the test failed there with empty output. Force `--distributed_ddl_output_mode=none` on every client call in the test and empty the reference, matching the convention used by other `Replicated` database tests. Co-authored-by: Cursor <cursoragent@cursor.com>
|
🕵 @groeneai, two CI failures on the latest run look unrelated to this change (which only touches
The third failure ( |
|
🕵 Filed a tracking issue for the AST fuzzer streaming-cursor mismatch: #119420 |
|
Thanks. A fix for the AST fuzzer failure is already open: #117188, "Do not answer It is a real wrong result rather than oracle non-determinism. With your DDL, cursor and predicate on master, the bare reference For the |
|
🕵 Merged current The remaining The public three-dot diff is unchanged (text-index validation and tests only). |
Text indexes currently accept multidimensional arrays whose base type is
StringorFixedString, although the runtime only handles scalar values and one-dimensional arrays correctly.Array(Array(String))fails later when the index is built, whileArray(Array(FixedString))can concatenate adjacent fixed-width values and build incorrect tokens.Reject these definitions during
CREATE TABLE,ALTER TABLE ... ADD INDEX, replicated database DDL, and user-supplied full-definitionATTACH TABLE. Existing metadata remains loadable during startup, shortATTACH, restore, and recovery. Legacy indexes retain their previous runtime behavior until users remove them withALTER TABLE ... DROP INDEX.The regression tests cover
StringandFixedString, scalar and one-dimensional supported controls, full-definitionATTACH, stored-metadata replay, replicated database validation, and the preserved legacy behavior.Changelog category (leave one):
Changelog entry (a user-readable short description of the changes that goes into CHANGELOG.md):
Reject new
textindexes on multidimensional arrays with aStringorFixedStringbase type, which previously failed while building the index or could generate incorrect tokens. Existing table metadata remains loadable so users can remove legacy indexes withALTER TABLE ... DROP INDEX.Workflow [PR]
Sync PR [sync-upstream/pr/116895]