[JBoss JIRA] (TEIID-4736) JDG resource adapter does not reconnect properly when JDG as mat cache is restarted
by Johnathon Lee (JIRA)
[ https://issues.jboss.org/browse/TEIID-4736?page=com.atlassian.jira.plugin... ]
Johnathon Lee updated TEIID-4736:
---------------------------------
Fix Version/s: 8.12.10.6_3
(was: 8.12.9.6_3)
> JDG resource adapter does not reconnect properly when JDG as mat cache is restarted
> -----------------------------------------------------------------------------------
>
> Key: TEIID-4736
> URL: https://issues.jboss.org/browse/TEIID-4736
> Project: Teiid
> Issue Type: Sub-task
> Components: JDG Connector
> Affects Versions: 8.12.x, 9.0.1
> Reporter: William DeCoste
> Assignee: Van Halbert
> Fix For: 9.3, 8.12.10.6_3
>
>
> After JDG restart, JDV cannot recover:
> Executing using the TeiidDriver
> org.teiid.jdbc.TeiidSQLException: TEIID30504 Remote org.teiid.core.TeiidProcessingException: TEIID30504 PersonMatSource1: Program Error: Cache Name is null
> at org.teiid.jdbc.TeiidSQLException.create(TeiidSQLException.java:135)
> at org.teiid.jdbc.TeiidSQLException.create(TeiidSQLException.java:71)
> at org.teiid.jdbc.StatementImpl.postReceiveResults(StatementImpl.java:721)
> at org.teiid.jdbc.StatementImpl.access$100(StatementImpl.java:64)
> at org.teiid.jdbc.StatementImpl$2.onCompletion(StatementImpl.java:560)
> at org.teiid.client.util.ResultsFuture.done(ResultsFuture.java:135)
> at org.teiid.client.util.ResultsFuture.access$200(ResultsFuture.java:40)
> at org.teiid.client.util.ResultsFuture$1.receiveResults(ResultsFuture.java:79)
> at org.teiid.net.socket.SocketServerInstanceImpl.receivedMessage(SocketServerInstanceImpl.java:268)
> at org.teiid.net.socket.SocketServerInstanceImpl.read(SocketServerInstanceImpl.java:306)
> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
> at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
> at java.lang.reflect.Method.invoke(Method.java:498)
> at org.teiid.net.socket.SocketServerConnectionFactory$ShutdownHandler.invoke(SocketServerConnectionFactory.java:98)
> at com.sun.proxy.$Proxy24.read(Unknown Source)
> at org.teiid.net.socket.SocketServerInstanceImpl$RemoteInvocationHandler$1.get(SocketServerInstanceImpl.java:405)
> at org.teiid.jdbc.StatementImpl.executeSql(StatementImpl.java:569)
> at org.teiid.jdbc.StatementImpl.execute(StatementImpl.java:1063)
> at org.teiid.jdbc.StatementImpl.execute(StatementImpl.java:338)
> at JDBCClient.execute(JDBCClient.java:93)
> at JDBCClient.main(JDBCClient.java:48)
> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
> at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
> at java.lang.reflect.Method.invoke(Method.java:498)
> at org.codehaus.mojo.exec.ExecJavaMojo$1.run(ExecJavaMojo.java:293)
> at java.lang.Thread.run(Thread.java:745)
> Caused by: org.teiid.core.TeiidProcessingException: TEIID30504 Remote org.teiid.core.TeiidProcessingException: TEIID30504 PersonMatSource1: Program Error: Cache Name is null
> at org.teiid.dqp.internal.process.DataTierTupleSource.exceptionOccurred(DataTierTupleSource.java:401)
> at org.teiid.dqp.internal.process.DataTierTupleSource.nextTuple(DataTierTupleSource.java:161)
> at org.teiid.query.processor.relational.AccessNode.nextBatchDirect(AccessNode.java:391)
> at org.teiid.query.processor.relational.RelationalNode.nextBatch(RelationalNode.java:282)
> at org.teiid.query.processor.relational.RelationalPlan.nextBatch(RelationalPlan.java:145)
> at org.teiid.query.processor.QueryProcessor.nextBatchDirect(QueryProcessor.java:151)
> at org.teiid.query.processor.QueryProcessor.nextBatch(QueryProcessor.java:114)
> at org.teiid.query.processor.BatchCollector.collectTuples(BatchCollector.java:164)
> at org.teiid.query.processor.BatchCollector.collectTuples(BatchCollector.java:146)
> at org.teiid.dqp.internal.process.RequestWorkItem.processMore(RequestWorkItem.java:472)
> at org.teiid.dqp.internal.process.RequestWorkItem.process(RequestWorkItem.java:348)
> at org.teiid.dqp.internal.process.AbstractWorkItem.run(AbstractWorkItem.java:51)
> at org.teiid.dqp.internal.process.RequestWorkItem.run(RequestWorkItem.java:274)
> 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)
> at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
> ... 1 more
> Caused by: org.teiid.core.TeiidException: Remote org.teiid.translator.TranslatorException: Program Error: Cache Name is null
> at org.teiid.dqp.internal.datamgr.ConnectorWorkItem.handleError(ConnectorWorkItem.java:310)
> at org.teiid.dqp.internal.datamgr.ConnectorWorkItem.execute(ConnectorWorkItem.java:369)
> at sun.reflect.GeneratedMethodAccessor103.invoke(Unknown Source)
> at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
> at java.lang.reflect.Method.invoke(Method.java:498)
> at org.teiid.dqp.internal.datamgr.ConnectorManager$1.invoke(ConnectorManager.java:211)
> at com.sun.proxy.$Proxy113.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)
> at org.teiid.dqp.internal.process.FutureWork.run(FutureWork.java:65)
> ... 6 more
> Caused by: java.lang.Error: Remote java.lang.AssertionError: Program Error: Cache Name is null
> at org.teiid.core.util.Assertion.failed(Assertion.java:73)
> at org.teiid.core.util.Assertion.isNotNull(Assertion.java:100)
> at org.teiid.resource.adapter.infinispan.dsl.InfinispanManagedConnectionFactory.getCache(InfinispanManagedConnectionFactory.java:173)
> at org.teiid.resource.adapter.infinispan.dsl.InfinispanConnectionImpl.getCache(InfinispanConnectionImpl.java:251)
> at org.teiid.resource.adapter.infinispan.dsl.InfinispanConnectionImpl.getQueryFactory(InfinispanConnectionImpl.java:140)
> at org.teiid.resource.adapter.infinispan.dsl.DSLSearch.getQueryBuilder(DSLSearch.java:205)
> at org.teiid.resource.adapter.infinispan.dsl.DSLSearch.performSearch(DSLSearch.java:156)
> at org.teiid.resource.adapter.infinispan.dsl.DSLSearch.performSearch(DSLSearch.java:143)
> at org.teiid.translator.object.ObjectExecution.execute(ObjectExecution.java:261)
> at org.teiid.dqp.internal.datamgr.ConnectorWorkItem.execute(ConnectorWorkItem.java:366)
> ... 16 more
> -----------------------------------
> Executing using the TeiidDataSource
> org.teiid.jdbc.TeiidSQLException: TEIID30504 Remote org.teiid.core.TeiidProcessingException: TEIID30504 PersonMatSource1: Program Error: Cache Name is null
> at org.teiid.jdbc.TeiidSQLException.create(TeiidSQLException.java:135)
> at org.teiid.jdbc.TeiidSQLException.create(TeiidSQLException.java:71)
> at org.teiid.jdbc.StatementImpl.postReceiveResults(StatementImpl.java:721)
> at org.teiid.jdbc.StatementImpl.access$100(StatementImpl.java:64)
> at org.teiid.jdbc.StatementImpl$2.onCompletion(StatementImpl.java:560)
> at org.teiid.client.util.ResultsFuture.done(ResultsFuture.java:135)
> at org.teiid.client.util.ResultsFuture.access$200(ResultsFuture.java:40)
> at org.teiid.client.util.ResultsFuture$1.receiveResults(ResultsFuture.java:79)
> at org.teiid.net.socket.SocketServerInstanceImpl.receivedMessage(SocketServerInstanceImpl.java:268)
> at org.teiid.net.socket.SocketServerInstanceImpl.read(SocketServerInstanceImpl.java:306)
> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
> at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
> at java.lang.reflect.Method.invoke(Method.java:498)
> at org.teiid.net.socket.SocketServerConnectionFactory$ShutdownHandler.invoke(SocketServerConnectionFactory.java:98)
> at com.sun.proxy.$Proxy24.read(Unknown Source)
> at org.teiid.net.socket.SocketServerInstanceImpl$RemoteInvocationHandler$1.get(SocketServerInstanceImpl.java:405)
> at org.teiid.jdbc.StatementImpl.executeSql(StatementImpl.java:569)
> at org.teiid.jdbc.StatementImpl.execute(StatementImpl.java:1063)
> at org.teiid.jdbc.StatementImpl.execute(StatementImpl.java:338)
> at JDBCClient.execute(JDBCClient.java:93)
> at JDBCClient.main(JDBCClient.java:55)
> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
> at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
> at java.lang.reflect.Method.invoke(Method.java:498)
> at org.codehaus.mojo.exec.ExecJavaMojo$1.run(ExecJavaMojo.java:293)
> at java.lang.Thread.run(Thread.java:745)
> Caused by: org.teiid.core.TeiidProcessingException: TEIID30504 Remote org.teiid.core.TeiidProcessingException: TEIID30504 PersonMatSource1: Program Error: Cache Name is null
> at org.teiid.dqp.internal.process.DataTierTupleSource.exceptionOccurred(DataTierTupleSource.java:401)
> at org.teiid.dqp.internal.process.DataTierTupleSource.nextTuple(DataTierTupleSource.java:161)
> at org.teiid.query.processor.relational.AccessNode.nextBatchDirect(AccessNode.java:391)
> at org.teiid.query.processor.relational.RelationalNode.nextBatch(RelationalNode.java:282)
> at org.teiid.query.processor.relational.RelationalPlan.nextBatch(RelationalPlan.java:145)
> at org.teiid.query.processor.QueryProcessor.nextBatchDirect(QueryProcessor.java:151)
> at org.teiid.query.processor.QueryProcessor.nextBatch(QueryProcessor.java:114)
> at org.teiid.query.processor.BatchCollector.collectTuples(BatchCollector.java:164)
> at org.teiid.query.processor.BatchCollector.collectTuples(BatchCollector.java:146)
> at org.teiid.dqp.internal.process.RequestWorkItem.processMore(RequestWorkItem.java:472)
> at org.teiid.dqp.internal.process.RequestWorkItem.process(RequestWorkItem.java:348)
> at org.teiid.dqp.internal.process.AbstractWorkItem.run(AbstractWorkItem.java:51)
> at org.teiid.dqp.internal.process.RequestWorkItem.run(RequestWorkItem.java:274)
> 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)
> at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
> ... 1 more
> Caused by: org.teiid.core.TeiidException: Remote org.teiid.translator.TranslatorException: Program Error: Cache Name is null
> at org.teiid.dqp.internal.datamgr.ConnectorWorkItem.handleError(ConnectorWorkItem.java:310)
> at org.teiid.dqp.internal.datamgr.ConnectorWorkItem.execute(ConnectorWorkItem.java:369)
> at sun.reflect.GeneratedMethodAccessor103.invoke(Unknown Source)
> at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
> at java.lang.reflect.Method.invoke(Method.java:498)
> at org.teiid.dqp.internal.datamgr.ConnectorManager$1.invoke(ConnectorManager.java:211)
> at com.sun.proxy.$Proxy113.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)
> at org.teiid.dqp.internal.process.FutureWork.run(FutureWork.java:65)
> ... 6 more
> Caused by: java.lang.Error: Remote java.lang.AssertionError: Program Error: Cache Name is null
> at org.teiid.core.util.Assertion.failed(Assertion.java:73)
> at org.teiid.core.util.Assertion.isNotNull(Assertion.java:100)
> at org.teiid.resource.adapter.infinispan.dsl.InfinispanManagedConnectionFactory.getCache(InfinispanManagedConnectionFactory.java:173)
> at org.teiid.resource.adapter.infinispan.dsl.InfinispanConnectionImpl.getCache(InfinispanConnectionImpl.java:251)
> at org.teiid.resource.adapter.infinispan.dsl.InfinispanConnectionImpl.getQueryFactory(InfinispanConnectionImpl.java:140)
> at org.teiid.resource.adapter.infinispan.dsl.DSLSearch.getQueryBuilder(DSLSearch.java:205)
> at org.teiid.resource.adapter.infinispan.dsl.DSLSearch.performSearch(DSLSearch.java:156)
> at org.teiid.resource.adapter.infinispan.dsl.DSLSearch.performSearch(DSLSearch.java:143)
> at org.teiid.translator.object.ObjectExecution.execute(ObjectExecution.java:261)
> at org.teiid.dqp.internal.datamgr.ConnectorWorkItem.execute(ConnectorWorkItem.java:366)
> ... 16 more
--
This message was sent by Atlassian JIRA
(v7.2.3#72005)
9 years
[JBoss JIRA] (TEIID-4845) Google translator comparison with boolean value matches all rows
by Steven Hawkins (JIRA)
[ https://issues.jboss.org/browse/TEIID-4845?page=com.atlassian.jira.plugin... ]
Steven Hawkins resolved TEIID-4845.
-----------------------------------
Resolution: Done
Changed the visitor to use the direct literal instead of the string literal value.
> Google translator comparison with boolean value matches all rows
> ----------------------------------------------------------------
>
> Key: TEIID-4845
> URL: https://issues.jboss.org/browse/TEIID-4845
> Project: Teiid
> Issue Type: Bug
> Components: Misc. Connectors
> Affects Versions: 8.12.10.6_3
> Reporter: Lucie Fabrikova
> Assignee: Steven Hawkins
> Fix For: 9.3, 9.2.2
>
>
> Both following queries match and remove all rows (ie. with both true/false/null values):
> DELETE WHERE BooleanValue
> DELETE WHERE NOT BooleanValue
> Where column in foreign table is:
> booleanvalue boolean OPTIONS (NATIVE_TYPE 'BOOLEAN')
> and view:
> BooleanValue boolean
--
This message was sent by Atlassian JIRA
(v7.2.3#72005)
9 years
[JBoss JIRA] (TEIID-4833) Oracle JDBC Connector: Support for LISTAGG
by Steven Hawkins (JIRA)
[ https://issues.jboss.org/browse/TEIID-4833?page=com.atlassian.jira.plugin... ]
Steven Hawkins edited comment on TEIID-4833 at 4/3/17 4:25 PM:
---------------------------------------------------------------
LISTAGG since it returns an oracle varchar2 is not quite a replacement for stringagg, which returns a clob. Listagg has explicit overflow handling in the event that 4000 bytes are exceeded.
As a quick solution I'll expose a listagg aggregate from the oracle translator. It will use a more standard syntax though:
listagg (val, delim order by ...)
And the translator will handle adding the within group syntax.
was (Author: shawkins):
LISTAGG since it returns an oracle varchar2 is not quite a replacement for stringagg, which returns a clob. Listagg has explicit overflow handling in the event that 4000 bytes are exceeded.
As a quick solution I'll expose a listagg aggregate from the oracle translator. It will use a more standard syntax though:
listagg (val, delim) order by ...
And the translator will handle adding the within group syntax.
> Oracle JDBC Connector: Support for LISTAGG
> ------------------------------------------
>
> Key: TEIID-4833
> URL: https://issues.jboss.org/browse/TEIID-4833
> Project: Teiid
> Issue Type: Feature Request
> Components: JDBC Connector
> Reporter: John Rodrigues
> Assignee: Steven Hawkins
>
> Add support for the Oracle LISTAGG function to the Teiid Oracle connector.
> Refer to this discussion for context: [OracleConnector LISTAGG function|https://developer.jboss.org/message/970282]
--
This message was sent by Atlassian JIRA
(v7.2.3#72005)
9 years
[JBoss JIRA] (TEIID-4833) Oracle JDBC Connector: Support for LISTAGG
by Steven Hawkins (JIRA)
[ https://issues.jboss.org/browse/TEIID-4833?page=com.atlassian.jira.plugin... ]
Steven Hawkins commented on TEIID-4833:
---------------------------------------
LISTAGG since it returns an oracle varchar2 is not quite a replacement for stringagg, which returns a clob. Listagg has explicit overflow handling in the event that 4000 bytes are exceeded.
As a quick solution I'll expose a listagg aggregate from the oracle translator. It will use a more standard syntax though:
listagg (val, delim) order by ...
And the translator will handle adding the within group syntax.
> Oracle JDBC Connector: Support for LISTAGG
> ------------------------------------------
>
> Key: TEIID-4833
> URL: https://issues.jboss.org/browse/TEIID-4833
> Project: Teiid
> Issue Type: Feature Request
> Components: JDBC Connector
> Reporter: John Rodrigues
> Assignee: Steven Hawkins
>
> Add support for the Oracle LISTAGG function to the Teiid Oracle connector.
> Refer to this discussion for context: [OracleConnector LISTAGG function|https://developer.jboss.org/message/970282]
--
This message was sent by Atlassian JIRA
(v7.2.3#72005)
9 years
[JBoss JIRA] (TEIID-4844) Google translator unexpected behavior for comparison with time
by Steven Hawkins (JIRA)
[ https://issues.jboss.org/browse/TEIID-4844?page=com.atlassian.jira.plugin... ]
Steven Hawkins resolved TEIID-4844.
-----------------------------------
Fix Version/s: 9.3
9.2.2
Resolution: Done
Resolved by throwing an exception if a time/timestamp literal is used in an update/delete. This is not an optimal solution, but it will prevent unintended results.
> Google translator unexpected behavior for comparison with time
> --------------------------------------------------------------
>
> Key: TEIID-4844
> URL: https://issues.jboss.org/browse/TEIID-4844
> Project: Teiid
> Issue Type: Bug
> Affects Versions: 8.12.10.6_3
> Reporter: Lucie Fabrikova
> Assignee: Steven Hawkins
> Fix For: 9.3, 9.2.2
>
>
> Comparison operators <, <=, >, >=, =, <> work unexpectedly for 'time' datatype, foreign table has column 'timevalue time OPTIONS (NATIVE_TYPE 'TIMEOFDAY')'.
> I created view with column 'TimeValue time', inserted data in format '10:57:23'.
> I run queries like 'DELETE FROM smalla WHERE TimeValue < {t '10:57:23'}'
> * <, <>, <= deletes all rows, including rows that should be left
> * >, >=, = deletes no rows
--
This message was sent by Atlassian JIRA
(v7.2.3#72005)
9 years
[JBoss JIRA] (TEIID-4844) Google translator unexpected behavior for comparison with time
by Steven Hawkins (JIRA)
[ https://issues.jboss.org/browse/TEIID-4844?page=com.atlassian.jira.plugin... ]
Steven Hawkins commented on TEIID-4844:
---------------------------------------
Since we already throw an exception with non-supported constructs with update/delete (such as like), then we'll do that for predicates involving time and timestamp as well. A workaround would be to mark the columns as unsearchable - but then that would affect the select case as well.
In version 4 of the api, there isn't even an option to support the sq parameter, so this will all need rethought with a later revision - we'll likely need to introduce a concept of searchable only for select or find a different way of processing update/delete.
> Google translator unexpected behavior for comparison with time
> --------------------------------------------------------------
>
> Key: TEIID-4844
> URL: https://issues.jboss.org/browse/TEIID-4844
> Project: Teiid
> Issue Type: Bug
> Affects Versions: 8.12.10.6_3
> Reporter: Lucie Fabrikova
> Assignee: Steven Hawkins
>
> Comparison operators <, <=, >, >=, =, <> work unexpectedly for 'time' datatype, foreign table has column 'timevalue time OPTIONS (NATIVE_TYPE 'TIMEOFDAY')'.
> I created view with column 'TimeValue time', inserted data in format '10:57:23'.
> I run queries like 'DELETE FROM smalla WHERE TimeValue < {t '10:57:23'}'
> * <, <>, <= deletes all rows, including rows that should be left
> * >, >=, = deletes no rows
--
This message was sent by Atlassian JIRA
(v7.2.3#72005)
9 years
[JBoss JIRA] (TEIID-4844) Google translator unexpected behavior for comparison with time
by Steven Hawkins (JIRA)
[ https://issues.jboss.org/browse/TEIID-4844?page=com.atlassian.jira.plugin... ]
Steven Hawkins commented on TEIID-4844:
---------------------------------------
This affects both TIME and TIMESTAMP columns. BOOLEAN requires a simple fix.
> Google translator unexpected behavior for comparison with time
> --------------------------------------------------------------
>
> Key: TEIID-4844
> URL: https://issues.jboss.org/browse/TEIID-4844
> Project: Teiid
> Issue Type: Bug
> Affects Versions: 8.12.10.6_3
> Reporter: Lucie Fabrikova
> Assignee: Steven Hawkins
>
> Comparison operators <, <=, >, >=, =, <> work unexpectedly for 'time' datatype, foreign table has column 'timevalue time OPTIONS (NATIVE_TYPE 'TIMEOFDAY')'.
> I created view with column 'TimeValue time', inserted data in format '10:57:23'.
> I run queries like 'DELETE FROM smalla WHERE TimeValue < {t '10:57:23'}'
> * <, <>, <= deletes all rows, including rows that should be left
> * >, >=, = deletes no rows
--
This message was sent by Atlassian JIRA
(v7.2.3#72005)
9 years