[JBoss JIRA] (TEIID-4682) PrestoDB translator - cannot use temp tables - PrestoDB could not commit transaction
by Kylin Soong (JIRA)
[ https://issues.jboss.org/browse/TEIID-4682?page=com.atlassian.jira.plugin... ]
Kylin Soong commented on TEIID-4682:
------------------------------------
Juraj, Does this related with source? could you confirm this issue are occurred regularly? in other words, every time execute
{code}
INSERT INTO #t SELECT IntKey FROM Bqt1.Smalla
{code}
the transaction rollback warn log will through?
We may need some comments from Ramesh or Steven, from my knowledge create local temp table implicitly are more like query engine issue, rather than translator layer.
> PrestoDB translator - cannot use temp tables - PrestoDB could not commit transaction
> ------------------------------------------------------------------------------------
>
> Key: TEIID-4682
> URL: https://issues.jboss.org/browse/TEIID-4682
> Project: Teiid
> Issue Type: Bug
> Components: Misc. Connectors
> Affects Versions: 8.12.8.6_3
> Reporter: Juraj Duráni
> Assignee: Kylin Soong
> Fix For: 9.2.1
>
>
> Teiid cannot properly insert data into temp table from PrestoDB tables. Teiid seems to try commit transaction on PrestoDB connection which is in auto-commit mode. Data are pulled from the PrestoDB, but operation fails on closing the processor.
> Query \[1\], log \[2\].
> {code:sql|title=\[1\]}
> INSERT INTO #t SELECT IntKey FROM Bqt1.Smalla
> {code}
> {code:plain|title=\[2\]}
> 4:29:14,758 DEBUG [org.teiid.TRANSPORT] (New I/O worker #3) processing message:MessageHolder: key=248 contents=Invoke interface org.teiid.client.DQP.executeRequest
> 14:29:14,763 DEBUG [org.teiid.PROCESSOR] (Worker26_QueryProcessorQueue135) Request Thread A7WqBzZhsyYM.47 with state NEW
> 14:29:14,763 DEBUG [org.teiid.PROCESSOR] (Worker26_QueryProcessorQueue135) A7WqBzZhsyYM.47 Command has no cache hint and result set cache mode is not on.
> 14:29:14,763 DEBUG [org.teiid.PROCESSOR] (Worker26_QueryProcessorQueue135) A7WqBzZhsyYM.47 executing INSERT INTO #t SELECT IntKey FROM Bqt1.Smalla
> 14:29:14,768 DEBUG [org.teiid.PROCESSOR] (Worker26_QueryProcessorQueue135) ProcessTree for A7WqBzZhsyYM.47 ProjectIntoNode(0) output=[Count] #t
> AccessNode(1) output=[IntKey] SELECT g_0.IntKey FROM Source.SmallA AS g_0
> 14:29:14,768 DEBUG [org.teiid.TXN_LOG] (Worker26_QueryProcessorQueue135) before getOrCreateTransactionContext:org.teiid.dqp.internal.process.TransactionServerImpl@168af7b8(A7WqBzZhsyYM)
> 14:29:14,769 DEBUG [org.teiid.TXN_LOG] (Worker26_QueryProcessorQueue135) after getOrCreateTransactionContext : A7WqBzZhsyYM NONE ID:NONE
> 14:29:14,769 DEBUG [org.teiid.TXN_LOG] (Worker26_QueryProcessorQueue135) before begin:org.teiid.dqp.internal.process.TransactionServerImpl@168af7b8(A7WqBzZhsyYM NONE ID:NONE)
> 14:29:14,769 DEBUG [org.teiid.TXN_LOG] (Worker26_QueryProcessorQueue135) after begin : null
> 14:29:14,769 DEBUG [org.teiid.BUFFER_MGR] (Worker26_QueryProcessorQueue135) Creating TupleBuffer: 71 [Count] [class java.lang.Integer] batch size 2048 of type PROCESSOR
> 14:29:14,769 DEBUG [org.teiid.TXN_LOG] (Worker26_QueryProcessorQueue135) before resume:org.teiid.dqp.internal.process.TransactionServerImpl@168af7b8(A7WqBzZhsyYM REQUEST ID:TransactionImple < ac, BasicAction: 0:ffff0a2804a3:-d43e932:586f78d7:23a status: ActionStatus.RUNNING >)
> 14:29:14,769 DEBUG [org.teiid.TXN_LOG] (Worker26_QueryProcessorQueue135) after resume : null
> 14:29:14,769 DEBUG [org.teiid.CONNECTOR] (Worker26_QueryProcessorQueue135) A7WqBzZhsyYM.47.1.31 Create State
> 14:29:14,770 DEBUG [org.teiid.CONNECTOR] (Worker26_QueryProcessorQueue135) A7WqBzZhsyYM.47.1.31 Processing NEW request: SELECT g_0.IntKey FROM Source.SmallA AS g_0
> 14:29:15,290 DEBUG [org.teiid.CONNECTOR] (Worker26_QueryProcessorQueue135) A7WqBzZhsyYM.47.1.31 Obtained execution
> 14:29:15,290 DEBUG [org.teiid.CONNECTOR] (Worker26_QueryProcessorQueue135) Source-specific command: SELECT g_0.intkey FROM smalla AS g_0
> 14:29:15,613 DEBUG [org.teiid.CONNECTOR] (Worker26_QueryProcessorQueue135) A7WqBzZhsyYM.47.1.31 Executed command
> 14:29:15,614 DEBUG [org.teiid.CONNECTOR] (Worker26_QueryProcessorQueue135) A7WqBzZhsyYM.47.1.31 Processing MORE request
> 14:29:15,614 DEBUG [org.teiid.CONNECTOR] (Worker26_QueryProcessorQueue135) A7WqBzZhsyYM.47.1.31 Getting results from connector
> 14:29:15,772 DEBUG [org.teiid.CONNECTOR] (Worker26_QueryProcessorQueue135) A7WqBzZhsyYM.47.1.31 Obtained last batch, total row count: 50
> 14:29:15,772 DEBUG [org.teiid.CONNECTOR] (Worker26_QueryProcessorQueue135) A7WqBzZhsyYM.47.1.31 Remove State
> 14:29:15,772 DEBUG [org.teiid.CONNECTOR] (Worker26_QueryProcessorQueue135) A7WqBzZhsyYM.47.1.31 Processing Close : SELECT g_0.IntKey FROM Source.SmallA AS g_0
> 14:29:15,773 DEBUG [org.teiid.CONNECTOR] (Worker26_QueryProcessorQueue135) A7WqBzZhsyYM.47.1.31 Closed execution
> 14:29:15,773 DEBUG [org.teiid.CONNECTOR] (Worker26_QueryProcessorQueue135) A7WqBzZhsyYM.47.1.31 Closed connection
> 14:29:15,773 DEBUG [org.teiid.BUFFER_MGR] (Worker26_QueryProcessorQueue135) Creating TupleBuffer: 72 [#t.IntKey] [class java.lang.Integer] batch size 2048 of type PROCESSOR
> 14:29:15,773 DEBUG [org.teiid.PROCESSOR] (Worker26_QueryProcessorQueue135) Creating temporary table #t
> 14:29:15,774 DEBUG [org.teiid.BUFFER_MGR] (Worker26_QueryProcessorQueue135) Creating STree: 73
> 14:29:15,774 DEBUG [org.teiid.BUFFER_MGR] (Worker26_QueryProcessorQueue135) Creating TupleBuffer: 75 [rowId, #t.IntKey] [class java.lang.Integer, class java.lang.Integer] batch size 2048 of type PROCESSOR
> 14:29:15,774 DEBUG [org.teiid.BUFFER_MGR] (Worker26_QueryProcessorQueue135) Removing TupleBuffer: 72
> 14:29:15,774 DEBUG [org.teiid.BUFFER_MGR] (Worker26_QueryProcessorQueue135) Removing TupleBuffer: 75
> 14:29:15,775 DEBUG [org.teiid.PROCESSOR] (Worker26_QueryProcessorQueue135) QueryProcessor: closing processor
> 14:29:15,775 DEBUG [org.teiid.PROCESSOR] (Worker26_QueryProcessorQueue135) A7WqBzZhsyYM.47 Finished Processing
> 14:29:15,775 DEBUG [org.teiid.TXN_LOG] (Worker26_QueryProcessorQueue135) before commit:org.teiid.dqp.internal.process.TransactionServerImpl@168af7b8(A7WqBzZhsyYM REQUEST ID:TransactionImple < ac, BasicAction: 0:ffff0a2804a3:-d43e932:586f78d7:23a status: ActionStatus.RUNNING >)
> 14:29:15,775 WARN [com.arjuna.ats.jta] (Worker26_QueryProcessorQueue135) ARJUNA016039: onePhaseCommit on < formatId=131077, gtrid_length=29, bqual_length=36, tx_uid=0:ffff0a2804a3:-d43e932:586f78d7:23a, node_name=1, branch_uid=0:ffff0a2804a3:-d43e932:586f78d7:23d, subordinatenodename=null, eis_name=java:/PrestoDB > (LocalXAResourceImpl@1e4cfe92[connectionListener=1a737904 connectionManager=4bd5154a warned=false currentXid=null productName=Presto productVersion=0.161 jndiName=java:/PrestoDB]) failed with exception XAException.XA_RBROLLBACK: org.jboss.jca.core.spi.transaction.local.LocalXAException: IJ001156: Could not commit local transaction
> at org.jboss.jca.core.tx.jbossts.LocalXAResourceImpl.commit(LocalXAResourceImpl.java:176) [ironjacamar-core-impl-1.0.37.Final-redhat-1.jar:1.0.37.Final-redhat-1]
> at com.arjuna.ats.internal.jta.resources.arjunacore.XAOnePhaseResource.commit(XAOnePhaseResource.java:120)
> at com.arjuna.ats.internal.arjuna.abstractrecords.LastResourceRecord.topLevelPrepare(LastResourceRecord.java:152)
> at com.arjuna.ats.arjuna.coordinator.AbstractRecord.topLevelOnePhaseCommit(AbstractRecord.java:423)
> at com.arjuna.ats.arjuna.coordinator.BasicAction.onePhaseCommit(BasicAction.java:2287)
> at com.arjuna.ats.arjuna.coordinator.BasicAction.End(BasicAction.java:1488)
> at com.arjuna.ats.arjuna.coordinator.TwoPhaseCoordinator.end(TwoPhaseCoordinator.java:98)
> at com.arjuna.ats.arjuna.AtomicAction.commit(AtomicAction.java:162)
> at com.arjuna.ats.internal.jta.transaction.arjunacore.TransactionImple.commitAndDisassociate(TransactionImple.java:1211)
> at com.arjuna.ats.internal.jta.transaction.arjunacore.BaseTransaction.commit(BaseTransaction.java:126)
> at com.arjuna.ats.jbossatx.BaseTransactionManagerDelegate.commit(BaseTransactionManagerDelegate.java:75)
> at org.teiid.dqp.internal.process.TransactionServerImpl.commitDirect(TransactionServerImpl.java:411) [teiid-engine-8.12.5.redhat-8.jar:8.12.5.redhat-8]
> at org.teiid.dqp.internal.process.TransactionServerImpl.commit(TransactionServerImpl.java:542) [teiid-engine-8.12.5.redhat-8.jar:8.12.5.redhat-8]
> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) [rt.jar:1.8.0_92]
> at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) [rt.jar:1.8.0_92]
> at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) [rt.jar:1.8.0_92]
> at java.lang.reflect.Method.invoke(Method.java:498) [rt.jar:1.8.0_92]
> at org.teiid.logging.LogManager$LoggingProxy.invoke(LogManager.java:121) [teiid-api-8.12.5.redhat-8.jar:8.12.5.redhat-8]
> at com.sun.proxy.$Proxy19.commit(Unknown Source)
> at org.teiid.dqp.internal.process.RequestWorkItem.processMore(RequestWorkItem.java:494) [teiid-engine-8.12.5.redhat-8.jar:8.12.5.redhat-8]
> at org.teiid.dqp.internal.process.RequestWorkItem.process(RequestWorkItem.java:348) [teiid-engine-8.12.5.redhat-8.jar:8.12.5.redhat-8]
> at org.teiid.dqp.internal.process.AbstractWorkItem.run(AbstractWorkItem.java:51) [teiid-engine-8.12.5.redhat-8.jar:8.12.5.redhat-8]
> at org.teiid.dqp.internal.process.RequestWorkItem.run(RequestWorkItem.java:274) [teiid-engine-8.12.5.redhat-8.jar:8.12.5.redhat-8]
> at org.teiid.dqp.internal.process.DQPWorkContext.runInContext(DQPWorkContext.java:276) [teiid-engine-8.12.5.redhat-8.jar:8.12.5.redhat-8]
> at org.teiid.dqp.internal.process.ThreadReuseExecutor$RunnableWrapper.run(ThreadReuseExecutor.java:119) [teiid-engine-8.12.5.redhat-8.jar:8.12.5.redhat-8]
> at org.teiid.dqp.internal.process.ThreadReuseExecutor$3.run(ThreadReuseExecutor.java:210) [teiid-engine-8.12.5.redhat-8.jar:8.12.5.redhat-8]
> at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) [rt.jar:1.8.0_92]
> at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) [rt.jar:1.8.0_92]
> at java.lang.Thread.run(Thread.java:745) [rt.jar:1.8.0_92]
> Caused by: javax.resource.ResourceException: SQLException
> at org.jboss.jca.adapters.jdbc.BaseWrapperManagedConnection.checkException(BaseWrapperManagedConnection.java:1198)
> at org.jboss.jca.adapters.jdbc.local.LocalManagedConnection.commit(LocalManagedConnection.java:107)
> at org.jboss.jca.core.tx.jbossts.LocalXAResourceImpl.commit(LocalXAResourceImpl.java:171) [ironjacamar-core-impl-1.0.37.Final-redhat-1.jar:1.0.37.Final-redhat-1]
> ... 28 more
> Caused by: java.sql.SQLException: Connection is in auto-commit mode
> at com.facebook.presto.jdbc.PrestoConnection.commit(PrestoConnection.java:144)
> at org.jboss.jca.adapters.jdbc.local.LocalManagedConnection.commit(LocalManagedConnection.java:96)
> ... 29 more
> 14:29:15,780 DEBUG [org.teiid.PROCESSOR] (Worker26_QueryProcessorQueue135) Rolling back txn TransactionImple < ac, BasicAction: 0:ffff0a2804a3:-d43e932:586f78d7:23a status: ActionStatus.RUNNING > restoring [] using rollback tables {}
> 14:29:15,780 WARN [org.teiid.PROCESSOR] (Worker26_QueryProcessorQueue135) TEIID30020 Processing exception for request A7WqBzZhsyYM.47 'TEIID30530 javax.transaction.RollbackException: ARJUNA016053: Could not commit transaction.'. Originally XATransactionException TransactionImple.java:1223.: org.teiid.client.xa.XATransactionException: TEIID30530 javax.transaction.RollbackException: ARJUNA016053: Could not commit transaction.
> at org.teiid.dqp.internal.process.TransactionServerImpl.commitDirect(TransactionServerImpl.java:415) [teiid-engine-8.12.5.redhat-8.jar:8.12.5.redhat-8]
> at org.teiid.dqp.internal.process.TransactionServerImpl.commit(TransactionServerImpl.java:542) [teiid-engine-8.12.5.redhat-8.jar:8.12.5.redhat-8]
> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) [rt.jar:1.8.0_92]
> at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) [rt.jar:1.8.0_92]
> at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) [rt.jar:1.8.0_92]
> at java.lang.reflect.Method.invoke(Method.java:498) [rt.jar:1.8.0_92]
> at org.teiid.logging.LogManager$LoggingProxy.invoke(LogManager.java:121) [teiid-api-8.12.5.redhat-8.jar:8.12.5.redhat-8]
> at com.sun.proxy.$Proxy19.commit(Unknown Source)
> at org.teiid.dqp.internal.process.RequestWorkItem.processMore(RequestWorkItem.java:494) [teiid-engine-8.12.5.redhat-8.jar:8.12.5.redhat-8]
> at org.teiid.dqp.internal.process.RequestWorkItem.process(RequestWorkItem.java:348) [teiid-engine-8.12.5.redhat-8.jar:8.12.5.redhat-8]
> at org.teiid.dqp.internal.process.AbstractWorkItem.run(AbstractWorkItem.java:51) [teiid-engine-8.12.5.redhat-8.jar:8.12.5.redhat-8]
> at org.teiid.dqp.internal.process.RequestWorkItem.run(RequestWorkItem.java:274) [teiid-engine-8.12.5.redhat-8.jar:8.12.5.redhat-8]
> at org.teiid.dqp.internal.process.DQPWorkContext.runInContext(DQPWorkContext.java:276) [teiid-engine-8.12.5.redhat-8.jar:8.12.5.redhat-8]
> at org.teiid.dqp.internal.process.ThreadReuseExecutor$RunnableWrapper.run(ThreadReuseExecutor.java:119) [teiid-engine-8.12.5.redhat-8.jar:8.12.5.redhat-8]
> at org.teiid.dqp.internal.process.ThreadReuseExecutor$3.run(ThreadReuseExecutor.java:210) [teiid-engine-8.12.5.redhat-8.jar:8.12.5.redhat-8]
> at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) [rt.jar:1.8.0_92]
> at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) [rt.jar:1.8.0_92]
> at java.lang.Thread.run(Thread.java:745) [rt.jar:1.8.0_92]
> Caused by: javax.transaction.RollbackException: ARJUNA016053: Could not commit transaction.
> at com.arjuna.ats.internal.jta.transaction.arjunacore.TransactionImple.commitAndDisassociate(TransactionImple.java:1223)
> at com.arjuna.ats.internal.jta.transaction.arjunacore.BaseTransaction.commit(BaseTransaction.java:126)
> at com.arjuna.ats.jbossatx.BaseTransactionManagerDelegate.commit(BaseTransactionManagerDelegate.java:75)
> at org.teiid.dqp.internal.process.TransactionServerImpl.commitDirect(TransactionServerImpl.java:411) [teiid-engine-8.12.5.redhat-8.jar:8.12.5.redhat-8]
> ... 17 more
> 14:29:15,781 DEBUG [org.teiid.PROCESSOR] (Worker26_QueryProcessorQueue135) Removing tuplesource for the request A7WqBzZhsyYM.47
> 14:29:15,781 DEBUG [org.teiid.BUFFER_MGR] (Worker26_QueryProcessorQueue135) Removing TupleBuffer: 71
> 14:29:15,781 DEBUG [org.teiid.PROCESSOR] (Worker26_QueryProcessorQueue135) org.teiid.client.xa.XATransactionException: TEIID30530 javax.transaction.RollbackException: ARJUNA016053: Could not commit transaction. Sending error to client A7WqBzZhsyYM.47
> 14:29:15,782 DEBUG [org.teiid.TRANSPORT] (Worker26_QueryProcessorQueue135) send message: MessageHolder: key=248 contents=ResultsMessage rowCount=0 finalRow=-1
> {code}
--
This message was sent by Atlassian JIRA
(v7.2.3#72005)
7 years, 5 months
[JBoss JIRA] (TEIID-4694) PrestoDB translator - NULL values not supported in SemiJoin
by Kylin Soong (JIRA)
[ https://issues.jboss.org/browse/TEIID-4694?page=com.atlassian.jira.plugin... ]
Kylin Soong resolved TEIID-4694.
--------------------------------
Resolution: Done
I add a document (https://github.com/teiid/teiid-documents/pull/91) to resolve this issue, feel free to edit the document, or reopen the issue
> PrestoDB translator - NULL values not supported in SemiJoin
> -----------------------------------------------------------
>
> Key: TEIID-4694
> URL: https://issues.jboss.org/browse/TEIID-4694
> Project: Teiid
> Issue Type: Bug
> Components: Query Engine
> Affects Versions: 8.12.8.6_3
> Reporter: Juraj Duráni
> Assignee: Kylin Soong
> Fix For: 9.2.1
>
>
> PrestoDB does not allows NULL values in SemiJoin operator. It means, that query like \[1\] causes an exception \[2\]. However, this is disallowed in version 0.162 but worked in 0.161. According to GitHub issues \[3\], this will be fixed in one of the future versions of PrestoDB. Do we want to handle it somehow?
> Development and release frequency of PrestoDB seems to be pretty fast (new release every 2 or 3 week).
> {code:sql|title=\[1\] Query}
> SELECT IntKey, ShortValue FROM BQT1.SmallA WHERE BQT1.SmallA.ShortValue IN (SELECT ShortValue FROM BQT1.SmallB)
> {code}
> {code:plain|title=\[2\] Exception}
> org.teiid.jdbc.TeiidSQLException: TEIID30504 Remote org.teiid.core.TeiidProcessingException: TEIID30504 Source: Unexpected exception while translating results: Query failed (#20170110_072908_00117_gftb8): NULL values are not allowed on the probe side of SemiJoin operator. See the query plan for details.
> at org.teiid.jdbc.TeiidSQLException.create(TeiidSQLException.java:135)
> ...
> Caused by: java.lang.RuntimeException: Remote com.facebook.presto.jdbc.internal.client.FailureInfo$FailureException: NULL values are not allowed on the probe side of SemiJoin operator. See the query plan for details.
> at com.facebook.presto.operator.HashSemiJoinOperator.addInput(HashSemiJoinOperator.java:179)
> at com.facebook.presto.operator.Driver.processInternal(Driver.java:384)
> at com.facebook.presto.operator.Driver.processFor(Driver.java:301)
> at com.facebook.presto.execution.SqlTaskExecution$DriverSplitRunner.processFor(SqlTaskExecution.java:622)
> at com.facebook.presto.execution.TaskExecutor$PrioritizedSplitRunner.process(TaskExecutor.java:534)
> at com.facebook.presto.execution.TaskExecutor$Runner.run(TaskExecutor.java:670)
> ... 3 more
> {code}
> \[3\] https://github.com/prestodb/presto/issues/6991
--
This message was sent by Atlassian JIRA
(v7.2.3#72005)
7 years, 5 months
[JBoss JIRA] (TEIID-4694) PrestoDB translator - NULL values not supported in SemiJoin
by Kylin Soong (JIRA)
[ https://issues.jboss.org/browse/TEIID-4694?page=com.atlassian.jira.plugin... ]
Kylin Soong edited comment on TEIID-4694 at 1/17/17 12:35 AM:
--------------------------------------------------------------
I also think we don't need do more work, leave a document to notify the users of the risk that some version of prestodb not support null as valid values in subquery.
Also from document [1]
{code}
The IN predicate determines if any values produced by the subquery are equal to the provided expression. The result of IN follows the standard rules for nulls. The subquery must produce exactly one column:
SELECT name
FROM nation
WHERE regionkey IN (SELECT regionkey FROM region)
{code}
Note that the 0.163 documents don't refer any about subquery return can not be null.
[1] https://prestodb.io/docs/current/sql/select.html
was (Author: kylin):
I also think we don't need do more work, leave a document to notify the users of the risk that some version of prestodb not support null as valid values in subquery.
Also from document [1]
{note}
The IN predicate determines if any values produced by the subquery are equal to the provided expression. The result of IN follows the standard rules for nulls. The subquery must produce exactly one column:
SELECT name
FROM nation
WHERE regionkey IN (SELECT regionkey FROM region)
{note}
Note that the 0.163 documents don't refer any about subquery return can not be null.
[1] https://prestodb.io/docs/current/sql/select.html
> PrestoDB translator - NULL values not supported in SemiJoin
> -----------------------------------------------------------
>
> Key: TEIID-4694
> URL: https://issues.jboss.org/browse/TEIID-4694
> Project: Teiid
> Issue Type: Bug
> Components: Query Engine
> Affects Versions: 8.12.8.6_3
> Reporter: Juraj Duráni
> Assignee: Kylin Soong
> Fix For: 9.2.1
>
>
> PrestoDB does not allows NULL values in SemiJoin operator. It means, that query like \[1\] causes an exception \[2\]. However, this is disallowed in version 0.162 but worked in 0.161. According to GitHub issues \[3\], this will be fixed in one of the future versions of PrestoDB. Do we want to handle it somehow?
> Development and release frequency of PrestoDB seems to be pretty fast (new release every 2 or 3 week).
> {code:sql|title=\[1\] Query}
> SELECT IntKey, ShortValue FROM BQT1.SmallA WHERE BQT1.SmallA.ShortValue IN (SELECT ShortValue FROM BQT1.SmallB)
> {code}
> {code:plain|title=\[2\] Exception}
> org.teiid.jdbc.TeiidSQLException: TEIID30504 Remote org.teiid.core.TeiidProcessingException: TEIID30504 Source: Unexpected exception while translating results: Query failed (#20170110_072908_00117_gftb8): NULL values are not allowed on the probe side of SemiJoin operator. See the query plan for details.
> at org.teiid.jdbc.TeiidSQLException.create(TeiidSQLException.java:135)
> ...
> Caused by: java.lang.RuntimeException: Remote com.facebook.presto.jdbc.internal.client.FailureInfo$FailureException: NULL values are not allowed on the probe side of SemiJoin operator. See the query plan for details.
> at com.facebook.presto.operator.HashSemiJoinOperator.addInput(HashSemiJoinOperator.java:179)
> at com.facebook.presto.operator.Driver.processInternal(Driver.java:384)
> at com.facebook.presto.operator.Driver.processFor(Driver.java:301)
> at com.facebook.presto.execution.SqlTaskExecution$DriverSplitRunner.processFor(SqlTaskExecution.java:622)
> at com.facebook.presto.execution.TaskExecutor$PrioritizedSplitRunner.process(TaskExecutor.java:534)
> at com.facebook.presto.execution.TaskExecutor$Runner.run(TaskExecutor.java:670)
> ... 3 more
> {code}
> \[3\] https://github.com/prestodb/presto/issues/6991
--
This message was sent by Atlassian JIRA
(v7.2.3#72005)
7 years, 5 months
[JBoss JIRA] (TEIID-4694) PrestoDB translator - NULL values not supported in SemiJoin
by Kylin Soong (JIRA)
[ https://issues.jboss.org/browse/TEIID-4694?page=com.atlassian.jira.plugin... ]
Kylin Soong edited comment on TEIID-4694 at 1/17/17 12:30 AM:
--------------------------------------------------------------
I also think we don't need do more work, leave a document to notify the users of the risk that some version of prestodb not support null as valid values in subquery.
Also from document [1]
{note}
The IN predicate determines if any values produced by the subquery are equal to the provided expression. The result of IN follows the standard rules for nulls. The subquery must produce exactly one column:
SELECT name
FROM nation
WHERE regionkey IN (SELECT regionkey FROM region)
{note}
Note that the 0.163 documents don't refer any about subquery return can not be null.
[1] https://prestodb.io/docs/current/sql/select.html
was (Author: kylin):
I also think we don't need do more work, leave a document to notify the users of the risk that some version of prestodb not support null as valid values in subquery.
> PrestoDB translator - NULL values not supported in SemiJoin
> -----------------------------------------------------------
>
> Key: TEIID-4694
> URL: https://issues.jboss.org/browse/TEIID-4694
> Project: Teiid
> Issue Type: Bug
> Components: Query Engine
> Affects Versions: 8.12.8.6_3
> Reporter: Juraj Duráni
> Assignee: Kylin Soong
> Fix For: 9.2.1
>
>
> PrestoDB does not allows NULL values in SemiJoin operator. It means, that query like \[1\] causes an exception \[2\]. However, this is disallowed in version 0.162 but worked in 0.161. According to GitHub issues \[3\], this will be fixed in one of the future versions of PrestoDB. Do we want to handle it somehow?
> Development and release frequency of PrestoDB seems to be pretty fast (new release every 2 or 3 week).
> {code:sql|title=\[1\] Query}
> SELECT IntKey, ShortValue FROM BQT1.SmallA WHERE BQT1.SmallA.ShortValue IN (SELECT ShortValue FROM BQT1.SmallB)
> {code}
> {code:plain|title=\[2\] Exception}
> org.teiid.jdbc.TeiidSQLException: TEIID30504 Remote org.teiid.core.TeiidProcessingException: TEIID30504 Source: Unexpected exception while translating results: Query failed (#20170110_072908_00117_gftb8): NULL values are not allowed on the probe side of SemiJoin operator. See the query plan for details.
> at org.teiid.jdbc.TeiidSQLException.create(TeiidSQLException.java:135)
> ...
> Caused by: java.lang.RuntimeException: Remote com.facebook.presto.jdbc.internal.client.FailureInfo$FailureException: NULL values are not allowed on the probe side of SemiJoin operator. See the query plan for details.
> at com.facebook.presto.operator.HashSemiJoinOperator.addInput(HashSemiJoinOperator.java:179)
> at com.facebook.presto.operator.Driver.processInternal(Driver.java:384)
> at com.facebook.presto.operator.Driver.processFor(Driver.java:301)
> at com.facebook.presto.execution.SqlTaskExecution$DriverSplitRunner.processFor(SqlTaskExecution.java:622)
> at com.facebook.presto.execution.TaskExecutor$PrioritizedSplitRunner.process(TaskExecutor.java:534)
> at com.facebook.presto.execution.TaskExecutor$Runner.run(TaskExecutor.java:670)
> ... 3 more
> {code}
> \[3\] https://github.com/prestodb/presto/issues/6991
--
This message was sent by Atlassian JIRA
(v7.2.3#72005)
7 years, 5 months
[JBoss JIRA] (TEIID-4694) PrestoDB translator - NULL values not supported in SemiJoin
by Kylin Soong (JIRA)
[ https://issues.jboss.org/browse/TEIID-4694?page=com.atlassian.jira.plugin... ]
Kylin Soong commented on TEIID-4694:
------------------------------------
I also think we don't need do more work, leave a document to notify the users of the risk that some version of prestodb not support null as valid values in subquery.
> PrestoDB translator - NULL values not supported in SemiJoin
> -----------------------------------------------------------
>
> Key: TEIID-4694
> URL: https://issues.jboss.org/browse/TEIID-4694
> Project: Teiid
> Issue Type: Bug
> Components: Query Engine
> Affects Versions: 8.12.8.6_3
> Reporter: Juraj Duráni
> Assignee: Kylin Soong
> Fix For: 9.2.1
>
>
> PrestoDB does not allows NULL values in SemiJoin operator. It means, that query like \[1\] causes an exception \[2\]. However, this is disallowed in version 0.162 but worked in 0.161. According to GitHub issues \[3\], this will be fixed in one of the future versions of PrestoDB. Do we want to handle it somehow?
> Development and release frequency of PrestoDB seems to be pretty fast (new release every 2 or 3 week).
> {code:sql|title=\[1\] Query}
> SELECT IntKey, ShortValue FROM BQT1.SmallA WHERE BQT1.SmallA.ShortValue IN (SELECT ShortValue FROM BQT1.SmallB)
> {code}
> {code:plain|title=\[2\] Exception}
> org.teiid.jdbc.TeiidSQLException: TEIID30504 Remote org.teiid.core.TeiidProcessingException: TEIID30504 Source: Unexpected exception while translating results: Query failed (#20170110_072908_00117_gftb8): NULL values are not allowed on the probe side of SemiJoin operator. See the query plan for details.
> at org.teiid.jdbc.TeiidSQLException.create(TeiidSQLException.java:135)
> ...
> Caused by: java.lang.RuntimeException: Remote com.facebook.presto.jdbc.internal.client.FailureInfo$FailureException: NULL values are not allowed on the probe side of SemiJoin operator. See the query plan for details.
> at com.facebook.presto.operator.HashSemiJoinOperator.addInput(HashSemiJoinOperator.java:179)
> at com.facebook.presto.operator.Driver.processInternal(Driver.java:384)
> at com.facebook.presto.operator.Driver.processFor(Driver.java:301)
> at com.facebook.presto.execution.SqlTaskExecution$DriverSplitRunner.processFor(SqlTaskExecution.java:622)
> at com.facebook.presto.execution.TaskExecutor$PrioritizedSplitRunner.process(TaskExecutor.java:534)
> at com.facebook.presto.execution.TaskExecutor$Runner.run(TaskExecutor.java:670)
> ... 3 more
> {code}
> \[3\] https://github.com/prestodb/presto/issues/6991
--
This message was sent by Atlassian JIRA
(v7.2.3#72005)
7 years, 5 months