[teiid-issues] [JBoss JIRA] Created: (TEIID-911) Prepared Batch Update against a view table fails with "Unable to evaluate $param/pos0: No value was available"

Larry O'Leary (JIRA) jira-events at lists.jboss.org
Mon Dec 21 12:10:30 EST 2009


Prepared Batch Update against a view table fails with "Unable to evaluate $param/pos0: No value was available"
--------------------------------------------------------------------------------------------------------------

                 Key: TEIID-911
                 URL: https://jira.jboss.org/jira/browse/TEIID-911
             Project: Teiid
          Issue Type: Bug
          Components: Query Engine
    Affects Versions: 7.0
         Environment: teiid-engine revision 1662
            Reporter: Larry O'Leary
            Assignee: Steven Hawkins
         Attachments: JBEDSP-1133_Teiid-Rev-1662_UnitTests_200912211050.patch

Attempting to execute a prepared batch update against a view table results in the following stack trace:

[MetaMatrixComponentException] ERR.015.006.0033: Error Code:ERR.015.006.0033 Message:Unable to evaluate $param/pos0: No value was available
	at com.metamatrix.query.sql.util.VariableContext.getGlobalValue(VariableContext.java:68)
	at com.metamatrix.query.sql.util.VariableContext.getGlobalValue(VariableContext.java:64)
	at com.metamatrix.query.eval.Evaluator.internalEvaluate(Evaluator.java:562)
	at com.metamatrix.query.eval.Evaluator.evaluate(Evaluator.java:524)
	at com.metamatrix.query.processor.proc.ProcedurePlan.evaluateExpression(ProcedurePlan.java:648)
	at com.metamatrix.query.processor.proc.ProcedurePlan.open(ProcedurePlan.java:187)
	at com.metamatrix.query.processor.relational.PlanExecutionNode.open(PlanExecutionNode.java:74)
	at com.metamatrix.query.processor.relational.RelationalNode.open(RelationalNode.java:236)
	at com.metamatrix.query.processor.relational.RelationalPlan.open(RelationalPlan.java:101)
	at com.metamatrix.query.processor.batch.BatchedUpdatePlan.open(BatchedUpdatePlan.java:114)
	at com.metamatrix.query.processor.QueryProcessor.initialize(QueryProcessor.java:112)
	at com.metamatrix.query.processor.QueryProcessor.process(QueryProcessor.java:152)
	at com.metamatrix.query.processor.QueryProcessor.process(QueryProcessor.java:127)
	at com.metamatrix.query.processor.TestProcessor.doProcess(TestProcessor.java:234)
	at org.teiid.dqp.internal.process.TestPreparedStatement.helpTestProcessing(TestPreparedStatement.java:121)
	at org.teiid.dqp.internal.process.TestPreparedStatementBatchedUpdate.testUpdateSameNumCmds_Virtual(TestPreparedStatementBatchedUpdate.java:246)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
	at java.lang.reflect.Method.invoke(Method.java:597)
	at org.junit.internal.runners.TestMethod.invoke(TestMethod.java:59)
	at org.junit.internal.runners.MethodRoadie.runTestMethod(MethodRoadie.java:98)
	at org.junit.internal.runners.MethodRoadie$2.run(MethodRoadie.java:79)
	at org.junit.internal.runners.MethodRoadie.runBeforesThenTestThenAfters(MethodRoadie.java:87)
	at org.junit.internal.runners.MethodRoadie.runTest(MethodRoadie.java:77)
	at org.junit.internal.runners.MethodRoadie.run(MethodRoadie.java:42)
	at org.junit.internal.runners.JUnit4ClassRunner.invokeTestMethod(JUnit4ClassRunner.java:88)
	at org.junit.internal.runners.JUnit4ClassRunner.runMethods(JUnit4ClassRunner.java:51)
	at org.junit.internal.runners.JUnit4ClassRunner$1.run(JUnit4ClassRunner.java:44)
	at org.junit.internal.runners.ClassRoadie.runUnprotected(ClassRoadie.java:27)
	at org.junit.internal.runners.ClassRoadie.runProtected(ClassRoadie.java:37)
	at org.junit.internal.runners.JUnit4ClassRunner.run(JUnit4ClassRunner.java:42)
	at org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:46)
	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)



This was produced using a UnitTest that simply creates a prepared statement similar to:

preparedSql = "UPDATE vm1.g1 SET vm1.g1.e2=? WHERE vm1.g1.e1=?"
values.add(new ArrayList<Object>(Arrays.asList(new Object[] { new Integer(0), "a" })));
values.add(new ArrayList<Object>(Arrays.asList(new Object[] { new Integer(1), "b" })));

Then execute the prepared statement.  

Attached unit test patch includes the failing unit tests against a virtual and some refactoring of the existing unit test methods to handle some unit test framework changes from R050503.



-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: https://jira.jboss.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

        


More information about the teiid-issues mailing list