Author: shawkins
Date: 2011-01-20 20:40:16 -0500 (Thu, 20 Jan 2011)
New Revision: 2866
Modified:
branches/7.1.x/engine/src/main/java/org/teiid/query/resolver/ProcedureContainerResolver.java
branches/7.1.x/engine/src/main/java/org/teiid/query/sql/symbol/Reference.java
branches/7.1.x/engine/src/test/java/org/teiid/query/processor/proc/TestProcedureProcessor.java
Log:
TEIID-1438 refining the validation that is performed on non-query commands to detect
pushdown errors.
Modified:
branches/7.1.x/engine/src/main/java/org/teiid/query/resolver/ProcedureContainerResolver.java
===================================================================
---
branches/7.1.x/engine/src/main/java/org/teiid/query/resolver/ProcedureContainerResolver.java 2011-01-21
00:55:36 UTC (rev 2865)
+++
branches/7.1.x/engine/src/main/java/org/teiid/query/resolver/ProcedureContainerResolver.java 2011-01-21
01:40:16 UTC (rev 2866)
@@ -229,9 +229,6 @@
externalGroups.addGroup(variables);
TempMetadataID tid = metadata.addTempGroup(name, symbols);
tid.setScalarGroup();
- for (TempMetadataID cid : tid.getElements()) {
- cid.setScalarGroup();
- }
variables.setMetadataID(tid);
return variables;
}
Modified: branches/7.1.x/engine/src/main/java/org/teiid/query/sql/symbol/Reference.java
===================================================================
---
branches/7.1.x/engine/src/main/java/org/teiid/query/sql/symbol/Reference.java 2011-01-21
00:55:36 UTC (rev 2865)
+++
branches/7.1.x/engine/src/main/java/org/teiid/query/sql/symbol/Reference.java 2011-01-21
01:40:16 UTC (rev 2866)
@@ -179,10 +179,11 @@
return false;
}
//metadata hack
- if (!(this.expression.getMetadataID() instanceof TempMetadataID)) {
+ if (this.expression.getGroupSymbol() == null ||
!(this.expression.getGroupSymbol().getMetadataID() instanceof TempMetadataID)) {
return true;
}
- TempMetadataID tid = (TempMetadataID)this.expression.getMetadataID();
+
+ TempMetadataID tid =
(TempMetadataID)this.expression.getGroupSymbol().getMetadataID();
return !tid.isScalarGroup();
}
Modified:
branches/7.1.x/engine/src/test/java/org/teiid/query/processor/proc/TestProcedureProcessor.java
===================================================================
---
branches/7.1.x/engine/src/test/java/org/teiid/query/processor/proc/TestProcedureProcessor.java 2011-01-21
00:55:36 UTC (rev 2865)
+++
branches/7.1.x/engine/src/test/java/org/teiid/query/processor/proc/TestProcedureProcessor.java 2011-01-21
01:40:16 UTC (rev 2866)
@@ -2662,7 +2662,8 @@
StringBuffer procedure = new StringBuffer("CREATE VIRTUAL PROCEDURE
\n"); //$NON-NLS-1$
procedure.append("BEGIN\n"); //$NON-NLS-1$
procedure.append("create local temporary table x (y string);\n");
//$NON-NLS-1$
- procedure.append("update x set y = in1 || 'foo';\n");
//$NON-NLS-1$
+ procedure.append("declare string s = 'foo';\n"); //$NON-NLS-1$
+ procedure.append("update x set y = in1 || s;\n"); //$NON-NLS-1$
procedure.append("update pm1.g1 set e1 = lookup('pm1.g1',
'e1', 'e2', in1);\n"); //$NON-NLS-1$
procedure.append("exec pm1.sq2(in1 || 'foo');\n");
//$NON-NLS-1$
procedure.append("END"); //$NON-NLS-1$
Show replies by date