IeohMingChan opened a new issue, #2814:
URL: https://github.com/apache/incubator-seatunnel/issues/2814

   ### Search before asking
   
   - [X] I had searched in the 
[issues](https://github.com/apache/incubator-seatunnel/issues?q=is%3Aissue+label%3A%22bug%22)
 and found no similar issues.
   
   
   ### What happened
   
   Dear contributors:
   I want to use SQL function FROM_UNIXTIME() to convert the unix timestamp to 
a time format like ‘yyyy-MM-dd HH:mm:ss’. This SQL function works well in flink 
but throws SqlValidatorException: No match found for function signature 
FROM_UNIXTIME(<NUMERIC>, <CHARACTER>). In addition, I found that many similar 
SQL functions that can be used in Flink cannot be used in seatunnel, such as 
UNIX_ TIMESTAMP,NOW,TO_ TIMESTAMP. Is there a solution to this problem. Thank 
you very much!
   
   ### SeaTunnel Version
   
   2.1.3
   
   ### SeaTunnel Config
   
   ```conf
   env {
       execution.parallelism = 1
   }
   
   source{
       FakeSource {
           result_table_name = "test"
         }
   }
   
   transform {
       sql {
           sql = "select FROM_UNIXTIME(1403006911, 'yyyy-MM-dd HH:mm:ss')"
           result_table_name = "sqlout"
       }
   }
   
   sink {
       ConsoleSink {source_table_name = "sqlout"}
   }
   ```
   
   
   ### Running Command
   
   ```shell
   ./bin/start-seatunnel-flink.sh --config ./config/timeTest.conf
   ```
   
   
   ### Error Exception
   
   ```log
   The program finished with the following exception:
   
   org.apache.flink.client.program.ProgramInvocationException: The main method 
caused an error: Execute Flink task error
           at 
org.apache.flink.client.program.PackagedProgram.callMainMethod(PackagedProgram.java:366)
           at 
org.apache.flink.client.program.PackagedProgram.invokeInteractiveModeForExecution(PackagedProgram.java:219)
           at 
org.apache.flink.client.ClientUtils.executeProgram(ClientUtils.java:114)
           at 
org.apache.flink.client.cli.CliFrontend.executeProgram(CliFrontend.java:812)
           at org.apache.flink.client.cli.CliFrontend.run(CliFrontend.java:246)
           at 
org.apache.flink.client.cli.CliFrontend.parseAndRun(CliFrontend.java:1054)
           at 
org.apache.flink.client.cli.CliFrontend.lambda$main$10(CliFrontend.java:1132)
           at 
org.apache.flink.runtime.security.contexts.NoOpSecurityContext.runSecured(NoOpSecurityContext.java:28)
           at 
org.apache.flink.client.cli.CliFrontend.main(CliFrontend.java:1132)
   Caused by: org.apache.seatunnel.core.base.exception.CommandExecuteException: 
Execute Flink task error
           at 
org.apache.seatunnel.core.flink.command.FlinkApiTaskExecuteCommand.execute(FlinkApiTaskExecuteCommand.java:85)
           at org.apache.seatunnel.core.base.Seatunnel.run(Seatunnel.java:40)
           at 
org.apache.seatunnel.core.flink.SeatunnelFlink.main(SeatunnelFlink.java:34)
           at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
           at 
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
           at 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
           at java.lang.reflect.Method.invoke(Method.java:498)
           at 
org.apache.flink.client.program.PackagedProgram.callMainMethod(PackagedProgram.java:349)
           ... 8 more
   Caused by: java.lang.Exception: Flink batch transform sql execute failed, 
SQL: select TO_TIMESTAMP('yyyy-MM-dd HH:mm:ss')
           at org.apache.seatunnel.flink.transform.Sql.processBatch(Sql.java:63)
           at 
org.apache.seatunnel.flink.batch.FlinkBatchExecution.start(FlinkBatchExecution.java:64)
           at 
org.apache.seatunnel.core.flink.command.FlinkApiTaskExecuteCommand.execute(FlinkApiTaskExecuteCommand.java:82)
           ... 15 more
   Caused by: org.apache.flink.table.api.ValidationException: SQL validation 
failed. From line 1, column 8 to line 1, column 42: No match found for function 
signature TO_TIMESTAMP(<CHARACTER>)
           at 
org.apache.flink.table.calcite.FlinkPlannerImpl.validateInternal(FlinkPlannerImpl.scala:149)
           at 
org.apache.flink.table.calcite.FlinkPlannerImpl.validate(FlinkPlannerImpl.scala:109)
           at 
org.apache.flink.table.sqlexec.SqlToOperationConverter.convert(SqlToOperationConverter.java:152)
           at 
org.apache.flink.table.planner.ParserImpl.parse(ParserImpl.java:67)
           at 
org.apache.flink.table.api.internal.TableEnvImpl.sqlQuery(TableEnvImpl.scala:528)
           at org.apache.seatunnel.flink.transform.Sql.processBatch(Sql.java:61)
           ... 17 more
   Caused by: org.apache.calcite.runtime.CalciteContextException: From line 1, 
column 8 to line 1, column 42: No match found for function signature 
TO_TIMESTAMP(<CHARACTER>)
           at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native 
Method)
           at 
sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
           at 
sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
           at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
           at 
org.apache.calcite.runtime.Resources$ExInstWithCause.ex(Resources.java:467)
           at 
org.apache.calcite.sql.SqlUtil.newContextException(SqlUtil.java:883)
           at 
org.apache.calcite.sql.SqlUtil.newContextException(SqlUtil.java:868)
           at 
org.apache.calcite.sql.validate.SqlValidatorImpl.newValidationError(SqlValidatorImpl.java:5043)
           at 
org.apache.calcite.sql.validate.SqlValidatorImpl.handleUnresolvedFunction(SqlValidatorImpl.java:1838)
           at 
org.apache.calcite.sql.SqlFunction.deriveType(SqlFunction.java:321)
           at 
org.apache.calcite.sql.SqlFunction.deriveType(SqlFunction.java:226)
           at 
org.apache.calcite.sql.validate.SqlValidatorImpl$DeriveTypeVisitor.visit(SqlValidatorImpl.java:5882)
           at 
org.apache.calcite.sql.validate.SqlValidatorImpl$DeriveTypeVisitor.visit(SqlValidatorImpl.java:5869)
           at org.apache.calcite.sql.SqlCall.accept(SqlCall.java:139)
           at 
org.apache.calcite.sql.validate.SqlValidatorImpl.deriveTypeImpl(SqlValidatorImpl.java:1756)
           at 
org.apache.calcite.sql.validate.SqlValidatorImpl.deriveType(SqlValidatorImpl.java:1741)
           at 
org.apache.calcite.sql.validate.SqlValidatorImpl.expandSelectItem(SqlValidatorImpl.java:440)
           at 
org.apache.calcite.sql.validate.SqlValidatorImpl.validateSelectList(SqlValidatorImpl.java:4205)
           at 
org.apache.calcite.sql.validate.SqlValidatorImpl.validateSelect(SqlValidatorImpl.java:3474)
           at 
org.apache.calcite.sql.validate.SelectNamespace.validateImpl(SelectNamespace.java:60)
           at 
org.apache.calcite.sql.validate.AbstractNamespace.validate(AbstractNamespace.java:84)
           at 
org.apache.calcite.sql.validate.SqlValidatorImpl.validateNamespace(SqlValidatorImpl.java:1067)
           at 
org.apache.calcite.sql.validate.SqlValidatorImpl.validateQuery(SqlValidatorImpl.java:1041)
           at org.apache.calcite.sql.SqlSelect.validate(SqlSelect.java:232)
           at 
org.apache.calcite.sql.validate.SqlValidatorImpl.validateScopedExpression(SqlValidatorImpl.java:1016)
           at 
org.apache.calcite.sql.validate.SqlValidatorImpl.validate(SqlValidatorImpl.java:724)
           at 
org.apache.flink.table.calcite.FlinkPlannerImpl.validateInternal(FlinkPlannerImpl.scala:144)
           ... 22 more
   Caused by: org.apache.calcite.sql.validate.SqlValidatorException: No match 
found for function signature TO_TIMESTAMP(<CHARACTER>)
           at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native 
Method)
           at 
sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
           at 
sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
           at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
           at 
org.apache.calcite.runtime.Resources$ExInstWithCause.ex(Resources.java:467)
           at org.apache.calcite.runtime.Resources$ExInst.ex(Resources.java:560)
           ... 44 more
   ```
   
   
   ### Flink or Spark Version
   
   Flink 1.12.7
   
   ### Java or Scala Version
   
   _No response_
   
   ### 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]

Reply via email to