[JBoss JIRA] (TEIID-2507) Better handling of user scoped lookups/matviews
by Steven Hawkins (JIRA)
[ https://issues.jboss.org/browse/TEIID-2507?page=com.atlassian.jira.plugin... ]
Steven Hawkins resolved TEIID-2507.
-----------------------------------
Resolution: Done
Added session (but not user) scoped materialized views with a release note and doc updates. This can address some circumstances where commonly used user or session scoped tables are used multiple times in the same session (or a nocache hint can be used if they are used only once). This mitigates the need for TEIID-2139, but is not driven by user hints so it requires more up-front thought in the view cache hint.
Non-replicated user scoping is possible as we can scan the session scoped stores for the given user and copy the table, but it makes resource cleanup much lazier.
It may also be good at some point to allow connections as part of the normal pool cycling process to drop all session scoped values (variables, temp tables, mat views) to ensure a clean slate when the connection reused.
> Better handling of user scoped lookups/matviews
> -----------------------------------------------
>
> Key: TEIID-2507
> URL: https://issues.jboss.org/browse/TEIID-2507
> Project: Teiid
> Issue Type: Quality Risk
> Components: Query Engine
> Reporter: Steven Hawkins
> Assignee: Steven Hawkins
> Fix For: 8.4
>
>
> With the inclusion of column and row security logic, it's more likely that lookups can produce user specific results. The current logic however treats lookups as always globally scoped.
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira
12 years, 4 months
[JBoss JIRA] (TEIID-2507) Better handling of user scoped lookups
by Steven Hawkins (JIRA)
[ https://issues.jboss.org/browse/TEIID-2507?page=com.atlassian.jira.plugin... ]
Steven Hawkins commented on TEIID-2507:
---------------------------------------
Given the current implementation and intention of the lookup function, I don't think that we want to alter the current approach. The docs will be updated that lookup against views (or tables that have source row-level security) may not return the expected results for multiple users.
I'll also add an info log to the global matview load logic to let admins know if the materialized table is not appropriately deterministic.
Other possibilities include:
-taking the notion of a virtual private database further and allowing for user scoped vdb such that there is no issue with cache segregation.
-generally allowing for session scoped mat views (although a session scoped lookup would require an additional parameter to the lookup function), since it is relatively easy to extend the matview/with logic to allow for tables to be created in the session, rather than global, store.
-updating the matview logic to be user aware - however this greatly complicates the considerations of, storage, loading, and refreshing which is why it seems best not to pursue this approach.
> Better handling of user scoped lookups
> --------------------------------------
>
> Key: TEIID-2507
> URL: https://issues.jboss.org/browse/TEIID-2507
> Project: Teiid
> Issue Type: Quality Risk
> Components: Query Engine
> Reporter: Steven Hawkins
> Assignee: Steven Hawkins
> Fix For: 8.4
>
>
> With the inclusion of column and row security logic, it's more likely that lookups can produce user specific results. The current logic however treats lookups as always globally scoped.
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira
12 years, 4 months
[JBoss JIRA] (TEIID-2485) Remove the resteasy patch thats no longer needed in EAP 6.1 ER5
by Steven Hawkins (JIRA)
[ https://issues.jboss.org/browse/TEIID-2485?page=com.atlassian.jira.plugin... ]
Steven Hawkins commented on TEIID-2485:
---------------------------------------
That is a tech preview repository, not a release. Unless there has been a big change, there will not be a corresponding public unrestricted release. The latest available *community* release is EAP 6.1 Alpha - our community kit will need to still accommodate that.
So our two options are still to fork the kit or to make the resteasy patch/update a separate download. I'm fine with the latter.
> Remove the resteasy patch thats no longer needed in EAP 6.1 ER5
> ---------------------------------------------------------------
>
> Key: TEIID-2485
> URL: https://issues.jboss.org/browse/TEIID-2485
> Project: Teiid
> Issue Type: Task
> Components: Build/Kits
> Affects Versions: 8.4
> Reporter: Van Halbert
> Assignee: Van Halbert
> Fix For: 8.4.1
>
>
> The resteasy patch thats provided in the kit is no longer needed. As of EAP 6.1 ER5, resteasy has been upgraded to 2.3.6, and resolves RESTEASY-812 issue.
> I have verified the fix and have several EAP 6.1 ER5 servers running with Teiid 8.4 alpha without the patch applied.
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira
12 years, 4 months
[JBoss JIRA] (TEIID-2518) Delete statement with having UDF functions in its inline view is giving issues
by Steven Hawkins (JIRA)
[ https://issues.jboss.org/browse/TEIID-2518?page=com.atlassian.jira.plugin... ]
Steven Hawkins commented on TEIID-2518:
---------------------------------------
What do you expected source sql in the delete case? You have the function marked as push down allowed, but h2 is indicating that the function is unknown.
> Delete statement with having UDF functions in its inline view is giving issues
> ------------------------------------------------------------------------------
>
> Key: TEIID-2518
> URL: https://issues.jboss.org/browse/TEIID-2518
> Project: Teiid
> Issue Type: Bug
> Components: Query Engine
> Affects Versions: 8.1
> Reporter: Rajasekhar Kota
> Assignee: Steven Hawkins
> Priority: Critical
> Attachments: DeleteWithInlineQuery.java, ErrorMessage.txt, TeiidUDFExecutionFactory.java
>
>
> Delete queries having UDF function in it's inline view is giving issues.
> Please find the attached test cases to reproduce the issue.
> Here is the problematic query and where primary_key is an UDF function.
> delete from testSchema.tableA where policyfkeyxml not in (select primary_key('testSchema.tableB','policyID',policyID) as expr from testSchema.tableB)
> Here is the exception that we are getting when we run above query from a test case.
> WARNING: Connector worker process failed for atomic-request=tmG/kv17VS0S.0.0.0
> org.teiid.translator.jdbc.JDBCExecutionException: 90022 TEIID11013:TEIID11004 Error executing statement(s): [Prepared Values: [] SQL: DELETE FROM "MEM"."TESTSCHEMA"."TABLEA" WHERE "MEM"."TESTSCHEMA"."TABLEA"."POLICYFKEYXML" NOT IN (SELECT primary_key('testSchema.tableB', 'policyID', "MEM"."TESTSCHEMA"."TABLEB"."POLICYID") AS expr FROM "MEM"."TESTSCHEMA"."TABLEB")]
> at org.teiid.translator.jdbc.JDBCUpdateExecution.executeTranslatedCommand(JDBCUpdateExecution.java:211)
> at org.teiid.translator.jdbc.JDBCUpdateExecution.execute(JDBCUpdateExecution.java:71)
> at org.teiid.dqp.internal.datamgr.ConnectorWorkItem$1.execute(ConnectorWorkItem.java:290)
> at org.teiid.dqp.internal.datamgr.ConnectorWorkItem.execute(ConnectorWorkItem.java:257)
> at org.teiid.dqp.internal.process.DataTierTupleSource.getResults(DataTierTupleSource.java:425)
> at org.teiid.dqp.internal.process.DataTierTupleSource.nextTuple(DataTierTupleSource.java:270)
> at org.teiid.query.processor.relational.AccessNode.nextBatchDirect(AccessNode.java:279)
> at org.teiid.query.processor.relational.RelationalNode.nextBatch(RelationalNode.java:279)
> at org.teiid.query.processor.relational.RelationalPlan.nextBatch(RelationalPlan.java:148)
> at org.teiid.query.processor.QueryProcessor.nextBatchDirect(QueryProcessor.java:146)
> at org.teiid.query.processor.QueryProcessor.nextBatch(QueryProcessor.java:112)
> at org.teiid.query.processor.BatchCollector.collectTuples(BatchCollector.java:153)
> at org.teiid.dqp.internal.process.RequestWorkItem.processMore(RequestWorkItem.java:382)
> at org.teiid.dqp.internal.process.RequestWorkItem.process(RequestWorkItem.java:291)
> at org.teiid.dqp.internal.process.AbstractWorkItem.run(AbstractWorkItem.java:51)
> at org.teiid.dqp.internal.process.RequestWorkItem.run(RequestWorkItem.java:219)
> at org.teiid.dqp.internal.process.DQPCore.executeRequest(DQPCore.java:386)
> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
> at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
> at java.lang.reflect.Method.invoke(Method.java:601)
> at org.teiid.transport.LocalServerConnection$1$1.call(LocalServerConnection.java:131)
> at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334)
> at java.util.concurrent.FutureTask.run(FutureTask.java:166)
> at org.teiid.dqp.internal.process.DQPWorkContext.runInContext(DQPWorkContext.java:249)
> at org.teiid.dqp.internal.process.DQPWorkContext.runInContext(DQPWorkContext.java:233)
> at org.teiid.transport.LocalServerConnection$1.invoke(LocalServerConnection.java:129)
> at $Proxy11.executeRequest(Unknown Source)
> at org.teiid.jdbc.StatementImpl.execute(StatementImpl.java:631)
> at org.teiid.jdbc.StatementImpl.executeSql(StatementImpl.java:506)
> at org.teiid.jdbc.StatementImpl.executeUpdate(StatementImpl.java:334)
> at com.ca.chorus.teiid.customfunctions.DeleteWithInlineQuery.testFailingInlineViewInDeleteQuery(DeleteWithInlineQuery.java:130)
> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
> at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
> at java.lang.reflect.Method.invoke(Method.java:601)
> at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:44)
> at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:15)
> at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:41)
> at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:20)
> at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:76)
> at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:50)
> at org.junit.runners.ParentRunner$3.run(ParentRunner.java:193)
> at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:52)
> at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:191)
> at org.junit.runners.ParentRunner.access$000(ParentRunner.java:42)
> at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:184)
> at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:28)
> at org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:31)
> at org.junit.runners.ParentRunner.run(ParentRunner.java:236)
> at org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:50)
> at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)
> at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:467)
> at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:683)
> at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:390)
> at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:197)
> Caused by: org.h2.jdbc.JdbcSQLException: Function "PRIMARY_KEY" not found; SQL statement:
> DELETE FROM "MEM"."TESTSCHEMA"."TABLEA" WHERE "MEM"."TESTSCHEMA"."TABLEA"."POLICYFKEYXML" NOT IN (SELECT primary_key('testSchema.tableB', 'policyID', "MEM"."TESTSCHEMA"."TABLEB"."POLICYID") AS expr FROM "MEM"."TESTSCHEMA"."TABLEB") [90022-168]
> at org.h2.message.DbException.getJdbcSQLException(DbException.java:329)
> at org.h2.message.DbException.get(DbException.java:169)
> at org.h2.message.DbException.get(DbException.java:146)
> at org.h2.command.Parser.readJavaFunction(Parser.java:2122)
> at org.h2.command.Parser.readFunction(Parser.java:2174)
> at org.h2.command.Parser.readTerm(Parser.java:2476)
> at org.h2.command.Parser.readFactor(Parser.java:2046)
> at org.h2.command.Parser.readSum(Parser.java:2033)
> at org.h2.command.Parser.readConcat(Parser.java:2006)
> at org.h2.command.Parser.readCondition(Parser.java:1871)
> at org.h2.command.Parser.readAnd(Parser.java:1852)
> at org.h2.command.Parser.readExpression(Parser.java:1844)
> at org.h2.command.Parser.parseSelectSimpleSelectPart(Parser.java:1757)
> at org.h2.command.Parser.parseSelectSimple(Parser.java:1789)
> at org.h2.command.Parser.parseSelectSub(Parser.java:1684)
> at org.h2.command.Parser.parseSelectUnion(Parser.java:1527)
> at org.h2.command.Parser.parseSelect(Parser.java:1515)
> at org.h2.command.Parser.readCondition(Parser.java:1921)
> at org.h2.command.Parser.readAnd(Parser.java:1852)
> at org.h2.command.Parser.readExpression(Parser.java:1844)
> at org.h2.command.Parser.parseDelete(Parser.java:738)
> at org.h2.command.Parser.parsePrepared(Parser.java:336)
> at org.h2.command.Parser.parse(Parser.java:279)
> at org.h2.command.Parser.parse(Parser.java:251)
> at org.h2.command.Parser.prepareCommand(Parser.java:217)
> at org.h2.engine.Session.prepareLocal(Session.java:415)
> at org.h2.engine.Session.prepareCommand(Session.java:364)
> at org.h2.jdbc.JdbcConnection.prepareCommand(JdbcConnection.java:1109)
> at org.h2.jdbc.JdbcPreparedStatement.<init>(JdbcPreparedStatement.java:74)
> at org.h2.jdbc.JdbcConnection.prepareStatement(JdbcConnection.java:264)
> at org.teiid.translator.jdbc.JDBCBaseExecution.getPreparedStatement(JDBCBaseExecution.java:181)
> at org.teiid.translator.jdbc.JDBCUpdateExecution.executeTranslatedCommand(JDBCUpdateExecution.java:168)
> ... 55 more
> May 28, 2013 7:14:51 PM org.teiid.logging.JavaLogger log
> WARNING: TEIID30020 Processing exception 'TEIID30504 h2Translator: 90022 TEIID11013:TEIID11004 Error executing statement(s): [Prepared Values: [] SQL: DELETE FROM "MEM"."TESTSCHEMA"."TABLEA" WHERE "MEM"."TESTSCHEMA"."TABLEA"."POLICYFKEYXML" NOT IN (SELECT primary_key('testSchema.tableB', 'policyID', "MEM"."TESTSCHEMA"."TABLEB"."POLICYID") AS expr FROM "MEM"."TESTSCHEMA"."TABLEB")]' for request tmG/kv17VS0S.0. Exception type org.teiid.core.TeiidProcessingException thrown from org.h2.message.DbException.getJdbcSQLException(DbException.java:329). Enable more detailed logging to see the entire stacktrace.
> org.teiid.jdbc.TeiidSQLException: TEIID30504 h2Translator: 90022 TEIID11013:TEIID11004 Error executing statement(s): [Prepared Values: [] SQL: DELETE FROM "MEM"."TESTSCHEMA"."TABLEA" WHERE "MEM"."TESTSCHEMA"."TABLEA"."POLICYFKEYXML" NOT IN (SELECT primary_key('testSchema.tableB', 'policyID', "MEM"."TESTSCHEMA"."TABLEB"."POLICYID") AS expr FROM "MEM"."TESTSCHEMA"."TABLEB")]
> at org.teiid.jdbc.TeiidSQLException.create(TeiidSQLException.java:113)
> at org.teiid.jdbc.TeiidSQLException.create(TeiidSQLException.java:70)
> at org.teiid.jdbc.StatementImpl.postReceiveResults(StatementImpl.java:656)
> at org.teiid.jdbc.StatementImpl.access$100(StatementImpl.java:62)
> at org.teiid.jdbc.StatementImpl$2.onCompletion(StatementImpl.java:512)
> at org.teiid.client.util.ResultsFuture.addCompletionListener(ResultsFuture.java:139)
> at org.teiid.jdbc.StatementImpl.executeSql(StatementImpl.java:508)
> at org.teiid.jdbc.StatementImpl.executeUpdate(StatementImpl.java:334)
> at com.ca.chorus.teiid.customfunctions.DeleteWithInlineQuery.testFailingInlineViewInDeleteQuery(DeleteWithInlineQuery.java:130)
> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
> at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
> at java.lang.reflect.Method.invoke(Method.java:601)
> at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:44)
> at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:15)
> at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:41)
> at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:20)
> at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:76)
> at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:50)
> at org.junit.runners.ParentRunner$3.run(ParentRunner.java:193)
> at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:52)
> at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:191)
> at org.junit.runners.ParentRunner.access$000(ParentRunner.java:42)
> at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:184)
> at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:28)
> at org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:31)
> at org.junit.runners.ParentRunner.run(ParentRunner.java:236)
> at org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:50)
> at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)
> at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:467)
> at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:683)
> at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:390)
> at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:197)
> Caused by: org.teiid.core.TeiidProcessingException: TEIID30504 h2Translator: 90022 TEIID11013:TEIID11004 Error executing statement(s): [Prepared Values: [] SQL: DELETE FROM "MEM"."TESTSCHEMA"."TABLEA" WHERE "MEM"."TESTSCHEMA"."TABLEA"."POLICYFKEYXML" NOT IN (SELECT primary_key('testSchema.tableB', 'policyID', "MEM"."TESTSCHEMA"."TABLEB"."POLICYID") AS expr FROM "MEM"."TESTSCHEMA"."TABLEB")]
> at org.teiid.dqp.internal.process.DataTierTupleSource.exceptionOccurred(DataTierTupleSource.java:502)
> at org.teiid.dqp.internal.process.DataTierTupleSource.nextTuple(DataTierTupleSource.java:289)
> at org.teiid.query.processor.relational.AccessNode.nextBatchDirect(AccessNode.java:279)
> at org.teiid.query.processor.relational.RelationalNode.nextBatch(RelationalNode.java:279)
> at org.teiid.query.processor.relational.RelationalPlan.nextBatch(RelationalPlan.java:148)
> at org.teiid.query.processor.QueryProcessor.nextBatchDirect(QueryProcessor.java:146)
> at org.teiid.query.processor.QueryProcessor.nextBatch(QueryProcessor.java:112)
> at org.teiid.query.processor.BatchCollector.collectTuples(BatchCollector.java:153)
> at org.teiid.dqp.internal.process.RequestWorkItem.processMore(RequestWorkItem.java:382)
> at org.teiid.dqp.internal.process.RequestWorkItem.process(RequestWorkItem.java:291)
> at org.teiid.dqp.internal.process.AbstractWorkItem.run(AbstractWorkItem.java:51)
> at org.teiid.dqp.internal.process.RequestWorkItem.run(RequestWorkItem.java:219)
> at org.teiid.dqp.internal.process.DQPCore.executeRequest(DQPCore.java:386)
> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
> at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
> at java.lang.reflect.Method.invoke(Method.java:601)
> at org.teiid.transport.LocalServerConnection$1$1.call(LocalServerConnection.java:131)
> at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334)
> at java.util.concurrent.FutureTask.run(FutureTask.java:166)
> at org.teiid.dqp.internal.process.DQPWorkContext.runInContext(DQPWorkContext.java:249)
> at org.teiid.dqp.internal.process.DQPWorkContext.runInContext(DQPWorkContext.java:233)
> at org.teiid.transport.LocalServerConnection$1.invoke(LocalServerConnection.java:129)
> at $Proxy11.executeRequest(Unknown Source)
> at org.teiid.jdbc.StatementImpl.execute(StatementImpl.java:631)
> at org.teiid.jdbc.StatementImpl.executeSql(StatementImpl.java:506)
> ... 26 more
> Caused by: org.teiid.translator.jdbc.JDBCExecutionException: 90022 TEIID11013:TEIID11004 Error executing statement(s): [Prepared Values: [] SQL: DELETE FROM "MEM"."TESTSCHEMA"."TABLEA" WHERE "MEM"."TESTSCHEMA"."TABLEA"."POLICYFKEYXML" NOT IN (SELECT primary_key('testSchema.tableB', 'policyID', "MEM"."TESTSCHEMA"."TABLEB"."POLICYID") AS expr FROM "MEM"."TESTSCHEMA"."TABLEB")]
> at org.teiid.translator.jdbc.JDBCUpdateExecution.executeTranslatedCommand(JDBCUpdateExecution.java:211)
> at org.teiid.translator.jdbc.JDBCUpdateExecution.execute(JDBCUpdateExecution.java:71)
> at org.teiid.dqp.internal.datamgr.ConnectorWorkItem$1.execute(ConnectorWorkItem.java:290)
> at org.teiid.dqp.internal.datamgr.ConnectorWorkItem.execute(ConnectorWorkItem.java:257)
> at org.teiid.dqp.internal.process.DataTierTupleSource.getResults(DataTierTupleSource.java:425)
> at org.teiid.dqp.internal.process.DataTierTupleSource.nextTuple(DataTierTupleSource.java:270)
> ... 50 more
> Caused by: org.h2.jdbc.JdbcSQLException: Function "PRIMARY_KEY" not found; SQL statement:
> DELETE FROM "MEM"."TESTSCHEMA"."TABLEA" WHERE "MEM"."TESTSCHEMA"."TABLEA"."POLICYFKEYXML" NOT IN (SELECT primary_key('testSchema.tableB', 'policyID', "MEM"."TESTSCHEMA"."TABLEB"."POLICYID") AS expr FROM "MEM"."TESTSCHEMA"."TABLEB") [90022-168]
> at org.h2.message.DbException.getJdbcSQLException(DbException.java:329)
> at org.h2.message.DbException.get(DbException.java:169)
> at org.h2.message.DbException.get(DbException.java:146)
> at org.h2.command.Parser.readJavaFunction(Parser.java:2122)
> at org.h2.command.Parser.readFunction(Parser.java:2174)
> at org.h2.command.Parser.readTerm(Parser.java:2476)
> at org.h2.command.Parser.readFactor(Parser.java:2046)
> at org.h2.command.Parser.readSum(Parser.java:2033)
> at org.h2.command.Parser.readConcat(Parser.java:2006)
> at org.h2.command.Parser.readCondition(Parser.java:1871)
> at org.h2.command.Parser.readAnd(Parser.java:1852)
> at org.h2.command.Parser.readExpression(Parser.java:1844)
> at org.h2.command.Parser.parseSelectSimpleSelectPart(Parser.java:1757)
> at org.h2.command.Parser.parseSelectSimple(Parser.java:1789)
> at org.h2.command.Parser.parseSelectSub(Parser.java:1684)
> at org.h2.command.Parser.parseSelectUnion(Parser.java:1527)
> at org.h2.command.Parser.parseSelect(Parser.java:1515)
> at org.h2.command.Parser.readCondition(Parser.java:1921)
> at org.h2.command.Parser.readAnd(Parser.java:1852)
> at org.h2.command.Parser.readExpression(Parser.java:1844)
> at org.h2.command.Parser.parseDelete(Parser.java:738)
> at org.h2.command.Parser.parsePrepared(Parser.java:336)
> at org.h2.command.Parser.parse(Parser.java:279)
> at org.h2.command.Parser.parse(Parser.java:251)
> at org.h2.command.Parser.prepareCommand(Parser.java:217)
> at org.h2.engine.Session.prepareLocal(Session.java:415)
> at org.h2.engine.Session.prepareCommand(Session.java:364)
> at org.h2.jdbc.JdbcConnection.prepareCommand(JdbcConnection.java:1109)
> at org.h2.jdbc.JdbcPreparedStatement.<init>(JdbcPreparedStatement.java:74)
> at org.h2.jdbc.JdbcConnection.prepareStatement(JdbcConnection.java:264)
> at org.teiid.translator.jdbc.JDBCBaseExecution.getPreparedStatement(JDBCBaseExecution.java:181)
> at org.teiid.translator.jdbc.JDBCUpdateExecution.executeTranslatedCommand(JDBCUpdateExecution.java:168)
> ... 55 more
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira
12 years, 4 months
[JBoss JIRA] (TEIID-2518) Delete statement with having UDF functions in its inline view is giving issues
by Rajasekhar Kota (JIRA)
[ https://issues.jboss.org/browse/TEIID-2518?page=com.atlassian.jira.plugin... ]
Rajasekhar Kota updated TEIID-2518:
-----------------------------------
Description:
Delete queries having UDF function in it's inline view is giving issues.
Please find the attached test cases to reproduce the issue.
Here is the problematic query and where primary_key is an UDF function.
delete from testSchema.tableA where policyfkeyxml not in (select primary_key('testSchema.tableB','policyID',policyID) as expr from testSchema.tableB)
Here is the exception that we are getting when we run above query from a test case.
WARNING: Connector worker process failed for atomic-request=tmG/kv17VS0S.0.0.0
org.teiid.translator.jdbc.JDBCExecutionException: 90022 TEIID11013:TEIID11004 Error executing statement(s): [Prepared Values: [] SQL: DELETE FROM "MEM"."TESTSCHEMA"."TABLEA" WHERE "MEM"."TESTSCHEMA"."TABLEA"."POLICYFKEYXML" NOT IN (SELECT primary_key('testSchema.tableB', 'policyID', "MEM"."TESTSCHEMA"."TABLEB"."POLICYID") AS expr FROM "MEM"."TESTSCHEMA"."TABLEB")]
at org.teiid.translator.jdbc.JDBCUpdateExecution.executeTranslatedCommand(JDBCUpdateExecution.java:211)
at org.teiid.translator.jdbc.JDBCUpdateExecution.execute(JDBCUpdateExecution.java:71)
at org.teiid.dqp.internal.datamgr.ConnectorWorkItem$1.execute(ConnectorWorkItem.java:290)
at org.teiid.dqp.internal.datamgr.ConnectorWorkItem.execute(ConnectorWorkItem.java:257)
at org.teiid.dqp.internal.process.DataTierTupleSource.getResults(DataTierTupleSource.java:425)
at org.teiid.dqp.internal.process.DataTierTupleSource.nextTuple(DataTierTupleSource.java:270)
at org.teiid.query.processor.relational.AccessNode.nextBatchDirect(AccessNode.java:279)
at org.teiid.query.processor.relational.RelationalNode.nextBatch(RelationalNode.java:279)
at org.teiid.query.processor.relational.RelationalPlan.nextBatch(RelationalPlan.java:148)
at org.teiid.query.processor.QueryProcessor.nextBatchDirect(QueryProcessor.java:146)
at org.teiid.query.processor.QueryProcessor.nextBatch(QueryProcessor.java:112)
at org.teiid.query.processor.BatchCollector.collectTuples(BatchCollector.java:153)
at org.teiid.dqp.internal.process.RequestWorkItem.processMore(RequestWorkItem.java:382)
at org.teiid.dqp.internal.process.RequestWorkItem.process(RequestWorkItem.java:291)
at org.teiid.dqp.internal.process.AbstractWorkItem.run(AbstractWorkItem.java:51)
at org.teiid.dqp.internal.process.RequestWorkItem.run(RequestWorkItem.java:219)
at org.teiid.dqp.internal.process.DQPCore.executeRequest(DQPCore.java:386)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:601)
at org.teiid.transport.LocalServerConnection$1$1.call(LocalServerConnection.java:131)
at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334)
at java.util.concurrent.FutureTask.run(FutureTask.java:166)
at org.teiid.dqp.internal.process.DQPWorkContext.runInContext(DQPWorkContext.java:249)
at org.teiid.dqp.internal.process.DQPWorkContext.runInContext(DQPWorkContext.java:233)
at org.teiid.transport.LocalServerConnection$1.invoke(LocalServerConnection.java:129)
at $Proxy11.executeRequest(Unknown Source)
at org.teiid.jdbc.StatementImpl.execute(StatementImpl.java:631)
at org.teiid.jdbc.StatementImpl.executeSql(StatementImpl.java:506)
at org.teiid.jdbc.StatementImpl.executeUpdate(StatementImpl.java:334)
at com.ca.chorus.teiid.customfunctions.DeleteWithInlineQuery.testFailingInlineViewInDeleteQuery(DeleteWithInlineQuery.java:130)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:601)
at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:44)
at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:15)
at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:41)
at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:20)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:76)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:50)
at org.junit.runners.ParentRunner$3.run(ParentRunner.java:193)
at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:52)
at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:191)
at org.junit.runners.ParentRunner.access$000(ParentRunner.java:42)
at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:184)
at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:28)
at org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:31)
at org.junit.runners.ParentRunner.run(ParentRunner.java:236)
at org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:50)
at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:467)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:683)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:390)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:197)
Caused by: org.h2.jdbc.JdbcSQLException: Function "PRIMARY_KEY" not found; SQL statement:
DELETE FROM "MEM"."TESTSCHEMA"."TABLEA" WHERE "MEM"."TESTSCHEMA"."TABLEA"."POLICYFKEYXML" NOT IN (SELECT primary_key('testSchema.tableB', 'policyID', "MEM"."TESTSCHEMA"."TABLEB"."POLICYID") AS expr FROM "MEM"."TESTSCHEMA"."TABLEB") [90022-168]
at org.h2.message.DbException.getJdbcSQLException(DbException.java:329)
at org.h2.message.DbException.get(DbException.java:169)
at org.h2.message.DbException.get(DbException.java:146)
at org.h2.command.Parser.readJavaFunction(Parser.java:2122)
at org.h2.command.Parser.readFunction(Parser.java:2174)
at org.h2.command.Parser.readTerm(Parser.java:2476)
at org.h2.command.Parser.readFactor(Parser.java:2046)
at org.h2.command.Parser.readSum(Parser.java:2033)
at org.h2.command.Parser.readConcat(Parser.java:2006)
at org.h2.command.Parser.readCondition(Parser.java:1871)
at org.h2.command.Parser.readAnd(Parser.java:1852)
at org.h2.command.Parser.readExpression(Parser.java:1844)
at org.h2.command.Parser.parseSelectSimpleSelectPart(Parser.java:1757)
at org.h2.command.Parser.parseSelectSimple(Parser.java:1789)
at org.h2.command.Parser.parseSelectSub(Parser.java:1684)
at org.h2.command.Parser.parseSelectUnion(Parser.java:1527)
at org.h2.command.Parser.parseSelect(Parser.java:1515)
at org.h2.command.Parser.readCondition(Parser.java:1921)
at org.h2.command.Parser.readAnd(Parser.java:1852)
at org.h2.command.Parser.readExpression(Parser.java:1844)
at org.h2.command.Parser.parseDelete(Parser.java:738)
at org.h2.command.Parser.parsePrepared(Parser.java:336)
at org.h2.command.Parser.parse(Parser.java:279)
at org.h2.command.Parser.parse(Parser.java:251)
at org.h2.command.Parser.prepareCommand(Parser.java:217)
at org.h2.engine.Session.prepareLocal(Session.java:415)
at org.h2.engine.Session.prepareCommand(Session.java:364)
at org.h2.jdbc.JdbcConnection.prepareCommand(JdbcConnection.java:1109)
at org.h2.jdbc.JdbcPreparedStatement.<init>(JdbcPreparedStatement.java:74)
at org.h2.jdbc.JdbcConnection.prepareStatement(JdbcConnection.java:264)
at org.teiid.translator.jdbc.JDBCBaseExecution.getPreparedStatement(JDBCBaseExecution.java:181)
at org.teiid.translator.jdbc.JDBCUpdateExecution.executeTranslatedCommand(JDBCUpdateExecution.java:168)
... 55 more
May 28, 2013 7:14:51 PM org.teiid.logging.JavaLogger log
WARNING: TEIID30020 Processing exception 'TEIID30504 h2Translator: 90022 TEIID11013:TEIID11004 Error executing statement(s): [Prepared Values: [] SQL: DELETE FROM "MEM"."TESTSCHEMA"."TABLEA" WHERE "MEM"."TESTSCHEMA"."TABLEA"."POLICYFKEYXML" NOT IN (SELECT primary_key('testSchema.tableB', 'policyID', "MEM"."TESTSCHEMA"."TABLEB"."POLICYID") AS expr FROM "MEM"."TESTSCHEMA"."TABLEB")]' for request tmG/kv17VS0S.0. Exception type org.teiid.core.TeiidProcessingException thrown from org.h2.message.DbException.getJdbcSQLException(DbException.java:329). Enable more detailed logging to see the entire stacktrace.
org.teiid.jdbc.TeiidSQLException: TEIID30504 h2Translator: 90022 TEIID11013:TEIID11004 Error executing statement(s): [Prepared Values: [] SQL: DELETE FROM "MEM"."TESTSCHEMA"."TABLEA" WHERE "MEM"."TESTSCHEMA"."TABLEA"."POLICYFKEYXML" NOT IN (SELECT primary_key('testSchema.tableB', 'policyID', "MEM"."TESTSCHEMA"."TABLEB"."POLICYID") AS expr FROM "MEM"."TESTSCHEMA"."TABLEB")]
at org.teiid.jdbc.TeiidSQLException.create(TeiidSQLException.java:113)
at org.teiid.jdbc.TeiidSQLException.create(TeiidSQLException.java:70)
at org.teiid.jdbc.StatementImpl.postReceiveResults(StatementImpl.java:656)
at org.teiid.jdbc.StatementImpl.access$100(StatementImpl.java:62)
at org.teiid.jdbc.StatementImpl$2.onCompletion(StatementImpl.java:512)
at org.teiid.client.util.ResultsFuture.addCompletionListener(ResultsFuture.java:139)
at org.teiid.jdbc.StatementImpl.executeSql(StatementImpl.java:508)
at org.teiid.jdbc.StatementImpl.executeUpdate(StatementImpl.java:334)
at com.ca.chorus.teiid.customfunctions.DeleteWithInlineQuery.testFailingInlineViewInDeleteQuery(DeleteWithInlineQuery.java:130)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:601)
at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:44)
at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:15)
at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:41)
at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:20)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:76)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:50)
at org.junit.runners.ParentRunner$3.run(ParentRunner.java:193)
at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:52)
at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:191)
at org.junit.runners.ParentRunner.access$000(ParentRunner.java:42)
at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:184)
at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:28)
at org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:31)
at org.junit.runners.ParentRunner.run(ParentRunner.java:236)
at org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:50)
at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:467)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:683)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:390)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:197)
Caused by: org.teiid.core.TeiidProcessingException: TEIID30504 h2Translator: 90022 TEIID11013:TEIID11004 Error executing statement(s): [Prepared Values: [] SQL: DELETE FROM "MEM"."TESTSCHEMA"."TABLEA" WHERE "MEM"."TESTSCHEMA"."TABLEA"."POLICYFKEYXML" NOT IN (SELECT primary_key('testSchema.tableB', 'policyID', "MEM"."TESTSCHEMA"."TABLEB"."POLICYID") AS expr FROM "MEM"."TESTSCHEMA"."TABLEB")]
at org.teiid.dqp.internal.process.DataTierTupleSource.exceptionOccurred(DataTierTupleSource.java:502)
at org.teiid.dqp.internal.process.DataTierTupleSource.nextTuple(DataTierTupleSource.java:289)
at org.teiid.query.processor.relational.AccessNode.nextBatchDirect(AccessNode.java:279)
at org.teiid.query.processor.relational.RelationalNode.nextBatch(RelationalNode.java:279)
at org.teiid.query.processor.relational.RelationalPlan.nextBatch(RelationalPlan.java:148)
at org.teiid.query.processor.QueryProcessor.nextBatchDirect(QueryProcessor.java:146)
at org.teiid.query.processor.QueryProcessor.nextBatch(QueryProcessor.java:112)
at org.teiid.query.processor.BatchCollector.collectTuples(BatchCollector.java:153)
at org.teiid.dqp.internal.process.RequestWorkItem.processMore(RequestWorkItem.java:382)
at org.teiid.dqp.internal.process.RequestWorkItem.process(RequestWorkItem.java:291)
at org.teiid.dqp.internal.process.AbstractWorkItem.run(AbstractWorkItem.java:51)
at org.teiid.dqp.internal.process.RequestWorkItem.run(RequestWorkItem.java:219)
at org.teiid.dqp.internal.process.DQPCore.executeRequest(DQPCore.java:386)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:601)
at org.teiid.transport.LocalServerConnection$1$1.call(LocalServerConnection.java:131)
at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334)
at java.util.concurrent.FutureTask.run(FutureTask.java:166)
at org.teiid.dqp.internal.process.DQPWorkContext.runInContext(DQPWorkContext.java:249)
at org.teiid.dqp.internal.process.DQPWorkContext.runInContext(DQPWorkContext.java:233)
at org.teiid.transport.LocalServerConnection$1.invoke(LocalServerConnection.java:129)
at $Proxy11.executeRequest(Unknown Source)
at org.teiid.jdbc.StatementImpl.execute(StatementImpl.java:631)
at org.teiid.jdbc.StatementImpl.executeSql(StatementImpl.java:506)
... 26 more
Caused by: org.teiid.translator.jdbc.JDBCExecutionException: 90022 TEIID11013:TEIID11004 Error executing statement(s): [Prepared Values: [] SQL: DELETE FROM "MEM"."TESTSCHEMA"."TABLEA" WHERE "MEM"."TESTSCHEMA"."TABLEA"."POLICYFKEYXML" NOT IN (SELECT primary_key('testSchema.tableB', 'policyID', "MEM"."TESTSCHEMA"."TABLEB"."POLICYID") AS expr FROM "MEM"."TESTSCHEMA"."TABLEB")]
at org.teiid.translator.jdbc.JDBCUpdateExecution.executeTranslatedCommand(JDBCUpdateExecution.java:211)
at org.teiid.translator.jdbc.JDBCUpdateExecution.execute(JDBCUpdateExecution.java:71)
at org.teiid.dqp.internal.datamgr.ConnectorWorkItem$1.execute(ConnectorWorkItem.java:290)
at org.teiid.dqp.internal.datamgr.ConnectorWorkItem.execute(ConnectorWorkItem.java:257)
at org.teiid.dqp.internal.process.DataTierTupleSource.getResults(DataTierTupleSource.java:425)
at org.teiid.dqp.internal.process.DataTierTupleSource.nextTuple(DataTierTupleSource.java:270)
... 50 more
Caused by: org.h2.jdbc.JdbcSQLException: Function "PRIMARY_KEY" not found; SQL statement:
DELETE FROM "MEM"."TESTSCHEMA"."TABLEA" WHERE "MEM"."TESTSCHEMA"."TABLEA"."POLICYFKEYXML" NOT IN (SELECT primary_key('testSchema.tableB', 'policyID', "MEM"."TESTSCHEMA"."TABLEB"."POLICYID") AS expr FROM "MEM"."TESTSCHEMA"."TABLEB") [90022-168]
at org.h2.message.DbException.getJdbcSQLException(DbException.java:329)
at org.h2.message.DbException.get(DbException.java:169)
at org.h2.message.DbException.get(DbException.java:146)
at org.h2.command.Parser.readJavaFunction(Parser.java:2122)
at org.h2.command.Parser.readFunction(Parser.java:2174)
at org.h2.command.Parser.readTerm(Parser.java:2476)
at org.h2.command.Parser.readFactor(Parser.java:2046)
at org.h2.command.Parser.readSum(Parser.java:2033)
at org.h2.command.Parser.readConcat(Parser.java:2006)
at org.h2.command.Parser.readCondition(Parser.java:1871)
at org.h2.command.Parser.readAnd(Parser.java:1852)
at org.h2.command.Parser.readExpression(Parser.java:1844)
at org.h2.command.Parser.parseSelectSimpleSelectPart(Parser.java:1757)
at org.h2.command.Parser.parseSelectSimple(Parser.java:1789)
at org.h2.command.Parser.parseSelectSub(Parser.java:1684)
at org.h2.command.Parser.parseSelectUnion(Parser.java:1527)
at org.h2.command.Parser.parseSelect(Parser.java:1515)
at org.h2.command.Parser.readCondition(Parser.java:1921)
at org.h2.command.Parser.readAnd(Parser.java:1852)
at org.h2.command.Parser.readExpression(Parser.java:1844)
at org.h2.command.Parser.parseDelete(Parser.java:738)
at org.h2.command.Parser.parsePrepared(Parser.java:336)
at org.h2.command.Parser.parse(Parser.java:279)
at org.h2.command.Parser.parse(Parser.java:251)
at org.h2.command.Parser.prepareCommand(Parser.java:217)
at org.h2.engine.Session.prepareLocal(Session.java:415)
at org.h2.engine.Session.prepareCommand(Session.java:364)
at org.h2.jdbc.JdbcConnection.prepareCommand(JdbcConnection.java:1109)
at org.h2.jdbc.JdbcPreparedStatement.<init>(JdbcPreparedStatement.java:74)
at org.h2.jdbc.JdbcConnection.prepareStatement(JdbcConnection.java:264)
at org.teiid.translator.jdbc.JDBCBaseExecution.getPreparedStatement(JDBCBaseExecution.java:181)
at org.teiid.translator.jdbc.JDBCUpdateExecution.executeTranslatedCommand(JDBCUpdateExecution.java:168)
... 55 more
was:
Delete queries having UDF function in it's inline view is giving issues.
Here is the problematic query and where primary_key is an UDF function.
delete from testSchema.tableA where policyfkeyxml not in (select primary_key('testSchema.tableB','policyID',policyID) as expr from testSchema.tableB)
Here is the exception that we are getting when we run above query from a test case.
WARNING: Connector worker process failed for atomic-request=tmG/kv17VS0S.0.0.0
org.teiid.translator.jdbc.JDBCExecutionException: 90022 TEIID11013:TEIID11004 Error executing statement(s): [Prepared Values: [] SQL: DELETE FROM "MEM"."TESTSCHEMA"."TABLEA" WHERE "MEM"."TESTSCHEMA"."TABLEA"."POLICYFKEYXML" NOT IN (SELECT primary_key('testSchema.tableB', 'policyID', "MEM"."TESTSCHEMA"."TABLEB"."POLICYID") AS expr FROM "MEM"."TESTSCHEMA"."TABLEB")]
at org.teiid.translator.jdbc.JDBCUpdateExecution.executeTranslatedCommand(JDBCUpdateExecution.java:211)
at org.teiid.translator.jdbc.JDBCUpdateExecution.execute(JDBCUpdateExecution.java:71)
at org.teiid.dqp.internal.datamgr.ConnectorWorkItem$1.execute(ConnectorWorkItem.java:290)
at org.teiid.dqp.internal.datamgr.ConnectorWorkItem.execute(ConnectorWorkItem.java:257)
at org.teiid.dqp.internal.process.DataTierTupleSource.getResults(DataTierTupleSource.java:425)
at org.teiid.dqp.internal.process.DataTierTupleSource.nextTuple(DataTierTupleSource.java:270)
at org.teiid.query.processor.relational.AccessNode.nextBatchDirect(AccessNode.java:279)
at org.teiid.query.processor.relational.RelationalNode.nextBatch(RelationalNode.java:279)
at org.teiid.query.processor.relational.RelationalPlan.nextBatch(RelationalPlan.java:148)
at org.teiid.query.processor.QueryProcessor.nextBatchDirect(QueryProcessor.java:146)
at org.teiid.query.processor.QueryProcessor.nextBatch(QueryProcessor.java:112)
at org.teiid.query.processor.BatchCollector.collectTuples(BatchCollector.java:153)
at org.teiid.dqp.internal.process.RequestWorkItem.processMore(RequestWorkItem.java:382)
at org.teiid.dqp.internal.process.RequestWorkItem.process(RequestWorkItem.java:291)
at org.teiid.dqp.internal.process.AbstractWorkItem.run(AbstractWorkItem.java:51)
at org.teiid.dqp.internal.process.RequestWorkItem.run(RequestWorkItem.java:219)
at org.teiid.dqp.internal.process.DQPCore.executeRequest(DQPCore.java:386)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:601)
at org.teiid.transport.LocalServerConnection$1$1.call(LocalServerConnection.java:131)
at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334)
at java.util.concurrent.FutureTask.run(FutureTask.java:166)
at org.teiid.dqp.internal.process.DQPWorkContext.runInContext(DQPWorkContext.java:249)
at org.teiid.dqp.internal.process.DQPWorkContext.runInContext(DQPWorkContext.java:233)
at org.teiid.transport.LocalServerConnection$1.invoke(LocalServerConnection.java:129)
at $Proxy11.executeRequest(Unknown Source)
at org.teiid.jdbc.StatementImpl.execute(StatementImpl.java:631)
at org.teiid.jdbc.StatementImpl.executeSql(StatementImpl.java:506)
at org.teiid.jdbc.StatementImpl.executeUpdate(StatementImpl.java:334)
at com.ca.chorus.teiid.customfunctions.DeleteWithInlineQuery.testFailingInlineViewInDeleteQuery(DeleteWithInlineQuery.java:130)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:601)
at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:44)
at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:15)
at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:41)
at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:20)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:76)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:50)
at org.junit.runners.ParentRunner$3.run(ParentRunner.java:193)
at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:52)
at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:191)
at org.junit.runners.ParentRunner.access$000(ParentRunner.java:42)
at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:184)
at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:28)
at org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:31)
at org.junit.runners.ParentRunner.run(ParentRunner.java:236)
at org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:50)
at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:467)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:683)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:390)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:197)
Caused by: org.h2.jdbc.JdbcSQLException: Function "PRIMARY_KEY" not found; SQL statement:
DELETE FROM "MEM"."TESTSCHEMA"."TABLEA" WHERE "MEM"."TESTSCHEMA"."TABLEA"."POLICYFKEYXML" NOT IN (SELECT primary_key('testSchema.tableB', 'policyID', "MEM"."TESTSCHEMA"."TABLEB"."POLICYID") AS expr FROM "MEM"."TESTSCHEMA"."TABLEB") [90022-168]
at org.h2.message.DbException.getJdbcSQLException(DbException.java:329)
at org.h2.message.DbException.get(DbException.java:169)
at org.h2.message.DbException.get(DbException.java:146)
at org.h2.command.Parser.readJavaFunction(Parser.java:2122)
at org.h2.command.Parser.readFunction(Parser.java:2174)
at org.h2.command.Parser.readTerm(Parser.java:2476)
at org.h2.command.Parser.readFactor(Parser.java:2046)
at org.h2.command.Parser.readSum(Parser.java:2033)
at org.h2.command.Parser.readConcat(Parser.java:2006)
at org.h2.command.Parser.readCondition(Parser.java:1871)
at org.h2.command.Parser.readAnd(Parser.java:1852)
at org.h2.command.Parser.readExpression(Parser.java:1844)
at org.h2.command.Parser.parseSelectSimpleSelectPart(Parser.java:1757)
at org.h2.command.Parser.parseSelectSimple(Parser.java:1789)
at org.h2.command.Parser.parseSelectSub(Parser.java:1684)
at org.h2.command.Parser.parseSelectUnion(Parser.java:1527)
at org.h2.command.Parser.parseSelect(Parser.java:1515)
at org.h2.command.Parser.readCondition(Parser.java:1921)
at org.h2.command.Parser.readAnd(Parser.java:1852)
at org.h2.command.Parser.readExpression(Parser.java:1844)
at org.h2.command.Parser.parseDelete(Parser.java:738)
at org.h2.command.Parser.parsePrepared(Parser.java:336)
at org.h2.command.Parser.parse(Parser.java:279)
at org.h2.command.Parser.parse(Parser.java:251)
at org.h2.command.Parser.prepareCommand(Parser.java:217)
at org.h2.engine.Session.prepareLocal(Session.java:415)
at org.h2.engine.Session.prepareCommand(Session.java:364)
at org.h2.jdbc.JdbcConnection.prepareCommand(JdbcConnection.java:1109)
at org.h2.jdbc.JdbcPreparedStatement.<init>(JdbcPreparedStatement.java:74)
at org.h2.jdbc.JdbcConnection.prepareStatement(JdbcConnection.java:264)
at org.teiid.translator.jdbc.JDBCBaseExecution.getPreparedStatement(JDBCBaseExecution.java:181)
at org.teiid.translator.jdbc.JDBCUpdateExecution.executeTranslatedCommand(JDBCUpdateExecution.java:168)
... 55 more
May 28, 2013 7:14:51 PM org.teiid.logging.JavaLogger log
WARNING: TEIID30020 Processing exception 'TEIID30504 h2Translator: 90022 TEIID11013:TEIID11004 Error executing statement(s): [Prepared Values: [] SQL: DELETE FROM "MEM"."TESTSCHEMA"."TABLEA" WHERE "MEM"."TESTSCHEMA"."TABLEA"."POLICYFKEYXML" NOT IN (SELECT primary_key('testSchema.tableB', 'policyID', "MEM"."TESTSCHEMA"."TABLEB"."POLICYID") AS expr FROM "MEM"."TESTSCHEMA"."TABLEB")]' for request tmG/kv17VS0S.0. Exception type org.teiid.core.TeiidProcessingException thrown from org.h2.message.DbException.getJdbcSQLException(DbException.java:329). Enable more detailed logging to see the entire stacktrace.
org.teiid.jdbc.TeiidSQLException: TEIID30504 h2Translator: 90022 TEIID11013:TEIID11004 Error executing statement(s): [Prepared Values: [] SQL: DELETE FROM "MEM"."TESTSCHEMA"."TABLEA" WHERE "MEM"."TESTSCHEMA"."TABLEA"."POLICYFKEYXML" NOT IN (SELECT primary_key('testSchema.tableB', 'policyID', "MEM"."TESTSCHEMA"."TABLEB"."POLICYID") AS expr FROM "MEM"."TESTSCHEMA"."TABLEB")]
at org.teiid.jdbc.TeiidSQLException.create(TeiidSQLException.java:113)
at org.teiid.jdbc.TeiidSQLException.create(TeiidSQLException.java:70)
at org.teiid.jdbc.StatementImpl.postReceiveResults(StatementImpl.java:656)
at org.teiid.jdbc.StatementImpl.access$100(StatementImpl.java:62)
at org.teiid.jdbc.StatementImpl$2.onCompletion(StatementImpl.java:512)
at org.teiid.client.util.ResultsFuture.addCompletionListener(ResultsFuture.java:139)
at org.teiid.jdbc.StatementImpl.executeSql(StatementImpl.java:508)
at org.teiid.jdbc.StatementImpl.executeUpdate(StatementImpl.java:334)
at com.ca.chorus.teiid.customfunctions.DeleteWithInlineQuery.testFailingInlineViewInDeleteQuery(DeleteWithInlineQuery.java:130)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:601)
at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:44)
at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:15)
at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:41)
at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:20)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:76)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:50)
at org.junit.runners.ParentRunner$3.run(ParentRunner.java:193)
at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:52)
at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:191)
at org.junit.runners.ParentRunner.access$000(ParentRunner.java:42)
at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:184)
at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:28)
at org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:31)
at org.junit.runners.ParentRunner.run(ParentRunner.java:236)
at org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:50)
at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:467)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:683)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:390)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:197)
Caused by: org.teiid.core.TeiidProcessingException: TEIID30504 h2Translator: 90022 TEIID11013:TEIID11004 Error executing statement(s): [Prepared Values: [] SQL: DELETE FROM "MEM"."TESTSCHEMA"."TABLEA" WHERE "MEM"."TESTSCHEMA"."TABLEA"."POLICYFKEYXML" NOT IN (SELECT primary_key('testSchema.tableB', 'policyID', "MEM"."TESTSCHEMA"."TABLEB"."POLICYID") AS expr FROM "MEM"."TESTSCHEMA"."TABLEB")]
at org.teiid.dqp.internal.process.DataTierTupleSource.exceptionOccurred(DataTierTupleSource.java:502)
at org.teiid.dqp.internal.process.DataTierTupleSource.nextTuple(DataTierTupleSource.java:289)
at org.teiid.query.processor.relational.AccessNode.nextBatchDirect(AccessNode.java:279)
at org.teiid.query.processor.relational.RelationalNode.nextBatch(RelationalNode.java:279)
at org.teiid.query.processor.relational.RelationalPlan.nextBatch(RelationalPlan.java:148)
at org.teiid.query.processor.QueryProcessor.nextBatchDirect(QueryProcessor.java:146)
at org.teiid.query.processor.QueryProcessor.nextBatch(QueryProcessor.java:112)
at org.teiid.query.processor.BatchCollector.collectTuples(BatchCollector.java:153)
at org.teiid.dqp.internal.process.RequestWorkItem.processMore(RequestWorkItem.java:382)
at org.teiid.dqp.internal.process.RequestWorkItem.process(RequestWorkItem.java:291)
at org.teiid.dqp.internal.process.AbstractWorkItem.run(AbstractWorkItem.java:51)
at org.teiid.dqp.internal.process.RequestWorkItem.run(RequestWorkItem.java:219)
at org.teiid.dqp.internal.process.DQPCore.executeRequest(DQPCore.java:386)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:601)
at org.teiid.transport.LocalServerConnection$1$1.call(LocalServerConnection.java:131)
at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334)
at java.util.concurrent.FutureTask.run(FutureTask.java:166)
at org.teiid.dqp.internal.process.DQPWorkContext.runInContext(DQPWorkContext.java:249)
at org.teiid.dqp.internal.process.DQPWorkContext.runInContext(DQPWorkContext.java:233)
at org.teiid.transport.LocalServerConnection$1.invoke(LocalServerConnection.java:129)
at $Proxy11.executeRequest(Unknown Source)
at org.teiid.jdbc.StatementImpl.execute(StatementImpl.java:631)
at org.teiid.jdbc.StatementImpl.executeSql(StatementImpl.java:506)
... 26 more
Caused by: org.teiid.translator.jdbc.JDBCExecutionException: 90022 TEIID11013:TEIID11004 Error executing statement(s): [Prepared Values: [] SQL: DELETE FROM "MEM"."TESTSCHEMA"."TABLEA" WHERE "MEM"."TESTSCHEMA"."TABLEA"."POLICYFKEYXML" NOT IN (SELECT primary_key('testSchema.tableB', 'policyID', "MEM"."TESTSCHEMA"."TABLEB"."POLICYID") AS expr FROM "MEM"."TESTSCHEMA"."TABLEB")]
at org.teiid.translator.jdbc.JDBCUpdateExecution.executeTranslatedCommand(JDBCUpdateExecution.java:211)
at org.teiid.translator.jdbc.JDBCUpdateExecution.execute(JDBCUpdateExecution.java:71)
at org.teiid.dqp.internal.datamgr.ConnectorWorkItem$1.execute(ConnectorWorkItem.java:290)
at org.teiid.dqp.internal.datamgr.ConnectorWorkItem.execute(ConnectorWorkItem.java:257)
at org.teiid.dqp.internal.process.DataTierTupleSource.getResults(DataTierTupleSource.java:425)
at org.teiid.dqp.internal.process.DataTierTupleSource.nextTuple(DataTierTupleSource.java:270)
... 50 more
Caused by: org.h2.jdbc.JdbcSQLException: Function "PRIMARY_KEY" not found; SQL statement:
DELETE FROM "MEM"."TESTSCHEMA"."TABLEA" WHERE "MEM"."TESTSCHEMA"."TABLEA"."POLICYFKEYXML" NOT IN (SELECT primary_key('testSchema.tableB', 'policyID', "MEM"."TESTSCHEMA"."TABLEB"."POLICYID") AS expr FROM "MEM"."TESTSCHEMA"."TABLEB") [90022-168]
at org.h2.message.DbException.getJdbcSQLException(DbException.java:329)
at org.h2.message.DbException.get(DbException.java:169)
at org.h2.message.DbException.get(DbException.java:146)
at org.h2.command.Parser.readJavaFunction(Parser.java:2122)
at org.h2.command.Parser.readFunction(Parser.java:2174)
at org.h2.command.Parser.readTerm(Parser.java:2476)
at org.h2.command.Parser.readFactor(Parser.java:2046)
at org.h2.command.Parser.readSum(Parser.java:2033)
at org.h2.command.Parser.readConcat(Parser.java:2006)
at org.h2.command.Parser.readCondition(Parser.java:1871)
at org.h2.command.Parser.readAnd(Parser.java:1852)
at org.h2.command.Parser.readExpression(Parser.java:1844)
at org.h2.command.Parser.parseSelectSimpleSelectPart(Parser.java:1757)
at org.h2.command.Parser.parseSelectSimple(Parser.java:1789)
at org.h2.command.Parser.parseSelectSub(Parser.java:1684)
at org.h2.command.Parser.parseSelectUnion(Parser.java:1527)
at org.h2.command.Parser.parseSelect(Parser.java:1515)
at org.h2.command.Parser.readCondition(Parser.java:1921)
at org.h2.command.Parser.readAnd(Parser.java:1852)
at org.h2.command.Parser.readExpression(Parser.java:1844)
at org.h2.command.Parser.parseDelete(Parser.java:738)
at org.h2.command.Parser.parsePrepared(Parser.java:336)
at org.h2.command.Parser.parse(Parser.java:279)
at org.h2.command.Parser.parse(Parser.java:251)
at org.h2.command.Parser.prepareCommand(Parser.java:217)
at org.h2.engine.Session.prepareLocal(Session.java:415)
at org.h2.engine.Session.prepareCommand(Session.java:364)
at org.h2.jdbc.JdbcConnection.prepareCommand(JdbcConnection.java:1109)
at org.h2.jdbc.JdbcPreparedStatement.<init>(JdbcPreparedStatement.java:74)
at org.h2.jdbc.JdbcConnection.prepareStatement(JdbcConnection.java:264)
at org.teiid.translator.jdbc.JDBCBaseExecution.getPreparedStatement(JDBCBaseExecution.java:181)
at org.teiid.translator.jdbc.JDBCUpdateExecution.executeTranslatedCommand(JDBCUpdateExecution.java:168)
... 55 more
> Delete statement with having UDF functions in its inline view is giving issues
> ------------------------------------------------------------------------------
>
> Key: TEIID-2518
> URL: https://issues.jboss.org/browse/TEIID-2518
> Project: Teiid
> Issue Type: Bug
> Components: Query Engine
> Affects Versions: 8.1
> Reporter: Rajasekhar Kota
> Assignee: Steven Hawkins
> Priority: Critical
> Attachments: DeleteWithInlineQuery.java, ErrorMessage.txt, TeiidUDFExecutionFactory.java
>
>
> Delete queries having UDF function in it's inline view is giving issues.
> Please find the attached test cases to reproduce the issue.
> Here is the problematic query and where primary_key is an UDF function.
> delete from testSchema.tableA where policyfkeyxml not in (select primary_key('testSchema.tableB','policyID',policyID) as expr from testSchema.tableB)
> Here is the exception that we are getting when we run above query from a test case.
> WARNING: Connector worker process failed for atomic-request=tmG/kv17VS0S.0.0.0
> org.teiid.translator.jdbc.JDBCExecutionException: 90022 TEIID11013:TEIID11004 Error executing statement(s): [Prepared Values: [] SQL: DELETE FROM "MEM"."TESTSCHEMA"."TABLEA" WHERE "MEM"."TESTSCHEMA"."TABLEA"."POLICYFKEYXML" NOT IN (SELECT primary_key('testSchema.tableB', 'policyID', "MEM"."TESTSCHEMA"."TABLEB"."POLICYID") AS expr FROM "MEM"."TESTSCHEMA"."TABLEB")]
> at org.teiid.translator.jdbc.JDBCUpdateExecution.executeTranslatedCommand(JDBCUpdateExecution.java:211)
> at org.teiid.translator.jdbc.JDBCUpdateExecution.execute(JDBCUpdateExecution.java:71)
> at org.teiid.dqp.internal.datamgr.ConnectorWorkItem$1.execute(ConnectorWorkItem.java:290)
> at org.teiid.dqp.internal.datamgr.ConnectorWorkItem.execute(ConnectorWorkItem.java:257)
> at org.teiid.dqp.internal.process.DataTierTupleSource.getResults(DataTierTupleSource.java:425)
> at org.teiid.dqp.internal.process.DataTierTupleSource.nextTuple(DataTierTupleSource.java:270)
> at org.teiid.query.processor.relational.AccessNode.nextBatchDirect(AccessNode.java:279)
> at org.teiid.query.processor.relational.RelationalNode.nextBatch(RelationalNode.java:279)
> at org.teiid.query.processor.relational.RelationalPlan.nextBatch(RelationalPlan.java:148)
> at org.teiid.query.processor.QueryProcessor.nextBatchDirect(QueryProcessor.java:146)
> at org.teiid.query.processor.QueryProcessor.nextBatch(QueryProcessor.java:112)
> at org.teiid.query.processor.BatchCollector.collectTuples(BatchCollector.java:153)
> at org.teiid.dqp.internal.process.RequestWorkItem.processMore(RequestWorkItem.java:382)
> at org.teiid.dqp.internal.process.RequestWorkItem.process(RequestWorkItem.java:291)
> at org.teiid.dqp.internal.process.AbstractWorkItem.run(AbstractWorkItem.java:51)
> at org.teiid.dqp.internal.process.RequestWorkItem.run(RequestWorkItem.java:219)
> at org.teiid.dqp.internal.process.DQPCore.executeRequest(DQPCore.java:386)
> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
> at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
> at java.lang.reflect.Method.invoke(Method.java:601)
> at org.teiid.transport.LocalServerConnection$1$1.call(LocalServerConnection.java:131)
> at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334)
> at java.util.concurrent.FutureTask.run(FutureTask.java:166)
> at org.teiid.dqp.internal.process.DQPWorkContext.runInContext(DQPWorkContext.java:249)
> at org.teiid.dqp.internal.process.DQPWorkContext.runInContext(DQPWorkContext.java:233)
> at org.teiid.transport.LocalServerConnection$1.invoke(LocalServerConnection.java:129)
> at $Proxy11.executeRequest(Unknown Source)
> at org.teiid.jdbc.StatementImpl.execute(StatementImpl.java:631)
> at org.teiid.jdbc.StatementImpl.executeSql(StatementImpl.java:506)
> at org.teiid.jdbc.StatementImpl.executeUpdate(StatementImpl.java:334)
> at com.ca.chorus.teiid.customfunctions.DeleteWithInlineQuery.testFailingInlineViewInDeleteQuery(DeleteWithInlineQuery.java:130)
> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
> at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
> at java.lang.reflect.Method.invoke(Method.java:601)
> at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:44)
> at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:15)
> at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:41)
> at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:20)
> at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:76)
> at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:50)
> at org.junit.runners.ParentRunner$3.run(ParentRunner.java:193)
> at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:52)
> at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:191)
> at org.junit.runners.ParentRunner.access$000(ParentRunner.java:42)
> at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:184)
> at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:28)
> at org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:31)
> at org.junit.runners.ParentRunner.run(ParentRunner.java:236)
> at org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:50)
> at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)
> at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:467)
> at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:683)
> at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:390)
> at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:197)
> Caused by: org.h2.jdbc.JdbcSQLException: Function "PRIMARY_KEY" not found; SQL statement:
> DELETE FROM "MEM"."TESTSCHEMA"."TABLEA" WHERE "MEM"."TESTSCHEMA"."TABLEA"."POLICYFKEYXML" NOT IN (SELECT primary_key('testSchema.tableB', 'policyID', "MEM"."TESTSCHEMA"."TABLEB"."POLICYID") AS expr FROM "MEM"."TESTSCHEMA"."TABLEB") [90022-168]
> at org.h2.message.DbException.getJdbcSQLException(DbException.java:329)
> at org.h2.message.DbException.get(DbException.java:169)
> at org.h2.message.DbException.get(DbException.java:146)
> at org.h2.command.Parser.readJavaFunction(Parser.java:2122)
> at org.h2.command.Parser.readFunction(Parser.java:2174)
> at org.h2.command.Parser.readTerm(Parser.java:2476)
> at org.h2.command.Parser.readFactor(Parser.java:2046)
> at org.h2.command.Parser.readSum(Parser.java:2033)
> at org.h2.command.Parser.readConcat(Parser.java:2006)
> at org.h2.command.Parser.readCondition(Parser.java:1871)
> at org.h2.command.Parser.readAnd(Parser.java:1852)
> at org.h2.command.Parser.readExpression(Parser.java:1844)
> at org.h2.command.Parser.parseSelectSimpleSelectPart(Parser.java:1757)
> at org.h2.command.Parser.parseSelectSimple(Parser.java:1789)
> at org.h2.command.Parser.parseSelectSub(Parser.java:1684)
> at org.h2.command.Parser.parseSelectUnion(Parser.java:1527)
> at org.h2.command.Parser.parseSelect(Parser.java:1515)
> at org.h2.command.Parser.readCondition(Parser.java:1921)
> at org.h2.command.Parser.readAnd(Parser.java:1852)
> at org.h2.command.Parser.readExpression(Parser.java:1844)
> at org.h2.command.Parser.parseDelete(Parser.java:738)
> at org.h2.command.Parser.parsePrepared(Parser.java:336)
> at org.h2.command.Parser.parse(Parser.java:279)
> at org.h2.command.Parser.parse(Parser.java:251)
> at org.h2.command.Parser.prepareCommand(Parser.java:217)
> at org.h2.engine.Session.prepareLocal(Session.java:415)
> at org.h2.engine.Session.prepareCommand(Session.java:364)
> at org.h2.jdbc.JdbcConnection.prepareCommand(JdbcConnection.java:1109)
> at org.h2.jdbc.JdbcPreparedStatement.<init>(JdbcPreparedStatement.java:74)
> at org.h2.jdbc.JdbcConnection.prepareStatement(JdbcConnection.java:264)
> at org.teiid.translator.jdbc.JDBCBaseExecution.getPreparedStatement(JDBCBaseExecution.java:181)
> at org.teiid.translator.jdbc.JDBCUpdateExecution.executeTranslatedCommand(JDBCUpdateExecution.java:168)
> ... 55 more
> May 28, 2013 7:14:51 PM org.teiid.logging.JavaLogger log
> WARNING: TEIID30020 Processing exception 'TEIID30504 h2Translator: 90022 TEIID11013:TEIID11004 Error executing statement(s): [Prepared Values: [] SQL: DELETE FROM "MEM"."TESTSCHEMA"."TABLEA" WHERE "MEM"."TESTSCHEMA"."TABLEA"."POLICYFKEYXML" NOT IN (SELECT primary_key('testSchema.tableB', 'policyID', "MEM"."TESTSCHEMA"."TABLEB"."POLICYID") AS expr FROM "MEM"."TESTSCHEMA"."TABLEB")]' for request tmG/kv17VS0S.0. Exception type org.teiid.core.TeiidProcessingException thrown from org.h2.message.DbException.getJdbcSQLException(DbException.java:329). Enable more detailed logging to see the entire stacktrace.
> org.teiid.jdbc.TeiidSQLException: TEIID30504 h2Translator: 90022 TEIID11013:TEIID11004 Error executing statement(s): [Prepared Values: [] SQL: DELETE FROM "MEM"."TESTSCHEMA"."TABLEA" WHERE "MEM"."TESTSCHEMA"."TABLEA"."POLICYFKEYXML" NOT IN (SELECT primary_key('testSchema.tableB', 'policyID', "MEM"."TESTSCHEMA"."TABLEB"."POLICYID") AS expr FROM "MEM"."TESTSCHEMA"."TABLEB")]
> at org.teiid.jdbc.TeiidSQLException.create(TeiidSQLException.java:113)
> at org.teiid.jdbc.TeiidSQLException.create(TeiidSQLException.java:70)
> at org.teiid.jdbc.StatementImpl.postReceiveResults(StatementImpl.java:656)
> at org.teiid.jdbc.StatementImpl.access$100(StatementImpl.java:62)
> at org.teiid.jdbc.StatementImpl$2.onCompletion(StatementImpl.java:512)
> at org.teiid.client.util.ResultsFuture.addCompletionListener(ResultsFuture.java:139)
> at org.teiid.jdbc.StatementImpl.executeSql(StatementImpl.java:508)
> at org.teiid.jdbc.StatementImpl.executeUpdate(StatementImpl.java:334)
> at com.ca.chorus.teiid.customfunctions.DeleteWithInlineQuery.testFailingInlineViewInDeleteQuery(DeleteWithInlineQuery.java:130)
> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
> at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
> at java.lang.reflect.Method.invoke(Method.java:601)
> at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:44)
> at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:15)
> at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:41)
> at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:20)
> at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:76)
> at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:50)
> at org.junit.runners.ParentRunner$3.run(ParentRunner.java:193)
> at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:52)
> at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:191)
> at org.junit.runners.ParentRunner.access$000(ParentRunner.java:42)
> at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:184)
> at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:28)
> at org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:31)
> at org.junit.runners.ParentRunner.run(ParentRunner.java:236)
> at org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:50)
> at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)
> at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:467)
> at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:683)
> at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:390)
> at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:197)
> Caused by: org.teiid.core.TeiidProcessingException: TEIID30504 h2Translator: 90022 TEIID11013:TEIID11004 Error executing statement(s): [Prepared Values: [] SQL: DELETE FROM "MEM"."TESTSCHEMA"."TABLEA" WHERE "MEM"."TESTSCHEMA"."TABLEA"."POLICYFKEYXML" NOT IN (SELECT primary_key('testSchema.tableB', 'policyID', "MEM"."TESTSCHEMA"."TABLEB"."POLICYID") AS expr FROM "MEM"."TESTSCHEMA"."TABLEB")]
> at org.teiid.dqp.internal.process.DataTierTupleSource.exceptionOccurred(DataTierTupleSource.java:502)
> at org.teiid.dqp.internal.process.DataTierTupleSource.nextTuple(DataTierTupleSource.java:289)
> at org.teiid.query.processor.relational.AccessNode.nextBatchDirect(AccessNode.java:279)
> at org.teiid.query.processor.relational.RelationalNode.nextBatch(RelationalNode.java:279)
> at org.teiid.query.processor.relational.RelationalPlan.nextBatch(RelationalPlan.java:148)
> at org.teiid.query.processor.QueryProcessor.nextBatchDirect(QueryProcessor.java:146)
> at org.teiid.query.processor.QueryProcessor.nextBatch(QueryProcessor.java:112)
> at org.teiid.query.processor.BatchCollector.collectTuples(BatchCollector.java:153)
> at org.teiid.dqp.internal.process.RequestWorkItem.processMore(RequestWorkItem.java:382)
> at org.teiid.dqp.internal.process.RequestWorkItem.process(RequestWorkItem.java:291)
> at org.teiid.dqp.internal.process.AbstractWorkItem.run(AbstractWorkItem.java:51)
> at org.teiid.dqp.internal.process.RequestWorkItem.run(RequestWorkItem.java:219)
> at org.teiid.dqp.internal.process.DQPCore.executeRequest(DQPCore.java:386)
> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
> at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
> at java.lang.reflect.Method.invoke(Method.java:601)
> at org.teiid.transport.LocalServerConnection$1$1.call(LocalServerConnection.java:131)
> at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334)
> at java.util.concurrent.FutureTask.run(FutureTask.java:166)
> at org.teiid.dqp.internal.process.DQPWorkContext.runInContext(DQPWorkContext.java:249)
> at org.teiid.dqp.internal.process.DQPWorkContext.runInContext(DQPWorkContext.java:233)
> at org.teiid.transport.LocalServerConnection$1.invoke(LocalServerConnection.java:129)
> at $Proxy11.executeRequest(Unknown Source)
> at org.teiid.jdbc.StatementImpl.execute(StatementImpl.java:631)
> at org.teiid.jdbc.StatementImpl.executeSql(StatementImpl.java:506)
> ... 26 more
> Caused by: org.teiid.translator.jdbc.JDBCExecutionException: 90022 TEIID11013:TEIID11004 Error executing statement(s): [Prepared Values: [] SQL: DELETE FROM "MEM"."TESTSCHEMA"."TABLEA" WHERE "MEM"."TESTSCHEMA"."TABLEA"."POLICYFKEYXML" NOT IN (SELECT primary_key('testSchema.tableB', 'policyID', "MEM"."TESTSCHEMA"."TABLEB"."POLICYID") AS expr FROM "MEM"."TESTSCHEMA"."TABLEB")]
> at org.teiid.translator.jdbc.JDBCUpdateExecution.executeTranslatedCommand(JDBCUpdateExecution.java:211)
> at org.teiid.translator.jdbc.JDBCUpdateExecution.execute(JDBCUpdateExecution.java:71)
> at org.teiid.dqp.internal.datamgr.ConnectorWorkItem$1.execute(ConnectorWorkItem.java:290)
> at org.teiid.dqp.internal.datamgr.ConnectorWorkItem.execute(ConnectorWorkItem.java:257)
> at org.teiid.dqp.internal.process.DataTierTupleSource.getResults(DataTierTupleSource.java:425)
> at org.teiid.dqp.internal.process.DataTierTupleSource.nextTuple(DataTierTupleSource.java:270)
> ... 50 more
> Caused by: org.h2.jdbc.JdbcSQLException: Function "PRIMARY_KEY" not found; SQL statement:
> DELETE FROM "MEM"."TESTSCHEMA"."TABLEA" WHERE "MEM"."TESTSCHEMA"."TABLEA"."POLICYFKEYXML" NOT IN (SELECT primary_key('testSchema.tableB', 'policyID', "MEM"."TESTSCHEMA"."TABLEB"."POLICYID") AS expr FROM "MEM"."TESTSCHEMA"."TABLEB") [90022-168]
> at org.h2.message.DbException.getJdbcSQLException(DbException.java:329)
> at org.h2.message.DbException.get(DbException.java:169)
> at org.h2.message.DbException.get(DbException.java:146)
> at org.h2.command.Parser.readJavaFunction(Parser.java:2122)
> at org.h2.command.Parser.readFunction(Parser.java:2174)
> at org.h2.command.Parser.readTerm(Parser.java:2476)
> at org.h2.command.Parser.readFactor(Parser.java:2046)
> at org.h2.command.Parser.readSum(Parser.java:2033)
> at org.h2.command.Parser.readConcat(Parser.java:2006)
> at org.h2.command.Parser.readCondition(Parser.java:1871)
> at org.h2.command.Parser.readAnd(Parser.java:1852)
> at org.h2.command.Parser.readExpression(Parser.java:1844)
> at org.h2.command.Parser.parseSelectSimpleSelectPart(Parser.java:1757)
> at org.h2.command.Parser.parseSelectSimple(Parser.java:1789)
> at org.h2.command.Parser.parseSelectSub(Parser.java:1684)
> at org.h2.command.Parser.parseSelectUnion(Parser.java:1527)
> at org.h2.command.Parser.parseSelect(Parser.java:1515)
> at org.h2.command.Parser.readCondition(Parser.java:1921)
> at org.h2.command.Parser.readAnd(Parser.java:1852)
> at org.h2.command.Parser.readExpression(Parser.java:1844)
> at org.h2.command.Parser.parseDelete(Parser.java:738)
> at org.h2.command.Parser.parsePrepared(Parser.java:336)
> at org.h2.command.Parser.parse(Parser.java:279)
> at org.h2.command.Parser.parse(Parser.java:251)
> at org.h2.command.Parser.prepareCommand(Parser.java:217)
> at org.h2.engine.Session.prepareLocal(Session.java:415)
> at org.h2.engine.Session.prepareCommand(Session.java:364)
> at org.h2.jdbc.JdbcConnection.prepareCommand(JdbcConnection.java:1109)
> at org.h2.jdbc.JdbcPreparedStatement.<init>(JdbcPreparedStatement.java:74)
> at org.h2.jdbc.JdbcConnection.prepareStatement(JdbcConnection.java:264)
> at org.teiid.translator.jdbc.JDBCBaseExecution.getPreparedStatement(JDBCBaseExecution.java:181)
> at org.teiid.translator.jdbc.JDBCUpdateExecution.executeTranslatedCommand(JDBCUpdateExecution.java:168)
> ... 55 more
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira
12 years, 4 months
[JBoss JIRA] (TEIID-2518) Delete statement with having UDF functions in its inline view is giving issues
by Rajasekhar Kota (JIRA)
[ https://issues.jboss.org/browse/TEIID-2518?page=com.atlassian.jira.plugin... ]
Rajasekhar Kota updated TEIID-2518:
-----------------------------------
Attachment: DeleteWithInlineQuery.java
ErrorMessage.txt
TeiidUDFExecutionFactory.java
Test cases and the error message are attached here.
> Delete statement with having UDF functions in its inline view is giving issues
> ------------------------------------------------------------------------------
>
> Key: TEIID-2518
> URL: https://issues.jboss.org/browse/TEIID-2518
> Project: Teiid
> Issue Type: Bug
> Components: Query Engine
> Affects Versions: 8.1
> Reporter: Rajasekhar Kota
> Assignee: Steven Hawkins
> Priority: Critical
> Attachments: DeleteWithInlineQuery.java, ErrorMessage.txt, TeiidUDFExecutionFactory.java
>
>
> Delete queries having UDF function in it's inline view is giving issues.
> Here is the problematic query and where primary_key is an UDF function.
> delete from testSchema.tableA where policyfkeyxml not in (select primary_key('testSchema.tableB','policyID',policyID) as expr from testSchema.tableB)
> Here is the exception that we are getting when we run above query from a test case.
> WARNING: Connector worker process failed for atomic-request=tmG/kv17VS0S.0.0.0
> org.teiid.translator.jdbc.JDBCExecutionException: 90022 TEIID11013:TEIID11004 Error executing statement(s): [Prepared Values: [] SQL: DELETE FROM "MEM"."TESTSCHEMA"."TABLEA" WHERE "MEM"."TESTSCHEMA"."TABLEA"."POLICYFKEYXML" NOT IN (SELECT primary_key('testSchema.tableB', 'policyID', "MEM"."TESTSCHEMA"."TABLEB"."POLICYID") AS expr FROM "MEM"."TESTSCHEMA"."TABLEB")]
> at org.teiid.translator.jdbc.JDBCUpdateExecution.executeTranslatedCommand(JDBCUpdateExecution.java:211)
> at org.teiid.translator.jdbc.JDBCUpdateExecution.execute(JDBCUpdateExecution.java:71)
> at org.teiid.dqp.internal.datamgr.ConnectorWorkItem$1.execute(ConnectorWorkItem.java:290)
> at org.teiid.dqp.internal.datamgr.ConnectorWorkItem.execute(ConnectorWorkItem.java:257)
> at org.teiid.dqp.internal.process.DataTierTupleSource.getResults(DataTierTupleSource.java:425)
> at org.teiid.dqp.internal.process.DataTierTupleSource.nextTuple(DataTierTupleSource.java:270)
> at org.teiid.query.processor.relational.AccessNode.nextBatchDirect(AccessNode.java:279)
> at org.teiid.query.processor.relational.RelationalNode.nextBatch(RelationalNode.java:279)
> at org.teiid.query.processor.relational.RelationalPlan.nextBatch(RelationalPlan.java:148)
> at org.teiid.query.processor.QueryProcessor.nextBatchDirect(QueryProcessor.java:146)
> at org.teiid.query.processor.QueryProcessor.nextBatch(QueryProcessor.java:112)
> at org.teiid.query.processor.BatchCollector.collectTuples(BatchCollector.java:153)
> at org.teiid.dqp.internal.process.RequestWorkItem.processMore(RequestWorkItem.java:382)
> at org.teiid.dqp.internal.process.RequestWorkItem.process(RequestWorkItem.java:291)
> at org.teiid.dqp.internal.process.AbstractWorkItem.run(AbstractWorkItem.java:51)
> at org.teiid.dqp.internal.process.RequestWorkItem.run(RequestWorkItem.java:219)
> at org.teiid.dqp.internal.process.DQPCore.executeRequest(DQPCore.java:386)
> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
> at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
> at java.lang.reflect.Method.invoke(Method.java:601)
> at org.teiid.transport.LocalServerConnection$1$1.call(LocalServerConnection.java:131)
> at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334)
> at java.util.concurrent.FutureTask.run(FutureTask.java:166)
> at org.teiid.dqp.internal.process.DQPWorkContext.runInContext(DQPWorkContext.java:249)
> at org.teiid.dqp.internal.process.DQPWorkContext.runInContext(DQPWorkContext.java:233)
> at org.teiid.transport.LocalServerConnection$1.invoke(LocalServerConnection.java:129)
> at $Proxy11.executeRequest(Unknown Source)
> at org.teiid.jdbc.StatementImpl.execute(StatementImpl.java:631)
> at org.teiid.jdbc.StatementImpl.executeSql(StatementImpl.java:506)
> at org.teiid.jdbc.StatementImpl.executeUpdate(StatementImpl.java:334)
> at com.ca.chorus.teiid.customfunctions.DeleteWithInlineQuery.testFailingInlineViewInDeleteQuery(DeleteWithInlineQuery.java:130)
> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
> at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
> at java.lang.reflect.Method.invoke(Method.java:601)
> at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:44)
> at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:15)
> at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:41)
> at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:20)
> at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:76)
> at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:50)
> at org.junit.runners.ParentRunner$3.run(ParentRunner.java:193)
> at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:52)
> at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:191)
> at org.junit.runners.ParentRunner.access$000(ParentRunner.java:42)
> at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:184)
> at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:28)
> at org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:31)
> at org.junit.runners.ParentRunner.run(ParentRunner.java:236)
> at org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:50)
> at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)
> at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:467)
> at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:683)
> at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:390)
> at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:197)
> Caused by: org.h2.jdbc.JdbcSQLException: Function "PRIMARY_KEY" not found; SQL statement:
> DELETE FROM "MEM"."TESTSCHEMA"."TABLEA" WHERE "MEM"."TESTSCHEMA"."TABLEA"."POLICYFKEYXML" NOT IN (SELECT primary_key('testSchema.tableB', 'policyID', "MEM"."TESTSCHEMA"."TABLEB"."POLICYID") AS expr FROM "MEM"."TESTSCHEMA"."TABLEB") [90022-168]
> at org.h2.message.DbException.getJdbcSQLException(DbException.java:329)
> at org.h2.message.DbException.get(DbException.java:169)
> at org.h2.message.DbException.get(DbException.java:146)
> at org.h2.command.Parser.readJavaFunction(Parser.java:2122)
> at org.h2.command.Parser.readFunction(Parser.java:2174)
> at org.h2.command.Parser.readTerm(Parser.java:2476)
> at org.h2.command.Parser.readFactor(Parser.java:2046)
> at org.h2.command.Parser.readSum(Parser.java:2033)
> at org.h2.command.Parser.readConcat(Parser.java:2006)
> at org.h2.command.Parser.readCondition(Parser.java:1871)
> at org.h2.command.Parser.readAnd(Parser.java:1852)
> at org.h2.command.Parser.readExpression(Parser.java:1844)
> at org.h2.command.Parser.parseSelectSimpleSelectPart(Parser.java:1757)
> at org.h2.command.Parser.parseSelectSimple(Parser.java:1789)
> at org.h2.command.Parser.parseSelectSub(Parser.java:1684)
> at org.h2.command.Parser.parseSelectUnion(Parser.java:1527)
> at org.h2.command.Parser.parseSelect(Parser.java:1515)
> at org.h2.command.Parser.readCondition(Parser.java:1921)
> at org.h2.command.Parser.readAnd(Parser.java:1852)
> at org.h2.command.Parser.readExpression(Parser.java:1844)
> at org.h2.command.Parser.parseDelete(Parser.java:738)
> at org.h2.command.Parser.parsePrepared(Parser.java:336)
> at org.h2.command.Parser.parse(Parser.java:279)
> at org.h2.command.Parser.parse(Parser.java:251)
> at org.h2.command.Parser.prepareCommand(Parser.java:217)
> at org.h2.engine.Session.prepareLocal(Session.java:415)
> at org.h2.engine.Session.prepareCommand(Session.java:364)
> at org.h2.jdbc.JdbcConnection.prepareCommand(JdbcConnection.java:1109)
> at org.h2.jdbc.JdbcPreparedStatement.<init>(JdbcPreparedStatement.java:74)
> at org.h2.jdbc.JdbcConnection.prepareStatement(JdbcConnection.java:264)
> at org.teiid.translator.jdbc.JDBCBaseExecution.getPreparedStatement(JDBCBaseExecution.java:181)
> at org.teiid.translator.jdbc.JDBCUpdateExecution.executeTranslatedCommand(JDBCUpdateExecution.java:168)
> ... 55 more
> May 28, 2013 7:14:51 PM org.teiid.logging.JavaLogger log
> WARNING: TEIID30020 Processing exception 'TEIID30504 h2Translator: 90022 TEIID11013:TEIID11004 Error executing statement(s): [Prepared Values: [] SQL: DELETE FROM "MEM"."TESTSCHEMA"."TABLEA" WHERE "MEM"."TESTSCHEMA"."TABLEA"."POLICYFKEYXML" NOT IN (SELECT primary_key('testSchema.tableB', 'policyID', "MEM"."TESTSCHEMA"."TABLEB"."POLICYID") AS expr FROM "MEM"."TESTSCHEMA"."TABLEB")]' for request tmG/kv17VS0S.0. Exception type org.teiid.core.TeiidProcessingException thrown from org.h2.message.DbException.getJdbcSQLException(DbException.java:329). Enable more detailed logging to see the entire stacktrace.
> org.teiid.jdbc.TeiidSQLException: TEIID30504 h2Translator: 90022 TEIID11013:TEIID11004 Error executing statement(s): [Prepared Values: [] SQL: DELETE FROM "MEM"."TESTSCHEMA"."TABLEA" WHERE "MEM"."TESTSCHEMA"."TABLEA"."POLICYFKEYXML" NOT IN (SELECT primary_key('testSchema.tableB', 'policyID', "MEM"."TESTSCHEMA"."TABLEB"."POLICYID") AS expr FROM "MEM"."TESTSCHEMA"."TABLEB")]
> at org.teiid.jdbc.TeiidSQLException.create(TeiidSQLException.java:113)
> at org.teiid.jdbc.TeiidSQLException.create(TeiidSQLException.java:70)
> at org.teiid.jdbc.StatementImpl.postReceiveResults(StatementImpl.java:656)
> at org.teiid.jdbc.StatementImpl.access$100(StatementImpl.java:62)
> at org.teiid.jdbc.StatementImpl$2.onCompletion(StatementImpl.java:512)
> at org.teiid.client.util.ResultsFuture.addCompletionListener(ResultsFuture.java:139)
> at org.teiid.jdbc.StatementImpl.executeSql(StatementImpl.java:508)
> at org.teiid.jdbc.StatementImpl.executeUpdate(StatementImpl.java:334)
> at com.ca.chorus.teiid.customfunctions.DeleteWithInlineQuery.testFailingInlineViewInDeleteQuery(DeleteWithInlineQuery.java:130)
> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
> at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
> at java.lang.reflect.Method.invoke(Method.java:601)
> at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:44)
> at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:15)
> at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:41)
> at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:20)
> at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:76)
> at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:50)
> at org.junit.runners.ParentRunner$3.run(ParentRunner.java:193)
> at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:52)
> at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:191)
> at org.junit.runners.ParentRunner.access$000(ParentRunner.java:42)
> at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:184)
> at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:28)
> at org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:31)
> at org.junit.runners.ParentRunner.run(ParentRunner.java:236)
> at org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:50)
> at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)
> at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:467)
> at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:683)
> at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:390)
> at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:197)
> Caused by: org.teiid.core.TeiidProcessingException: TEIID30504 h2Translator: 90022 TEIID11013:TEIID11004 Error executing statement(s): [Prepared Values: [] SQL: DELETE FROM "MEM"."TESTSCHEMA"."TABLEA" WHERE "MEM"."TESTSCHEMA"."TABLEA"."POLICYFKEYXML" NOT IN (SELECT primary_key('testSchema.tableB', 'policyID', "MEM"."TESTSCHEMA"."TABLEB"."POLICYID") AS expr FROM "MEM"."TESTSCHEMA"."TABLEB")]
> at org.teiid.dqp.internal.process.DataTierTupleSource.exceptionOccurred(DataTierTupleSource.java:502)
> at org.teiid.dqp.internal.process.DataTierTupleSource.nextTuple(DataTierTupleSource.java:289)
> at org.teiid.query.processor.relational.AccessNode.nextBatchDirect(AccessNode.java:279)
> at org.teiid.query.processor.relational.RelationalNode.nextBatch(RelationalNode.java:279)
> at org.teiid.query.processor.relational.RelationalPlan.nextBatch(RelationalPlan.java:148)
> at org.teiid.query.processor.QueryProcessor.nextBatchDirect(QueryProcessor.java:146)
> at org.teiid.query.processor.QueryProcessor.nextBatch(QueryProcessor.java:112)
> at org.teiid.query.processor.BatchCollector.collectTuples(BatchCollector.java:153)
> at org.teiid.dqp.internal.process.RequestWorkItem.processMore(RequestWorkItem.java:382)
> at org.teiid.dqp.internal.process.RequestWorkItem.process(RequestWorkItem.java:291)
> at org.teiid.dqp.internal.process.AbstractWorkItem.run(AbstractWorkItem.java:51)
> at org.teiid.dqp.internal.process.RequestWorkItem.run(RequestWorkItem.java:219)
> at org.teiid.dqp.internal.process.DQPCore.executeRequest(DQPCore.java:386)
> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
> at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
> at java.lang.reflect.Method.invoke(Method.java:601)
> at org.teiid.transport.LocalServerConnection$1$1.call(LocalServerConnection.java:131)
> at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334)
> at java.util.concurrent.FutureTask.run(FutureTask.java:166)
> at org.teiid.dqp.internal.process.DQPWorkContext.runInContext(DQPWorkContext.java:249)
> at org.teiid.dqp.internal.process.DQPWorkContext.runInContext(DQPWorkContext.java:233)
> at org.teiid.transport.LocalServerConnection$1.invoke(LocalServerConnection.java:129)
> at $Proxy11.executeRequest(Unknown Source)
> at org.teiid.jdbc.StatementImpl.execute(StatementImpl.java:631)
> at org.teiid.jdbc.StatementImpl.executeSql(StatementImpl.java:506)
> ... 26 more
> Caused by: org.teiid.translator.jdbc.JDBCExecutionException: 90022 TEIID11013:TEIID11004 Error executing statement(s): [Prepared Values: [] SQL: DELETE FROM "MEM"."TESTSCHEMA"."TABLEA" WHERE "MEM"."TESTSCHEMA"."TABLEA"."POLICYFKEYXML" NOT IN (SELECT primary_key('testSchema.tableB', 'policyID', "MEM"."TESTSCHEMA"."TABLEB"."POLICYID") AS expr FROM "MEM"."TESTSCHEMA"."TABLEB")]
> at org.teiid.translator.jdbc.JDBCUpdateExecution.executeTranslatedCommand(JDBCUpdateExecution.java:211)
> at org.teiid.translator.jdbc.JDBCUpdateExecution.execute(JDBCUpdateExecution.java:71)
> at org.teiid.dqp.internal.datamgr.ConnectorWorkItem$1.execute(ConnectorWorkItem.java:290)
> at org.teiid.dqp.internal.datamgr.ConnectorWorkItem.execute(ConnectorWorkItem.java:257)
> at org.teiid.dqp.internal.process.DataTierTupleSource.getResults(DataTierTupleSource.java:425)
> at org.teiid.dqp.internal.process.DataTierTupleSource.nextTuple(DataTierTupleSource.java:270)
> ... 50 more
> Caused by: org.h2.jdbc.JdbcSQLException: Function "PRIMARY_KEY" not found; SQL statement:
> DELETE FROM "MEM"."TESTSCHEMA"."TABLEA" WHERE "MEM"."TESTSCHEMA"."TABLEA"."POLICYFKEYXML" NOT IN (SELECT primary_key('testSchema.tableB', 'policyID', "MEM"."TESTSCHEMA"."TABLEB"."POLICYID") AS expr FROM "MEM"."TESTSCHEMA"."TABLEB") [90022-168]
> at org.h2.message.DbException.getJdbcSQLException(DbException.java:329)
> at org.h2.message.DbException.get(DbException.java:169)
> at org.h2.message.DbException.get(DbException.java:146)
> at org.h2.command.Parser.readJavaFunction(Parser.java:2122)
> at org.h2.command.Parser.readFunction(Parser.java:2174)
> at org.h2.command.Parser.readTerm(Parser.java:2476)
> at org.h2.command.Parser.readFactor(Parser.java:2046)
> at org.h2.command.Parser.readSum(Parser.java:2033)
> at org.h2.command.Parser.readConcat(Parser.java:2006)
> at org.h2.command.Parser.readCondition(Parser.java:1871)
> at org.h2.command.Parser.readAnd(Parser.java:1852)
> at org.h2.command.Parser.readExpression(Parser.java:1844)
> at org.h2.command.Parser.parseSelectSimpleSelectPart(Parser.java:1757)
> at org.h2.command.Parser.parseSelectSimple(Parser.java:1789)
> at org.h2.command.Parser.parseSelectSub(Parser.java:1684)
> at org.h2.command.Parser.parseSelectUnion(Parser.java:1527)
> at org.h2.command.Parser.parseSelect(Parser.java:1515)
> at org.h2.command.Parser.readCondition(Parser.java:1921)
> at org.h2.command.Parser.readAnd(Parser.java:1852)
> at org.h2.command.Parser.readExpression(Parser.java:1844)
> at org.h2.command.Parser.parseDelete(Parser.java:738)
> at org.h2.command.Parser.parsePrepared(Parser.java:336)
> at org.h2.command.Parser.parse(Parser.java:279)
> at org.h2.command.Parser.parse(Parser.java:251)
> at org.h2.command.Parser.prepareCommand(Parser.java:217)
> at org.h2.engine.Session.prepareLocal(Session.java:415)
> at org.h2.engine.Session.prepareCommand(Session.java:364)
> at org.h2.jdbc.JdbcConnection.prepareCommand(JdbcConnection.java:1109)
> at org.h2.jdbc.JdbcPreparedStatement.<init>(JdbcPreparedStatement.java:74)
> at org.h2.jdbc.JdbcConnection.prepareStatement(JdbcConnection.java:264)
> at org.teiid.translator.jdbc.JDBCBaseExecution.getPreparedStatement(JDBCBaseExecution.java:181)
> at org.teiid.translator.jdbc.JDBCUpdateExecution.executeTranslatedCommand(JDBCUpdateExecution.java:168)
> ... 55 more
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira
12 years, 4 months
[JBoss JIRA] (TEIID-2518) Delete statement with having UDF functions in its inline view is giving issues
by Rajasekhar Kota (JIRA)
Rajasekhar Kota created TEIID-2518:
--------------------------------------
Summary: Delete statement with having UDF functions in its inline view is giving issues
Key: TEIID-2518
URL: https://issues.jboss.org/browse/TEIID-2518
Project: Teiid
Issue Type: Bug
Components: Query Engine
Affects Versions: 8.1
Reporter: Rajasekhar Kota
Assignee: Steven Hawkins
Priority: Critical
Delete queries having UDF function in it's inline view is giving issues.
Here is the problematic query and where primary_key is an UDF function.
delete from testSchema.tableA where policyfkeyxml not in (select primary_key('testSchema.tableB','policyID',policyID) as expr from testSchema.tableB)
Here is the exception that we are getting when we run above query from a test case.
WARNING: Connector worker process failed for atomic-request=tmG/kv17VS0S.0.0.0
org.teiid.translator.jdbc.JDBCExecutionException: 90022 TEIID11013:TEIID11004 Error executing statement(s): [Prepared Values: [] SQL: DELETE FROM "MEM"."TESTSCHEMA"."TABLEA" WHERE "MEM"."TESTSCHEMA"."TABLEA"."POLICYFKEYXML" NOT IN (SELECT primary_key('testSchema.tableB', 'policyID', "MEM"."TESTSCHEMA"."TABLEB"."POLICYID") AS expr FROM "MEM"."TESTSCHEMA"."TABLEB")]
at org.teiid.translator.jdbc.JDBCUpdateExecution.executeTranslatedCommand(JDBCUpdateExecution.java:211)
at org.teiid.translator.jdbc.JDBCUpdateExecution.execute(JDBCUpdateExecution.java:71)
at org.teiid.dqp.internal.datamgr.ConnectorWorkItem$1.execute(ConnectorWorkItem.java:290)
at org.teiid.dqp.internal.datamgr.ConnectorWorkItem.execute(ConnectorWorkItem.java:257)
at org.teiid.dqp.internal.process.DataTierTupleSource.getResults(DataTierTupleSource.java:425)
at org.teiid.dqp.internal.process.DataTierTupleSource.nextTuple(DataTierTupleSource.java:270)
at org.teiid.query.processor.relational.AccessNode.nextBatchDirect(AccessNode.java:279)
at org.teiid.query.processor.relational.RelationalNode.nextBatch(RelationalNode.java:279)
at org.teiid.query.processor.relational.RelationalPlan.nextBatch(RelationalPlan.java:148)
at org.teiid.query.processor.QueryProcessor.nextBatchDirect(QueryProcessor.java:146)
at org.teiid.query.processor.QueryProcessor.nextBatch(QueryProcessor.java:112)
at org.teiid.query.processor.BatchCollector.collectTuples(BatchCollector.java:153)
at org.teiid.dqp.internal.process.RequestWorkItem.processMore(RequestWorkItem.java:382)
at org.teiid.dqp.internal.process.RequestWorkItem.process(RequestWorkItem.java:291)
at org.teiid.dqp.internal.process.AbstractWorkItem.run(AbstractWorkItem.java:51)
at org.teiid.dqp.internal.process.RequestWorkItem.run(RequestWorkItem.java:219)
at org.teiid.dqp.internal.process.DQPCore.executeRequest(DQPCore.java:386)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:601)
at org.teiid.transport.LocalServerConnection$1$1.call(LocalServerConnection.java:131)
at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334)
at java.util.concurrent.FutureTask.run(FutureTask.java:166)
at org.teiid.dqp.internal.process.DQPWorkContext.runInContext(DQPWorkContext.java:249)
at org.teiid.dqp.internal.process.DQPWorkContext.runInContext(DQPWorkContext.java:233)
at org.teiid.transport.LocalServerConnection$1.invoke(LocalServerConnection.java:129)
at $Proxy11.executeRequest(Unknown Source)
at org.teiid.jdbc.StatementImpl.execute(StatementImpl.java:631)
at org.teiid.jdbc.StatementImpl.executeSql(StatementImpl.java:506)
at org.teiid.jdbc.StatementImpl.executeUpdate(StatementImpl.java:334)
at com.ca.chorus.teiid.customfunctions.DeleteWithInlineQuery.testFailingInlineViewInDeleteQuery(DeleteWithInlineQuery.java:130)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:601)
at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:44)
at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:15)
at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:41)
at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:20)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:76)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:50)
at org.junit.runners.ParentRunner$3.run(ParentRunner.java:193)
at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:52)
at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:191)
at org.junit.runners.ParentRunner.access$000(ParentRunner.java:42)
at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:184)
at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:28)
at org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:31)
at org.junit.runners.ParentRunner.run(ParentRunner.java:236)
at org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:50)
at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:467)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:683)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:390)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:197)
Caused by: org.h2.jdbc.JdbcSQLException: Function "PRIMARY_KEY" not found; SQL statement:
DELETE FROM "MEM"."TESTSCHEMA"."TABLEA" WHERE "MEM"."TESTSCHEMA"."TABLEA"."POLICYFKEYXML" NOT IN (SELECT primary_key('testSchema.tableB', 'policyID', "MEM"."TESTSCHEMA"."TABLEB"."POLICYID") AS expr FROM "MEM"."TESTSCHEMA"."TABLEB") [90022-168]
at org.h2.message.DbException.getJdbcSQLException(DbException.java:329)
at org.h2.message.DbException.get(DbException.java:169)
at org.h2.message.DbException.get(DbException.java:146)
at org.h2.command.Parser.readJavaFunction(Parser.java:2122)
at org.h2.command.Parser.readFunction(Parser.java:2174)
at org.h2.command.Parser.readTerm(Parser.java:2476)
at org.h2.command.Parser.readFactor(Parser.java:2046)
at org.h2.command.Parser.readSum(Parser.java:2033)
at org.h2.command.Parser.readConcat(Parser.java:2006)
at org.h2.command.Parser.readCondition(Parser.java:1871)
at org.h2.command.Parser.readAnd(Parser.java:1852)
at org.h2.command.Parser.readExpression(Parser.java:1844)
at org.h2.command.Parser.parseSelectSimpleSelectPart(Parser.java:1757)
at org.h2.command.Parser.parseSelectSimple(Parser.java:1789)
at org.h2.command.Parser.parseSelectSub(Parser.java:1684)
at org.h2.command.Parser.parseSelectUnion(Parser.java:1527)
at org.h2.command.Parser.parseSelect(Parser.java:1515)
at org.h2.command.Parser.readCondition(Parser.java:1921)
at org.h2.command.Parser.readAnd(Parser.java:1852)
at org.h2.command.Parser.readExpression(Parser.java:1844)
at org.h2.command.Parser.parseDelete(Parser.java:738)
at org.h2.command.Parser.parsePrepared(Parser.java:336)
at org.h2.command.Parser.parse(Parser.java:279)
at org.h2.command.Parser.parse(Parser.java:251)
at org.h2.command.Parser.prepareCommand(Parser.java:217)
at org.h2.engine.Session.prepareLocal(Session.java:415)
at org.h2.engine.Session.prepareCommand(Session.java:364)
at org.h2.jdbc.JdbcConnection.prepareCommand(JdbcConnection.java:1109)
at org.h2.jdbc.JdbcPreparedStatement.<init>(JdbcPreparedStatement.java:74)
at org.h2.jdbc.JdbcConnection.prepareStatement(JdbcConnection.java:264)
at org.teiid.translator.jdbc.JDBCBaseExecution.getPreparedStatement(JDBCBaseExecution.java:181)
at org.teiid.translator.jdbc.JDBCUpdateExecution.executeTranslatedCommand(JDBCUpdateExecution.java:168)
... 55 more
May 28, 2013 7:14:51 PM org.teiid.logging.JavaLogger log
WARNING: TEIID30020 Processing exception 'TEIID30504 h2Translator: 90022 TEIID11013:TEIID11004 Error executing statement(s): [Prepared Values: [] SQL: DELETE FROM "MEM"."TESTSCHEMA"."TABLEA" WHERE "MEM"."TESTSCHEMA"."TABLEA"."POLICYFKEYXML" NOT IN (SELECT primary_key('testSchema.tableB', 'policyID', "MEM"."TESTSCHEMA"."TABLEB"."POLICYID") AS expr FROM "MEM"."TESTSCHEMA"."TABLEB")]' for request tmG/kv17VS0S.0. Exception type org.teiid.core.TeiidProcessingException thrown from org.h2.message.DbException.getJdbcSQLException(DbException.java:329). Enable more detailed logging to see the entire stacktrace.
org.teiid.jdbc.TeiidSQLException: TEIID30504 h2Translator: 90022 TEIID11013:TEIID11004 Error executing statement(s): [Prepared Values: [] SQL: DELETE FROM "MEM"."TESTSCHEMA"."TABLEA" WHERE "MEM"."TESTSCHEMA"."TABLEA"."POLICYFKEYXML" NOT IN (SELECT primary_key('testSchema.tableB', 'policyID', "MEM"."TESTSCHEMA"."TABLEB"."POLICYID") AS expr FROM "MEM"."TESTSCHEMA"."TABLEB")]
at org.teiid.jdbc.TeiidSQLException.create(TeiidSQLException.java:113)
at org.teiid.jdbc.TeiidSQLException.create(TeiidSQLException.java:70)
at org.teiid.jdbc.StatementImpl.postReceiveResults(StatementImpl.java:656)
at org.teiid.jdbc.StatementImpl.access$100(StatementImpl.java:62)
at org.teiid.jdbc.StatementImpl$2.onCompletion(StatementImpl.java:512)
at org.teiid.client.util.ResultsFuture.addCompletionListener(ResultsFuture.java:139)
at org.teiid.jdbc.StatementImpl.executeSql(StatementImpl.java:508)
at org.teiid.jdbc.StatementImpl.executeUpdate(StatementImpl.java:334)
at com.ca.chorus.teiid.customfunctions.DeleteWithInlineQuery.testFailingInlineViewInDeleteQuery(DeleteWithInlineQuery.java:130)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:601)
at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:44)
at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:15)
at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:41)
at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:20)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:76)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:50)
at org.junit.runners.ParentRunner$3.run(ParentRunner.java:193)
at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:52)
at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:191)
at org.junit.runners.ParentRunner.access$000(ParentRunner.java:42)
at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:184)
at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:28)
at org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:31)
at org.junit.runners.ParentRunner.run(ParentRunner.java:236)
at org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:50)
at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:467)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:683)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:390)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:197)
Caused by: org.teiid.core.TeiidProcessingException: TEIID30504 h2Translator: 90022 TEIID11013:TEIID11004 Error executing statement(s): [Prepared Values: [] SQL: DELETE FROM "MEM"."TESTSCHEMA"."TABLEA" WHERE "MEM"."TESTSCHEMA"."TABLEA"."POLICYFKEYXML" NOT IN (SELECT primary_key('testSchema.tableB', 'policyID', "MEM"."TESTSCHEMA"."TABLEB"."POLICYID") AS expr FROM "MEM"."TESTSCHEMA"."TABLEB")]
at org.teiid.dqp.internal.process.DataTierTupleSource.exceptionOccurred(DataTierTupleSource.java:502)
at org.teiid.dqp.internal.process.DataTierTupleSource.nextTuple(DataTierTupleSource.java:289)
at org.teiid.query.processor.relational.AccessNode.nextBatchDirect(AccessNode.java:279)
at org.teiid.query.processor.relational.RelationalNode.nextBatch(RelationalNode.java:279)
at org.teiid.query.processor.relational.RelationalPlan.nextBatch(RelationalPlan.java:148)
at org.teiid.query.processor.QueryProcessor.nextBatchDirect(QueryProcessor.java:146)
at org.teiid.query.processor.QueryProcessor.nextBatch(QueryProcessor.java:112)
at org.teiid.query.processor.BatchCollector.collectTuples(BatchCollector.java:153)
at org.teiid.dqp.internal.process.RequestWorkItem.processMore(RequestWorkItem.java:382)
at org.teiid.dqp.internal.process.RequestWorkItem.process(RequestWorkItem.java:291)
at org.teiid.dqp.internal.process.AbstractWorkItem.run(AbstractWorkItem.java:51)
at org.teiid.dqp.internal.process.RequestWorkItem.run(RequestWorkItem.java:219)
at org.teiid.dqp.internal.process.DQPCore.executeRequest(DQPCore.java:386)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:601)
at org.teiid.transport.LocalServerConnection$1$1.call(LocalServerConnection.java:131)
at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334)
at java.util.concurrent.FutureTask.run(FutureTask.java:166)
at org.teiid.dqp.internal.process.DQPWorkContext.runInContext(DQPWorkContext.java:249)
at org.teiid.dqp.internal.process.DQPWorkContext.runInContext(DQPWorkContext.java:233)
at org.teiid.transport.LocalServerConnection$1.invoke(LocalServerConnection.java:129)
at $Proxy11.executeRequest(Unknown Source)
at org.teiid.jdbc.StatementImpl.execute(StatementImpl.java:631)
at org.teiid.jdbc.StatementImpl.executeSql(StatementImpl.java:506)
... 26 more
Caused by: org.teiid.translator.jdbc.JDBCExecutionException: 90022 TEIID11013:TEIID11004 Error executing statement(s): [Prepared Values: [] SQL: DELETE FROM "MEM"."TESTSCHEMA"."TABLEA" WHERE "MEM"."TESTSCHEMA"."TABLEA"."POLICYFKEYXML" NOT IN (SELECT primary_key('testSchema.tableB', 'policyID', "MEM"."TESTSCHEMA"."TABLEB"."POLICYID") AS expr FROM "MEM"."TESTSCHEMA"."TABLEB")]
at org.teiid.translator.jdbc.JDBCUpdateExecution.executeTranslatedCommand(JDBCUpdateExecution.java:211)
at org.teiid.translator.jdbc.JDBCUpdateExecution.execute(JDBCUpdateExecution.java:71)
at org.teiid.dqp.internal.datamgr.ConnectorWorkItem$1.execute(ConnectorWorkItem.java:290)
at org.teiid.dqp.internal.datamgr.ConnectorWorkItem.execute(ConnectorWorkItem.java:257)
at org.teiid.dqp.internal.process.DataTierTupleSource.getResults(DataTierTupleSource.java:425)
at org.teiid.dqp.internal.process.DataTierTupleSource.nextTuple(DataTierTupleSource.java:270)
... 50 more
Caused by: org.h2.jdbc.JdbcSQLException: Function "PRIMARY_KEY" not found; SQL statement:
DELETE FROM "MEM"."TESTSCHEMA"."TABLEA" WHERE "MEM"."TESTSCHEMA"."TABLEA"."POLICYFKEYXML" NOT IN (SELECT primary_key('testSchema.tableB', 'policyID', "MEM"."TESTSCHEMA"."TABLEB"."POLICYID") AS expr FROM "MEM"."TESTSCHEMA"."TABLEB") [90022-168]
at org.h2.message.DbException.getJdbcSQLException(DbException.java:329)
at org.h2.message.DbException.get(DbException.java:169)
at org.h2.message.DbException.get(DbException.java:146)
at org.h2.command.Parser.readJavaFunction(Parser.java:2122)
at org.h2.command.Parser.readFunction(Parser.java:2174)
at org.h2.command.Parser.readTerm(Parser.java:2476)
at org.h2.command.Parser.readFactor(Parser.java:2046)
at org.h2.command.Parser.readSum(Parser.java:2033)
at org.h2.command.Parser.readConcat(Parser.java:2006)
at org.h2.command.Parser.readCondition(Parser.java:1871)
at org.h2.command.Parser.readAnd(Parser.java:1852)
at org.h2.command.Parser.readExpression(Parser.java:1844)
at org.h2.command.Parser.parseSelectSimpleSelectPart(Parser.java:1757)
at org.h2.command.Parser.parseSelectSimple(Parser.java:1789)
at org.h2.command.Parser.parseSelectSub(Parser.java:1684)
at org.h2.command.Parser.parseSelectUnion(Parser.java:1527)
at org.h2.command.Parser.parseSelect(Parser.java:1515)
at org.h2.command.Parser.readCondition(Parser.java:1921)
at org.h2.command.Parser.readAnd(Parser.java:1852)
at org.h2.command.Parser.readExpression(Parser.java:1844)
at org.h2.command.Parser.parseDelete(Parser.java:738)
at org.h2.command.Parser.parsePrepared(Parser.java:336)
at org.h2.command.Parser.parse(Parser.java:279)
at org.h2.command.Parser.parse(Parser.java:251)
at org.h2.command.Parser.prepareCommand(Parser.java:217)
at org.h2.engine.Session.prepareLocal(Session.java:415)
at org.h2.engine.Session.prepareCommand(Session.java:364)
at org.h2.jdbc.JdbcConnection.prepareCommand(JdbcConnection.java:1109)
at org.h2.jdbc.JdbcPreparedStatement.<init>(JdbcPreparedStatement.java:74)
at org.h2.jdbc.JdbcConnection.prepareStatement(JdbcConnection.java:264)
at org.teiid.translator.jdbc.JDBCBaseExecution.getPreparedStatement(JDBCBaseExecution.java:181)
at org.teiid.translator.jdbc.JDBCUpdateExecution.executeTranslatedCommand(JDBCUpdateExecution.java:168)
... 55 more
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira
12 years, 4 months