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]

Reply via email to