-
Notifications
You must be signed in to change notification settings - Fork 8.6k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[BUG]PG 多维数组的SQL,进行解析或者格式化时报错 #6336
Comments
尝试了一下,用Druid执行这个SQL也报错: Caused by: java.sql.SQLException: sql injection violation, dbType postgresql, , druid-version 1.2.23, syntax error: syntax error, expect ], actual VARIANT pos 197, line 1, column 197, token VARIANT : SELECT outer_content_v2_125_voc_order_rate.rate_tags AS "rate_tags#1_T334960", count(DISTINCT outer_content_v2_125_voc_order_rate.id) AS "id_T334960_count_distinct" FROM (SELECT unnest(rate_tags[1:][1:1]) AS rate_tags, id FROM (SELECT rate_tags, id FROM content_v2_125.voc_order_rate) AS inter_content_v2_125_voc_order_rate) AS outer_content_v2_125_voc_order_rate GROUP BY outer_content_v2_125_voc_order_rate.rate_tags ORDER BY outer_content_v2_125_voc_order_rate.rate_tags DESC NULLS LAST LIMIT 12 |
Database Type
PG
Database Version
PG10.5
Druid Version
1.2.23
JDK Version
JDK8
Error SQL
SELECT outer_content_v2_125_voc_order_rate.rate_tags AS "rate_tags#1_T334960", count(DISTINCT outer_content_v2_125_voc_order_rate.id) AS "id_T334960_count_distinct" FROM (SELECT unnest(rate_tags[1:][1:1]) AS rate_tags, id FROM (SELECT rate_tags, id FROM content_v2_125.voc_order_rate) AS inter_content_v2_125_voc_order_rate) AS outer_content_v2_125_voc_order_rate GROUP BY outer_content_v2_125_voc_order_rate.rate_tags ORDER BY outer_content_v2_125_voc_order_rate.rate_tags DESC NULLS LAST LIMIT 12
Testcase Code
PGSelectStatement pgSelectStatement = new PGSQLStatementParser(adapterParam.getSelectSqlStr()).parseSelect();
Stacktrace Info
No response
Error Info
com.alibaba.druid.sql.parser.ParserException: syntax error, expect ], actual VARIANT pos 197, line 1, column 197, token VARIANT
at com.alibaba.druid.sql.parser.SQLExprParser.accept(SQLExprParser.java:4783) ~[druid-1.2.23.jar:?]
at com.alibaba.druid.sql.dialect.postgresql.parser.PGExprParser.primaryRest(PGExprParser.java:217) ~[druid-1.2.23.jar:?]
at com.alibaba.druid.sql.parser.SQLExprParser.primary(SQLExprParser.java:1419) ~[druid-1.2.23.jar:?]
at com.alibaba.druid.sql.dialect.postgresql.parser.PGExprParser.primary(PGExprParser.java:163) ~[druid-1.2.23.jar:?]
at com.alibaba.druid.sql.parser.SQLExprParser.expr(SQLExprParser.java:111) ~[druid-1.2.23.jar:?]
at com.alibaba.druid.sql.parser.SQLExprParser.exprList(SQLExprParser.java:2335) ~[druid-1.2.23.jar:?]
at com.alibaba.druid.sql.parser.SQLExprParser.methodRest(SQLExprParser.java:1981) ~[druid-1.2.23.jar:?]
at com.alibaba.druid.sql.parser.SQLExprParser.parseSelectItem(SQLExprParser.java:6489) ~[druid-1.2.23.jar:?]
at com.alibaba.druid.sql.parser.SQLSelectParser.parseSelectList(SQLSelectParser.java:1079) ~[druid-1.2.23.jar:?]
at com.alibaba.druid.sql.dialect.postgresql.parser.PGSelectParser.query(PGSelectParser.java:105) ~[druid-1.2.23.jar:?]
at com.alibaba.druid.sql.parser.SQLSelectParser.select(SQLSelectParser.java:62) ~[druid-1.2.23.jar:?]
at com.alibaba.druid.sql.parser.SQLSelectParser.parseTableSource(SQLSelectParser.java:1132) ~[druid-1.2.23.jar:?]
at com.alibaba.druid.sql.parser.SQLSelectParser.parseFrom(SQLSelectParser.java:1122) ~[druid-1.2.23.jar:?]
at com.alibaba.druid.sql.dialect.postgresql.parser.PGSelectParser.query(PGSelectParser.java:131) ~[druid-1.2.23.jar:?]
at com.alibaba.druid.sql.parser.SQLSelectParser.select(SQLSelectParser.java:62) ~[druid-1.2.23.jar:?]
at com.alibaba.druid.sql.dialect.postgresql.parser.PGSQLStatementParser.parseSelect(PGSQLStatementParser.java:539) ~[druid-1.2.23.jar:?]
at com.bytenew.bi.brain.service.dashboard.app.common.CalculateServiceV2.sqlPostProcess(CalculateServiceV2.java:3758) ~[classes/:?]
at com.bytenew.bi.brain.service.dashboard.app.common.CalculateServiceV2.myChartNew(CalculateServiceV2.java:189) ~[classes/:?]
at com.bytenew.bi.brain.service.dashboard.app.impl.ReportAppServiceImpl.makeReportForEdit1(ReportAppServiceImpl.java:629) ~[classes/:?]
at com.bytenew.bi.brain.service.dashboard.app.impl.ReportAppServiceImpl.makeReportForEdit(ReportAppServiceImpl.java:697) ~[classes/:?]
at com.bytenew.bi.brain.service.dashboard.impl.UiServiceImpl.datan(UiServiceImpl.java:350) ~[classes/:?]
at com.bytenew.bi.brain.controller.UiController.datan(UiController.java:90) ~[classes/:?]
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_401]
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[?:1.8.0_401]
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:1.8.0_401]
at java.lang.reflect.Method.invoke(Method.java:498) ~[?:1.8.0_401]
at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:190) ~[spring-web-5.2.12.RELEASE.jar:5.2.12.RELEASE]
at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:138) ~[spring-web-5.2.12.RELEASE.jar:5.2.12.RELEASE]
at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:105) ~[spring-webmvc-5.2.12.RELEASE.jar:5.2.12.RELEASE]
at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:878) ~[spring-webmvc-5.2.12.RELEASE.jar:5.2.12.RELEASE]
at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:792) ~[spring-webmvc-5.2.12.RELEASE.jar:5.2.12.RELEASE]
at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87) ~[spring-webmvc-5.2.12.RELEASE.jar:5.2.12.RELEASE]
at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1040) ~[spring-webmvc-5.2.12.RELEASE.jar:5.2.12.RELEASE]
at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:943) ~[spring-webmvc-5.2.12.RELEASE.jar:5.2.12.RELEASE]
at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006) ~[spring-webmvc-5.2.12.RELEASE.jar:5.2.12.RELEASE]
at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:909) ~[spring-webmvc-5.2.12.RELEASE.jar:5.2.12.RELEASE]
at javax.servlet.http.HttpServlet.service(HttpServlet.java:652) ~[tomcat-embed-core-9.0.41.jar:4.0.FR]
at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883) ~[spring-webmvc-5.2.12.RELEASE.jar:5.2.12.RELEASE]
at javax.servlet.http.HttpServlet.service(HttpServlet.java:733) ~[tomcat-embed-core-9.0.41.jar:4.0.FR]
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231) ~[tomcat-embed-core-9.0.41.jar:9.0.41]
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) ~[tomcat-embed-core-9.0.41.jar:9.0.41]
at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53) ~[tomcat-embed-websocket-9.0.41.jar:9.0.41]
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193) ~[tomcat-embed-core-9.0.41.jar:9.0.41]
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) ~[tomcat-embed-core-9.0.41.jar:9.0.41]
at com.banniuyun.work.common.isolation.web.IsolationWebFilter.doFilter(IsolationWebFilter.java:25) ~[op-common-isolation-1.0-20241126.084619-8.jar:1.0-SNAPSHOT]
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193) ~[tomcat-embed-core-9.0.41.jar:9.0.41]
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) ~[tomcat-embed-core-9.0.41.jar:9.0.41]
at com.banniuyun.work.common.isolation.web.IsolationWebTraceFilter.doFilter(IsolationWebTraceFilter.java:32) ~[op-common-isolation-1.0-20241126.084619-8.jar:1.0-SNAPSHOT]
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193) ~[tomcat-embed-core-9.0.41.jar:9.0.41]
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) ~[tomcat-embed-core-9.0.41.jar:9.0.41]
at com.banniuyun.work.common.dubbo.filter.MDCTraceFilter.doFilter(MDCTraceFilter.java:49) ~[op-common-dubbo-1.0-20241015.071640-21.jar:1.0-SNAPSHOT]
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193) ~[tomcat-embed-core-9.0.41.jar:9.0.41]
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) ~[tomcat-embed-core-9.0.41.jar:9.0.41]
at javax.servlet.http.HttpFilter.doFilter(HttpFilter.java:97) ~[tomcat-embed-core-9.0.41.jar:4.0.FR]
at com.bytenew.bff.common.web.filter.SessionFilter.doFilter(SessionFilter.java:91) ~[bff-common-web-1.1-20230526.143924-2.jar:1.1-SNAPSHOT]
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193) ~[tomcat-embed-core-9.0.41.jar:9.0.41]
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) ~[tomcat-embed-core-9.0.41.jar:9.0.41]
at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100) ~[spring-web-5.2.12.RELEASE.jar:5.2.12.RELEASE]
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119) ~[spring-web-5.2.12.RELEASE.jar:5.2.12.RELEASE]
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193) ~[tomcat-embed-core-9.0.41.jar:9.0.41]
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) ~[tomcat-embed-core-9.0.41.jar:9.0.41]
at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93) ~[spring-web-5.2.12.RELEASE.jar:5.2.12.RELEASE]
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119) ~[spring-web-5.2.12.RELEASE.jar:5.2.12.RELEASE]
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193) ~[tomcat-embed-core-9.0.41.jar:9.0.41]
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) ~[tomcat-embed-core-9.0.41.jar:9.0.41]
at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:93) ~[spring-boot-actuator-2.3.7.RELEASE.jar:2.3.7.RELEASE]
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119) ~[spring-web-5.2.12.RELEASE.jar:5.2.12.RELEASE]
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193) ~[tomcat-embed-core-9.0.41.jar:9.0.41]
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) ~[tomcat-embed-core-9.0.41.jar:9.0.41]
at com.bytenew.actuator.custom.rest.RequestTimeLogFilter.doFilterInternal(RequestTimeLogFilter.java:38) ~[custom-actuator-2.0.1-20241009.082409-23.jar:?]
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119) ~[spring-web-5.2.12.RELEASE.jar:5.2.12.RELEASE]
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193) ~[tomcat-embed-core-9.0.41.jar:9.0.41]
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) ~[tomcat-embed-core-9.0.41.jar:9.0.41]
at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201) ~[spring-web-5.2.12.RELEASE.jar:5.2.12.RELEASE]
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119) ~[spring-web-5.2.12.RELEASE.jar:5.2.12.RELEASE]
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193) ~[tomcat-embed-core-9.0.41.jar:9.0.41]
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) ~[tomcat-embed-core-9.0.41.jar:9.0.41]
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:202) ~[tomcat-embed-core-9.0.41.jar:9.0.41]
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:97) ~[tomcat-embed-core-9.0.41.jar:9.0.41]
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:542) ~[tomcat-embed-core-9.0.41.jar:9.0.41]
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:143) ~[tomcat-embed-core-9.0.41.jar:9.0.41]
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92) ~[tomcat-embed-core-9.0.41.jar:9.0.41]
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:78) ~[tomcat-embed-core-9.0.41.jar:9.0.41]
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:343) ~[tomcat-embed-core-9.0.41.jar:9.0.41]
at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:374) ~[tomcat-embed-core-9.0.41.jar:9.0.41]
at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:65) ~[tomcat-embed-core-9.0.41.jar:9.0.41]
at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:888) ~[tomcat-embed-core-9.0.41.jar:9.0.41]
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1597) ~[tomcat-embed-core-9.0.41.jar:9.0.41]
at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49) ~[tomcat-embed-core-9.0.41.jar:9.0.41]
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) ~[?:1.8.0_401]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) ~[?:1.8.0_401]
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) ~[tomcat-embed-core-9.0.41.jar:9.0.41]
at java.lang.Thread.run(Thread.java:750) ~[?:1.8.0_401]
The text was updated successfully, but these errors were encountered: