Bug 1296543

Summary: Redshift - conversion to time does not work
Product: [JBoss] JBoss Data Virtualization 6 Reporter: Juraj Duráni <jdurani>
Component: TeiidAssignee: Van Halbert <vhalbert>
Status: CLOSED CURRENTRELEASE QA Contact: Juraj Duráni <jdurani>
Severity: unspecified Docs Contact:
Priority: unspecified    
Version: 6.3.0CC: aszczucz, blafond, jolee, mbaluch, thauser, vhalbert
Target Milestone: ER1   
Target Release: 6.3.0   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2016-08-24 11:46:35 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:

Description Juraj Duráni 2016-01-07 13:33:06 UTC
Description of problem:
Conversion to TIME data type does not work for Redshift (using postgresql translator).
E.g.: SELECT CONVERT(timestampvalue, time) FROM Source.SmallA

14:08:36,300 DEBUG [org.teiid.CONNECTOR] (Worker12_QueryProcessorQueue158) Source-specific command: SELECT cast(date_trunc('second', g_0.timevalue) AS time) FROM smalla AS g_0

14:08:36,481 WARN  [org.teiid.CONNECTOR] (Worker12_QueryProcessorQueue158) Connector worker process failed for atomic-request=ajCOQrzOcEmF.3.0.36: org.teiid.translator.jdbc.JDBCExecutionException: 0 TEIID11008:TEIID11004 Error executing statement(s): [Prepared Values: [] SQL: SELECT cast(date_trunc('second', g_0.timevalue) AS time) FROM smalla AS g_0]
	at org.teiid.translator.jdbc.JDBCQueryExecution.execute(JDBCQueryExecution.java:131) [translator-jdbc-8.12.3.redhat-1.jar:8.12.3.redhat-1]
	at org.teiid.dqp.internal.datamgr.ConnectorWorkItem.execute(ConnectorWorkItem.java:349)
	at sun.reflect.GeneratedMethodAccessor189.invoke(Unknown Source) [:1.8.0_40]
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) [rt.jar:1.8.0_40]
	at java.lang.reflect.Method.invoke(Method.java:497) [rt.jar:1.8.0_40]
	at org.teiid.dqp.internal.datamgr.ConnectorManager$1.invoke(ConnectorManager.java:211)
	at com.sun.proxy.$Proxy124.execute(Unknown Source)
	at org.teiid.dqp.internal.process.DataTierTupleSource.getResults(DataTierTupleSource.java:306)
	at org.teiid.dqp.internal.process.DataTierTupleSource$1.call(DataTierTupleSource.java:112)
	at org.teiid.dqp.internal.process.DataTierTupleSource$1.call(DataTierTupleSource.java:108)
	at java.util.concurrent.FutureTask.run(FutureTask.java:266) [rt.jar:1.8.0_40]
	at org.teiid.dqp.internal.process.FutureWork.run(FutureWork.java:65)
	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:1142) [rt.jar:1.8.0_40]
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) [rt.jar:1.8.0_40]
	at java.lang.Thread.run(Thread.java:745) [rt.jar:1.8.0_40]
Caused by: org.postgresql.util.PSQLException: ERROR: Specified types or functions (one per INFO message) not supported on Redshift tables.
	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.3.redhat-1.jar:8.12.3.redhat-1]
	... 17 more



Steps to Reproduce:
VDB:
<vdb name="test" version="1">
    <model name="Source" type="PHYSICAL">
        <source name="rs" connection-jndi-name="java:/Redshift" translator-name="postgresql"/>
        <metadata type="DDL">
            <![CDATA[create foreign table SmallA (
                intkey integer OPTIONS(NAMEINSOURCE 'intkey', NATIVE_TYPE 'int4'),
                timevalue timestamp OPTIONS(NAMEINSOURCE 'timevalue', NATIVE_TYPE 'timestamp')) OPTIONS(NAMEINSOURCE 'smalla');
            ]]>
        </metadata>
    </model>
</vdb>

Actual results:


Expected results:


Additional info:

Comment 1 JBoss JIRA Server 2016-01-08 13:48:18 UTC
Steven Hawkins <shawkins> updated the status of jira TEIID-3885 to Resolved

Comment 2 Van Halbert 2016-01-08 13:54:18 UTC
Note:  a new redshift translator has been created to account for the different capabilities than the postgresql translator.

Comment 3 Juraj Duráni 2016-05-09 09:48:38 UTC
Verified with new redshift translator.