[teiid-commits] teiid SVN: r3013 - in trunk: common-core/src/main/java/org/teiid/core/types and 8 other directories.
teiid-commits at lists.jboss.org
teiid-commits at lists.jboss.org
Mon Mar 21 10:11:09 EDT 2011
Author: shawkins
Date: 2011-03-21 10:11:08 -0400 (Mon, 21 Mar 2011)
New Revision: 3013
Added:
trunk/test-integration/common/src/test/java/org/teiid/jdbc/MetadataSizeExperiment.java
Removed:
trunk/common-core/src/main/java/org/teiid/core/types/TeiidBigDecimal.java
Modified:
trunk/api/src/main/java/org/teiid/metadata/AbstractMetadataRecord.java
trunk/api/src/main/java/org/teiid/metadata/BaseColumn.java
trunk/api/src/main/java/org/teiid/metadata/Column.java
trunk/api/src/main/java/org/teiid/metadata/MetadataStore.java
trunk/api/src/main/java/org/teiid/metadata/Schema.java
trunk/api/src/main/java/org/teiid/metadata/Table.java
trunk/common-core/src/main/java/org/teiid/core/types/DataTypeManager.java
trunk/engine/src/main/java/org/teiid/query/function/FunctionLibrary.java
trunk/engine/src/main/java/org/teiid/query/metadata/CompositeMetadataStore.java
trunk/engine/src/main/java/org/teiid/query/metadata/GroupInfo.java
trunk/engine/src/main/java/org/teiid/query/metadata/TransformationMetadata.java
trunk/engine/src/main/java/org/teiid/query/resolver/util/ResolverVisitor.java
trunk/engine/src/main/java/org/teiid/query/sql/symbol/Symbol.java
trunk/engine/src/main/java/org/teiid/query/validator/ValidationVisitor.java
trunk/engine/src/test/java/org/teiid/query/processor/TestTriggerActions.java
trunk/engine/src/test/java/org/teiid/query/validator/TestUpdateValidator.java
Log:
TEIID-1520 adding a string pool to reduce memory footprint
Modified: trunk/api/src/main/java/org/teiid/metadata/AbstractMetadataRecord.java
===================================================================
--- trunk/api/src/main/java/org/teiid/metadata/AbstractMetadataRecord.java 2011-03-20 15:06:45 UTC (rev 3012)
+++ trunk/api/src/main/java/org/teiid/metadata/AbstractMetadataRecord.java 2011-03-21 14:11:08 UTC (rev 3013)
@@ -28,6 +28,7 @@
import java.util.Map;
import java.util.concurrent.atomic.AtomicLong;
+import org.teiid.core.types.DataTypeManager;
import org.teiid.core.util.EquivalenceUtil;
@@ -44,6 +45,7 @@
private String uuid; //globally unique id
private String name; //contextually unique name
+ private String canonicalName;
private String nameInSource;
@@ -66,7 +68,7 @@
}
public void setNameInSource(String nameInSource) {
- this.nameInSource = nameInSource;
+ this.nameInSource = DataTypeManager.getCanonicalString(nameInSource);
}
/**
@@ -90,9 +92,14 @@
}
public void setName(String name) {
- this.name = name;
+ this.name = DataTypeManager.getCanonicalString(name);
+ this.canonicalName = DataTypeManager.getCanonicalString(name.toUpperCase());
}
+ public String getCanonicalName() {
+ return canonicalName;
+ }
+
public String toString() {
StringBuffer sb = new StringBuffer(100);
sb.append(getClass().getSimpleName());
@@ -127,7 +134,7 @@
if (this.properties == null) {
this.properties = new LinkedHashMap<String, String>();
}
- this.properties.put(key, value);
+ this.properties.put(DataTypeManager.getCanonicalString(key), DataTypeManager.getCanonicalString(value));
}
public void setProperties(LinkedHashMap<String, String> properties) {
@@ -139,7 +146,7 @@
}
public void setAnnotation(String annotation) {
- this.annotation = annotation;
+ this.annotation = DataTypeManager.getCanonicalString(annotation);
}
/**
Modified: trunk/api/src/main/java/org/teiid/metadata/BaseColumn.java
===================================================================
--- trunk/api/src/main/java/org/teiid/metadata/BaseColumn.java 2011-03-20 15:06:45 UTC (rev 3012)
+++ trunk/api/src/main/java/org/teiid/metadata/BaseColumn.java 2011-03-21 14:11:08 UTC (rev 3013)
@@ -22,6 +22,7 @@
package org.teiid.metadata;
+import org.teiid.core.types.DataTypeManager;
import org.teiid.translator.TypeFacility;
public abstract class BaseColumn extends AbstractMetadataRecord {
@@ -130,7 +131,7 @@
}
public void setDefaultValue(String object) {
- defaultValue = object;
+ defaultValue = DataTypeManager.getCanonicalString(object);
}
public Datatype getDatatype() {
@@ -139,6 +140,10 @@
public void setDatatype(Datatype datatype) {
this.datatype = datatype;
+ if (datatype != null) {
+ this.datatypeUUID = this.datatype.getUUID();
+ this.runtimeType = this.datatype.getRuntimeTypeName();
+ }
}
public String getDatatypeID() {
Modified: trunk/api/src/main/java/org/teiid/metadata/Column.java
===================================================================
--- trunk/api/src/main/java/org/teiid/metadata/Column.java 2011-03-20 15:06:45 UTC (rev 3012)
+++ trunk/api/src/main/java/org/teiid/metadata/Column.java 2011-03-21 14:11:08 UTC (rev 3013)
@@ -22,6 +22,7 @@
package org.teiid.metadata;
+import org.teiid.core.types.DataTypeManager;
/**
* ColumnRecordImpl
@@ -180,14 +181,14 @@
* @param object
*/
public void setMaximumValue(String object) {
- maximumValue = object;
+ maximumValue = DataTypeManager.getCanonicalString(object);
}
/**
* @param object
*/
public void setMinimumValue(String object) {
- minimumValue = object;
+ minimumValue = DataTypeManager.getCanonicalString(object);
}
/**
@@ -222,7 +223,7 @@
* @param string
*/
public void setFormat(String string) {
- format = string;
+ format = DataTypeManager.getCanonicalString(string);
}
/**
@@ -246,7 +247,7 @@
* @since 4.2
*/
public void setNativeType(String nativeType) {
- this.nativeType = nativeType;
+ this.nativeType = DataTypeManager.getCanonicalString(nativeType);
}
}
\ No newline at end of file
Modified: trunk/api/src/main/java/org/teiid/metadata/MetadataStore.java
===================================================================
--- trunk/api/src/main/java/org/teiid/metadata/MetadataStore.java 2011-03-20 15:06:45 UTC (rev 3012)
+++ trunk/api/src/main/java/org/teiid/metadata/MetadataStore.java 2011-03-21 14:11:08 UTC (rev 3013)
@@ -42,7 +42,7 @@
}
public void addSchema(Schema schema) {
- this.schemas.put(schema.getName().toLowerCase(), schema);
+ this.schemas.put(schema.getCanonicalName(), schema);
}
public void addDatatype(Datatype datatype) {
Modified: trunk/api/src/main/java/org/teiid/metadata/Schema.java
===================================================================
--- trunk/api/src/main/java/org/teiid/metadata/Schema.java 2011-03-20 15:06:45 UTC (rev 3012)
+++ trunk/api/src/main/java/org/teiid/metadata/Schema.java 2011-03-21 14:11:08 UTC (rev 3013)
@@ -39,21 +39,21 @@
public void addTable(Table table) {
table.setParent(this);
- if (this.tables.put(table.getName().toLowerCase(), table) != null) {
+ if (this.tables.put(table.getCanonicalName(), table) != null) {
throw new AssertionError("Duplicate Table " + table.getName()); //$NON-NLS-1$
}
}
public void addProcedure(Procedure procedure) {
procedure.setParent(this);
- if (this.procedures.put(procedure.getName().toLowerCase(), procedure) != null) {
+ if (this.procedures.put(procedure.getCanonicalName(), procedure) != null) {
throw new AssertionError("Duplicate Procedure " + procedure.getName()); //$NON-NLS-1$
}
}
public void addFunction(FunctionMethod function) {
function.setParent(this);
- if (this.functions.put(function.getName().toLowerCase(), function) != null) {
+ if (this.functions.put(function.getCanonicalName(), function) != null) {
throw new AssertionError("Duplicate function " + function.getName()); //$NON-NLS-1$
}
}
Modified: trunk/api/src/main/java/org/teiid/metadata/Table.java
===================================================================
--- trunk/api/src/main/java/org/teiid/metadata/Table.java 2011-03-20 15:06:45 UTC (rev 3012)
+++ trunk/api/src/main/java/org/teiid/metadata/Table.java 2011-03-21 14:11:08 UTC (rev 3013)
@@ -26,6 +26,8 @@
import java.util.LinkedList;
import java.util.List;
+import org.teiid.core.types.DataTypeManager;
+
public class Table extends ColumnSet<Schema> {
private static final long serialVersionUID = 4891356771125218672L;
@@ -167,15 +169,15 @@
}
public void setInsertPlan(String insertPlan) {
- this.insertPlan = insertPlan;
+ this.insertPlan = DataTypeManager.getCanonicalString(insertPlan);
}
public void setUpdatePlan(String updatePlan) {
- this.updatePlan = updatePlan;
+ this.updatePlan = DataTypeManager.getCanonicalString(updatePlan);
}
public void setDeletePlan(String deletePlan) {
- this.deletePlan = deletePlan;
+ this.deletePlan = DataTypeManager.getCanonicalString(deletePlan);
}
public List<ForeignKey> getForeignKeys() {
@@ -223,7 +225,7 @@
}
public void setSelectTransformation(String selectTransformation) {
- this.selectTransformation = selectTransformation;
+ this.selectTransformation = DataTypeManager.getCanonicalString(selectTransformation);
}
public Table getMaterializedStageTable() {
@@ -243,7 +245,7 @@
}
public void setResourcePath(String resourcePath) {
- this.resourcePath = resourcePath;
+ this.resourcePath = DataTypeManager.getCanonicalString(resourcePath);
}
public String getResourcePath() {
Modified: trunk/common-core/src/main/java/org/teiid/core/types/DataTypeManager.java
===================================================================
--- trunk/common-core/src/main/java/org/teiid/core/types/DataTypeManager.java 2011-03-20 15:06:45 UTC (rev 3012)
+++ trunk/common-core/src/main/java/org/teiid/core/types/DataTypeManager.java 2011-03-21 14:11:08 UTC (rev 3013)
@@ -126,7 +126,31 @@
}
}
- private static Map<Class<?>, ValueCache<?>> valueMaps = new HashMap<Class<?>, ValueCache<?>>(128);
+ private static Map<Class<?>, ValueCache<?>> valueMaps = new HashMap<Class<?>, ValueCache<?>>(128);
+ private static HashedValueCache<String> stringCache = new HashedValueCache<String>(17) {
+
+ @Override
+ protected Object get(int index) {
+ WeakReference<?> ref = (WeakReference<?>) cache[index];
+ if (ref != null) {
+ return ref.get();
+ }
+ return null;
+ }
+
+ @Override
+ protected void set(int index, String value) {
+ cache[index] = new WeakReference<Object>(value);
+ }
+
+ @Override
+ protected int primaryHash(String value) {
+ if (value.length() < 14) {
+ return value.hashCode();
+ }
+ return HashCodeUtil.expHashCode(value);
+ }
+ };
public static final int MAX_STRING_LENGTH = 4000;
public static final int MAX_LOB_MEMORY_BYTES = 1 << 13;
@@ -506,13 +530,13 @@
valueMaps.put(DefaultDataClasses.CHAR, new HashedValueCache<Character>(13));
valueMaps.put(DefaultDataClasses.INTEGER, new HashedValueCache<Integer>(14));
valueMaps.put(DefaultDataClasses.LONG, new HashedValueCache<Long>(14));
- valueMaps.put(DefaultDataClasses.BIG_INTEGER, new HashedValueCache<BigInteger>(14));
+ valueMaps.put(DefaultDataClasses.BIG_INTEGER, new HashedValueCache<BigInteger>(15));
valueMaps.put(DefaultDataClasses.FLOAT, new HashedValueCache<Float>(14));
valueMaps.put(DefaultDataClasses.DOUBLE, new HashedValueCache<Double>(14));
valueMaps.put(DefaultDataClasses.DATE, new HashedValueCache<Date>(14));
valueMaps.put(DefaultDataClasses.TIME, new HashedValueCache<Time>(14));
valueMaps.put(DefaultDataClasses.TIMESTAMP, new HashedValueCache<Timestamp>(14));
- valueMaps.put(DefaultDataClasses.BIG_DECIMAL, new HashedValueCache<BigDecimal>(15) {
+ valueMaps.put(DefaultDataClasses.BIG_DECIMAL, new HashedValueCache<BigDecimal>(16) {
@Override
protected Object get(int index) {
WeakReference<?> ref = (WeakReference<?>) cache[index];
@@ -527,36 +551,7 @@
cache[index] = new WeakReference<BigDecimal>(value);
}
});
- valueMaps.put(DefaultDataClasses.STRING, new HashedValueCache<String>(15) {
- HashedValueCache<String> smallCache = new HashedValueCache<String>(13);
-
- @Override
- public String getValue(String value) {
- if (value.length() < 14) {
- return smallCache.getValue(value);
- }
- return super.getValue(value);
- }
-
- @Override
- protected Object get(int index) {
- WeakReference<?> ref = (WeakReference<?>) cache[index];
- if (ref != null) {
- return ref.get();
- }
- return null;
- }
-
- @Override
- protected void set(int index, String value) {
- cache[index] = new WeakReference<Object>(value);
- }
-
- @Override
- protected int primaryHash(String value) {
- return HashCodeUtil.expHashCode(value);
- }
- });
+ valueMaps.put(DefaultDataClasses.STRING, stringCache);
}
}
@@ -803,7 +798,7 @@
}
@SuppressWarnings("unchecked")
- public static <T> T getCanonicalValue(T value) {
+ public static final <T> T getCanonicalValue(T value) {
if (valueCacheEnabled) {
if (value == null) {
return null;
@@ -816,4 +811,11 @@
}
return value;
}
+
+ public static final String getCanonicalString(String value) {
+ if (value == null) {
+ return null;
+ }
+ return stringCache.getValue(value);
+ }
}
Deleted: trunk/common-core/src/main/java/org/teiid/core/types/TeiidBigDecimal.java
===================================================================
--- trunk/common-core/src/main/java/org/teiid/core/types/TeiidBigDecimal.java 2011-03-20 15:06:45 UTC (rev 3012)
+++ trunk/common-core/src/main/java/org/teiid/core/types/TeiidBigDecimal.java 2011-03-21 14:11:08 UTC (rev 3013)
@@ -1,68 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source.
- * See the COPYRIGHT.txt file distributed with this work for information
- * regarding copyright ownership. Some portions may be licensed
- * to Red Hat, Inc. under one or more contributor license agreements.
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
- * 02110-1301 USA.
- */
-
-package org.teiid.core.types;
-
-import java.math.BigDecimal;
-import java.math.BigInteger;
-
-/**
- * Same as a regular BigDecimal, but changes the implementation of hashCode and equals
- * so that the same numerical value regardless of scale will be equal
- */
-public class TeiidBigDecimal extends BigDecimal {
-
- private static final long serialVersionUID = -5796515987947436480L;
-
- public TeiidBigDecimal(BigInteger unscaled, int scale) {
- super(unscaled, scale);
- }
-
- public TeiidBigDecimal(BigDecimal bigDecimal) {
- this(bigDecimal.unscaledValue(), bigDecimal.scale());
- }
-
- public TeiidBigDecimal(String val) {
- super(val);
- }
-
- @Override
- public int hashCode() {
- int xsign = this.signum();
- if (xsign == 0)
- return 0;
- BigDecimal bd = this.stripTrailingZeros();
- return bd.hashCode();
- }
-
- @Override
- public boolean equals(Object x) {
- if (x == this) {
- return true;
- }
- if (!(x instanceof BigDecimal)) {
- return false;
- }
- return this.compareTo((BigDecimal)x) == 0;
- }
-
-}
Modified: trunk/engine/src/main/java/org/teiid/query/function/FunctionLibrary.java
===================================================================
--- trunk/engine/src/main/java/org/teiid/query/function/FunctionLibrary.java 2011-03-20 15:06:45 UTC (rev 3012)
+++ trunk/engine/src/main/java/org/teiid/query/function/FunctionLibrary.java 2011-03-21 14:11:08 UTC (rev 3013)
@@ -347,7 +347,7 @@
public static boolean isConvert(Function function) {
Expression[] args = function.getArgs();
- String funcName = function.getName().toLowerCase();
+ String funcName = function.getName();
return args.length == 2 && (funcName.equalsIgnoreCase(FunctionLibrary.CONVERT) || funcName.equalsIgnoreCase(FunctionLibrary.CAST));
}
Modified: trunk/engine/src/main/java/org/teiid/query/metadata/CompositeMetadataStore.java
===================================================================
--- trunk/engine/src/main/java/org/teiid/query/metadata/CompositeMetadataStore.java 2011-03-20 15:06:45 UTC (rev 3012)
+++ trunk/engine/src/main/java/org/teiid/query/metadata/CompositeMetadataStore.java 2011-03-21 14:11:08 UTC (rev 3013)
@@ -38,7 +38,7 @@
/**
* Aggregates the metadata from multiple stores.
- * IMPORTANT: All strings queries should be in lower case.
+ * IMPORTANT: All strings queries should be in upper case.
*/
public class CompositeMetadataStore extends MetadataStore {
Modified: trunk/engine/src/main/java/org/teiid/query/metadata/GroupInfo.java
===================================================================
--- trunk/engine/src/main/java/org/teiid/query/metadata/GroupInfo.java 2011-03-20 15:06:45 UTC (rev 3012)
+++ trunk/engine/src/main/java/org/teiid/query/metadata/GroupInfo.java 2011-03-21 14:11:08 UTC (rev 3013)
@@ -30,6 +30,7 @@
import java.util.List;
import java.util.Map;
+import org.teiid.core.types.DataTypeManager;
import org.teiid.query.sql.symbol.ElementSymbol;
@@ -48,7 +49,7 @@
this.symbolList = Collections.unmodifiableList(new ArrayList(symbols.values()));
this.shortNameToSymbolMap = new HashMap<String, ElementSymbol>(symbolList.size());
for (ElementSymbol symbol : symbolList) {
- shortNameToSymbolMap.put(symbol.getShortCanonicalName(), symbol);
+ shortNameToSymbolMap.put(DataTypeManager.getCanonicalString(symbol.getShortCanonicalName()), symbol);
}
}
Modified: trunk/engine/src/main/java/org/teiid/query/metadata/TransformationMetadata.java
===================================================================
--- trunk/engine/src/main/java/org/teiid/query/metadata/TransformationMetadata.java 2011-03-20 15:06:45 UTC (rev 3012)
+++ trunk/engine/src/main/java/org/teiid/query/metadata/TransformationMetadata.java 2011-03-21 14:11:08 UTC (rev 3013)
@@ -174,7 +174,7 @@
if (columnIndex == -1) {
throw new QueryMetadataException(elementName+TransformationMetadata.NOT_EXISTS_MESSAGE);
}
- Table table = this.store.findGroup(elementName.substring(0, columnIndex).toLowerCase());
+ Table table = this.store.findGroup(elementName.substring(0, columnIndex).toUpperCase());
String shortElementName = elementName.substring(columnIndex + 1);
for (Column column : (List<Column>)getElementIDsInGroupID(table)) {
if (column.getName().equalsIgnoreCase(shortElementName)) {
@@ -185,7 +185,7 @@
}
public Table getGroupID(final String groupName) throws TeiidComponentException, QueryMetadataException {
- return getMetadataStore().findGroup(groupName.toLowerCase());
+ return getMetadataStore().findGroup(groupName.toUpperCase());
}
public Collection<String> getGroupsForPartialName(final String partialGroupName)
@@ -195,7 +195,7 @@
Collection<Table> matches = this.partialNameToFullNameCache.get(partialGroupName);
if (matches == null) {
- String partialName = DELIMITER_CHAR + partialGroupName.toLowerCase();
+ String partialName = DELIMITER_CHAR + partialGroupName.toUpperCase();
matches = getMetadataStore().getGroupsForPartialName(partialName);
@@ -317,11 +317,11 @@
final String name)
throws TeiidComponentException, QueryMetadataException {
ArgCheck.isNotEmpty(name);
- String lowerGroupName = name.toLowerCase();
- Collection<StoredProcedureInfo> results = this.procedureCache.get(lowerGroupName);
+ String canonicalName = name.toUpperCase();
+ Collection<StoredProcedureInfo> results = this.procedureCache.get(canonicalName);
if (results == null) {
- Collection<Procedure> procRecords = getMetadataStore().getStoredProcedure(lowerGroupName);
+ Collection<Procedure> procRecords = getMetadataStore().getStoredProcedure(canonicalName);
results = new ArrayList<StoredProcedureInfo>(procRecords.size());
for (Procedure procRecord : procRecords) {
String procedureFullName = procRecord.getFullName();
@@ -372,7 +372,7 @@
procInfo.setUpdateCount(procRecord.getUpdateCount() -1);
results.add(procInfo);
}
- this.procedureCache.put(lowerGroupName, results);
+ this.procedureCache.put(canonicalName, results);
}
StoredProcedureInfo result = null;
Modified: trunk/engine/src/main/java/org/teiid/query/resolver/util/ResolverVisitor.java
===================================================================
--- trunk/engine/src/main/java/org/teiid/query/resolver/util/ResolverVisitor.java 2011-03-20 15:06:45 UTC (rev 3012)
+++ trunk/engine/src/main/java/org/teiid/query/resolver/util/ResolverVisitor.java 2011-03-21 14:11:08 UTC (rev 3013)
@@ -267,6 +267,7 @@
elementSymbol.setMetadataID(resolvedSymbol.getMetadataID());
elementSymbol.setGroupSymbol(resolvedGroup);
elementSymbol.setName(resolvedSymbol.getName());
+ elementSymbol.setCanonicalName(resolvedSymbol.getCanonicalName());
elementSymbol.setOutputName(oldName);
return true;
}
Modified: trunk/engine/src/main/java/org/teiid/query/sql/symbol/Symbol.java
===================================================================
--- trunk/engine/src/main/java/org/teiid/query/sql/symbol/Symbol.java 2011-03-20 15:06:45 UTC (rev 3012)
+++ trunk/engine/src/main/java/org/teiid/query/sql/symbol/Symbol.java 2011-03-21 14:11:08 UTC (rev 3013)
@@ -22,6 +22,7 @@
package org.teiid.query.sql.symbol;
+import org.teiid.core.types.DataTypeManager;
import org.teiid.core.util.StringUtil;
import org.teiid.query.QueryPlugin;
import org.teiid.query.sql.LanguageObject;
@@ -92,7 +93,7 @@
if(name == null) {
throw new IllegalArgumentException(QueryPlugin.Util.getString("ERR.015.010.0017")); //$NON-NLS-1$
}
- this.name = name;
+ this.name = DataTypeManager.getCanonicalString(name);
this.outputName = null;
// Canonical name is lazily created
this.canonicalName = null;
@@ -116,6 +117,10 @@
computeCanonicalNameAndHash();
return this.canonicalName;
}
+
+ public void setCanonicalName(String canonicalName) {
+ this.canonicalName = canonicalName;
+ }
/**
* Returns true if this symbol has been completely resolved with respect
@@ -176,7 +181,7 @@
private void computeCanonicalNameAndHash() {
if (canonicalName == null) {
- canonicalName = StringUtil.toUpperCase(name);
+ canonicalName = DataTypeManager.getCanonicalString(StringUtil.toUpperCase(name));
}
}
Modified: trunk/engine/src/main/java/org/teiid/query/validator/ValidationVisitor.java
===================================================================
--- trunk/engine/src/main/java/org/teiid/query/validator/ValidationVisitor.java 2011-03-20 15:06:45 UTC (rev 3012)
+++ trunk/engine/src/main/java/org/teiid/query/validator/ValidationVisitor.java 2011-03-21 14:11:08 UTC (rev 3013)
@@ -482,7 +482,7 @@
public void visit(DeclareStatement obj) {
ElementSymbol variable = obj.getVariable();
- String elementname = variable.getShortName().toUpperCase();
+ String elementname = variable.getShortCanonicalName();
// varible cannot be one of the special variables
if(elementname.equals(ProcedureReservedWords.ROWS_UPDATED)) {
Modified: trunk/engine/src/test/java/org/teiid/query/processor/TestTriggerActions.java
===================================================================
--- trunk/engine/src/test/java/org/teiid/query/processor/TestTriggerActions.java 2011-03-20 15:06:45 UTC (rev 3012)
+++ trunk/engine/src/test/java/org/teiid/query/processor/TestTriggerActions.java 2011-03-21 14:11:08 UTC (rev 3013)
@@ -41,10 +41,13 @@
@SuppressWarnings("nls")
public class TestTriggerActions {
+ private static final String GX = "GX";
+ private static final String VM1 = "VM1";
+
@Test public void testInsert() throws Exception {
TransformationMetadata metadata = TestUpdateValidator.example1();
- TestUpdateValidator.createView("select 1 as x, 2 as y", metadata, "gx");
- Table t = metadata.getMetadataStore().getSchemas().get("vm1").getTables().get("gx");
+ TestUpdateValidator.createView("select 1 as x, 2 as y", metadata, GX);
+ Table t = metadata.getMetadataStore().getSchemas().get(VM1).getTables().get(GX);
t.setDeletePlan("");
t.setUpdatePlan("");
t.setInsertPlan("FOR EACH ROW BEGIN insert into pm1.g1 (e1) values (new.x); END");
@@ -63,8 +66,8 @@
@Test public void testInsertWithQueryExpression() throws Exception {
TransformationMetadata metadata = TestUpdateValidator.example1();
- TestUpdateValidator.createView("select '1' as x, 2 as y", metadata, "gx");
- Table t = metadata.getMetadataStore().getSchemas().get("vm1").getTables().get("gx");
+ TestUpdateValidator.createView("select '1' as x, 2 as y", metadata, GX);
+ Table t = metadata.getMetadataStore().getSchemas().get(VM1).getTables().get(GX);
t.setDeletePlan("");
t.setUpdatePlan("");
t.setInsertPlan("FOR EACH ROW BEGIN insert into pm1.g1 (e1) values (new.x); END");
@@ -82,8 +85,8 @@
@Test public void testDelete() throws Exception {
TransformationMetadata metadata = TestUpdateValidator.example1();
- TestUpdateValidator.createView("select 1 as x, 2 as y", metadata, "gx");
- Table t = metadata.getMetadataStore().getSchemas().get("vm1").getTables().get("gx");
+ TestUpdateValidator.createView("select 1 as x, 2 as y", metadata, GX);
+ Table t = metadata.getMetadataStore().getSchemas().get(VM1).getTables().get(GX);
t.setDeletePlan("FOR EACH ROW BEGIN delete from pm1.g1 where e2 = old.x; END");
t.setUpdatePlan("");
t.setInsertPlan("");
@@ -102,8 +105,8 @@
@Test public void testUpdate() throws Exception {
TransformationMetadata metadata = TestUpdateValidator.example1();
- TestUpdateValidator.createView("select 1 as x, 2 as y", metadata, "gx");
- Table t = metadata.getMetadataStore().getSchemas().get("vm1").getTables().get("gx");
+ TestUpdateValidator.createView("select 1 as x, 2 as y", metadata, GX);
+ Table t = metadata.getMetadataStore().getSchemas().get(VM1).getTables().get(GX);
t.setDeletePlan("");
t.setUpdatePlan("FOR EACH ROW BEGIN update pm1.g1 set e2 = new.y where e2 = old.y; END");
t.setInsertPlan("");
@@ -123,8 +126,8 @@
@Test public void testUpdateWithNonConstant() throws Exception {
TransformationMetadata metadata = TestUpdateValidator.example1();
- TestUpdateValidator.createView("select 1 as x, 2 as y", metadata, "gx");
- Table t = metadata.getMetadataStore().getSchemas().get("vm1").getTables().get("gx");
+ TestUpdateValidator.createView("select 1 as x, 2 as y", metadata, GX);
+ Table t = metadata.getMetadataStore().getSchemas().get(VM1).getTables().get(GX);
t.setDeletePlan("");
t.setUpdatePlan("FOR EACH ROW BEGIN update pm1.g1 set e2 = new.y where e2 = old.y; END");
t.setInsertPlan("");
Modified: trunk/engine/src/test/java/org/teiid/query/validator/TestUpdateValidator.java
===================================================================
--- trunk/engine/src/test/java/org/teiid/query/validator/TestUpdateValidator.java 2011-03-20 15:06:45 UTC (rev 3012)
+++ trunk/engine/src/test/java/org/teiid/query/validator/TestUpdateValidator.java 2011-03-21 14:11:08 UTC (rev 3013)
@@ -84,7 +84,7 @@
throws QueryParserException, QueryResolverException,
TeiidComponentException {
QueryNode vm1g1n1 = new QueryNode(vGroup, sql);
- Table vm1g1 = RealMetadataFactory.createUpdatableVirtualGroup(vGroup, md.getMetadataStore().getSchema("vm1"), vm1g1n1);
+ Table vm1g1 = RealMetadataFactory.createUpdatableVirtualGroup(vGroup, md.getMetadataStore().getSchema("VM1"), vm1g1n1);
Command command = QueryParser.getQueryParser().parseCommand(sql);
QueryResolver.resolveCommand(command, md);
Added: trunk/test-integration/common/src/test/java/org/teiid/jdbc/MetadataSizeExperiment.java
===================================================================
--- trunk/test-integration/common/src/test/java/org/teiid/jdbc/MetadataSizeExperiment.java (rev 0)
+++ trunk/test-integration/common/src/test/java/org/teiid/jdbc/MetadataSizeExperiment.java 2011-03-21 14:11:08 UTC (rev 3013)
@@ -0,0 +1,20 @@
+package org.teiid.jdbc;
+
+import org.teiid.core.util.UnitTestUtil;
+
+public class MetadataSizeExperiment {
+
+ static FakeServer server = new FakeServer();
+
+ public static void main(String[] args) throws Exception {
+ server.deployVDB("test", UnitTestUtil.getTestDataPath() + "/TestCase3473/test.vdb");
+ server.deployVDB("QT_Ora9DS", UnitTestUtil.getTestDataPath()+"/QT_Ora9DS_1.vdb");
+ server.deployVDB("x", UnitTestUtil.getTestDataPath() + "/PartsSupplier.vdb");
+ server.deployVDB("x1", UnitTestUtil.getTestDataPath() + "/PartsSupplier.vdb");
+
+ Thread.sleep(10000000);
+
+ System.out.println(server);
+ }
+
+}
Property changes on: trunk/test-integration/common/src/test/java/org/teiid/jdbc/MetadataSizeExperiment.java
___________________________________________________________________
Added: svn:mime-type
+ text/plain
More information about the teiid-commits
mailing list