-
Notifications
You must be signed in to change notification settings - Fork 3.7k
Closed
Labels
kind/fixCategorizes issue or PR as related to a bug.Categorizes issue or PR as related to a bug.
Description
Describe the bug
avg on varchar column throw exception:
java.lang.IllegalStateException: Failed analysis after expr substitution.
at com.baidu.palo.analysis.Expr.substituteList(Expr.java:640) ~[palo-fe.jar:?]
at com.baidu.palo.analysis.ExprSubstitutionMap.compose(ExprSubstitutionMap.java:103) ~[palo-fe.jar:?]
at com.baidu.palo.analysis.SelectStmt.analyzeAggregation(SelectStmt.java:853) ~[palo-fe.jar:?]
at com.baidu.palo.analysis.SelectStmt.analyze(SelectStmt.java:348) ~[palo-fe.jar:?]
at com.baidu.palo.qe.StmtExecutor.analyze(StmtExecutor.java:395) [palo-fe.jar:?]
at com.baidu.palo.qe.StmtExecutor.execute(StmtExecutor.java:200) [palo-fe.jar:?]
at com.baidu.palo.qe.ConnectProcessor.handleQuery(ConnectProcessor.java:159) [palo-fe.jar:?]
at com.baidu.palo.qe.ConnectProcessor.dispatch(ConnectProcessor.java:249) [palo-fe.jar:?]
at com.baidu.palo.qe.ConnectProcessor.processOnce(ConnectProcessor.java:380) [palo-fe.jar:?]
at com.baidu.palo.qe.ConnectProcessor.loop(ConnectProcessor.java:390) [palo-fe.jar:?]
at com.baidu.palo.qe.ConnectScheduler$LoopHandler.run(ConnectScheduler.java:170) [palo-fe.jar:?]
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) [?:1.8.0_131]
at java.util.concurrent.FutureTask.run(FutureTask.java:266) [?:1.8.0_131]
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) [?:1.8.0_131]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) [?:1.8.0_131]
at java.lang.Thread.run(Thread.java:748) [?:1.8.0_131]
Caused by: com.baidu.palo.common.AnalysisException: SUM requires a numeric parameter: sum(`k4`)
at com.baidu.palo.analysis.FunctionCallExpr.analyzeBuiltinAggFunction(FunctionCallExpr.java:358) ~[palo-fe.jar:?]
at com.baidu.palo.analysis.FunctionCallExpr.analyzeImpl(FunctionCallExpr.java:466) ~[palo-fe.jar:?]
at com.baidu.palo.analysis.Expr.analyze(Expr.java:354) ~[palo-fe.jar:?]
at com.baidu.palo.analysis.Expr.analyze(Expr.java:348) ~[palo-fe.jar:?]
at com.baidu.palo.analysis.Expr.trySubstitute(Expr.java:599) ~[palo-fe.jar:?]
at com.baidu.palo.analysis.Expr.trySubstituteList(Expr.java:629) ~[palo-fe.jar:?]
at com.baidu.palo.analysis.Expr.substituteList(Expr.java:638) ~[palo-fe.jar:?]
... 15 more
2018-11-28 17:23:36,909 WARN 216 [StmtExecutor.execute():279] execute Exception.
com.baidu.palo.common.AnalysisException: Unexpected exception: Failed analysis after expr substitution.
at com.baidu.palo.qe.StmtExecutor.analyze(StmtExecutor.java:469) ~[palo-fe.jar:?]
at com.baidu.palo.qe.StmtExecutor.execute(StmtExecutor.java:200) [palo-fe.jar:?]
at com.baidu.palo.qe.ConnectProcessor.handleQuery(ConnectProcessor.java:159) [palo-fe.jar:?]
at com.baidu.palo.qe.ConnectProcessor.dispatch(ConnectProcessor.java:249) [palo-fe.jar:?]
at com.baidu.palo.qe.ConnectProcessor.processOnce(ConnectProcessor.java:380) [palo-fe.jar:?]
at com.baidu.palo.qe.ConnectProcessor.loop(ConnectProcessor.java:390) [palo-fe.jar:?]
at com.baidu.palo.qe.ConnectScheduler$LoopHandler.run(ConnectScheduler.java:170) [palo-fe.jar:?]
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) [?:1.8.0_131]
at java.util.concurrent.FutureTask.run(FutureTask.java:266) [?:1.8.0_131]
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) [?:1.8.0_131]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) [?:1.8.0_131]
at java.lang.Thread.run(Thread.java:748) [?:1.8.0_131]
To Reproduce
CREATE EXTERNAL TABLE `table_mysql` (
`k1` date COMMENT "",
`k2` int(11) COMMENT "",
`k3` smallint(6) COMMENT "",
`k4` varchar(2048) COMMENT "",
`k5` datetime COMMENT ""
) ENGINE=MYSQL
PROPERTIES (
"host" = "127.0.0.1",
"port" = "8239",
"user" = "mysql_user",
"password" = "",
"database" = "mysql_db_test",
"table" = "mysql_table_test"
);
select avg(k4) from table_mysql
Expected behavior
avg is not supported on varchar column. but we should make our mistake info more friendly.
Metadata
Metadata
Assignees
Labels
kind/fixCategorizes issue or PR as related to a bug.Categorizes issue or PR as related to a bug.