branch-3.0 cherry-pick [fix](variant) fix the reading core caused by inserting nested column and scalar column in variant sub-column#53897
Conversation
… and scalar column in variant sub-column (apache#53083) this pr main fix the problem which if we create table with ```variant_enable_flatten_nested``` then insert variant data: ```'{"nested":{"a":"1"}}``` and ```'{"nested":[{"a":1,"c":1.1},{"b":"1"}]}'``` we will meet core for reading so we should forbid this table property and for old data we insert different structure data will meet some error like this: ``` mysql> insert into vs values (2, '{"nested":{"a":"1"}}'); Query OK, 1 row affected (0.22 sec) {'label':'label_165a8209698c4391_988c6532615017c4', 'status':'VISIBLE', 'txnId':'1011'} mysql> insert into vs values (1, '{"nested":[{"a":1,"c":1.1},{"b":"1"}]}'); ERROR 1105 (HY000): errCode = 2, detailMessage = (10.16.10.6)[INTERNAL_ERROR]tablet 1752145213719 failed on majority backends: [DATA_QUALITY_ERROR]PStatus: (10.16.10.6)[DATA_QUALITY_ERROR]Ambiguous paths: v.nested.a vs v.nested.a with different nested part true vs false ```
|
Thank you for your contribution to Apache Doris. Please clearly describe your PR:
|
|
run buildall |
Cloud UT Coverage ReportIncrement line coverage Increment coverage report
|
…apache#53923) fix batch insert into with structure-conflicts strings Before this we were able to successfully insert, but will meet query error like this: ``` mysql> insert into var_nested_load_conflict values (3, '{"nested": [{"a": 2.5, "b": "123.1"}]}'), (4, '{"nested": {"a": 2.5, "b": "123.1"}}'); Query OK, 2 rows affected (0.16 sec) {'label':'label_9279242ae3fd40e2_aabe077db2d37bb9', 'status':'VISIBLE', 'txnId':'16028'} mysql> desc var_nested_load_conflict; +------------+---------------+------+-------+---------+-------+ | Field | Type | Null | Key | Default | Extra | +------------+---------------+------+-------+---------+-------+ | k | bigint | Yes | true | NULL | | | v | variant | Yes | false | NULL | NONE | | v.nested.a | json | Yes | false | NULL | NONE | | v.nested.b | json | Yes | false | NULL | NONE | | v.nested.c | array<double> | Yes | false | NULL | NONE | +------------+---------------+------+-------+---------+-------+ 5 rows in set (0.10 sec) mysql> select * from var_nested_load_conflict; ERROR 1105 (HY000): errCode = 2, detailMessage = (10.16.10.6)[INTERNAL_ERROR]Meet none array column when flatten nested array, path nested.b, type Nullable(JSONB) ``` So we don't allow this kind of insertion ``` mysql> insert into var_nested_load_conflict values (3, '{"nested": [{"a": 2.5, "b": "123.1"}]}'), (4, '{"nested": {"a": 2.5, "b": "123.1"}}'); ERROR 1105 (HY000): errCode = 2, detailMessage = (10.16.10.6)[DATA_QUALITY_ERROR][E46] Ambiguous paths: nested.b vs nested.b with different nested part false vs true ```
|
run buildall |
Cloud UT Coverage ReportIncrement line coverage Increment coverage report
|
TPC-H: Total hot run time: 39587 ms |
FE UT Coverage ReportIncrement line coverage |
TPC-DS: Total hot run time: 197409 ms |
|
run buildall |
Cloud UT Coverage ReportIncrement line coverage Increment coverage report
|
TPC-H: Total hot run time: 39985 ms |
BE UT Coverage ReportIncrement line coverage Increment coverage report
|
|
run p0 |
|
run cloud_p0 |
|
run external |
|
run buildall |
Cloud UT Coverage ReportIncrement line coverage Increment coverage report
|
BE UT Coverage ReportIncrement line coverage Increment coverage report
|
FE UT Coverage ReportIncrement line coverage |
BE Regression && UT Coverage ReportIncrement line coverage Increment coverage report
|
BE Regression && UT Coverage ReportIncrement line coverage Increment coverage report
|
|
run buildall |
Cloud UT Coverage ReportIncrement line coverage Increment coverage report
|
BE UT Coverage ReportIncrement line coverage Increment coverage report
|
|
run buildall |
Cloud UT Coverage ReportIncrement line coverage Increment coverage report
|
BE UT Coverage ReportIncrement line coverage Increment coverage report
|
FE UT Coverage ReportIncrement line coverage |
|
|
||
| // disable variant flatten nested as session variable, default is true, | ||
| // which means disable variant flatten nested when create table | ||
| public static final String DISABLE_VARIANT_FLATTEN_NESTED = "disable_variant_flatten_nested"; |
|
PR approved by at least one committer and no changes requested. |
|
PR approved by anyone and no changes requested. |
What problem does this PR solve?
backport: #53083
Issue Number: close #xxx
Related PR: #xxx
Problem Summary:
Release note
None
Check List (For Author)
Test
Behavior changed:
Does this need documentation?
Check List (For Reviewer who merge this PR)