You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@doris.apache.org by GitBox <gi...@apache.org> on 2018/11/28 09:33:33 UTC

[GitHub] morningman opened a new issue #363: Avg function on varchar column cause exception

morningman opened a new issue #363: Avg function on varchar column cause exception
URL: https://github.com/apache/incubator-doris/issues/363
 
 
   **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.
   

----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
users@infra.apache.org


With regards,
Apache Git Services

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@doris.apache.org
For additional commands, e-mail: dev-help@doris.apache.org