[Fix](statistics)Fix analyze min max sql syntax error. #26240

This commit is contained in:
Jibing-Li
2023-11-02 09:22:32 +08:00
committed by GitHub
parent a4e415ab09
commit 80f654ec2a
3 changed files with 13 additions and 13 deletions

View File

@ -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, '\*');

View File

@ -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 ";
}

View File

@ -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}"""