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 33220109f7e [Bug](materialized-view) fix analyze where clause failed 
on mv (#39061) (#39209)
33220109f7e is described below

commit 33220109f7e44612e4a4167a22279f2395d3021f
Author: Pxl <pxl...@qq.com>
AuthorDate: Tue Aug 13 16:08:20 2024 +0800

    [Bug](materialized-view) fix analyze where clause failed on mv (#39061) 
(#39209)
    
    ## Proposed changes
    pick from #39061
    fix analyze where clause failed on mv
    do not analyze slot after replaceSlot to avoid duplicate columns in desc
---
 .../java/org/apache/doris/analysis/SlotRef.java    |  5 ++
 .../data/mv_p0/routine_load_mapping/test2          |  0
 .../routine_load_mapping.groovy                    | 64 ++++++++++++++++++++++
 3 files changed, 69 insertions(+)

diff --git a/fe/fe-core/src/main/java/org/apache/doris/analysis/SlotRef.java 
b/fe/fe-core/src/main/java/org/apache/doris/analysis/SlotRef.java
index 4cd58f23650..92f5224e0bc 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/analysis/SlotRef.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/analysis/SlotRef.java
@@ -694,6 +694,11 @@ public class SlotRef extends Expr {
 
     @Override
     public void replaceSlot(TupleDescriptor tuple) {
+        // do not analyze slot after replaceSlot to avoid duplicate columns in 
desc
         desc = tuple.getColumnSlot(col);
+        type = desc.getType();
+        if (!isAnalyzed) {
+            analysisDone();
+        }
     }
 }
diff --git a/regression-test/data/mv_p0/routine_load_mapping/test2 
b/regression-test/data/mv_p0/routine_load_mapping/test2
new file mode 100644
index 00000000000..e69de29bb2d
diff --git 
a/regression-test/suites/mv_p0/routine_load_mapping/routine_load_mapping.groovy 
b/regression-test/suites/mv_p0/routine_load_mapping/routine_load_mapping.groovy
index 1188e3031c0..491282f7c85 100644
--- 
a/regression-test/suites/mv_p0/routine_load_mapping/routine_load_mapping.groovy
+++ 
b/regression-test/suites/mv_p0/routine_load_mapping/routine_load_mapping.groovy
@@ -49,4 +49,68 @@ suite ("routine_load_mapping") {
 
     qt_select "select * from test order by 1,2,3;"
     qt_select_mv "select * from test index m_view order by 1,2;"
+
+
+     sql """ DROP TABLE IF EXISTS rt_new; """
+
+      sql """
+        CREATE TABLE `rt_new` (
+  `battery_id` VARCHAR(50) NULL ,
+  `create_time` DATETIME(3) NULL ,
+  `imei` VARCHAR(50) NULL ,
+  `event_id` VARCHAR(50) NULL ,
+  `event_name` VARCHAR(50) NULL,
+  `heart_type` INT NULL
+) ENGINE=OLAP
+DUPLICATE KEY(`battery_id`, `create_time`)
+PARTITION BY RANGE(`create_time`)
+(PARTITION p20240421 VALUES [('2024-04-21 00:00:00'), ('2024-04-22 00:00:00')),
+PARTITION p20240422 VALUES [('2024-04-22 00:00:00'), ('2024-04-23 00:00:00')),
+PARTITION p20240804 VALUES [('2024-08-04 00:00:00'), ('2024-08-05 00:00:00')))
+DISTRIBUTED BY HASH(`battery_id`) BUCKETS AUTO
+PROPERTIES (
+"replication_allocation" = "tag.location.default: 1",
+"dynamic_partition.enable" = "true",
+"dynamic_partition.time_unit" = "DAY",
+"dynamic_partition.time_zone" = "Asia/Shanghai",
+"dynamic_partition.start" = "-2147483648",
+"dynamic_partition.end" = "3",
+"dynamic_partition.prefix" = "p",
+"dynamic_partition.buckets" = "10",
+"dynamic_partition.create_history_partition" = "true",
+"dynamic_partition.history_partition_num" = "100",
+"dynamic_partition.hot_partition_num" = "0",
+"dynamic_partition.reserved_history_periods" = "NULL",
+"storage_medium" = "hdd",
+"storage_format" = "V2",
+"inverted_index_storage_format" = "V2",
+"light_schema_change" = "true",
+"disable_auto_compaction" = "false",
+"enable_single_replica_compaction" = "false",
+"group_commit_interval_ms" = "10000",
+"group_commit_data_bytes" = "134217728"
+);
+        """
+
+         createMV("""CREATE MATERIALIZED VIEW location_rt_mv AS
+        SELECT
+        battery_id,
+        create_time
+        FROM
+        rt_new
+        WHERE
+        heart_type = 1
+        ;""")
+
+    sql """ ALTER TABLE rt_new MODIFY COLUMN event_id VARCHAR(51) NULL;"""
+    Thread.sleep(1000)
+
+    streamLoad {
+        table "rt_new"
+        set 'column_separator', ','
+        set 'columns', 
'`battery_id`,`create_time`,`imei`,`event_id`,`event_name`,`heart_type`'
+
+        file './test2'
+        time 10000 // limit inflight 10s
+    }
 }


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscr...@doris.apache.org
For additional commands, e-mail: commits-h...@doris.apache.org

Reply via email to