This is an automated email from the ASF dual-hosted git repository.
yiguolei pushed a commit to branch branch-2.1
in repository https://gitbox.apache.org/repos/asf/doris.git
The following commit(s) were added to refs/heads/branch-2.1 by this push:
new 3a196c8b0f8 [Pick](Variant) pick 2 prs about bugfix of variant (#33011)
3a196c8b0f8 is described below
commit 3a196c8b0f89a8f490c85c71c7029423d828c5d0
Author: lihangyu <[email protected]>
AuthorDate: Fri Mar 29 11:12:28 2024 +0800
[Pick](Variant) pick 2 prs about bugfix of variant (#33011)
* [Fix](Variant) forbit table with variant type doing segment compaction
temporarily
TODO fix this corretly in later works
* [Bug](Variant) use lower case name for variant's root, since backend
treat parent column as lower case
This PR address the problem as blow:
```
errCode = 2, detailMessage = (172.16.56.137)[CANCELLED]failed to initialize
storage reader. tablet=17136, res=[INTERNAL_ERROR]Not found field_name,
field_name:Tags.tag_key1, schema:[Thread(8), Tags(9), Source(5),
tags.tag_key1(-1), Title(6), Level(3), Time(2), CreateDate(1), Message(7),
IP(4), AppId(0)]
```
---
be/src/olap/rowset/beta_rowset_writer.cpp | 3 ++-
.../doris/nereids/glue/translator/PlanTranslatorContext.java | 2 +-
regression-test/data/variant_p0/column_name.out | 12 ++++++++++++
regression-test/suites/variant_p0/column_name.groovy | 8 +++++++-
4 files changed, 22 insertions(+), 3 deletions(-)
diff --git a/be/src/olap/rowset/beta_rowset_writer.cpp
b/be/src/olap/rowset/beta_rowset_writer.cpp
index 4bea55e57f4..a7cec72faea 100644
--- a/be/src/olap/rowset/beta_rowset_writer.cpp
+++ b/be/src/olap/rowset/beta_rowset_writer.cpp
@@ -416,7 +416,8 @@ Status BetaRowsetWriter::_segcompaction_if_necessary() {
// otherwise _segcompacting_cond will never get notified
if (!config::enable_segcompaction || !_context.enable_segcompaction ||
!_context.tablet_schema->cluster_key_idxes().empty() ||
- !_check_and_set_is_doing_segcompaction()) {
+ !_check_and_set_is_doing_segcompaction() ||
+ _context.tablet_schema->num_variant_columns() > 0) {
return status;
}
if (_segcompaction_status.load() != OK) {
diff --git
a/fe/fe-core/src/main/java/org/apache/doris/nereids/glue/translator/PlanTranslatorContext.java
b/fe/fe-core/src/main/java/org/apache/doris/nereids/glue/translator/PlanTranslatorContext.java
index 90539332791..eb0598d4894 100644
---
a/fe/fe-core/src/main/java/org/apache/doris/nereids/glue/translator/PlanTranslatorContext.java
+++
b/fe/fe-core/src/main/java/org/apache/doris/nereids/glue/translator/PlanTranslatorContext.java
@@ -289,7 +289,7 @@ public class PlanTranslatorContext {
slotRef = new SlotRef(slotDescriptor);
if (slotReference.hasSubColPath()) {
slotDescriptor.setSubColLables(slotReference.getSubColPath());
-
slotDescriptor.setMaterializedColumnName(slotRef.getColumnName()
+
slotDescriptor.setMaterializedColumnName(slotRef.getColumnName().toLowerCase()
+ "." + String.join(".",
slotReference.getSubColPath()));
}
}
diff --git a/regression-test/data/variant_p0/column_name.out
b/regression-test/data/variant_p0/column_name.out
index 2b897c04a05..2942c8d53bc 100644
--- a/regression-test/data/variant_p0/column_name.out
+++ b/regression-test/data/variant_p0/column_name.out
@@ -20,3 +20,15 @@
\N \N
UPPER CASE lower case
+-- !sql --
+1 {"tag_key1":123456}
+
+-- !sql --
+1 {"tag_key1":123456}
+
+-- !sql --
+1 {"tag_key1":123456}
+
+-- !sql --
+1 {"tag_key1":123456}
+
diff --git a/regression-test/suites/variant_p0/column_name.groovy
b/regression-test/suites/variant_p0/column_name.groovy
index 658be673c69..be0026e9c94 100644
--- a/regression-test/suites/variant_p0/column_name.groovy
+++ b/regression-test/suites/variant_p0/column_name.groovy
@@ -43,5 +43,11 @@ suite("regression_test_variant_column_name", "variant_type"){
// sql """insert into ${table_name} values (6, '{"\\n123": "t123",
"\\\"123": "123"}')"""
sql """insert into ${table_name} values (7, '{"AA": "UPPER CASE", "aa":
"lower case"}')"""
qt_sql """select cast(v["AA"] as string), cast(v["aa"] as string) from
${table_name} order by k"""
-
+
+ sql "alter table var_column_name rename column v Tags; "
+ sql """insert into var_column_name values (1, '{"tag_key1" : 123456}')"""
+ qt_sql "select * from var_column_name where tags['tag_key1'] is not null
and cast(Tags['tag_key1' ] as text) = '123456' order by k desc limit 1;"
+ qt_sql "select * from var_column_name where tags['tag_key1'] is not null
and cast(tags['tag_key1' ] as text) = '123456' order by k desc limit 1;"
+ qt_sql "select * from var_column_name where Tags['tag_key1'] is not null
and cast(tags['tag_key1' ] as text) = '123456' order by k desc limit 1;"
+ qt_sql "select * from var_column_name where Tags['tag_key1'] is not null
and cast(Tags['tag_key1' ] as text) = '123456' order by k desc limit 1;"
}
\ No newline at end of file
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]