This is an automated email from the ASF dual-hosted git repository.

dataroaring pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/doris.git


The following commit(s) were added to refs/heads/master by this push:
     new b0b2da77681 [fix](meta) fix Unknown column 'mva_SUM__CAST` (#41283)
b0b2da77681 is described below

commit b0b2da77681efe601e323c831a51a12f3a1e23a8
Author: 924060929 <[email protected]>
AuthorDate: Wed Sep 25 21:34:13 2024 +0800

    [fix](meta) fix Unknown column 'mva_SUM__CAST` (#41283)
    
    fix insert into select statement failed when upgrade doris, introduced
    by #38012
    ```sql
    ERROR 1054 (42S22): errCode = 2, detailMessage = Unknown column 
'mva_SUM__CAST(`goods_number` AS BIGINT)' in 'dm_sales_settlement_day_goods'
    ```
---
 .../apache/doris/catalog/MaterializedIndexMeta.java   | 19 +++++++++++++++++++
 1 file changed, 19 insertions(+)

diff --git 
a/fe/fe-core/src/main/java/org/apache/doris/catalog/MaterializedIndexMeta.java 
b/fe/fe-core/src/main/java/org/apache/doris/catalog/MaterializedIndexMeta.java
index 2f5ce914a83..6125e033400 100644
--- 
a/fe/fe-core/src/main/java/org/apache/doris/catalog/MaterializedIndexMeta.java
+++ 
b/fe/fe-core/src/main/java/org/apache/doris/catalog/MaterializedIndexMeta.java
@@ -18,6 +18,7 @@
 package org.apache.doris.catalog;
 
 import org.apache.doris.analysis.Analyzer;
+import org.apache.doris.analysis.CastExpr;
 import org.apache.doris.analysis.CreateMaterializedViewStmt;
 import org.apache.doris.analysis.Expr;
 import org.apache.doris.analysis.SlotRef;
@@ -214,6 +215,24 @@ public class MaterializedIndexMeta implements Writable, 
GsonPostProcessable {
                 }
             }
 
+            boolean isCastSlot =
+                    entry.getValue() instanceof CastExpr && 
entry.getValue().getChild(0) instanceof SlotRef;
+
+            // Compatibility code for older versions of mv
+            // old version:
+            // goods_number -> mva_SUM__CAST(`goods_number` AS BIGINT)
+            // new version:
+            // goods_number -> mva_SUM__CAST(`goods_number` AS bigint)
+            if (isCastSlot && !match) {
+                for (Column column : schema) {
+                    if (column.getName().equalsIgnoreCase(entry.getKey())) {
+                        column.setDefineExpr(entry.getValue());
+                        match = true;
+                        break;
+                    }
+                }
+            }
+
             if (!match) {
                 // Compatibility code for older versions of mv
                 // store_id -> mv_store_id


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to