[JBoss JIRA] (TEIID-4666) Google translator throws SpreadsheetOperationException for query DELETE FROM table
by Steven Hawkins (JIRA)
[ https://issues.jboss.org/browse/TEIID-4666?page=com.atlassian.jira.plugin... ]
Steven Hawkins resolved TEIID-4666.
-----------------------------------
Resolution: Duplicate
> Google translator throws SpreadsheetOperationException for query DELETE FROM table
> ----------------------------------------------------------------------------------
>
> Key: TEIID-4666
> URL: https://issues.jboss.org/browse/TEIID-4666
> Project: Teiid
> Issue Type: Feature Request
> Affects Versions: 8.12.8.6_3
> Reporter: Lucie Fabrikova
> Assignee: Steven Hawkins
> Attachments: googlespreadsheetcrud-vdb.xml, server.log, standalone.xml, teiid-4666.png
>
>
> Query "DELETE FROM smalla" where smalla is table throws exception:
> 07:06:52,219 ERROR [org.teiid.CONNECTOR] (Worker1_QueryProcessorQueue20) Connector worker process failed for atomic-request=IlMZP21M8Gwr.8.0.2: org.teiid.resource.adapter.google.common.SpreadsheetOperationException: Error getting spreadsheet feed. Possibly bad authentication or connection problems. com.google.gdata.util.InvalidEntryException: Bad Request
> Invalid query parameter value for sq.
> Please see server.log, standalone.xml and vdb for other information.
--
This message was sent by Atlassian JIRA
(v7.2.3#72005)
7 years, 4 months
[JBoss JIRA] (TEIID-4666) Google translator throws SpreadsheetOperationException for query DELETE FROM table
by Steven Hawkins (JIRA)
[ https://issues.jboss.org/browse/TEIID-4666?page=com.atlassian.jira.plugin... ]
Steven Hawkins commented on TEIID-4666:
---------------------------------------
TEIID-4468 addressed this as it needed to handle null predicates on delete for the not equals handling. The whole fix should be considered for inclusion in earlier branches.
> Google translator throws SpreadsheetOperationException for query DELETE FROM table
> ----------------------------------------------------------------------------------
>
> Key: TEIID-4666
> URL: https://issues.jboss.org/browse/TEIID-4666
> Project: Teiid
> Issue Type: Feature Request
> Affects Versions: 8.12.8.6_3
> Reporter: Lucie Fabrikova
> Assignee: Steven Hawkins
> Attachments: googlespreadsheetcrud-vdb.xml, server.log, standalone.xml, teiid-4666.png
>
>
> Query "DELETE FROM smalla" where smalla is table throws exception:
> 07:06:52,219 ERROR [org.teiid.CONNECTOR] (Worker1_QueryProcessorQueue20) Connector worker process failed for atomic-request=IlMZP21M8Gwr.8.0.2: org.teiid.resource.adapter.google.common.SpreadsheetOperationException: Error getting spreadsheet feed. Possibly bad authentication or connection problems. com.google.gdata.util.InvalidEntryException: Bad Request
> Invalid query parameter value for sq.
> Please see server.log, standalone.xml and vdb for other information.
--
This message was sent by Atlassian JIRA
(v7.2.3#72005)
7 years, 4 months
[JBoss JIRA] (TEIID-4670) DB2 table with VARGRAPHIC column causes MetadataException TEIID60009 Unknown datatype null
by Lee Breisacher (JIRA)
[ https://issues.jboss.org/browse/TEIID-4670?page=com.atlassian.jira.plugin... ]
Lee Breisacher closed TEIID-4670.
---------------------------------
Resolution: Rejected
oops, sorry Steven, my bad! bug in my code. thanks for looking.
> DB2 table with VARGRAPHIC column causes MetadataException TEIID60009 Unknown datatype null
> ------------------------------------------------------------------------------------------
>
> Key: TEIID-4670
> URL: https://issues.jboss.org/browse/TEIID-4670
> Project: Teiid
> Issue Type: Bug
> Affects Versions: 9.0.5
> Environment: teiid running on Windows connecting to DB2 database on z/OS.
> Reporter: Lee Breisacher
> Assignee: Steven Hawkins
>
> I have a JDBC connection to a DB2 database which has a table with a column of type VARGRAPHIC (a double-byte character VARCHAR). When gathering metadata during Teiid initialization, I get this exception:
> org.teiid.metadata.MetadataException: TEIID60009 Unknown datatype null
> at org.teiid.metadata.MetadataFactory.setDataType(MetadataFactory.java:272)
> at org.teiid.metadata.MetadataFactory.addColumn(MetadataFactory.java:254)
> at org.teiid.translator.jdbc.JDBCMetdataProcessor.addColumn(JDBCMetdataProcessor.java:425)
> at org.teiid.translator.jdbc.JDBCMetdataProcessor.processColumns(JDBCMetdataProcessor.java:386)
> at org.teiid.translator.jdbc.JDBCMetdataProcessor.getColumns(JDBCMetdataProcessor.java:361)
> at org.teiid.translator.jdbc.JDBCMetdataProcessor.getTables(JDBCMetdataProcessor.java:312)
> at org.teiid.translator.jdbc.JDBCMetdataProcessor.getConnectorMetadata(JDBCMetdataProcessor.java:159)
> at org.teiid.translator.jdbc.JDBCExecutionFactory.getMetadata(JDBCExecutionFactory.java:307)
> at org.teiid.translator.jdbc.JDBCExecutionFactory.getMetadata(JDBCExecutionFactory.java:68)
> at org.teiid.query.metadata.NativeMetadataRepository.getMetadata(NativeMetadataRepository.java:96)
> at org.teiid.query.metadata.NativeMetadataRepository.loadMetadata(NativeMetadataRepository.java:62)
> at org.teiid.query.metadata.ChainingMetadataRepository.loadMetadata(ChainingMetadataRepository.java:55)
> at org.teiid.runtime.EmbeddedServer.loadMetadata(EmbeddedServer.java:794)
> at org.teiid.runtime.AbstractVDBDeployer.loadMetadata(AbstractVDBDeployer.java:210)
> at org.teiid.runtime.EmbeddedServer.deployVDB(EmbeddedServer.java:744)
> at org.teiid.runtime.EmbeddedServer.deployVDB(EmbeddedServer.java:685)
> It looks like Teiid does not handle columns of type VARGRAPHIC (as seen in org.teiid.core.types.JDBCSQLTypeInfo).
--
This message was sent by Atlassian JIRA
(v7.2.3#72005)
7 years, 4 months
[JBoss JIRA] (TEIID-4670) DB2 table with VARGRAPHIC column causes MetadataException TEIID60009 Unknown datatype null
by Steven Hawkins (JIRA)
[ https://issues.jboss.org/browse/TEIID-4670?page=com.atlassian.jira.plugin... ]
Steven Hawkins commented on TEIID-4670:
---------------------------------------
I don't see this behavior with my DB2 instance. For a vargraphic column, I see a sql type of 12 being reported by the driver, which maps to string. The only way this exception would happen is if the driver reports a 0 (java.sql.Types.NULL) for the type. What specific DB2 driver/server combination are you using, and what sql type metadata do you see reported in other JDBC tools?
> DB2 table with VARGRAPHIC column causes MetadataException TEIID60009 Unknown datatype null
> ------------------------------------------------------------------------------------------
>
> Key: TEIID-4670
> URL: https://issues.jboss.org/browse/TEIID-4670
> Project: Teiid
> Issue Type: Bug
> Affects Versions: 9.0.5
> Environment: teiid running on Windows connecting to DB2 database on z/OS.
> Reporter: Lee Breisacher
> Assignee: Steven Hawkins
>
> I have a JDBC connection to a DB2 database which has a table with a column of type VARGRAPHIC (a double-byte character VARCHAR). When gathering metadata during Teiid initialization, I get this exception:
> org.teiid.metadata.MetadataException: TEIID60009 Unknown datatype null
> at org.teiid.metadata.MetadataFactory.setDataType(MetadataFactory.java:272)
> at org.teiid.metadata.MetadataFactory.addColumn(MetadataFactory.java:254)
> at org.teiid.translator.jdbc.JDBCMetdataProcessor.addColumn(JDBCMetdataProcessor.java:425)
> at org.teiid.translator.jdbc.JDBCMetdataProcessor.processColumns(JDBCMetdataProcessor.java:386)
> at org.teiid.translator.jdbc.JDBCMetdataProcessor.getColumns(JDBCMetdataProcessor.java:361)
> at org.teiid.translator.jdbc.JDBCMetdataProcessor.getTables(JDBCMetdataProcessor.java:312)
> at org.teiid.translator.jdbc.JDBCMetdataProcessor.getConnectorMetadata(JDBCMetdataProcessor.java:159)
> at org.teiid.translator.jdbc.JDBCExecutionFactory.getMetadata(JDBCExecutionFactory.java:307)
> at org.teiid.translator.jdbc.JDBCExecutionFactory.getMetadata(JDBCExecutionFactory.java:68)
> at org.teiid.query.metadata.NativeMetadataRepository.getMetadata(NativeMetadataRepository.java:96)
> at org.teiid.query.metadata.NativeMetadataRepository.loadMetadata(NativeMetadataRepository.java:62)
> at org.teiid.query.metadata.ChainingMetadataRepository.loadMetadata(ChainingMetadataRepository.java:55)
> at org.teiid.runtime.EmbeddedServer.loadMetadata(EmbeddedServer.java:794)
> at org.teiid.runtime.AbstractVDBDeployer.loadMetadata(AbstractVDBDeployer.java:210)
> at org.teiid.runtime.EmbeddedServer.deployVDB(EmbeddedServer.java:744)
> at org.teiid.runtime.EmbeddedServer.deployVDB(EmbeddedServer.java:685)
> It looks like Teiid does not handle columns of type VARGRAPHIC (as seen in org.teiid.core.types.JDBCSQLTypeInfo).
--
This message was sent by Atlassian JIRA
(v7.2.3#72005)
7 years, 4 months
[JBoss JIRA] (TEIID-4664) Arquillian test failed due to new added ftp connector
by Steven Hawkins (JIRA)
[ https://issues.jboss.org/browse/TEIID-4664?page=com.atlassian.jira.plugin... ]
Steven Hawkins resolved TEIID-4664.
-----------------------------------
Resolution: Done
merged the pull request
> Arquillian test failed due to new added ftp connector
> -----------------------------------------------------
>
> Key: TEIID-4664
> URL: https://issues.jboss.org/browse/TEIID-4664
> Project: Teiid
> Issue Type: Quality Risk
> Components: Server
> Affects Versions: 9.2
> Reporter: Kylin Soong
> Assignee: Kylin Soong
> Fix For: 9.2
>
>
> If execute arquillian test
> {code}
> mvn -Dtest=IntegrationTestDeployment clean test -P arquillian-tests
> {code}
> getDatasourceTemplateNames will failed due to new added ftp connector
> {code}
> Results :
> Failed tests:
> IntegrationTestDeployment.getDatasourceTemplateNames:415 expected:<[teiid, simpledb, teiid-xa, google, h2, salesforce, accumulo, file, ldap, cassandra, teiid-local, solr, teiid-local-xa, salesforce-34, webservice, h2-xa, mongodb]> but was:<[h2, teiid, teiid-local, teiid-local-xa, teiid-xa, h2-xa, accumulo, cassandra, file, ftp, google, ldap, mongodb, salesforce, salesforce-34, simpledb, solr, webservice]>
> Tests run: 25, Failures: 1, Errors: 0, Skipped: 1
> {code}
--
This message was sent by Atlassian JIRA
(v7.2.3#72005)
7 years, 4 months
[JBoss JIRA] (TEIID-4667) Oracle translator - parseTime throws exception if string has extra trailing characters after standard time format
by Steven Hawkins (JIRA)
[ https://issues.jboss.org/browse/TEIID-4667?page=com.atlassian.jira.plugin... ]
Steven Hawkins resolved TEIID-4667.
-----------------------------------
Fix Version/s: 9.2
Resolution: Done
I had initially added ltrim/substring to help prevent an issue with trailing characters - but there is still potentially an issue if non-space whitespace characters are used at the front of the string. Also some translators do support parseXXX, so it's not a general requirement to perform that optimization. So instead I narrowed the optimization to only do the rewrite when starting from date/time expressions.
> Oracle translator - parseTime throws exception if string has extra trailing characters after standard time format
> -----------------------------------------------------------------------------------------------------------------
>
> Key: TEIID-4667
> URL: https://issues.jboss.org/browse/TEIID-4667
> Project: Teiid
> Issue Type: Bug
> Components: Query Engine
> Affects Versions: 8.7.10.6_2
> Reporter: Juraj Duráni
> Assignee: Steven Hawkins
> Fix For: 9.2
>
>
> TEIID-4656 was meant to prevent ORA-01830 (date format picture ends before converting entire input string). However, this has not been fully fixed for parseTime function. TO_TIMESTAMP is not pushed, but Teiid uses TO_CHAR which has similar behavior for strings with extra trailing characters.
> From my test:
> {code:sql|title=Oracle data source}
> CREATE TABLE teiid4656 (id number(1) PRIMARY KEY, col varchar(23))
> INSERT INTO teiid4656 (id, col) VALUES (1, '2016-24-12 20:00:00.111')
> INSERT INTO teiid4656 (id, col) VALUES (2, '20:00:00.111 2016-24-12')
> {code}
> *Query 1:*
> {code:sql}
> SELECT CAST(PARSEDATE(col, 'yyyy-dd-MM') AS string) FROM teiid4656 WHERE id = 1
> {code}
> *Result 1 (OK):* 2016-12-24
> *Query 2:*
> {code:sql}
> SELECT CAST(PARSETIME(col, 'hh:mm:ss') AS string) FROM teiid4656 WHERE id = 2
> {code}
> *Result 2 (Exception):*
> {code:plain|title=Server log}
> 07:27:48,165 DEBUG [org.teiid.PROCESSOR] (Worker0_QueryProcessorQueue4) NHKd8fOn5GvJ.0 executing SELECT CAST(PARSETIME(col, 'hh:mm:ss') AS string) FROM teiid4656 WHERE id = 2
> 07:27:48,169 DEBUG [org.teiid.PROCESSOR] (Worker0_QueryProcessorQueue4) ProcessTree for NHKd8fOn5GvJ.0 AccessNode(0) output=[convert(convert(Source.teiid4656.col, TIME), string)] SELECT convert(convert(g_0.col, TIME), string) FROM Source.teiid4656 AS g_0 WHERE g_0.id = 2
> 07:27:48,169 DEBUG [org.teiid.TXN_LOG] (Worker0_QueryProcessorQueue4) before getOrCreateTransactionContext:org.teiid.dqp.internal.process.TransactionServerImpl@cd77a59(NHKd8fOn5GvJ)
> 07:27:48,169 DEBUG [org.teiid.TXN_LOG] (Worker0_QueryProcessorQueue4) after getOrCreateTransactionContext : NHKd8fOn5GvJ NONE ID:NONE
> 07:27:48,170 DEBUG [org.teiid.BUFFER_MGR] (Worker0_QueryProcessorQueue4) Creating TupleBuffer: 1 [convert(convert(Source.teiid4656.col, TIME), string)] [class java.lang.String] batch size 1024 of type PROCESSOR
> 07:27:48,170 DEBUG [org.teiid.CONNECTOR] (Worker0_QueryProcessorQueue4) NHKd8fOn5GvJ.0.0.1 Create State
> 07:27:48,171 DEBUG [org.teiid.PROCESSOR] (Worker1_QueryProcessorQueue5) Running task for parent thread Worker0_QueryProcessorQueue4
> 07:27:48,171 DEBUG [org.teiid.CONNECTOR] (Worker1_QueryProcessorQueue5) NHKd8fOn5GvJ.0.0.1 Processing NEW request: SELECT convert(convert(g_0.col, TIME), string) FROM Source.teiid4656 AS g_0 WHERE g_0.id = 2
> 07:27:48,172 DEBUG [org.teiid.CONNECTOR] (Worker1_QueryProcessorQueue5) NHKd8fOn5GvJ.0.0.1 Obtained execution
> 07:27:48,173 DEBUG [org.teiid.CONNECTOR] (Worker1_QueryProcessorQueue5) Source-specific command: SELECT to_char(to_date(g_0.col, 'HH24:MI:SS'), 'HH24:MI:SS') FROM teiid4656 g_0 WHERE g_0.id = 2
> 07:27:48,174 DEBUG [org.teiid.BUFFER_MGR] (Worker0_QueryProcessorQueue4) NHKd8fOn5GvJ.0.0.1 Blocking on source query NHKd8fOn5GvJ.0.0.1
> 07:27:48,174 DEBUG [org.teiid.BUFFER_MGR] (Worker0_QueryProcessorQueue4) NHKd8fOn5GvJ.0 Blocking on source request(s).
> 07:27:48,174 DEBUG [org.teiid.PROCESSOR] (Worker0_QueryProcessorQueue4) Request Thread NHKd8fOn5GvJ.0 - processor blocked
> 07:27:48,486 WARN [org.teiid.CONNECTOR] (Worker1_QueryProcessorQueue5) Connector worker process failed for atomic-request=NHKd8fOn5GvJ.0.0.1: org.teiid.translator.jdbc.JDBCExecutionException: 1830 TEIID11008:TEIID11004 Error executing statement(s): [Prepared Values: [] SQL: SELECT to_char(to_date(g_0.col, 'HH24:MI:SS'), 'HH24:MI:SS') FROM teiid4656 g_0 WHERE g_0.id = 2]
> at org.teiid.translator.jdbc.JDBCQueryExecution.execute(JDBCQueryExecution.java:131)
> at org.teiid.dqp.internal.datamgr.ConnectorWorkItem.execute(ConnectorWorkItem.java:337) [teiid-engine-8.7.11.6_2-redhat-1.jar:8.7.11.6_2-redhat-1]
> at org.teiid.dqp.internal.process.DataTierTupleSource.getResults(DataTierTupleSource.java:298) [teiid-engine-8.7.11.6_2-redhat-1.jar:8.7.11.6_2-redhat-1]
> at org.teiid.dqp.internal.process.DataTierTupleSource$1.call(DataTierTupleSource.java:110) [teiid-engine-8.7.11.6_2-redhat-1.jar:8.7.11.6_2-redhat-1]
> at org.teiid.dqp.internal.process.DataTierTupleSource$1.call(DataTierTupleSource.java:107) [teiid-engine-8.7.11.6_2-redhat-1.jar:8.7.11.6_2-redhat-1]
> at java.util.concurrent.FutureTask.run(FutureTask.java:266) [rt.jar:1.8.0-internal]
> at org.teiid.dqp.internal.process.FutureWork.run(FutureWork.java:58) [teiid-engine-8.7.11.6_2-redhat-1.jar:8.7.11.6_2-redhat-1]
> at org.teiid.dqp.internal.process.DQPWorkContext.runInContext(DQPWorkContext.java:274) [teiid-engine-8.7.11.6_2-redhat-1.jar:8.7.11.6_2-redhat-1]
> at org.teiid.dqp.internal.process.ThreadReuseExecutor$RunnableWrapper.run(ThreadReuseExecutor.java:119) [teiid-engine-8.7.11.6_2-redhat-1.jar:8.7.11.6_2-redhat-1]
> at org.teiid.dqp.internal.process.ThreadReuseExecutor$3.run(ThreadReuseExecutor.java:210) [teiid-engine-8.7.11.6_2-redhat-1.jar:8.7.11.6_2-redhat-1]
> at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) [rt.jar:1.8.0-internal]
> at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) [rt.jar:1.8.0-internal]
> at java.lang.Thread.run(Thread.java:744) [rt.jar:1.8.0-internal]
> Caused by: java.sql.SQLDataException: ORA-01830: date format picture ends before converting entire input string
> at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:450)
> at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:399)
> at oracle.jdbc.driver.T4C8Oall.processError(T4C8Oall.java:1017)
> at oracle.jdbc.driver.T4CTTIfun.receive(T4CTTIfun.java:655)
> at oracle.jdbc.driver.T4CTTIfun.doRPC(T4CTTIfun.java:249)
> at oracle.jdbc.driver.T4C8Oall.doOALL(T4C8Oall.java:566)
> at oracle.jdbc.driver.T4CPreparedStatement.doOall8(T4CPreparedStatement.java:215)
> at oracle.jdbc.driver.T4CPreparedStatement.doOall8(T4CPreparedStatement.java:58)
> at oracle.jdbc.driver.T4CPreparedStatement.executeForDescribe(T4CPreparedStatement.java:776)
> at oracle.jdbc.driver.OracleStatement.executeMaybeDescribe(OracleStatement.java:897)
> at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:1034)
> at oracle.jdbc.driver.OraclePreparedStatement.executeInternal(OraclePreparedStatement.java:3820)
> at oracle.jdbc.driver.OraclePreparedStatement.executeQuery(OraclePreparedStatement.java:3867)
> at oracle.jdbc.driver.OraclePreparedStatementWrapper.executeQuery(OraclePreparedStatementWrapper.java:1502)
> at org.jboss.jca.adapters.jdbc.WrappedPreparedStatement.executeQuery(WrappedPreparedStatement.java:462)
> at org.teiid.translator.jdbc.JDBCQueryExecution.execute(JDBCQueryExecution.java:123)
> ... 12 more
> {code}
> *Query 3:*
> {code:sql}
> SELECT CAST(PARSETIMESTAMP(col, 'yyyy-dd-MM hh:mm') AS string) FROM teiid4656 WHERE id = 1
> {code}
> *Result 3 (OK):* 2016-12-24 20:00:00.0
--
This message was sent by Atlassian JIRA
(v7.2.3#72005)
7 years, 4 months
[JBoss JIRA] (TEIID-4667) Oracle translator - parseTime throws exception if string has extra trailing characters after standard time format
by Steven Hawkins (JIRA)
[ https://issues.jboss.org/browse/TEIID-4667?page=com.atlassian.jira.plugin... ]
Steven Hawkins updated TEIID-4667:
----------------------------------
Component/s: Query Engine
> Oracle translator - parseTime throws exception if string has extra trailing characters after standard time format
> -----------------------------------------------------------------------------------------------------------------
>
> Key: TEIID-4667
> URL: https://issues.jboss.org/browse/TEIID-4667
> Project: Teiid
> Issue Type: Bug
> Components: Query Engine
> Affects Versions: 8.7.10.6_2
> Reporter: Juraj Duráni
> Assignee: Steven Hawkins
>
> TEIID-4656 was meant to prevent ORA-01830 (date format picture ends before converting entire input string). However, this has not been fully fixed for parseTime function. TO_TIMESTAMP is not pushed, but Teiid uses TO_CHAR which has similar behavior for strings with extra trailing characters.
> From my test:
> {code:sql|title=Oracle data source}
> CREATE TABLE teiid4656 (id number(1) PRIMARY KEY, col varchar(23))
> INSERT INTO teiid4656 (id, col) VALUES (1, '2016-24-12 20:00:00.111')
> INSERT INTO teiid4656 (id, col) VALUES (2, '20:00:00.111 2016-24-12')
> {code}
> *Query 1:*
> {code:sql}
> SELECT CAST(PARSEDATE(col, 'yyyy-dd-MM') AS string) FROM teiid4656 WHERE id = 1
> {code}
> *Result 1 (OK):* 2016-12-24
> *Query 2:*
> {code:sql}
> SELECT CAST(PARSETIME(col, 'hh:mm:ss') AS string) FROM teiid4656 WHERE id = 2
> {code}
> *Result 2 (Exception):*
> {code:plain|title=Server log}
> 07:27:48,165 DEBUG [org.teiid.PROCESSOR] (Worker0_QueryProcessorQueue4) NHKd8fOn5GvJ.0 executing SELECT CAST(PARSETIME(col, 'hh:mm:ss') AS string) FROM teiid4656 WHERE id = 2
> 07:27:48,169 DEBUG [org.teiid.PROCESSOR] (Worker0_QueryProcessorQueue4) ProcessTree for NHKd8fOn5GvJ.0 AccessNode(0) output=[convert(convert(Source.teiid4656.col, TIME), string)] SELECT convert(convert(g_0.col, TIME), string) FROM Source.teiid4656 AS g_0 WHERE g_0.id = 2
> 07:27:48,169 DEBUG [org.teiid.TXN_LOG] (Worker0_QueryProcessorQueue4) before getOrCreateTransactionContext:org.teiid.dqp.internal.process.TransactionServerImpl@cd77a59(NHKd8fOn5GvJ)
> 07:27:48,169 DEBUG [org.teiid.TXN_LOG] (Worker0_QueryProcessorQueue4) after getOrCreateTransactionContext : NHKd8fOn5GvJ NONE ID:NONE
> 07:27:48,170 DEBUG [org.teiid.BUFFER_MGR] (Worker0_QueryProcessorQueue4) Creating TupleBuffer: 1 [convert(convert(Source.teiid4656.col, TIME), string)] [class java.lang.String] batch size 1024 of type PROCESSOR
> 07:27:48,170 DEBUG [org.teiid.CONNECTOR] (Worker0_QueryProcessorQueue4) NHKd8fOn5GvJ.0.0.1 Create State
> 07:27:48,171 DEBUG [org.teiid.PROCESSOR] (Worker1_QueryProcessorQueue5) Running task for parent thread Worker0_QueryProcessorQueue4
> 07:27:48,171 DEBUG [org.teiid.CONNECTOR] (Worker1_QueryProcessorQueue5) NHKd8fOn5GvJ.0.0.1 Processing NEW request: SELECT convert(convert(g_0.col, TIME), string) FROM Source.teiid4656 AS g_0 WHERE g_0.id = 2
> 07:27:48,172 DEBUG [org.teiid.CONNECTOR] (Worker1_QueryProcessorQueue5) NHKd8fOn5GvJ.0.0.1 Obtained execution
> 07:27:48,173 DEBUG [org.teiid.CONNECTOR] (Worker1_QueryProcessorQueue5) Source-specific command: SELECT to_char(to_date(g_0.col, 'HH24:MI:SS'), 'HH24:MI:SS') FROM teiid4656 g_0 WHERE g_0.id = 2
> 07:27:48,174 DEBUG [org.teiid.BUFFER_MGR] (Worker0_QueryProcessorQueue4) NHKd8fOn5GvJ.0.0.1 Blocking on source query NHKd8fOn5GvJ.0.0.1
> 07:27:48,174 DEBUG [org.teiid.BUFFER_MGR] (Worker0_QueryProcessorQueue4) NHKd8fOn5GvJ.0 Blocking on source request(s).
> 07:27:48,174 DEBUG [org.teiid.PROCESSOR] (Worker0_QueryProcessorQueue4) Request Thread NHKd8fOn5GvJ.0 - processor blocked
> 07:27:48,486 WARN [org.teiid.CONNECTOR] (Worker1_QueryProcessorQueue5) Connector worker process failed for atomic-request=NHKd8fOn5GvJ.0.0.1: org.teiid.translator.jdbc.JDBCExecutionException: 1830 TEIID11008:TEIID11004 Error executing statement(s): [Prepared Values: [] SQL: SELECT to_char(to_date(g_0.col, 'HH24:MI:SS'), 'HH24:MI:SS') FROM teiid4656 g_0 WHERE g_0.id = 2]
> at org.teiid.translator.jdbc.JDBCQueryExecution.execute(JDBCQueryExecution.java:131)
> at org.teiid.dqp.internal.datamgr.ConnectorWorkItem.execute(ConnectorWorkItem.java:337) [teiid-engine-8.7.11.6_2-redhat-1.jar:8.7.11.6_2-redhat-1]
> at org.teiid.dqp.internal.process.DataTierTupleSource.getResults(DataTierTupleSource.java:298) [teiid-engine-8.7.11.6_2-redhat-1.jar:8.7.11.6_2-redhat-1]
> at org.teiid.dqp.internal.process.DataTierTupleSource$1.call(DataTierTupleSource.java:110) [teiid-engine-8.7.11.6_2-redhat-1.jar:8.7.11.6_2-redhat-1]
> at org.teiid.dqp.internal.process.DataTierTupleSource$1.call(DataTierTupleSource.java:107) [teiid-engine-8.7.11.6_2-redhat-1.jar:8.7.11.6_2-redhat-1]
> at java.util.concurrent.FutureTask.run(FutureTask.java:266) [rt.jar:1.8.0-internal]
> at org.teiid.dqp.internal.process.FutureWork.run(FutureWork.java:58) [teiid-engine-8.7.11.6_2-redhat-1.jar:8.7.11.6_2-redhat-1]
> at org.teiid.dqp.internal.process.DQPWorkContext.runInContext(DQPWorkContext.java:274) [teiid-engine-8.7.11.6_2-redhat-1.jar:8.7.11.6_2-redhat-1]
> at org.teiid.dqp.internal.process.ThreadReuseExecutor$RunnableWrapper.run(ThreadReuseExecutor.java:119) [teiid-engine-8.7.11.6_2-redhat-1.jar:8.7.11.6_2-redhat-1]
> at org.teiid.dqp.internal.process.ThreadReuseExecutor$3.run(ThreadReuseExecutor.java:210) [teiid-engine-8.7.11.6_2-redhat-1.jar:8.7.11.6_2-redhat-1]
> at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) [rt.jar:1.8.0-internal]
> at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) [rt.jar:1.8.0-internal]
> at java.lang.Thread.run(Thread.java:744) [rt.jar:1.8.0-internal]
> Caused by: java.sql.SQLDataException: ORA-01830: date format picture ends before converting entire input string
> at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:450)
> at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:399)
> at oracle.jdbc.driver.T4C8Oall.processError(T4C8Oall.java:1017)
> at oracle.jdbc.driver.T4CTTIfun.receive(T4CTTIfun.java:655)
> at oracle.jdbc.driver.T4CTTIfun.doRPC(T4CTTIfun.java:249)
> at oracle.jdbc.driver.T4C8Oall.doOALL(T4C8Oall.java:566)
> at oracle.jdbc.driver.T4CPreparedStatement.doOall8(T4CPreparedStatement.java:215)
> at oracle.jdbc.driver.T4CPreparedStatement.doOall8(T4CPreparedStatement.java:58)
> at oracle.jdbc.driver.T4CPreparedStatement.executeForDescribe(T4CPreparedStatement.java:776)
> at oracle.jdbc.driver.OracleStatement.executeMaybeDescribe(OracleStatement.java:897)
> at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:1034)
> at oracle.jdbc.driver.OraclePreparedStatement.executeInternal(OraclePreparedStatement.java:3820)
> at oracle.jdbc.driver.OraclePreparedStatement.executeQuery(OraclePreparedStatement.java:3867)
> at oracle.jdbc.driver.OraclePreparedStatementWrapper.executeQuery(OraclePreparedStatementWrapper.java:1502)
> at org.jboss.jca.adapters.jdbc.WrappedPreparedStatement.executeQuery(WrappedPreparedStatement.java:462)
> at org.teiid.translator.jdbc.JDBCQueryExecution.execute(JDBCQueryExecution.java:123)
> ... 12 more
> {code}
> *Query 3:*
> {code:sql}
> SELECT CAST(PARSETIMESTAMP(col, 'yyyy-dd-MM hh:mm') AS string) FROM teiid4656 WHERE id = 1
> {code}
> *Result 3 (OK):* 2016-12-24 20:00:00.0
--
This message was sent by Atlassian JIRA
(v7.2.3#72005)
7 years, 4 months
[JBoss JIRA] (TEIID-4649) SybaseIQ translator: different order of arguments in CONVERT function
by Steven Hawkins (JIRA)
[ https://issues.jboss.org/browse/TEIID-4649?page=com.atlassian.jira.plugin... ]
Steven Hawkins resolved TEIID-4649.
-----------------------------------
Fix Version/s: 9.1.2
Resolution: Done
There were two issues here. The first is that the resolver was inserting unnecessary conversions for the char/string comparison. The other was that the sybase iq execution factory did not register the convert modifier. That was corrected and the conversion logic was expanded based upon the sybase translator and the sybase iq docs.
> SybaseIQ translator: different order of arguments in CONVERT function
> ---------------------------------------------------------------------
>
> Key: TEIID-4649
> URL: https://issues.jboss.org/browse/TEIID-4649
> Project: Teiid
> Issue Type: Bug
> Components: JDBC Connector
> Affects Versions: 8.12.8.6_3
> Reporter: Jan Stastny
> Assignee: Steven Hawkins
> Priority: Critical
> Fix For: 9.1.2, 9.2
>
>
> Teiid can't push directly CONVERT function via SybaseIQ translator. Sybase/SAP IQ has different order of arguments than Teiid has. See [SAP IQ CONVERT docs|http://help.sap.com/saphelp_iq1611_iqrefbb/helpdata/en/a5/3f6efb84f2...]
> Important to mention is the fact, that CONVERT function is apart from a direct call in user's query also incorporated into resulting source queries by the translator. That will cause issues in lots of queries that need for example implicit conversion to be done.
> For query:
> {code:sql}
> SELECT BQT1.SmallA.IntKey FROM BQT1.SmallA WHERE BQT1.SmallA.CharValue >= '0' AND BQT1.SmallA.CharValue < '1' ORDER BY IntKey
> {code}
> this gets pushed:
> {code:sql}
> [SELECT g_0."intkey" AS c_0 FROM "bqt-server"."dvqe"."SmallA" AS g_0 WHERE convert(g_0."charvalue", string) >= '0' AND convert(g_0."charvalue", string) < '1' ORDER BY c_0]
> {code}
> Error in log:
> {code}
> 08:05:32,921 WARN [org.teiid.CONNECTOR] (Worker1_QueryProcessorQueue13) Connector worker process failed for atomic-request=PYp5BTTPF3pK.6.0.0: org.teiid.translator.jdbc.JDBCExecutionException: 102 TEIID11008:TEIID11004 Error executing statement(s): [Prepared Values: [] SQL: SELECT TOP 100 g_0."intkey" AS c_0 FROM "bqt-server"."dvqe"."SmallA" AS g_0 WHERE convert(g_0."charvalue", string) >= '0' AND convert(g_0."charvalue", string) < '1' ORDER BY c_0]
> at org.teiid.translator.jdbc.JDBCQueryExecution.execute(JDBCQueryExecution.java:131) [translator-jdbc-8.12.8.6_3-redhat-1.jar:8.12.8.6_3-redhat-1]
> at org.teiid.dqp.internal.datamgr.ConnectorWorkItem.execute(ConnectorWorkItem.java:366)
> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) [rt.jar:1.7.0_71]
> at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) [rt.jar:1.7.0_71]
> at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) [rt.jar:1.7.0_71]
> at java.lang.reflect.Method.invoke(Method.java:606) [rt.jar:1.7.0_71]
> at org.teiid.dqp.internal.datamgr.ConnectorManager$1.invoke(ConnectorManager.java:211)
> at com.sun.proxy.$Proxy80.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:262) [rt.jar:1.7.0_71]
> at org.teiid.dqp.internal.process.FutureWork.run(FutureWork.java:65)
> at org.teiid.dqp.internal.process.DQPWorkContext.runInContext(DQPWorkContext.java:280)
> 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_71]
> at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) [rt.jar:1.7.0_71]
> at java.lang.Thread.run(Thread.java:745) [rt.jar:1.7.0_71]
> Caused by: com.sybase.jdbc4.jdbc.SybSQLException: SQL Anywhere Error -131: Syntax error near 'g_0.charvalue' on line 1
> at com.sybase.jdbc4.tds.Tds.a(Unknown Source)
> at com.sybase.jdbc4.tds.Tds.nextResult(Unknown Source)
> at com.sybase.jdbc4.tds.Tds.getResultSetResult(Unknown Source)
> at com.sybase.jdbc4.tds.TdsCursor.open(Unknown Source)
> at com.sybase.jdbc4.jdbc.SybStatement.executeQuery(Unknown Source)
> at com.sybase.jdbc4.jdbc.SybPreparedStatement.executeQuery(Unknown Source)
> 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.8.6_3-redhat-1.jar:8.12.8.6_3-redhat-1]
> ... 18 more
> {code}
--
This message was sent by Atlassian JIRA
(v7.2.3#72005)
7 years, 4 months