zkyong opened a new issue, #6155: URL: https://github.com/apache/seatunnel/issues/6155
### Search before asking - [X] I had searched in the [issues](https://github.com/apache/seatunnel/issues?q=is%3Aissue+label%3A%22bug%22) and found no similar issues. ### What happened 1、如题,ZetaSQLEngine引擎底层解析sql使用到了jsqlparser(net.sf.jsqlparser.parser.CCJSqlParserUtil#parse(java.lang.String)),但该工具类不不支持列名work关键字的同步。报错信息如下: ```text Exception in thread "main" org.apache.seatunnel.core.starter.exception.CommandExecuteException: SeaTunnel job executed failed at org.apache.seatunnel.core.starter.seatunnel.command.ClientExecuteCommand.execute(ClientExecuteCommand.java:191) at org.apache.seatunnel.core.starter.SeaTunnel.run(SeaTunnel.java:40) at org.apache.seatunnel.core.starter.seatunnel.SeaTunnelClient.main(SeaTunnelClient.java:34) Caused by: org.apache.seatunnel.transform.exception.TransformException: ErrorCode:[COMMON-05], ErrorDescription:[Unsupported operation] - SQL parse failed: select id,device_no,version,type,model,work,create_time,update_time,deleted from gkzyzb_device, cause: net.sf.jsqlparser.parser.ParseException: Encountered unexpected token: "," "," at line 1, column 39. Was expecting one of: "&" "::" ";" "<<" ">>" "COLLATE" "CONNECT" "EMIT" "GROUP" "HAVING" "INTO" "START" "WINDOW" "[" "^" "|" <EOF> at org.apache.seatunnel.transform.sql.zeta.ZetaSQLEngine.parseSQL(ZetaSQLEngine.java:95) at org.apache.seatunnel.transform.sql.zeta.ZetaSQLEngine.init(ZetaSQLEngine.java:83) at org.apache.seatunnel.transform.sql.SQLTransform.open(SQLTransform.java:118) at org.apache.seatunnel.transform.sql.SQLTransform.tryOpen(SQLTransform.java:127) at org.apache.seatunnel.transform.sql.SQLTransform.transformTableSchema(SQLTransform.java:145) at org.apache.seatunnel.transform.common.AbstractCatalogSupportTransform.transformCatalogTable(AbstractCatalogSupportTransform.java:56) at org.apache.seatunnel.transform.common.AbstractCatalogSupportTransform.getProducedCatalogTable(AbstractCatalogSupportTransform.java:46) at org.apache.seatunnel.engine.core.parse.MultipleTableJobConfigParser.parseTransform(MultipleTableJobConfigParser.java:463) at org.apache.seatunnel.engine.core.parse.MultipleTableJobConfigParser.parseTransforms(MultipleTableJobConfigParser.java:374) at org.apache.seatunnel.engine.core.parse.MultipleTableJobConfigParser.parse(MultipleTableJobConfigParser.java:184) at org.apache.seatunnel.engine.core.job.AbstractJobEnvironment.getLogicalDag(AbstractJobEnvironment.java:109) at org.apache.seatunnel.engine.client.job.JobExecutionEnvironment.execute(JobExecutionEnvironment.java:73) at org.apache.seatunnel.core.starter.seatunnel.command.ClientExecuteCommand.execute(ClientExecuteCommand.java:143) ... 2 more ``` 2、我打算使用转义符绕过关键字问题,但却发现SeaTunnelRowType类不支持字段转义。 ```text 2024-01-08 11:23:22,140 ERROR org.apache.seatunnel.core.starter.SeaTunnel - Exception StackTrace:org.apache.seatunnel.core.starter.exception.CommandExecuteException: SeaTunnel job executed failed at org.apache.seatunnel.core.starter.seatunnel.command.ClientExecuteCommand.execute(ClientExecuteCommand.java:191) at org.apache.seatunnel.core.starter.SeaTunnel.run(SeaTunnel.java:40) at org.apache.seatunnel.core.starter.seatunnel.SeaTunnelClient.main(SeaTunnelClient.java:34) Caused by: java.lang.IllegalArgumentException: can't find field [`work`] at org.apache.seatunnel.api.table.type.SeaTunnelRowType.indexOf(SeaTunnelRowType.java:82) at org.apache.seatunnel.transform.sql.zeta.ZetaSQLType.getExpressionType(ZetaSQLType.java:91) at org.apache.seatunnel.transform.sql.zeta.ZetaSQLEngine.typeMapping(ZetaSQLEngine.java:206) at org.apache.seatunnel.transform.sql.SQLTransform.transformTableSchema(SQLTransform.java:147) at org.apache.seatunnel.transform.common.AbstractCatalogSupportTransform.transformCatalogTable(AbstractCatalogSupportTransform.java:56) at org.apache.seatunnel.transform.common.AbstractCatalogSupportTransform.getProducedCatalogTable(AbstractCatalogSupportTransform.java:46) at org.apache.seatunnel.engine.core.parse.MultipleTableJobConfigParser.parseTransform(MultipleTableJobConfigParser.java:463) at org.apache.seatunnel.engine.core.parse.MultipleTableJobConfigParser.parseTransforms(MultipleTableJobConfigParser.java:374) at org.apache.seatunnel.engine.core.parse.MultipleTableJobConfigParser.parse(MultipleTableJobConfigParser.java:184) at org.apache.seatunnel.engine.core.job.AbstractJobEnvironment.getLogicalDag(AbstractJobEnvironment.java:109) at org.apache.seatunnel.engine.client.job.JobExecutionEnvironment.execute(JobExecutionEnvironment.java:73) at org.apache.seatunnel.core.starter.seatunnel.command.ClientExecuteCommand.execute(ClientExecuteCommand.java:143) ... 2 more 2024-01-08 11:23:22,140 ERROR org.apache.seatunnel.core.starter.SeaTunnel - ``` ### SeaTunnel Version 2.3.3 ### SeaTunnel Config ```conf 数据同步脚本中部分配置如下: "transform" : [ { "plugin_name":"Sql", "source_table_name" : "tb_device", "result_table_name" : "tb_device_ck", "query" : "select id,device_no,version,type,model,work,create_time,update_time,deleted from tb_device" } ], ``` ### Running Command ```shell nohup sh $SEATUNNEL_HOME/bin/seatunnel.sh -s "20232000" > ./logs/20232000.log 2>&1 & ``` ### Error Exception ```log nohup sh $SEATUNNEL_HOME/bin/seatunnel.sh -s "20232000" > ./logs/20232000.log 2>&1 & ``` ### Zeta or Flink or Spark Version _No response_ ### Java or Scala Version 1.8 ### Screenshots _No response_ ### Are you willing to submit PR? - [X] Yes I am willing to submit a PR! ### Code of Conduct - [X] I agree to follow this project's [Code of Conduct](https://www.apache.org/foundation/policies/conduct) -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: [email protected] For queries about this service, please contact Infrastructure at: [email protected]
