[JBoss JIRA] (TEIID-4187) Extend support for PI OLEDB Enterprise Queries in OSI PI Translator
by Steven Hawkins (JIRA)
[ https://issues.jboss.org/browse/TEIID-4187?page=com.atlassian.jira.plugin... ]
Steven Hawkins updated TEIID-4187:
----------------------------------
Priority: Major (was: Minor)
> Extend support for PI OLEDB Enterprise Queries in OSI PI Translator
> -------------------------------------------------------------------
>
> Key: TEIID-4187
> URL: https://issues.jboss.org/browse/TEIID-4187
> Project: Teiid
> Issue Type: Enhancement
> Components: Misc. Connectors
> Affects Versions: 8.13.3
> Reporter: Al S
> Assignee: Ramesh Reddy
> Fix For: 9.1
>
> Attachments: PI-OLEDB-Enterprise-2012-User-Guide.pdf
>
>
> Background - PI OLEDB queries go against the PI Data Archive whereas PI OLEDB Enterprise go against PI AF, which is a metadata layer that sits atop the PI Data Archive. Both sets of queries are now accessible from the PI JDBC adapter.
> Please add the following enhancements to allow the OSI PI translator to work more effectively with OLEDB Enterprise queries.
> 1) Import table valued functions as Teiid procedures
> 2) Allow the pushdown of nested table joins
> 3) Update the PI translator to use the CROSS APPLY syntax.
> 4) When importing schemas, importer.ImportKeys has to be set to false as otherwise we receive a DuplicateRecord exception since the table value function ft_GetPIPoint appears in more than one place in the AF schemas. Could we please put in a fix/workaround to address this?
> Please refer to the OLEDB Enterprise Guide for query syntax and rules for more detail.
--
This message was sent by Atlassian JIRA
(v6.4.11#64026)
8 years
[JBoss JIRA] (TEIID-4290) Rollback to savepoint should be a no op
by Steven Hawkins (JIRA)
Steven Hawkins created TEIID-4290:
-------------------------------------
Summary: Rollback to savepoint should be a no op
Key: TEIID-4290
URL: https://issues.jboss.org/browse/TEIID-4290
Project: Teiid
Issue Type: Bug
Components: ODBC
Affects Versions: 8.4
Reporter: Steven Hawkins
Assignee: Steven Hawkins
Fix For: 9.1, 8.13.6, 9.0.1
Save points are not supported and the creation of a save point by an ODBC client is effectively ignored, but the rollback is treated as a full rollback of the transaction.
--
This message was sent by Atlassian JIRA
(v6.4.11#64026)
8 years
[JBoss JIRA] (TEIID-4287) An exception is thrown by PostgreSQL when nested CTEs are pushed down
by Steven Hawkins (JIRA)
[ https://issues.jboss.org/browse/TEIID-4287?page=com.atlassian.jira.plugin... ]
Steven Hawkins resolved TEIID-4287.
-----------------------------------
Fix Version/s: 8.13.6
Resolution: Done
Corrected two aspects of the recontext logic (the setting of the new columns was not in guaranteed order and we were not visiting inlined with clauses) and added a check for duplicate with clauses.
> An exception is thrown by PostgreSQL when nested CTEs are pushed down
> ---------------------------------------------------------------------
>
> Key: TEIID-4287
> URL: https://issues.jboss.org/browse/TEIID-4287
> Project: Teiid
> Issue Type: Bug
> Components: Query Engine
> Reporter: Salvatore R
> Assignee: Steven Hawkins
> Fix For: 9.1, 8.13.6, 9.0.1
>
>
> I defined the following views in my VDB, based on a table in PostgreSQL:
> {code:sql}
> create view tv0 as
> WITH
> cte1 as (SELECT 1 as a),
> alias2 as (select a from cte1),
> cte3 as (select a from alias2)
> SELECT cte3.a FROM alias2 join cte3 on cte3.a=alias2.a;
> create view tv1 as
> WITH
> cte1 as (SELECT a from pg.test_a),
> alias2 as (select a from cte1),
> cte3 as (select a from alias2)
> SELECT cte3.a FROM alias2 join cte3 on cte3.a=alias2.a;
> create view tv2 as
> WITH
> alias2 as (select b, a from pg.test_a),
> cte4 as (select a from alias2)
> SELECT cte4.a FROM cte4 join alias2 on cte4.a=alias2.a ;
> {code}
> The following query, based on views tv0 and tv1:
> {code:sql}
> with
> CTE1 as (
> select a from (
> with CTE11 as (select a from views.tv0)
> select a from CTE11
> ) as SUBQ1),
> CTE2 as (
> select a from (
> with CTE21 as (select a from views.tv1)
> select a from CTE21
> ) as SUBQ2)
> select * from CTE1 as T1 join CTE2 as T2 on T1.a=T2.a
> {code}
> throws this exception:
> {code:sql}
> 18:55:23,260 WARN [org.teiid.PROCESSOR] (Worker24_QueryProcessorQueue773) qPWXuJPW78go TEIID30020 Processing exception for request qPWXuJPW78go.3 'TEIID30504 test_tables_pg: 0 TEIID11008:TEIID11004 Error executing statement(s): [Prepared Values: [] SQL: WITH alias2__1 (a) AS (SELECT g_0."a" FROM "public"."test_a" AS g_0) SELECT g_1.a AS c_0 FROM alias2__1 AS g_0, alias2 AS g_1 WHERE g_1.a = g_0.a AND g_1.a = 1 ORDER BY c_0]'. Originally TeiidProcessingException 'ERROR: Relation "alias2" does not exist
> Position: 113' QueryExecutorImpl.java:2157. Enable more detailed logging to see the entire stacktrace.
> 19:00:13,379 WARN [org.teiid.CONNECTOR] (Worker28_QueryProcessorQueue775) qPWXuJPW78go Connector worker process failed for atomic-request=qPWXuJPW78go.4.7.144: org.teiid.translator.jdbc.JDBCExecutionException: 0 TEIID11008:TEIID11004 Error executing statement(s): [Prepared Values: [] SQL: WITH alias2__1 (a) AS (SELECT g_0."a" FROM "public"."test_a" AS g_0) SELECT g_1.a AS c_0 FROM alias2__1 AS g_0, alias2 AS g_1 WHERE g_1.a = g_0.a AND g_1.a = 1 ORDER BY c_0]
> at org.teiid.translator.jdbc.JDBCQueryExecution.execute(JDBCQueryExecution.java:131)
> at org.teiid.dqp.internal.datamgr.ConnectorWorkItem.execute(ConnectorWorkItem.java:365)
> at sun.reflect.GeneratedMethodAccessor86.invoke(Unknown Source)
> at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
> at java.lang.reflect.Method.invoke(Method.java:606)
> at org.teiid.dqp.internal.datamgr.ConnectorManager$1.invoke(ConnectorManager.java:211)
> at com.sun.proxy.$Proxy56.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)
> at org.teiid.dqp.internal.process.FutureWork.run(FutureWork.java:65)
> at org.teiid.dqp.internal.process.DQPWorkContext.runInContext(DQPWorkContext.java:276)
> at org.teiid.dqp.internal.process.ThreadReuseExecutor$RunnableWrapper.run(ThreadReuseExecutor.java:119)
> at org.teiid.dqp.internal.process.ThreadReuseExecutor$3.run(ThreadReuseExecutor.java:210)
> at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
> at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
> at java.lang.Thread.run(Thread.java:745)
> Caused by: org.postgresql.util.PSQLException: ERROR: Relation "alias2" does not exist
> Position: 113
> at org.postgresql.core.v3.QueryExecutorImpl.receiveErrorResponse(QueryExecutorImpl.java:2157)
> at org.postgresql.core.v3.QueryExecutorImpl.processResults(QueryExecutorImpl.java:1886)
> at org.postgresql.core.v3.QueryExecutorImpl.execute(QueryExecutorImpl.java:255)
> at org.postgresql.jdbc2.AbstractJdbc2Statement.execute(AbstractJdbc2Statement.java:555)
> at org.postgresql.jdbc2.AbstractJdbc2Statement.executeWithFlags(AbstractJdbc2Statement.java:417)
> at org.postgresql.jdbc2.AbstractJdbc2Statement.executeQuery(AbstractJdbc2Statement.java:302)
> at org.jboss.jca.adapters.jdbc.WrappedPreparedStatement.executeQuery(WrappedPreparedStatement.java:504)
> at org.teiid.translator.jdbc.JDBCQueryExecution.execute(JDBCQueryExecution.java:123)
> ... 17 more
> {code}
> A similar query based on view tv2, throws a different exception:
> {code:sql}
> with
> CTE1 as (
> select a from (
> with CTE11 as (select a from views.tv2)
> select a from CTE11
> ) as SUBQ1),
> CTE2 as (
> select a from (
> with CTE21 as (select a from views.tv2)
> select a from CTE21
> ) as SUBQ2)
> select * from CTE1 as T1 join CTE2 as T2 on T1.a=T2.a
> {code}
> {code:sql}
> 19:05:02,784 WARN [org.teiid.CONNECTOR] (Worker30_QueryProcessorQueue778) qPWXuJPW78go Connector worker process failed for atomic-request=qPWXuJPW78go.5.2.145: org.teiid.translator.jdbc.JDBCExecutionException: 0 TEIID11008:TEIID11004 Error executing statement(s): [Prepared Values: [] SQL: WITH alias2 (b, a) AS (SELECT NULL, g_0."a" FROM "public"."test_a" AS g_0), alias2__1 (a, b) AS (SELECT NULL, g_0."a" FROM "public"."test_a" AS g_0) SELECT g_2.a, g_0.a FROM alias2 AS g_0, alias2 AS g_1, alias2 AS g_2, alias2__1 AS g_3 WHERE g_2.a = g_3.a AND g_0.a = g_1.a AND g_0.a = g_2.a]
> at org.teiid.translator.jdbc.JDBCQueryExecution.execute(JDBCQueryExecution.java:131)
> at org.teiid.dqp.internal.datamgr.ConnectorWorkItem.execute(ConnectorWorkItem.java:365)
> at sun.reflect.GeneratedMethodAccessor86.invoke(Unknown Source)
> at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
> at java.lang.reflect.Method.invoke(Method.java:606)
> at org.teiid.dqp.internal.datamgr.ConnectorManager$1.invoke(ConnectorManager.java:211)
> at com.sun.proxy.$Proxy56.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)
> at org.teiid.dqp.internal.process.FutureWork.run(FutureWork.java:65)
> at org.teiid.dqp.internal.process.DQPWorkContext.runInContext(DQPWorkContext.java:276)
> at org.teiid.dqp.internal.process.ThreadReuseExecutor$RunnableWrapper.run(ThreadReuseExecutor.java:119)
> at org.teiid.dqp.internal.process.ThreadReuseExecutor$3.run(ThreadReuseExecutor.java:210)
> at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
> at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
> at java.lang.Thread.run(Thread.java:745)
> Caused by: org.postgresql.util.PSQLException: ERROR: failed to find conversion function from unknown to integer
> at org.postgresql.core.v3.QueryExecutorImpl.receiveErrorResponse(QueryExecutorImpl.java:2157)
> at org.postgresql.core.v3.QueryExecutorImpl.processResults(QueryExecutorImpl.java:1886)
> at org.postgresql.core.v3.QueryExecutorImpl.execute(QueryExecutorImpl.java:255)
> at org.postgresql.jdbc2.AbstractJdbc2Statement.execute(AbstractJdbc2Statement.java:555)
> at org.postgresql.jdbc2.AbstractJdbc2Statement.executeWithFlags(AbstractJdbc2Statement.java:417)
> at org.postgresql.jdbc2.AbstractJdbc2Statement.executeQuery(AbstractJdbc2Statement.java:302)
> at org.jboss.jca.adapters.jdbc.WrappedPreparedStatement.executeQuery(WrappedPreparedStatement.java:504)
> at org.teiid.translator.jdbc.JDBCQueryExecution.execute(JDBCQueryExecution.java:123)
> ... 17 more
> {code}
--
This message was sent by Atlassian JIRA
(v6.4.11#64026)
8 years
[JBoss JIRA] (TEIID-4090) Issue with entitysets/properties ending in auth or token
by Ramesh Reddy (JIRA)
[ https://issues.jboss.org/browse/TEIID-4090?page=com.atlassian.jira.plugin... ]
Ramesh Reddy reopened TEIID-4090:
---------------------------------
<urlmapping>static/*</urlmapping> is ending up exception in EAP 6.4 during deployment, WildFly this seems to work. This needs to be corrected.
> Issue with entitysets/properties ending in auth or token
> --------------------------------------------------------
>
> Key: TEIID-4090
> URL: https://issues.jboss.org/browse/TEIID-4090
> Project: Teiid
> Issue Type: Bug
> Components: OData
> Affects Versions: 8.12
> Reporter: Steven Hawkins
> Assignee: Ramesh Reddy
> Priority: Blocker
> Labels: Final
> Fix For: 9.0, 8.12.5
>
>
> To handle oauth, we are check for uri.endsWith("auth") || uri.endsWith("token") - however valid uris can end with those characters as well. An ioexception will be thrown instead of seeing the expected results - we also need to not simply throw an ioexception in ODataServlet as there is no server log of the exception and the client sees a 500 error.
--
This message was sent by Atlassian JIRA
(v6.4.11#64026)
8 years
[JBoss JIRA] (TEIID-3617) Provide an option to Limit per user based connections
by Kylin Soong (JIRA)
[ https://issues.jboss.org/browse/TEIID-3617?page=com.atlassian.jira.plugin... ]
Kylin Soong commented on TEIID-3617:
------------------------------------
Current change support set max session per user either via CLI in system scope, or via VDB properties in VDB scope, the VDB scope will overwrite the system scope.
Example of CLI
{code}
/subsystem=teiid:write-attribute(name=authentication-max-sessions-allowed-per-user,value="user1=25;user2=35")
/subsystem=teiid:read-attribute(name=authentication-max-sessions-allowed-per-user)
{code}
Example of properties in VDB
{code}
<vdb name="TEIID3617" version="1">
<property name="authentication-max-sessions-allowed-per-user" value="user1=25;user2=35" />
</vdb>
{code}
> Provide an option to Limit per user based connections
> -----------------------------------------------------
>
> Key: TEIID-3617
> URL: https://issues.jboss.org/browse/TEIID-3617
> Project: Teiid
> Issue Type: Feature Request
> Components: Server
> Reporter: Xian Liu
> Assignee: Kylin Soong
> Fix For: 9.1
>
>
> we deploy teiid for users to get data, but some users will create many connections to teiid and they are not necessary, I need to find a good way to limit each user account can only get like 50 connections or so
--
This message was sent by Atlassian JIRA
(v6.4.11#64026)
8 years