[teiid-issues] [JBoss JIRA] (TEIID-4104) FORMATTIMESTAMP function is not correctly pushed down when a colum is passed as FORMAT argument

Steven Hawkins (JIRA) issues at jboss.org
Mon May 23 08:47:00 EDT 2016


     [ https://issues.jboss.org/browse/TEIID-4104?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Steven Hawkins reopened TEIID-4104:
-----------------------------------


Yes, I should have reviewed things more completely based upon the issue.  Effectively the check preventing push down of the function is case sensitive, so having the upper name in the sql is allowing it to pass as a supported function.

> FORMATTIMESTAMP function is not correctly pushed down when a colum is passed as FORMAT argument
> -----------------------------------------------------------------------------------------------
>
>                 Key: TEIID-4104
>                 URL: https://issues.jboss.org/browse/TEIID-4104
>             Project: Teiid
>          Issue Type: Bug
>            Reporter: Salvatore R
>            Assignee: Steven Hawkins
>
> I defined in PostgreSQL the following table:
> {code:sql}
> CREATE TABLE public.test
> (
>   ts timestamp without time zone,
>   fmt character varying(100)
> );
> {code}
> Running this query:
> {code:sql}
> select FORMATTIMESTAMP(ts, fmt) from pg.test;
> {code}
> throws the following exception:
> {code}
> 13:44:21,778 WARN  [org.teiid.CONNECTOR] (Worker3_QueryProcessorQueue19) J0VWrGay8mz0 Connector worker process failed for atomic-request=J0VWrGay8mz0.8.0.2: org.teiid.translator.jdbc.JDBCExecutionException: 0 TEIID11008:TEIID11004 Error executing statement(s): [Prepared Values: [] SQL: SELECT formattimestamp(g_0."ts", g_0."fmt") FROM "public"."test" AS g_0]
>         at org.teiid.translator.jdbc.JDBCQueryExecution.execute(JDBCQueryExecution.java:131) [translator-jdbc-8.12.0.CR1.jar:8.12.0.CR1]
>         at org.teiid.dqp.internal.datamgr.ConnectorWorkItem.execute(ConnectorWorkItem.java:349)
>         at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) [rt.jar:1.7.0_67]
>         at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) [rt.jar:1.7.0_67]
>         at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) [rt.jar:1.7.0_67]
>         at java.lang.reflect.Method.invoke(Method.java:606) [rt.jar:1.7.0_67]
>         at org.teiid.dqp.internal.datamgr.ConnectorManager$1.invoke(ConnectorManager.java:211)
>         at com.sun.proxy.$Proxy47.execute(Unknown Source)
>         at org.teiid.dqp.internal.process.DataTierTupleSource.getResults(DataTierTupleSource.java:298)
>         at org.teiid.dqp.internal.process.DataTierTupleSource$1.call(DataTierTupleSource.java:110)
>         at org.teiid.dqp.internal.process.DataTierTupleSource$1.call(DataTierTupleSource.java:107)
>         at java.util.concurrent.FutureTask.run(FutureTask.java:262) [rt.jar:1.7.0_67]
>         at org.teiid.dqp.internal.process.FutureWork.run(FutureWork.java:58)
>         at org.teiid.dqp.internal.process.DQPWorkContext.runInContext(DQPWorkContext.java:276)
>         at org.teiid.dqp.internal.process.ThreadReuseExecutor$RunnableWrapper.run(ThreadReuseExecutor.java:119)
>         at org.teiid.dqp.internal.process.ThreadReuseExecutor$3.run(ThreadReuseExecutor.java:210)
>         at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) [rt.jar:1.7.0_67]
>         at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) [rt.jar:1.7.0_67]
>         at java.lang.Thread.run(Thread.java:745) [rt.jar:1.7.0_67]
> Caused by: org.postgresql.util.PSQLException: ERROR: function formattimestamp(timestamp without time zone, character varying) does not exist
>   Hint: No function matches the given name and argument types. You might need to add explicit casts.
>   Character: 8
>         at org.postgresql.core.v3.QueryExecutorImpl.receiveErrorResponse(QueryExecutorImpl.java:2157)
>         at org.postgresql.core.v3.QueryExecutorImpl.processResults(QueryExecutorImpl.java:1886)
>         at org.postgresql.core.v3.QueryExecutorImpl.execute(QueryExecutorImpl.java:255)
>         at org.postgresql.jdbc2.AbstractJdbc2Statement.execute(AbstractJdbc2Statement.java:555)
>         at org.postgresql.jdbc2.AbstractJdbc2Statement.executeWithFlags(AbstractJdbc2Statement.java:417)
>         at org.postgresql.jdbc2.AbstractJdbc2Statement.executeQuery(AbstractJdbc2Statement.java:302)
>         at org.jboss.jca.adapters.jdbc.WrappedPreparedStatement.executeQuery(WrappedPreparedStatement.java:462)
>         at org.teiid.translator.jdbc.JDBCQueryExecution.execute(JDBCQueryExecution.java:123) [translator-jdbc-8.12.0.CR1.jar:8.12.0.CR1]
>         ... 18 more
> {code}
> A similar exception is thrown not only in PostgreSQL but also in other datasources like MySQL, Oracle or Microsoft SQL Server.



--
This message was sent by Atlassian JIRA
(v6.4.11#64026)


More information about the teiid-issues mailing list