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

morningman pushed a commit to branch branch-2.0
in repository https://gitbox.apache.org/repos/asf/doris.git


The following commit(s) were added to refs/heads/branch-2.0 by this push:
     new a8e74d6a85b [Fix](statistics)Fix analyze min max sql syntax error. 
#26240 (#26443)
a8e74d6a85b is described below

commit a8e74d6a85b8f313623c4ddf6811058593335775
Author: Jibing-Li <64681310+jibing...@users.noreply.github.com>
AuthorDate: Mon Nov 6 14:13:49 2023 +0800

    [Fix](statistics)Fix analyze min max sql syntax error. #26240 (#26443)
    
    backport #26240
---
 .../hive/scripts/create_preinstalled_table.hql       |  2 +-
 .../apache/doris/statistics/BaseAnalysisTask.java    |  4 ++--
 .../hive/test_hive_statistics_p0.groovy              | 20 ++++++++++----------
 3 files changed, 13 insertions(+), 13 deletions(-)

diff --git 
a/docker/thirdparties/docker-compose/hive/scripts/create_preinstalled_table.hql 
b/docker/thirdparties/docker-compose/hive/scripts/create_preinstalled_table.hql
index 6b3e04e25b3..740bf2fa584 100644
--- 
a/docker/thirdparties/docker-compose/hive/scripts/create_preinstalled_table.hql
+++ 
b/docker/thirdparties/docker-compose/hive/scripts/create_preinstalled_table.hql
@@ -1772,4 +1772,4 @@ create table stats_test1 (id INT, value STRING) STORED AS 
ORC;
 create table stats_test2 (id INT, value STRING) STORED AS PARQUET;
 
 insert into stats_test1 values (1, 'name1'), (2, 'name2'), (3, 'name3');
-insert into stats_test2 values (1, 'name1'), (2, 'name2'), (3, 'name3');
+INSERT INTO stats_test2 VALUES (1, ';'), (2, '\*');
diff --git 
a/fe/fe-core/src/main/java/org/apache/doris/statistics/BaseAnalysisTask.java 
b/fe/fe-core/src/main/java/org/apache/doris/statistics/BaseAnalysisTask.java
index a73d2a2c06b..4f7d588de73 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/statistics/BaseAnalysisTask.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/statistics/BaseAnalysisTask.java
@@ -242,7 +242,7 @@ public abstract class BaseAnalysisTask {
     // Min value is not accurate while sample, so set it to NULL to avoid 
optimizer generate bad plan.
     protected String getMinFunction() {
         if (tableSample == null) {
-            return "MIN(CAST(min AS ${type}))";
+            return "CAST(MIN(`${colName}`) as ${type}) ";
         } else {
             return "NULL ";
         }
@@ -251,7 +251,7 @@ public abstract class BaseAnalysisTask {
     // Max value is not accurate while sample, so set it to NULL to avoid 
optimizer generate bad plan.
     protected String getMaxFunction() {
         if (tableSample == null) {
-            return "MAX(CAST(min AS ${type}))";
+            return "CAST(MAX(`${colName}`) as ${type}) ";
         } else {
             return "NULL ";
         }
diff --git 
a/regression-test/suites/external_table_p0/hive/test_hive_statistics_p0.groovy 
b/regression-test/suites/external_table_p0/hive/test_hive_statistics_p0.groovy
index 501daaf8577..38db4379a90 100644
--- 
a/regression-test/suites/external_table_p0/hive/test_hive_statistics_p0.groovy
+++ 
b/regression-test/suites/external_table_p0/hive/test_hive_statistics_p0.groovy
@@ -55,24 +55,24 @@ suite("test_hive_statistics_p0", 
"all_types,p0,external,hive,external_docker,ext
             result = sql """show column stats stats_test2(id);"""
             assertEquals(1, result.size())
             assertEquals("id", result[0][0])
-            assertEquals("3.0", result[0][1])
-            assertEquals("3.0", result[0][2])
+            assertEquals("2.0", result[0][1])
+            assertEquals("2.0", result[0][2])
             assertEquals("0.0", result[0][3])
-            assertEquals("12.0", result[0][4])
+            assertEquals("8.0", result[0][4])
             assertEquals("4.0", result[0][5])
             assertEquals("1", result[0][6])
-            assertEquals("3", result[0][7])
+            assertEquals("2", result[0][7])
 
             result = sql """show column stats stats_test2(value);"""
             assertEquals(1, result.size())
             assertEquals("value", result[0][0])
-            assertEquals("3.0", result[0][1])
-            assertEquals("3.0", result[0][2])
+            assertEquals("2.0", result[0][1])
+            assertEquals("2.0", result[0][2])
             assertEquals("0.0", result[0][3])
-            assertEquals("15.0", result[0][4])
-            assertEquals("5.0", result[0][5])
-            assertEquals("\'name1\'", result[0][6])
-            assertEquals("\'name3\'", result[0][7])
+            assertEquals("2.0", result[0][4])
+            assertEquals("1.0", result[0][5])
+            assertEquals("\'*\'", result[0][6])
+            assertEquals("\';\'", result[0][7])
 
 
             sql """drop catalog if exists ${catalog_name}"""


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

Reply via email to