[JBoss JIRA] (TEIID-4694) PrestoDB translator - NULL values not supported in SemiJoin
by Juraj Duráni (JIRA)
[ https://issues.jboss.org/browse/TEIID-4694?page=com.atlassian.jira.plugin... ]
Juraj Duráni updated TEIID-4694:
--------------------------------
Summary: PrestoDB translator - NULL values not supported in SemiJoin (was: PrestoDB tranlator - NULL values not supported in SemiJoin)
> 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: Steven Hawkins
>
> 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)
9 years, 2 months
[JBoss JIRA] (TEIID-4694) PrestoDB tranlator - NULL values not supported in SemiJoin
by Juraj Duráni (JIRA)
Juraj Duráni created TEIID-4694:
-----------------------------------
Summary: PrestoDB tranlator - 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: Steven Hawkins
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)
9 years, 2 months
[JBoss JIRA] (TEIID-4693) mysql "booleans" translation issues
by Marco Ardito (JIRA)
Marco Ardito created TEIID-4693:
-----------------------------------
Summary: mysql "booleans" translation issues
Key: TEIID-4693
URL: https://issues.jboss.org/browse/TEIID-4693
Project: Teiid
Issue Type: Bug
Affects Versions: 9.x
Reporter: Marco Ardito
Assignee: Steven Hawkins
Fields defined as tinyint(1) in MySQL are reported as a bit type in JDBC, which is then mappeed in Teiid to boolean. However tinyint(1) does not behave as you would expect with bit. (see forum reference below for more details) at least, for instance, when it contains 0 as false and -1 as true (typical by vb/msaccess usage)
--
This message was sent by Atlassian JIRA
(v7.2.3#72005)
9 years, 2 months
[JBoss JIRA] (TEIID-4691) Consider replacing JGroups based custom replication with native
by Steven Hawkins (JIRA)
[ https://issues.jboss.org/browse/TEIID-4691?page=com.atlassian.jira.plugin... ]
Steven Hawkins commented on TEIID-4691:
---------------------------------------
It used to be that the message still needed a serialization buffer to hold the entire message before writing. Presumably there needs to be some higher level streaming support as well.
> Consider replacing JGroups based custom replication with native
> ---------------------------------------------------------------
>
> Key: TEIID-4691
> URL: https://issues.jboss.org/browse/TEIID-4691
> Project: Teiid
> Issue Type: Enhancement
> Components: Server
> Reporter: Ramesh Reddy
> Fix For: 10.0
>
>
> JGroups is responsible for node to node communication. JGroups FRAG2 chunks up the messages that are sizeable by flow control. If you use TCP it will automatically break up the messages into the MTU. Using Jumbo Frames would be recommended.
> Note that this will affect how we do the materialization replication among nodes currently.
--
This message was sent by Atlassian JIRA
(v7.2.3#72005)
9 years, 2 months
[JBoss JIRA] (TEIID-4617) Olap translator: Mondrian ClassNotFoundException moving from v 3.5.0 to 3.12.0
by Steven Hawkins (JIRA)
[ https://issues.jboss.org/browse/TEIID-4617?page=com.atlassian.jira.plugin... ]
Steven Hawkins resolved TEIID-4617.
-----------------------------------
Fix Version/s: (was: 9.2)
Resolution: Deferred
Added a doc note and given the lack of interest from the other communities. Deferring any additional work until this is a customer issue.
> Olap translator: Mondrian ClassNotFoundException moving from v 3.5.0 to 3.12.0
> ------------------------------------------------------------------------------
>
> Key: TEIID-4617
> URL: https://issues.jboss.org/browse/TEIID-4617
> Project: Teiid
> Issue Type: Bug
> Components: Misc. Connectors
> Affects Versions: 8.12.8.6_3
> Reporter: Jan Stastny
> Assignee: Steven Hawkins
> Attachments: Screenshot from 2016-12-05 07-49-16.png, mondrian.zip, olap4j.zip
>
>
> Change of version of Mondrian from 3.5.0 to 3.12.0 causes class not found exception.
> {code:plain}
> 07:44:03,800 WARN [org.teiid.CONNECTOR] (Worker1_QueryProcessorQueue10) Connector worker process failed for atomic-request=NFuIrbxSPuIu.0.3.3: org.teiid.translator.TranslatorException: javax.resource.ResourceException: IJ000453: Unable to get managed connection for java:/mondrianDS
> at org.teiid.translator.olap.OlapExecutionFactory.getConnection(OlapExecutionFactory.java:87) [translator-olap-8.12.8.6_3-redhat-1.jar:8.12.8.6_3-redhat-1]
> at org.teiid.translator.olap.OlapExecutionFactory.getConnection(OlapExecutionFactory.java:45) [translator-olap-8.12.8.6_3-redhat-1.jar:8.12.8.6_3-redhat-1]
> at org.teiid.translator.ExecutionFactory.getConnection(ExecutionFactory.java:202) [teiid-api-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:330)
> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) [rt.jar:1.8.0_102]
> at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) [rt.jar:1.8.0_102]
> at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) [rt.jar:1.8.0_102]
> at java.lang.reflect.Method.invoke(Method.java:498) [rt.jar:1.8.0_102]
> at org.teiid.dqp.internal.datamgr.ConnectorManager$1.invoke(ConnectorManager.java:211)
> at com.sun.proxy.$Proxy81.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_102]
> 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:1142) [rt.jar:1.8.0_102]
> at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) [rt.jar:1.8.0_102]
> at java.lang.Thread.run(Thread.java:745) [rt.jar:1.8.0_102]
> Caused by: java.sql.SQLException: javax.resource.ResourceException: IJ000453: Unable to get managed connection for java:/mondrianDS
> at org.jboss.jca.adapters.jdbc.WrapperDataSource.getConnection(WrapperDataSource.java:151)
> at org.jboss.as.connector.subsystems.datasources.WildFlyDataSource.getConnection(WildFlyDataSource.java:69)
> at org.teiid.translator.olap.OlapExecutionFactory.getConnection(OlapExecutionFactory.java:85) [translator-olap-8.12.8.6_3-redhat-1.jar:8.12.8.6_3-redhat-1]
> ... 20 more
> Caused by: javax.resource.ResourceException: IJ000453: Unable to get managed connection for java:/mondrianDS
> at org.jboss.jca.core.connectionmanager.AbstractConnectionManager.getManagedConnection(AbstractConnectionManager.java:410)
> at org.jboss.jca.core.connectionmanager.tx.TxConnectionManagerImpl.getManagedConnection(TxConnectionManagerImpl.java:367)
> at org.jboss.jca.core.connectionmanager.AbstractConnectionManager.allocateConnection(AbstractConnectionManager.java:499)
> at org.jboss.jca.adapters.jdbc.WrapperDataSource.getConnection(WrapperDataSource.java:143)
> ... 22 more
> Caused by: javax.resource.ResourceException: IJ000658: Unexpected throwable while trying to create a connection: null
> at org.jboss.jca.core.connectionmanager.pool.mcp.SemaphoreArrayListManagedConnectionPool.getConnection(SemaphoreArrayListManagedConnectionPool.java:454)
> at org.jboss.jca.core.connectionmanager.pool.AbstractPool.getSimpleConnection(AbstractPool.java:457)
> at org.jboss.jca.core.connectionmanager.pool.AbstractPool.getConnection(AbstractPool.java:429)
> at org.jboss.jca.core.connectionmanager.AbstractConnectionManager.getManagedConnection(AbstractConnectionManager.java:344)
> ... 25 more
> Caused by: javax.resource.ResourceException: Could not create connection
> at org.jboss.jca.adapters.jdbc.local.LocalManagedConnectionFactory.getLocalManagedConnection(LocalManagedConnectionFactory.java:351)
> at org.jboss.jca.adapters.jdbc.local.LocalManagedConnectionFactory.createManagedConnection(LocalManagedConnectionFactory.java:299)
> at org.jboss.jca.core.connectionmanager.pool.mcp.SemaphoreArrayListManagedConnectionPool.createConnectionEventListener(SemaphoreArrayListManagedConnectionPool.java:858)
> at org.jboss.jca.core.connectionmanager.pool.mcp.SemaphoreArrayListManagedConnectionPool.getConnection(SemaphoreArrayListManagedConnectionPool.java:413)
> ... 28 more
> Caused by: java.lang.RuntimeException: java.lang.ClassNotFoundException: mondrian.spi.impl.JndiDataSourceResolver from [Module "org.jboss.teiid.translator.olap:main" from local module loader @16f65612 (finder: local module finder @311d617d (roots: /home/jstastny/tmp-workspaces/workspace/modules,/home/jstastny/tmp-workspaces/workspace/modules/system/layers/dv,/home/jstastny/tmp-workspaces/workspace/modules/system/layers/base/.overlays/layer-base-jboss-eap-6.4.9.CP,/home/jstastny/tmp-workspaces/workspace/modules/system/layers/base))]
> at mondrian.util.ClassResolver$AbstractClassResolver.instantiateSafe(ClassResolver.java:84)
> at mondrian.rolap.RolapConnection.getDataSourceResolver(RolapConnection.java:471)
> at mondrian.rolap.RolapConnection.createDataSource(RolapConnection.java:427)
> at mondrian.rolap.RolapConnection.<init>(RolapConnection.java:135)
> at mondrian.rolap.RolapConnection.<init>(RolapConnection.java:91)
> at mondrian.olap.DriverManager.getConnection(DriverManager.java:113)
> at mondrian.olap.DriverManager.getConnection(DriverManager.java:69)
> at mondrian.olap4j.MondrianOlap4jConnection.<init>(MondrianOlap4jConnection.java:162)
> at mondrian.olap4j.FactoryJdbc4Plus$AbstractConnection.<init>(FactoryJdbc4Plus.java:323)
> at mondrian.olap4j.FactoryJdbc41Impl$MondrianOlap4jConnectionJdbc41.<init>(FactoryJdbc41Impl.java:118)
> at mondrian.olap4j.FactoryJdbc41Impl.newConnection(FactoryJdbc41Impl.java:32)
> at mondrian.olap4j.MondrianOlap4jDriver.connect(MondrianOlap4jDriver.java:97)
> at org.jboss.jca.adapters.jdbc.local.LocalManagedConnectionFactory.getLocalManagedConnection(LocalManagedConnectionFactory.java:323)
> ... 31 more
> Caused by: java.lang.ClassNotFoundException: mondrian.spi.impl.JndiDataSourceResolver from [Module "org.jboss.teiid.translator.olap:main" from local module loader @16f65612 (finder: local module finder @311d617d (roots: /home/jstastny/tmp-workspaces/workspace/modules,/home/jstastny/tmp-workspaces/workspace/modules/system/layers/dv,/home/jstastny/tmp-workspaces/workspace/modules/system/layers/base/.overlays/layer-base-jboss-eap-6.4.9.CP,/home/jstastny/tmp-workspaces/workspace/modules/system/layers/base))]
> at org.jboss.modules.ModuleClassLoader.findClass(ModuleClassLoader.java:213) [jboss-modules.jar:1.3.7.Final-redhat-1]
> at org.jboss.modules.ConcurrentClassLoader.performLoadClassUnchecked(ConcurrentClassLoader.java:459) [jboss-modules.jar:1.3.7.Final-redhat-1]
> at org.jboss.modules.ConcurrentClassLoader.performLoadClassChecked(ConcurrentClassLoader.java:408) [jboss-modules.jar:1.3.7.Final-redhat-1]
> at org.jboss.modules.ConcurrentClassLoader.performLoadClass(ConcurrentClassLoader.java:389) [jboss-modules.jar:1.3.7.Final-redhat-1]
> at org.jboss.modules.ConcurrentClassLoader.loadClass(ConcurrentClassLoader.java:134) [jboss-modules.jar:1.3.7.Final-redhat-1]
> at java.lang.Class.forName0(Native Method) [rt.jar:1.8.0_102]
> at java.lang.Class.forName(Class.java:348) [rt.jar:1.8.0_102]
> at mondrian.util.ClassResolver$AbstractClassResolver.forName(ClassResolver.java:92)
> at mondrian.util.ClassResolver$AbstractClassResolver.instantiateSafe(ClassResolver.java:63)
> ... 43 more
> {code}
> But the class is present in the new version of Mondrian too, see attached screenshot with decompiled jar structure.
> One workaround I found was to add dependency into olap translator's module.xml pointing at the org.mondrian module, which contains the mondrian jar.
> But this action is not required when using Mondrian 3.5.0.
--
This message was sent by Atlassian JIRA
(v7.2.3#72005)
9 years, 2 months
[JBoss JIRA] (TEIID-4691) Consider replacing JGroups based custom replication with native
by Ramesh Reddy (JIRA)
Ramesh Reddy created TEIID-4691:
-----------------------------------
Summary: Consider replacing JGroups based custom replication with native
Key: TEIID-4691
URL: https://issues.jboss.org/browse/TEIID-4691
Project: Teiid
Issue Type: Enhancement
Components: Server
Reporter: Ramesh Reddy
Fix For: 10.0
JGroups is responsible for node to node communication. JGroups FRAG2 chunks up the messages that are sizeable by flow control. If you use TCP it will automatically break up the messages into the MTU. Using Jumbo Frames would be recommended.
Note that this will affect how we do the materialization replication among nodes currently.
--
This message was sent by Atlassian JIRA
(v7.2.3#72005)
9 years, 2 months
[JBoss JIRA] (TEIID-4633) Odata $expand over Oracle tables generates bad query
by Steven Hawkins (JIRA)
[ https://issues.jboss.org/browse/TEIID-4633?page=com.atlassian.jira.plugin... ]
Work on TEIID-4633 started by Steven Hawkins.
---------------------------------------------
> Odata $expand over Oracle tables generates bad query
> ----------------------------------------------------
>
> Key: TEIID-4633
> URL: https://issues.jboss.org/browse/TEIID-4633
> Project: Teiid
> Issue Type: Bug
> Components: JDBC Connector, OData
> Affects Versions: 9.1.1
> Reporter: Sergio Samayoa
> Assignee: Steven Hawkins
> Priority: Critical
> Fix For: 9.2
>
>
> Query generated to obtain referenced records ($expand many to one) is generated with parentheses,
> Generated query for Oracle*:
> SELECT g_0."CATEGORY_ID", (g_0."CATEGORY_ID", g_0."NAME", g_0."LAST_UPDATE") FROM "SAKILA"."CATEGORY" g_0
> Generated query for MySQL is:
> SELECT g_0.category_id, g_0.name, g_0.last_update FROM Sakila.category AS g_0
> * Note the parentheses enclosing all columns but PK, this raises "ORA-00907: missing right parenthesis".
--
This message was sent by Atlassian JIRA
(v7.2.3#72005)
9 years, 2 months