[teiid-commits] teiid SVN: r1942 - in trunk: client-jdbc/src/test/java/com/metamatrix/jdbc and 35 other directories.

teiid-commits at lists.jboss.org teiid-commits at lists.jboss.org
Tue Mar 9 00:42:44 EST 2010


Author: shawkins
Date: 2010-03-09 00:42:40 -0500 (Tue, 09 Mar 2010)
New Revision: 1942

Added:
   trunk/client-jdbc/src/test/java/com/metamatrix/jdbc/TestEmbeddedDriver.java
   trunk/connectors/connector-jdbc/src/main/java/org/teiid/connector/jdbc/teiid/
   trunk/connectors/connector-jdbc/src/main/java/org/teiid/connector/jdbc/teiid/TeiidCapabilities.java
   trunk/runtime/src/main/java/org/teiid/logging/
   trunk/runtime/src/main/java/org/teiid/logging/Log4JUtil.java
   trunk/runtime/src/main/java/org/teiid/logging/LogConfigurationProvider.java
   trunk/runtime/src/main/java/org/teiid/logging/LogListernerProvider.java
Removed:
   trunk/runtime/src/main/java/com/metamatrix/dqp/embedded/admin/
   trunk/runtime/src/main/java/com/metamatrix/jdbc/
   trunk/runtime/src/main/java/org/teiid/configuration/
   trunk/runtime/src/test/java/com/metamatrix/jdbc/
   trunk/runtime/src/test/java/com/metamatrix/platform/security/membership/
   trunk/test-integration/common/src/test/java/com/metamatrix/connector/jdbc/extension/
   trunk/test-integration/common/src/test/java/com/metamatrix/connector/jdbc/util/
   trunk/test-integration/common/src/test/java/com/metamatrix/server/integration/
   trunk/test-integration/common/src/test/java/com/metamatrix/systemmodel/
   trunk/test-integration/common/src/test/java/org/teiid/runtime/
   trunk/test-integration/db/src/test/java/org/teiid/connector/metadata/TestMetadataInConnector.java
Modified:
   trunk/build/kit-jboss-container/deploy/teiid/teiid-jboss-beans.xml
   trunk/connector-api/src/main/java/org/teiid/connector/metadata/runtime/BaseColumn.java
   trunk/connector-api/src/main/java/org/teiid/connector/metadata/runtime/ProcedureParameter.java
   trunk/connector-api/src/main/java/org/teiid/connector/visitor/util/SQLStringVisitor.java
   trunk/connectors/connector-jdbc/src/main/java/org/teiid/connector/jdbc/mm/MMCapabilities.java
   trunk/connectors/connector-jdbc/src/test/java/org/teiid/connector/jdbc/extension/TestSQLConversionVisitor.java
   trunk/engine/src/main/java/com/metamatrix/common/buffer/impl/FileStorageManager.java
   trunk/engine/src/main/java/org/teiid/dqp/internal/datamgr/language/LanguageBridgeFactory.java
   trunk/engine/src/main/java/org/teiid/dqp/internal/process/DQPConfiguration.java
   trunk/engine/src/main/java/org/teiid/dqp/internal/process/DataTierManagerImpl.java
   trunk/engine/src/main/java/org/teiid/metadata/TransformationMetadata.java
   trunk/engine/src/test/java/com/metamatrix/query/function/TestResolvedFunctions.java
   trunk/engine/src/test/java/com/metamatrix/query/optimizer/TestJoinOptimization.java
   trunk/engine/src/test/java/com/metamatrix/query/optimizer/TestOptimizer.java
   trunk/engine/src/test/java/com/metamatrix/query/processor/TestProcessor.java
   trunk/engine/src/test/java/com/metamatrix/query/resolver/TestResolver.java
   trunk/engine/src/test/java/com/metamatrix/query/unittest/FakeMetadataFactory.java
   trunk/engine/src/test/java/com/metamatrix/query/validator/TestValidator.java
   trunk/engine/src/test/java/org/teiid/dqp/internal/datamgr/language/TestGroupImpl.java
   trunk/engine/src/test/java/org/teiid/dqp/internal/datamgr/language/TestInlineViewImpl.java
   trunk/engine/src/test/java/org/teiid/dqp/internal/datamgr/language/TestProcedureImpl.java
   trunk/engine/src/test/java/org/teiid/dqp/internal/datamgr/language/TestSetQueryImpl.java
   trunk/engine/src/test/java/org/teiid/dqp/internal/datamgr/language/TstLanguageBridgeFactory.java
   trunk/jboss-integration/src/main/java/org/teiid/jboss/deployers/RuntimeEngineDeployer.java
   trunk/metadata/src/main/java/org/teiid/metadata/index/RecordFactory.java
   trunk/runtime/src/main/java/org/teiid/logging/CommonsLogManagerAdapter.java
   trunk/runtime/src/main/java/org/teiid/services/BufferServiceImpl.java
   trunk/runtime/src/test/java/org/teiid/transport/TestCommSockets.java
   trunk/test-integration/common/src/test/java/org/teiid/connector/language/TestLanguageUtil.java
   trunk/test-integration/common/src/test/java/org/teiid/connector/metadata/runtime/TestElement.java
   trunk/test-integration/common/src/test/java/org/teiid/connector/metadata/runtime/TestMetadataObject.java
   trunk/test-integration/common/src/test/java/org/teiid/connector/metadata/runtime/TestParams.java
   trunk/test-integration/common/src/test/java/org/teiid/connector/metadata/runtime/TestProcedure.java
   trunk/test-integration/common/src/test/java/org/teiid/connector/visitor/util/TestSQLStringVisitor.java
Log:
TEIID-833 cleaning up tests post merge

Modified: trunk/build/kit-jboss-container/deploy/teiid/teiid-jboss-beans.xml
===================================================================
--- trunk/build/kit-jboss-container/deploy/teiid/teiid-jboss-beans.xml	2010-03-08 22:13:59 UTC (rev 1941)
+++ trunk/build/kit-jboss-container/deploy/teiid/teiid-jboss-beans.xml	2010-03-09 05:42:40 UTC (rev 1942)
@@ -57,13 +57,13 @@
         <!-- 
             The number of batch columns guaranteed to a processing operation.  Set this value lower if the workload typically
             processes larger numbers of concurrent queries with large intermediate results from operations such as sorting, 
-            grouping, etc. (default 124)        
+            grouping, etc. (default 128)        
          -->
         <property name="maxProcessingBatchesColumns">128</property>
         <!--  Max File size in MB (default 2GB)-->
-        <property name="maxFileSize">2024</property> 
-        <!-- Max open buffer files (default 128) -->
-        <property name="maxOpenFiles">256</property>
+        <property name="maxFileSize">2048</property> 
+        <!-- Max open buffer files (default 64) -->
+        <property name="maxOpenFiles">64</property>
     </bean>
     
     <bean name="RuntimeEngineDeployer" class="org.teiid.jboss.deployers.RuntimeEngineDeployer">

Copied: trunk/client-jdbc/src/test/java/com/metamatrix/jdbc/TestEmbeddedDriver.java (from rev 1934, trunk/runtime/src/test/java/com/metamatrix/jdbc/TestEmbeddedDriver.java)
===================================================================
--- trunk/client-jdbc/src/test/java/com/metamatrix/jdbc/TestEmbeddedDriver.java	                        (rev 0)
+++ trunk/client-jdbc/src/test/java/com/metamatrix/jdbc/TestEmbeddedDriver.java	2010-03-09 05:42:40 UTC (rev 1942)
@@ -0,0 +1,90 @@
+/*
+ * 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 com.metamatrix.jdbc;
+
+import java.sql.DriverManager;
+import java.sql.SQLException;
+
+import junit.framework.TestCase;
+
+
+/** 
+ * @since 4.3
+ */
+public class TestEmbeddedDriver extends TestCase {
+
+    EmbeddedDriver driver = new EmbeddedDriver();
+    
+    /*
+     * Test method for 'com.metamatrix.jdbc.EmbeddedDriver.acceptsURL(String)'
+     * // (\\w:[\\\\,\\/]|file:\\/\\/|\\/|\\\\|(\\.){1,2}){1}
+     */
+    public void testAcceptsURL() throws SQLException {    
+        // Windows Path
+        assertTrue(driver.acceptsURL("jdbc:metamatrix:BQT at c:\\metamatrix\\dqp\\dqp.properties")); //$NON-NLS-1$
+        assertTrue(driver.acceptsURL("jdbc:metamatrix:BQT at c:\\metamatrix\\dqp\\dqp.properties;version=1")); //$NON-NLS-1$
+        assertTrue(driver.acceptsURL("jdbc:metamatrix:BQT at c:\\metamatrix\\dqp\\dqp.properties;version=1;txnAutoWrap=ON;partialResultsMode=YES")); //$NON-NLS-1$
+        
+        // Alternative windows path
+        assertTrue(driver.acceptsURL("jdbc:metamatrix:BQT at c:/metamatrix/dqp/dqp.properties")); //$NON-NLS-1$
+        assertTrue(driver.acceptsURL("jdbc:metamatrix:BQT at c:/metamatrix/dqp/dqp.properties;version=1")); //$NON-NLS-1$
+        assertTrue(driver.acceptsURL("jdbc:metamatrix:BQT at c:/metamatrix/dqp/dqp.properties;version=1;txnAutoWrap=ON;partialResultsMode=YES")); //$NON-NLS-1$
+
+        // Abosolute path (Unix or windows)
+        assertTrue(driver.acceptsURL("jdbc:metamatrix:BQT@/metamatrix/dqp/dqp.properties")); //$NON-NLS-1$
+        assertTrue(driver.acceptsURL("jdbc:metamatrix:BQT@/metamatrix/dqp/dqp.properties;version=1")); //$NON-NLS-1$
+        assertTrue(driver.acceptsURL("jdbc:metamatrix:BQT@/metamatrix/dqp/dqp.properties;version=1;txnAutoWrap=ON;partialResultsMode=YES")); //$NON-NLS-1$
+
+        // relative path
+        assertTrue(driver.acceptsURL("jdbc:metamatrix:BQT at ../../metamatrix/dqp/dqp.properties")); //$NON-NLS-1$
+        assertTrue(driver.acceptsURL("jdbc:metamatrix:BQT at ../../metamatrix/dqp/dqp.properties;version=1")); //$NON-NLS-1$
+        assertTrue(driver.acceptsURL("jdbc:metamatrix:BQT at ../../metamatrix/dqp/dqp.properties;version=1;txnAutoWrap=ON;partialResultsMode=YES")); //$NON-NLS-1$
+        
+        // File URL should be supported (not sure)
+        assertTrue(driver.acceptsURL("jdbc:metamatrix:BQT at file:///c:/metamatrix/dqp/dqp.properties")); //$NON-NLS-1$
+        assertTrue(driver.acceptsURL("jdbc:metamatrix:BQT at testdata/dqp/dqp.properties;partialResultsMode=true")); //$NON-NLS-1$
+        
+        // ClassPath based URL
+        assertTrue(driver.acceptsURL("jdbc:metamatrix:BQT at classpath:/dqp.properties;partialResultsMode=true")); //$NON-NLS-1$
+        
+        // These are specific to the MMDriver and should not be suported
+        assertFalse(driver.acceptsURL("jdbc:metamatrix:BQT at mm://host:7001;version=1")); //$NON-NLS-1$
+        assertFalse(driver.acceptsURL("jdbc:metamatrix:BQT at mms://host:7001;version=1")); //$NON-NLS-1$
+        //assertFalse(driver.acceptsURL("jdbc:metamatrix:BQT at http://host:7001;version=1"));
+        
+        assertTrue(driver.acceptsURL("jdbc:metamatrix:BQT")); //$NON-NLS-1$
+        assertFalse(driver.acceptsURL("jdbc:metamatrix:BQT!/path/foo.properties")); //$NON-NLS-1$
+        assertTrue(driver.acceptsURL("jdbc:metamatrix:BQT;")); //$NON-NLS-1$
+        assertTrue(driver.acceptsURL("jdbc:metamatrix:BQT;version=1;logFile=foo.txt")); //$NON-NLS-1$
+    }
+
+    public void test() throws Exception {
+        try {
+            Class.forName("com.metamatrix.jdbc.EmbeddedDriver"); //$NON-NLS-1$
+            DriverManager.getConnection("jdbc:metamatrix:Parts at invalidConfig.properties;version=1"); //$NON-NLS-1$
+            fail();
+        } catch (SQLException e) {
+        }
+    }
+    
+}

Modified: trunk/connector-api/src/main/java/org/teiid/connector/metadata/runtime/BaseColumn.java
===================================================================
--- trunk/connector-api/src/main/java/org/teiid/connector/metadata/runtime/BaseColumn.java	2010-03-08 22:13:59 UTC (rev 1941)
+++ trunk/connector-api/src/main/java/org/teiid/connector/metadata/runtime/BaseColumn.java	2010-03-09 05:42:40 UTC (rev 1942)
@@ -80,6 +80,10 @@
         return radix;
     }
 
+    /**
+     * 1 based ordinal position
+     * @return
+     */
     public int getPosition() {
         return position;
     }

Modified: trunk/connector-api/src/main/java/org/teiid/connector/metadata/runtime/ProcedureParameter.java
===================================================================
--- trunk/connector-api/src/main/java/org/teiid/connector/metadata/runtime/ProcedureParameter.java	2010-03-08 22:13:59 UTC (rev 1941)
+++ trunk/connector-api/src/main/java/org/teiid/connector/metadata/runtime/ProcedureParameter.java	2010-03-09 05:42:40 UTC (rev 1942)
@@ -22,10 +22,6 @@
 
 package org.teiid.connector.metadata.runtime;
 
-import java.util.Collections;
-import java.util.List;
-
-
 /**
  * ProcedureParameterRecordImpl
  */
@@ -35,7 +31,6 @@
 		Unknown,
 		In,
 		InOut,
-		ResultSet,
 		Out,
 		ReturnValue
 	}
@@ -69,15 +64,4 @@
 		return this.procedure;
 	}
 
-	/**
-	 * Get the result set columns only if this parameter represents a result set.
-	 * @return
-	 */
-	public List<Column> getResultSetColumns() {
-		if (this.type == Type.ResultSet) {
-			return this.procedure.getResultSet().getColumns();
-		}
-		return Collections.emptyList();
-	}
-    
 }
\ No newline at end of file

Modified: trunk/connector-api/src/main/java/org/teiid/connector/visitor/util/SQLStringVisitor.java
===================================================================
--- trunk/connector-api/src/main/java/org/teiid/connector/visitor/util/SQLStringVisitor.java	2010-03-08 22:13:59 UTC (rev 1941)
+++ trunk/connector-api/src/main/java/org/teiid/connector/visitor/util/SQLStringVisitor.java	2010-03-09 05:42:40 UTC (rev 1942)
@@ -692,7 +692,7 @@
             buffer.append(Tokens.SPACE);
         }
         append(obj.getDerivedColumns());
-        if (obj.getFrom() != null) {
+        if (obj.getFrom() != null && !obj.getFrom().isEmpty()) {
         	buffer.append(Tokens.SPACE).append(SQLReservedWords.FROM).append(Tokens.SPACE);      
             append(obj.getFrom());
         }

Modified: trunk/connectors/connector-jdbc/src/main/java/org/teiid/connector/jdbc/mm/MMCapabilities.java
===================================================================
--- trunk/connectors/connector-jdbc/src/main/java/org/teiid/connector/jdbc/mm/MMCapabilities.java	2010-03-08 22:13:59 UTC (rev 1941)
+++ trunk/connectors/connector-jdbc/src/main/java/org/teiid/connector/jdbc/mm/MMCapabilities.java	2010-03-09 05:42:40 UTC (rev 1942)
@@ -1,25 +1,6 @@
 /*
- * 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.
+ * Copyright © 2000-2005 MetaMatrix, Inc.  All rights reserved.
  */
-
 /*
  */
 package org.teiid.connector.jdbc.mm;
@@ -29,18 +10,13 @@
 
 import org.teiid.connector.jdbc.JDBCCapabilities;
 
-
 /** 
- * @since 4.3
+ * Capabilities compatible with MM 5.5.x
  */
 public class MMCapabilities extends JDBCCapabilities {
     
-    /** 
-     * @see org.teiid.connector.api.ConnectorCapabilities#getSupportedFunctions()
-     * @since 4.3
-     */
-    public List getSupportedFunctions() {
-        List supportedFunctions = new ArrayList();
+    public List<String> getSupportedFunctions() {
+        List<String> supportedFunctions = new ArrayList<String>();
         supportedFunctions.addAll(super.getSupportedFunctions());
         supportedFunctions.add("ABS"); //$NON-NLS-1$
         supportedFunctions.add("ACOS"); //$NON-NLS-1$
@@ -129,9 +105,6 @@
         supportedFunctions.add("CAST"); //$NON-NLS-1$
         supportedFunctions.add("CONVERT"); //$NON-NLS-1$
         supportedFunctions.add("USER"); //$NON-NLS-1$
-        supportedFunctions.add("FROM_UNIXTIME"); //$NON-NLS-1$
-        supportedFunctions.add("NULLIF"); //$NON-NLS-1$
-        supportedFunctions.add("COALESCE"); //$NON-NLS-1$
         return supportedFunctions;
     }
     
@@ -139,10 +112,6 @@
         return true;
     }
 
-    /** 
-     * @see org.teiid.connector.api.ConnectorCapabilities#supportsFunctionsInGroupBy()
-     * @since 5.0
-     */
     public boolean supportsFunctionsInGroupBy() {
         return true;
     }    
@@ -154,14 +123,4 @@
     public boolean supportsRowOffset() {
         return true;
     }
-    
-    @Override
-    public boolean supportsExcept() {
-    	return true;
-    }
-    
-    @Override
-    public boolean supportsIntersect() {
-    	return true;
-    }
-}
+}
\ No newline at end of file

Added: trunk/connectors/connector-jdbc/src/main/java/org/teiid/connector/jdbc/teiid/TeiidCapabilities.java
===================================================================
--- trunk/connectors/connector-jdbc/src/main/java/org/teiid/connector/jdbc/teiid/TeiidCapabilities.java	                        (rev 0)
+++ trunk/connectors/connector-jdbc/src/main/java/org/teiid/connector/jdbc/teiid/TeiidCapabilities.java	2010-03-09 05:42:40 UTC (rev 1942)
@@ -0,0 +1,167 @@
+/*
+ * 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.connector.jdbc.teiid;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.teiid.connector.jdbc.JDBCCapabilities;
+
+
+/** 
+ * @since 4.3
+ */
+public class TeiidCapabilities extends JDBCCapabilities {
+    
+    /** 
+     * @see org.teiid.connector.api.ConnectorCapabilities#getSupportedFunctions()
+     * @since 4.3
+     */
+    public List<String> getSupportedFunctions() {
+        List<String> supportedFunctions = new ArrayList<String>();
+        supportedFunctions.addAll(super.getSupportedFunctions());
+        supportedFunctions.add("ABS"); //$NON-NLS-1$
+        supportedFunctions.add("ACOS"); //$NON-NLS-1$
+        supportedFunctions.add("ASIN"); //$NON-NLS-1$
+        supportedFunctions.add("ATAN"); //$NON-NLS-1$
+        supportedFunctions.add("ATAN2"); //$NON-NLS-1$
+        supportedFunctions.add("CEILING"); //$NON-NLS-1$
+        supportedFunctions.add("COS"); //$NON-NLS-1$
+        supportedFunctions.add("COT"); //$NON-NLS-1$
+        supportedFunctions.add("DEGREES"); //$NON-NLS-1$
+        supportedFunctions.add("EXP"); //$NON-NLS-1$
+        supportedFunctions.add("FLOOR"); //$NON-NLS-1$
+        supportedFunctions.add("FORMATBIGDECIMAL"); //$NON-NLS-1$
+        supportedFunctions.add("FORMATBIGINTEGER"); //$NON-NLS-1$
+        supportedFunctions.add("FORMATDOUBLE"); //$NON-NLS-1$
+        supportedFunctions.add("FORMATFLOAT"); //$NON-NLS-1$
+        supportedFunctions.add("FORMATINTEGER"); //$NON-NLS-1$
+        supportedFunctions.add("FORMATLONG"); //$NON-NLS-1$
+        supportedFunctions.add("LOG"); //$NON-NLS-1$
+        supportedFunctions.add("LOG10"); //$NON-NLS-1$
+        supportedFunctions.add("MOD"); //$NON-NLS-1$
+        supportedFunctions.add("PARSEBIGDECIMAL"); //$NON-NLS-1$
+        supportedFunctions.add("PARSEBIGINTEGER"); //$NON-NLS-1$
+        supportedFunctions.add("PARSEDOUBLE"); //$NON-NLS-1$
+        supportedFunctions.add("PARSEFLOAT"); //$NON-NLS-1$
+        supportedFunctions.add("PARSEINTEGER"); //$NON-NLS-1$
+        supportedFunctions.add("PARSELONG"); //$NON-NLS-1$
+        supportedFunctions.add("PI"); //$NON-NLS-1$
+        supportedFunctions.add("POWER"); //$NON-NLS-1$
+        supportedFunctions.add("RADIANS"); //$NON-NLS-1$
+        supportedFunctions.add("RAND"); //$NON-NLS-1$
+        supportedFunctions.add("ROUND"); //$NON-NLS-1$
+        supportedFunctions.add("SIGN"); //$NON-NLS-1$
+        supportedFunctions.add("SIN"); //$NON-NLS-1$
+        supportedFunctions.add("SQRT"); //$NON-NLS-1$
+        supportedFunctions.add("TAN"); //$NON-NLS-1$
+        supportedFunctions.add("ASCII"); //$NON-NLS-1$
+        supportedFunctions.add("CHAR"); //$NON-NLS-1$
+        supportedFunctions.add("CHR"); //$NON-NLS-1$
+        supportedFunctions.add("CONCAT"); //$NON-NLS-1$
+        supportedFunctions.add("CONCAT2"); //$NON-NLS-1$
+        supportedFunctions.add("||"); //$NON-NLS-1$
+        supportedFunctions.add("INITCAP"); //$NON-NLS-1$
+        supportedFunctions.add("INSERT"); //$NON-NLS-1$
+        supportedFunctions.add("LCASE"); //$NON-NLS-1$
+        supportedFunctions.add("LENGTH"); //$NON-NLS-1$
+        supportedFunctions.add("LEFT"); //$NON-NLS-1$
+        supportedFunctions.add("LOCATE"); //$NON-NLS-1$
+        supportedFunctions.add("LPAD"); //$NON-NLS-1$
+        supportedFunctions.add("LTRIM"); //$NON-NLS-1$
+        supportedFunctions.add("REPEAT"); //$NON-NLS-1$
+        supportedFunctions.add("REPLACE"); //$NON-NLS-1$
+        supportedFunctions.add("RPAD"); //$NON-NLS-1$
+        supportedFunctions.add("RIGHT"); //$NON-NLS-1$
+        supportedFunctions.add("RTRIM"); //$NON-NLS-1$
+        supportedFunctions.add("SUBSTRING"); //$NON-NLS-1$
+        supportedFunctions.add("TRANSLATE"); //$NON-NLS-1$
+        supportedFunctions.add("UCASE"); //$NON-NLS-1$
+        supportedFunctions.add("CURDATE"); //$NON-NLS-1$
+        supportedFunctions.add("CURTIME"); //$NON-NLS-1$
+        supportedFunctions.add("NOW"); //$NON-NLS-1$
+        supportedFunctions.add("DAYNAME"); //$NON-NLS-1$
+        supportedFunctions.add("DAYOFMONTH"); //$NON-NLS-1$
+        supportedFunctions.add("DAYOFWEEK"); //$NON-NLS-1$
+        supportedFunctions.add("DAYOFYEAR"); //$NON-NLS-1$
+        supportedFunctions.add("FORMATDATE"); //$NON-NLS-1$
+        supportedFunctions.add("FORMATTIME"); //$NON-NLS-1$
+        supportedFunctions.add("FORMATTIMESTAMP"); //$NON-NLS-1$
+        supportedFunctions.add("HOUR"); //$NON-NLS-1$
+        supportedFunctions.add("MINUTE"); //$NON-NLS-1$
+        supportedFunctions.add("MONTH"); //$NON-NLS-1$
+        supportedFunctions.add("MONTHNAME"); //$NON-NLS-1$
+        supportedFunctions.add("PARSEDATE"); //$NON-NLS-1$
+        supportedFunctions.add("PARSETIME"); //$NON-NLS-1$
+        supportedFunctions.add("PARSETIMESTAMP"); //$NON-NLS-1$
+        supportedFunctions.add("SECOND"); //$NON-NLS-1$
+        supportedFunctions.add("TIMESTAMPADD"); //$NON-NLS-1$
+        supportedFunctions.add("TIMESTAMPDIFF"); //$NON-NLS-1$
+        supportedFunctions.add("WEEK"); //$NON-NLS-1$
+        supportedFunctions.add("YEAR"); //$NON-NLS-1$
+        supportedFunctions.add("MODIFYTIMEZONE"); //$NON-NLS-1$
+        supportedFunctions.add("DECODESTRING"); //$NON-NLS-1$
+        supportedFunctions.add("DECODEINTEGER"); //$NON-NLS-1$
+        supportedFunctions.add("IFNULL"); //$NON-NLS-1$
+        supportedFunctions.add("NVL");      //$NON-NLS-1$ 
+        supportedFunctions.add("CAST"); //$NON-NLS-1$
+        supportedFunctions.add("CONVERT"); //$NON-NLS-1$
+        supportedFunctions.add("USER"); //$NON-NLS-1$
+        supportedFunctions.add("FROM_UNIXTIME"); //$NON-NLS-1$
+        supportedFunctions.add("NULLIF"); //$NON-NLS-1$
+        supportedFunctions.add("COALESCE"); //$NON-NLS-1$
+        return supportedFunctions;
+    }
+    
+    public boolean supportsInlineViews() {
+        return true;
+    }
+
+    /** 
+     * @see org.teiid.connector.api.ConnectorCapabilities#supportsFunctionsInGroupBy()
+     * @since 5.0
+     */
+    public boolean supportsFunctionsInGroupBy() {
+        return true;
+    }    
+    
+    public boolean supportsRowLimit() {
+        return true;
+    }
+    
+    public boolean supportsRowOffset() {
+        return true;
+    }
+    
+    @Override
+    public boolean supportsExcept() {
+    	return true;
+    }
+    
+    @Override
+    public boolean supportsIntersect() {
+    	return true;
+    }
+}


Property changes on: trunk/connectors/connector-jdbc/src/main/java/org/teiid/connector/jdbc/teiid/TeiidCapabilities.java
___________________________________________________________________
Name: svn:mime-type
   + text/plain

Modified: trunk/connectors/connector-jdbc/src/test/java/org/teiid/connector/jdbc/extension/TestSQLConversionVisitor.java
===================================================================
--- trunk/connectors/connector-jdbc/src/test/java/org/teiid/connector/jdbc/extension/TestSQLConversionVisitor.java	2010-03-08 22:13:59 UTC (rev 1941)
+++ trunk/connectors/connector-jdbc/src/test/java/org/teiid/connector/jdbc/extension/TestSQLConversionVisitor.java	2010-03-09 05:42:40 UTC (rev 1942)
@@ -373,7 +373,7 @@
     }
 
     @Test public void testVisitIDeleteWithComment() throws Exception {
-        String expected = "DELETE /*teiid sessionid:ConnectionID, requestid:RequestID.PartID*/ FROM g1 WHERE (100 >= 200) AND (500 < 600)"; //$NON-NLS-1$
+        String expected = "DELETE /*teiid sessionid:ConnectionID, requestid:RequestID.PartID*/ FROM g1 WHERE 100 >= 200 AND 500 < 600"; //$NON-NLS-1$
         assertEquals(expected, getStringWithContext(TestDeleteImpl.example()));
     }
 
@@ -383,9 +383,9 @@
     }  
     
     @Test public void testVisitISelectWithComment() throws Exception {
-        String expected = "SELECT /*teiid sessionid:ConnectionID, requestid:RequestID.PartID*/ g1.e1, g1.e2, g1.e3, g1.e4"; //$NON-NLS-1$
+        String expected = "SELECT /*teiid sessionid:ConnectionID, requestid:RequestID.PartID*/ g1.e1, g1.e2, g1.e3, g1.e4 FROM g1, g2 AS myAlias, g3, g4 WHERE 100 >= 200 AND 500 < 600 GROUP BY g1.e1, g1.e2, g1.e3, g1.e4 HAVING 100 >= 200 AND 500 < 600 ORDER BY e1, e2 DESC, e3, e4 DESC"; //$NON-NLS-1$
         assertEquals(expected, getStringWithContext(TestQueryImpl.example(false)));
-        expected = "SELECT /*teiid sessionid:ConnectionID, requestid:RequestID.PartID*/ DISTINCT g1.e1, g1.e2, g1.e3, g1.e4"; //$NON-NLS-1$
+        expected = "SELECT /*teiid sessionid:ConnectionID, requestid:RequestID.PartID*/ DISTINCT g1.e1, g1.e2, g1.e3, g1.e4 FROM g1, g2 AS myAlias, g3, g4 WHERE 100 >= 200 AND 500 < 600 GROUP BY g1.e1, g1.e2, g1.e3, g1.e4 HAVING 100 >= 200 AND 500 < 600 ORDER BY e1, e2 DESC, e3, e4 DESC"; //$NON-NLS-1$
         assertEquals(expected, getStringWithContext(TestQueryImpl.example(true)));
     }
     

Modified: trunk/engine/src/main/java/com/metamatrix/common/buffer/impl/FileStorageManager.java
===================================================================
--- trunk/engine/src/main/java/com/metamatrix/common/buffer/impl/FileStorageManager.java	2010-03-08 22:13:59 UTC (rev 1941)
+++ trunk/engine/src/main/java/com/metamatrix/common/buffer/impl/FileStorageManager.java	2010-03-09 05:42:40 UTC (rev 1942)
@@ -45,7 +45,8 @@
  */
 public class FileStorageManager implements StorageManager {
 	
-    private static final int DEFAULT_MAX_OPEN_FILES = 128;
+	public static final int DEFAULT_MAX_OPEN_FILES = 64;
+	public static final long DEFAULT_MAX_FILESIZE = 2L * 1024L;
 	private static final String FILE_PREFIX = "b_"; //$NON-NLS-1$
 	
 	private class FileInfo {
@@ -72,10 +73,12 @@
         }
         
         public void delete()  {
-        	RandomAccessFile raf = fileCache.remove(this.file);
-        	if (raf != null) {
+        	if (fileData == null) {
+        		fileData = fileCache.remove(this.file);
+        	}
+        	if (fileData != null) {
         		try {
-					raf.close();
+        			fileData.close();
 				} catch (IOException e) {
 				}
         	}
@@ -95,21 +98,29 @@
 			this.name = name;
 		}
 	    
-	    public synchronized int readDirect(long fileOffset, byte[] b, int offSet, int length) throws MetaMatrixComponentException {
+	    /**
+	     * Concurrent reads are possible, but only after writing is complete.
+	     */
+	    public int readDirect(long fileOffset, byte[] b, int offSet, int length) throws MetaMatrixComponentException {
 	    	Map.Entry<Long, FileInfo> entry = storageFiles.floorEntry(fileOffset);
-			Assertion.isNotNull(entry);
+	    	Assertion.isNotNull(entry);
 			FileInfo fileInfo = entry.getValue();
-			try {
-				RandomAccessFile fileAccess = fileInfo.open();
-		        fileAccess.seek(fileOffset - entry.getKey());
-		        return fileAccess.read(b, offSet, length);
-			} catch (IOException e) {
-				throw new MetaMatrixComponentException(e, QueryExecPlugin.Util.getString("FileStoreageManager.error_reading", fileInfo.file.getAbsoluteFile())); //$NON-NLS-1$
-			} finally {
-				fileInfo.close();
+			synchronized (fileInfo) {
+				try {
+					RandomAccessFile fileAccess = fileInfo.open();
+			        fileAccess.seek(fileOffset - entry.getKey());
+			        return fileAccess.read(b, offSet, length);
+				} catch (IOException e) {
+					throw new MetaMatrixComponentException(e, QueryExecPlugin.Util.getString("FileStoreageManager.error_reading", fileInfo.file.getAbsoluteFile())); //$NON-NLS-1$
+				} finally {
+					fileInfo.close();
+				}
 			}
 	    }
 
+	    /**
+	     * Concurrent writes are prevented by FileStore, but in general should not happen since processing is single threaded.
+	     */
 		public void writeDirect(byte[] bytes, int offset, int length) throws MetaMatrixComponentException {
 			Map.Entry<Long, FileInfo> entry = this.storageFiles.lastEntry();
 			boolean createNew = false;
@@ -153,7 +164,7 @@
 
     // Initialization
     private int maxOpenFiles = DEFAULT_MAX_OPEN_FILES;
-    private long maxFileSize = 2L * 1024L * 1024L * 1024L; // 2GB
+    private long maxFileSize = DEFAULT_MAX_FILESIZE * 1024L * 1024L; // 2GB
     private String directory;
     private File dirFile;
 

Modified: trunk/engine/src/main/java/org/teiid/dqp/internal/datamgr/language/LanguageBridgeFactory.java
===================================================================
--- trunk/engine/src/main/java/org/teiid/dqp/internal/datamgr/language/LanguageBridgeFactory.java	2010-03-08 22:13:59 UTC (rev 1941)
+++ trunk/engine/src/main/java/org/teiid/dqp/internal/datamgr/language/LanguageBridgeFactory.java	2010-03-09 05:42:40 UTC (rev 1942)
@@ -47,9 +47,9 @@
 import org.teiid.connector.language.NamedTable;
 import org.teiid.connector.language.Not;
 import org.teiid.connector.language.QueryExpression;
+import org.teiid.connector.language.SearchedCase;
 import org.teiid.connector.language.SearchedWhenClause;
 import org.teiid.connector.language.Select;
-import org.teiid.connector.language.SearchedCase;
 import org.teiid.connector.language.SortSpecification;
 import org.teiid.connector.language.SubqueryComparison;
 import org.teiid.connector.language.SubqueryIn;
@@ -503,8 +503,7 @@
     }
 
     ColumnReference translate(ElementSymbol symbol) throws MetaMatrixComponentException {
-        ColumnReference element = null;
-        element = new ColumnReference(translate(symbol.getGroupSymbol()), symbol.getOutputName(), null, symbol.getType());
+        ColumnReference element = new ColumnReference(translate(symbol.getGroupSymbol()), symbol.getOutputName(), null, symbol.getType());
         if (element.getTable().getMetadataObject() == null) {
             return element;
         }
@@ -622,7 +621,7 @@
             translatedParameters.add(arg);
         }
                         
-        Call call = new Call(sp.getProcedureName(), translatedParameters, proc);
+        Call call = new Call(removeSchemaName(sp.getProcedureName()), translatedParameters, proc);
         call.setReturnType(returnType);
         return call;
     }
@@ -634,6 +633,7 @@
             alias = symbol.getOutputName();
             fullGroup = symbol.getOutputDefinition();
         }
+        fullGroup = removeSchemaName(fullGroup);
         NamedTable group = new NamedTable(fullGroup, alias, null);
 		if (symbol.getMetadataID() instanceof TempMetadataID) {
 			return group;
@@ -646,6 +646,15 @@
         }
         return group;
     }
+
+	private String removeSchemaName(String fullGroup) {
+		//remove the model name
+        int index = fullGroup.indexOf(ElementSymbol.SEPARATOR);
+        if (index > 0) {
+        	fullGroup = fullGroup.substring(index + 1);
+        }
+		return fullGroup;
+	}
     
     /* Batched Updates */
     BatchedUpdates translate(BatchedUpdateCommand command) throws MetaMatrixComponentException {

Modified: trunk/engine/src/main/java/org/teiid/dqp/internal/process/DQPConfiguration.java
===================================================================
--- trunk/engine/src/main/java/org/teiid/dqp/internal/process/DQPConfiguration.java	2010-03-08 22:13:59 UTC (rev 1941)
+++ trunk/engine/src/main/java/org/teiid/dqp/internal/process/DQPConfiguration.java	2010-03-09 05:42:40 UTC (rev 1942)
@@ -35,7 +35,7 @@
     static final int DEFAULT_PROCESSOR_TIMESLICE = 2000;
     static final int DEFAULT_MAX_RESULTSET_CACHE_ENTRIES = 1024;
     static final String PROCESS_PLAN_QUEUE_NAME = "QueryProcessorQueue"; //$NON-NLS-1$
-    static final int DEFAULT_MAX_PROCESS_WORKERS = 15;
+    public static final int DEFAULT_MAX_PROCESS_WORKERS = 16;
 	
     
 	private String processName = "localhost";

Modified: trunk/engine/src/main/java/org/teiid/dqp/internal/process/DataTierManagerImpl.java
===================================================================
--- trunk/engine/src/main/java/org/teiid/dqp/internal/process/DataTierManagerImpl.java	2010-03-08 22:13:59 UTC (rev 1941)
+++ trunk/engine/src/main/java/org/teiid/dqp/internal/process/DataTierManagerImpl.java	2010-03-09 05:42:40 UTC (rev 1942)
@@ -193,7 +193,7 @@
 						}
 						if (proc.getResultSet() != null) {
 							for (Column param : proc.getResultSet().getColumns()) {
-								rows.add(Arrays.asList(vdbName, proc.getParent().getName(), proc.getName(), param.getName(), param.getDatatype().getRuntimeTypeName(), param.getPosition(), ProcedureParameter.Type.ResultSet.toString(), false, 
+								rows.add(Arrays.asList(vdbName, proc.getParent().getName(), proc.getName(), param.getName(), param.getDatatype().getRuntimeTypeName(), param.getPosition(), "ResultSet", false, //$NON-NLS-1$ 
 										param.getPrecision(), param.getLength(), param.getScale(), param.getRadix(), param.getNullType().toString(), param.getUUID()));
 							}
 						}

Modified: trunk/engine/src/main/java/org/teiid/metadata/TransformationMetadata.java
===================================================================
--- trunk/engine/src/main/java/org/teiid/metadata/TransformationMetadata.java	2010-03-08 22:13:59 UTC (rev 1941)
+++ trunk/engine/src/main/java/org/teiid/metadata/TransformationMetadata.java	2010-03-09 05:42:40 UTC (rev 1942)
@@ -374,7 +374,6 @@
             case Out : return SPParameter.OUT;
             case InOut : return SPParameter.INOUT;
             case ReturnValue : return SPParameter.RETURN_VALUE;
-            case ResultSet : return SPParameter.RESULT_SET;
             default : 
                 return -1;
         }

Modified: trunk/engine/src/test/java/com/metamatrix/query/function/TestResolvedFunctions.java
===================================================================
--- trunk/engine/src/test/java/com/metamatrix/query/function/TestResolvedFunctions.java	2010-03-08 22:13:59 UTC (rev 1941)
+++ trunk/engine/src/test/java/com/metamatrix/query/function/TestResolvedFunctions.java	2010-03-09 05:42:40 UTC (rev 1942)
@@ -89,7 +89,7 @@
                                               BlockedException,
                                               MetaMatrixComponentException, QueryResolverException {
         Expression expr = QueryParser.getQueryParser().parseExpression(sql);
-        ResolverVisitor.resolveLanguageObject(expr, FakeMetadataFactory.example1());
+        ResolverVisitor.resolveLanguageObject(expr, FakeMetadataFactory.example1Cached());
         return Evaluator.evaluate(expr);
     }
     

Modified: trunk/engine/src/test/java/com/metamatrix/query/optimizer/TestJoinOptimization.java
===================================================================
--- trunk/engine/src/test/java/com/metamatrix/query/optimizer/TestJoinOptimization.java	2010-03-08 22:13:59 UTC (rev 1941)
+++ trunk/engine/src/test/java/com/metamatrix/query/optimizer/TestJoinOptimization.java	2010-03-09 05:42:40 UTC (rev 1942)
@@ -620,7 +620,7 @@
      * This tests now passes with RulePlanJoins
      */
     @Test public void testPathologicalAccessPatternCaseCase2976Defect19018() throws Exception{
-        FakeMetadataFacade metadata = FakeMetadataFactory.example2();
+        FakeMetadataFacade metadata = FakeMetadataFactory.example1();
         
         // add single access pattern to pm1.g4 containing elements e1, e2, and e3
         FakeMetadataStore store = metadata.getStore();

Modified: trunk/engine/src/test/java/com/metamatrix/query/optimizer/TestOptimizer.java
===================================================================
--- trunk/engine/src/test/java/com/metamatrix/query/optimizer/TestOptimizer.java	2010-03-08 22:13:59 UTC (rev 1941)
+++ trunk/engine/src/test/java/com/metamatrix/query/optimizer/TestOptimizer.java	2010-03-09 05:42:40 UTC (rev 1942)
@@ -6716,7 +6716,7 @@
     	"	) AS A" + //$NON-NLS-1$
     	") AS A"; //$NON-NLS-1$
 
-        helpPlan(sql, FakeMetadataFactory.example1(), new String[] {});
+        helpPlan(sql, FakeMetadataFactory.example1Cached(), new String[] {});
     }
          
     /**
@@ -6741,7 +6741,7 @@
     	"	) AS A" + //$NON-NLS-1$
     	") AS A"; //$NON-NLS-1$
 
-    	helpPlan(sql, FakeMetadataFactory.example1(), new String[] {});
+    	helpPlan(sql, FakeMetadataFactory.example1Cached(), new String[] {});
     }
 
     /**
@@ -6761,7 +6761,7 @@
     	"   SELECT e2 AS e2 FROM pm1.g1 AS A" + //$NON-NLS-1$
     	") AS A"; //$NON-NLS-1$
 
-        helpPlan(sql, FakeMetadataFactory.example1(), new String[] {"SELECT e2 FROM pm1.g1 AS A"}); //$NON-NLS-1$
+        helpPlan(sql, FakeMetadataFactory.example1Cached(), new String[] {"SELECT e2 FROM pm1.g1 AS A"}); //$NON-NLS-1$
     }
          
     /**
@@ -6783,16 +6783,17 @@
     	"   SELECT CONVERT(e2, long) AS e2 FROM pm1.g1 AS A" + //$NON-NLS-1$
     	") AS A"; //$NON-NLS-1$
 
-        helpPlan(sql, FakeMetadataFactory.example1(), new String[] {"SELECT e2 FROM pm1.g1 AS A"}); //$NON-NLS-1$
+    	FakeMetadataFacade metadata = FakeMetadataFactory.example1Cached();
 
+        helpPlan(sql, metadata, new String[] {"SELECT e2 FROM pm1.g1 AS A"}); //$NON-NLS-1$
+
         // Add convert capability to pm1 and try it again
         FakeCapabilitiesFinder capFinder = new FakeCapabilitiesFinder();
         BasicSourceCapabilities caps = TestOptimizer.getTypicalCapabilities();
         caps.setCapabilitySupport(Capability.QUERY_FROM_GROUP_ALIAS, true);
         caps.setFunctionSupport("convert", true); //$NON-NLS-1$
         capFinder.addCapabilities("pm1", caps); //$NON-NLS-1$
-        FakeMetadataFacade metadata = FakeMetadataFactory.example1();
-
+        
         helpPlan(sql, metadata, null, capFinder,
             new String[] {"SELECT CONVERT(CONVERT(e2, long), biginteger) FROM pm1.g1 AS A"}, //$NON-NLS-1$
             SHOULD_SUCCEED );

Modified: trunk/engine/src/test/java/com/metamatrix/query/processor/TestProcessor.java
===================================================================
--- trunk/engine/src/test/java/com/metamatrix/query/processor/TestProcessor.java	2010-03-08 22:13:59 UTC (rev 1941)
+++ trunk/engine/src/test/java/com/metamatrix/query/processor/TestProcessor.java	2010-03-09 05:42:40 UTC (rev 1942)
@@ -6209,10 +6209,10 @@
     }
     
     @Test public void testUpdatesInLoop() { 
-        String sql = "update vm1.g1 set vm1.g1.e2=3"; //$NON-NLS-1$ 
+        String sql = "update vm1.g39 set e2=3"; //$NON-NLS-1$ 
  
         // Plan query 
-        ProcessorPlan plan = helpGetPlan(sql, FakeMetadataFactory.example2());        
+        ProcessorPlan plan = helpGetPlan(sql, FakeMetadataFactory.example1Cached());        
 
         // Construct data manager with data 
         HardcodedDataManager dataManager = new HardcodedDataManager(); 

Modified: trunk/engine/src/test/java/com/metamatrix/query/resolver/TestResolver.java
===================================================================
--- trunk/engine/src/test/java/com/metamatrix/query/resolver/TestResolver.java	2010-03-08 22:13:59 UTC (rev 1941)
+++ trunk/engine/src/test/java/com/metamatrix/query/resolver/TestResolver.java	2010-03-09 05:42:40 UTC (rev 1942)
@@ -2005,10 +2005,9 @@
      * Test for defect 12087 - Insert with implicit conversion from integer to short
      */
     @Test public void testImplConversionBetweenIntAndShort() throws Exception {       
-        Command command = QueryParser.getQueryParser().parseCommand("Insert into pm1.g1(e1) Values(convert(100, short))"); //$NON-NLS-1$
-        FakeMetadataFacade metadata = FakeMetadataFactory.example6();
-        
+    	Insert command = (Insert)QueryParser.getQueryParser().parseCommand("Insert into pm5.g3(e2) Values(100)"); //$NON-NLS-1$
         QueryResolver.resolveCommand(command, metadata);
+        assertTrue(((Expression)command.getValues().get(0)).getType() == DataTypeManager.DefaultDataClasses.SHORT);
     }
     
     public static FakeMetadataFacade example_12968() { 

Modified: trunk/engine/src/test/java/com/metamatrix/query/unittest/FakeMetadataFactory.java
===================================================================
--- trunk/engine/src/test/java/com/metamatrix/query/unittest/FakeMetadataFactory.java	2010-03-08 22:13:59 UTC (rev 1941)
+++ trunk/engine/src/test/java/com/metamatrix/query/unittest/FakeMetadataFactory.java	2010-03-09 05:42:40 UTC (rev 1942)
@@ -426,7 +426,14 @@
         QueryNode vm1g38n1 = new QueryNode("vm1.g38", "SELECT a.e1, b.e2 from pm1.g1 as a, pm6.g1 as b where a.e1=b.e1");         //$NON-NLS-1$ //$NON-NLS-2$
         FakeMetadataObject vm1g38 = createVirtualGroup("vm1.g38", vm1, vm1g38n1); //$NON-NLS-1$
         
+		// Create virtual groups
+		QueryNode vm1g39n1 = new QueryNode("vm1.g39", "SELECT * FROM pm1.g39"); //$NON-NLS-1$ //$NON-NLS-2$
+		FakeMetadataObject vm1g39 = createUpdatableVirtualGroup("vm1.g39", vm1, vm1g39n1, "CREATE VIRTUAL PROCEDURE BEGIN LOOP ON (SELECT pm1.g1.e2 FROM pm1.g1 where pm1.g1.e2=3) AS mycursor begin update pm1.g1 set pm1.g1.e1 = input.e1 where pm1.g1.e1 = input.e1; update pm1.g1 set pm1.g1.e2 = input.e2 where pm1.g1.e2 = input.e2; END END"); //$NON-NLS-1$ //$NON-NLS-2$
+        
 		// Create virtual elements
+		List vm1g39e = createElements(vm1g39, 
+			new String[] { "e1", "e2", "e3", "e4" }, //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
+			new String[] { DataTypeManager.DefaultDataTypes.STRING, DataTypeManager.DefaultDataTypes.INTEGER, DataTypeManager.DefaultDataTypes.BOOLEAN, DataTypeManager.DefaultDataTypes.DOUBLE });
 		List vm1g1e = createElements(vm1g1, 
 			new String[] { "e1", "e2", "e3", "e4" }, //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
 			new String[] { DataTypeManager.DefaultDataTypes.STRING, DataTypeManager.DefaultDataTypes.INTEGER, DataTypeManager.DefaultDataTypes.BOOLEAN, DataTypeManager.DefaultDataTypes.DOUBLE });
@@ -1495,6 +1502,8 @@
         store.addObject(vsp60);
         store.addObject(vsp61);
         store.addObject(vsp62);
+		store.addObject(vm1g39);
+		store.addObjects(vm1g39e);
                 
 		// Create the facade from the store
 		return new FakeMetadataFacade(store);
@@ -1578,144 +1587,13 @@
         return doc;
     }    
     
-	public static FakeMetadataFacade example2() { 
+    public static FakeMetadataFacade example3() {
 		// Create models
 		FakeMetadataObject pm1 = createPhysicalModel("pm1"); //$NON-NLS-1$
 		FakeMetadataObject pm2 = createPhysicalModel("pm2"); //$NON-NLS-1$
         FakeMetadataObject pm3 = createPhysicalModel("pm3"); //$NON-NLS-1$
-        FakeMetadataObject pm4 = createPhysicalModel("pm4"); //$NON-NLS-1$
-		FakeMetadataObject vm1 = createVirtualModel("vm1");	 //$NON-NLS-1$
 
 		// Create physical groups
-		FakeMetadataObject pm1g1 = createPhysicalGroup("pm1.g1", pm1); //$NON-NLS-1$
-		FakeMetadataObject pm1g2 = createPhysicalGroup("pm1.g2", pm1); //$NON-NLS-1$
-		FakeMetadataObject pm1g3 = createPhysicalGroup("pm1.g3", pm1); //$NON-NLS-1$
-		FakeMetadataObject pm2g1 = createPhysicalGroup("pm2.g1", pm2); //$NON-NLS-1$
-		FakeMetadataObject pm2g2 = createPhysicalGroup("pm2.g2", pm2); //$NON-NLS-1$
-		FakeMetadataObject pm2g3 = createPhysicalGroup("pm2.g3", pm2); //$NON-NLS-1$
-        FakeMetadataObject pm3g1 = createPhysicalGroup("pm3.g1", pm3); //$NON-NLS-1$
-        FakeMetadataObject pm3g2 = createPhysicalGroup("pm3.g2", pm3); //$NON-NLS-1$
-        FakeMetadataObject pm4g1 = createPhysicalGroup("pm4.g1", pm4); //$NON-NLS-1$
-				
-		// Create physical elements
-		List pm1g1e = createElements(pm1g1, 
-			new String[] { "e1", "e2", "e3", "e4" }, //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-			new String[] { DataTypeManager.DefaultDataTypes.STRING, DataTypeManager.DefaultDataTypes.INTEGER, DataTypeManager.DefaultDataTypes.BOOLEAN, DataTypeManager.DefaultDataTypes.DOUBLE });
-		List pm1g2e = createElements(pm1g2, 
-			new String[] { "e1", "e2", "e3", "e4" }, //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-			new String[] { DataTypeManager.DefaultDataTypes.STRING, DataTypeManager.DefaultDataTypes.INTEGER, DataTypeManager.DefaultDataTypes.BOOLEAN, DataTypeManager.DefaultDataTypes.DOUBLE });
-		List pm1g3e = createElements(pm1g3, 
-			new String[] { "e1", "e2", "e3", "e4" }, //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-			new String[] { DataTypeManager.DefaultDataTypes.STRING, DataTypeManager.DefaultDataTypes.INTEGER, DataTypeManager.DefaultDataTypes.BOOLEAN, DataTypeManager.DefaultDataTypes.DOUBLE });
-		List pm2g1e = createElements(pm2g1, 
-			new String[] { "e1", "e2", "e3", "e4" }, //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-			new String[] { DataTypeManager.DefaultDataTypes.STRING, DataTypeManager.DefaultDataTypes.INTEGER, DataTypeManager.DefaultDataTypes.BOOLEAN, DataTypeManager.DefaultDataTypes.DOUBLE });
-		List pm2g2e = createElements(pm2g2, 
-			new String[] { "e1", "e2", "e3", "e4" }, //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-			new String[] { DataTypeManager.DefaultDataTypes.STRING, DataTypeManager.DefaultDataTypes.INTEGER, DataTypeManager.DefaultDataTypes.BOOLEAN, DataTypeManager.DefaultDataTypes.DOUBLE });
-		List pm2g3e = createElements(pm2g3, 
-			new String[] { "e1", "e2", "e3", "e4" }, //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-			new String[] { DataTypeManager.DefaultDataTypes.STRING, DataTypeManager.DefaultDataTypes.INTEGER, DataTypeManager.DefaultDataTypes.BOOLEAN, DataTypeManager.DefaultDataTypes.DOUBLE });
-		List pm3g1e = createElements(pm3g1, 
-			new String[] { "e1", "e2", "e3", "e4" }, //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-			new String[] { DataTypeManager.DefaultDataTypes.STRING, DataTypeManager.DefaultDataTypes.DATE, DataTypeManager.DefaultDataTypes.TIME, DataTypeManager.DefaultDataTypes.TIMESTAMP });
-		List pm3g2e = createElements(pm3g2, 
-			new String[] { "e1", "e2", "e3", "e4" }, //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-			new String[] { DataTypeManager.DefaultDataTypes.STRING, DataTypeManager.DefaultDataTypes.DATE, DataTypeManager.DefaultDataTypes.TIME, DataTypeManager.DefaultDataTypes.TIMESTAMP });
-        List pm4g1e = createElements(pm4g1, 
-            new String[] { "e1", "e2", "e3", "e4" }, //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-            new String[] { DataTypeManager.DefaultDataTypes.STRING, DataTypeManager.DefaultDataTypes.INTEGER, DataTypeManager.DefaultDataTypes.BOOLEAN, DataTypeManager.DefaultDataTypes.DOUBLE });
-
-		// Create virtual groups
-		QueryNode vm1g1n1 = new QueryNode("vm1.g1", "SELECT * FROM pm1.g1"); //$NON-NLS-1$ //$NON-NLS-2$
-		FakeMetadataObject vm1g1 = createUpdatableVirtualGroup("vm1.g1", vm1, vm1g1n1, "CREATE VIRTUAL PROCEDURE BEGIN LOOP ON (SELECT pm1.g1.e2 FROM pm1.g1 where pm1.g1.e2=3) AS mycursor begin update pm1.g1 set pm1.g1.e1 = input.e1 where pm1.g1.e1 = input.e1; update pm1.g1 set pm1.g1.e2 = input.e2 where pm1.g1.e2 = input.e2; END END"); //$NON-NLS-1$ //$NON-NLS-2$
-        
-		QueryNode vm1g2n1 = new QueryNode("vm1.g2", "SELECT pm1.g2.e1, pm1.g2.e2, pm1.g2.e3 FROM pm1.g2"); //$NON-NLS-1$ //$NON-NLS-2$
-		FakeMetadataObject vm1g2 = createUpdatableVirtualGroup("vm1.g2", vm1, vm1g2n1); //$NON-NLS-1$
-
-		QueryNode vm1g3n1 = new QueryNode("vm1.g3", "SELECT pm1.g3.e1 AS x, pm1.g3.e2 AS y from pm1.g3"); //$NON-NLS-1$ //$NON-NLS-2$
-		FakeMetadataObject vm1g3 = createUpdatableVirtualGroup("vm1.g3", vm1, vm1g3n1); //$NON-NLS-1$
-	
-		// Create virtual elements
-		List vm1g1e = createElements(vm1g1, 
-			new String[] { "e1", "e2", "e3", "e4" }, //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-			new String[] { DataTypeManager.DefaultDataTypes.STRING, DataTypeManager.DefaultDataTypes.INTEGER, DataTypeManager.DefaultDataTypes.BOOLEAN, DataTypeManager.DefaultDataTypes.DOUBLE });
-		List vm1g2e = createElements(vm1g2, 
-			new String[] { "e1", "e2", "e3", "e4" }, //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-			new String[] { DataTypeManager.DefaultDataTypes.STRING, DataTypeManager.DefaultDataTypes.INTEGER, DataTypeManager.DefaultDataTypes.BOOLEAN, DataTypeManager.DefaultDataTypes.DOUBLE });
-		List vm1g3e = createElements(vm1g3,
-			new String[] { "e1", "e2","x", "y" }, //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-			new String[] { DataTypeManager.DefaultDataTypes.STRING, DataTypeManager.DefaultDataTypes.INTEGER, DataTypeManager.DefaultDataTypes.STRING, DataTypeManager.DefaultDataTypes.INTEGER });
-			
-		// Add all objects to the store
-		FakeMetadataStore store = new FakeMetadataStore();
-		store.addObject(pm1);
-		store.addObject(pm1g1);		
-		store.addObjects(pm1g1e);
-		store.addObject(pm1g2);		
-		store.addObjects(pm1g2e);
-		store.addObject(pm1g3);	
-		store.addObjects(pm1g3e);
-        	
-		store.addObject(pm2);
-		store.addObject(pm2g1);		
-		store.addObjects(pm2g1e);
-		store.addObject(pm2g2);		
-		store.addObjects(pm2g2e);
-		store.addObject(pm2g3);		
-		store.addObjects(pm2g3e);
-        
-		store.addObject(pm3);
-        store.addObject(pm3g1);
-        store.addObjects(pm3g1e);
-        store.addObject(pm3g2);
-        store.addObjects(pm3g2e);
-
-        store.addObject(pm4);
-        store.addObject(pm4g1);
-        store.addObjects(pm4g1e);
-        
-		store.addObject(vm1);
-		store.addObject(vm1g1);
-		store.addObjects(vm1g1e);
-		store.addObject(vm1g2);
-		store.addObjects(vm1g2e);
-		store.addObject(vm1g3);
-		store.addObjects(vm1g3e);
-						
-		// Create the facade from the store
-		return new FakeMetadataFacade(store);
-	}
-
-    public static FakeMetadataFacade example6() { 
-        // Create models
-        FakeMetadataObject pm1 = createPhysicalModel("pm1"); //$NON-NLS-1$
-
-        // Create physical groups
-        FakeMetadataObject pm1g1 = createPhysicalGroup("pm1.g1", pm1); //$NON-NLS-1$
-            
-        // Create physical elements
-        List pm1g1e = createElements(pm1g1, 
-            new String[] { "e1"}, //$NON-NLS-1$ 
-            new String[] { DataTypeManager.DefaultDataTypes.SHORT});
- 
-        // Add all objects to the store
-        FakeMetadataStore store = new FakeMetadataStore();
-        store.addObject(pm1);
-        store.addObject(pm1g1);     
-        store.addObjects(pm1g1e);
-
-        // Create the facade from the store
-        return new FakeMetadataFacade(store);
-    }
-    	
-	public static FakeMetadataFacade example3() {
-		// Create models
-		FakeMetadataObject pm1 = createPhysicalModel("pm1"); //$NON-NLS-1$
-		FakeMetadataObject pm2 = createPhysicalModel("pm2"); //$NON-NLS-1$
-        FakeMetadataObject pm3 = createPhysicalModel("pm3"); //$NON-NLS-1$
-
-		// Create physical groups
 		FakeMetadataObject pm1g1 = createPhysicalGroup("pm1.cat1.cat2.cat3.g1", pm1); //$NON-NLS-1$
 		FakeMetadataObject pm1g2 = createPhysicalGroup("pm1.cat1.g2", pm1); //$NON-NLS-1$
 		FakeMetadataObject pm1g3 = createPhysicalGroup("pm1.cat2.g3", pm1); //$NON-NLS-1$
@@ -2135,40 +2013,6 @@
     	return RealMetadataFactory.exampleBQT();
     }
 
-    public static FakeMetadataFacade exampleSymphony() { 
-        // Create models
-        FakeMetadataObject model = createPhysicalModel("COMPLEX"); //$NON-NLS-1$
-        
-        // Create physical groups
-        FakeMetadataObject sales_g = createPhysicalGroup("COMPLEX.sales", model); //$NON-NLS-1$
-        FakeMetadataObject cust_g = createPhysicalGroup("COMPLEX.cust", model); //$NON-NLS-1$
-        FakeMetadataObject prodhier_g = createPhysicalGroup("COMPLEX.prodhier", model); //$NON-NLS-1$
-                
-        // Create physical elements
-        List sales_e = createElements(sales_g, 
-            new String[] { "sales_amount", "month_no", "year_no", "prod_num", "cust_num" }, //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$
-            new String[] { DataTypeManager.DefaultDataTypes.FLOAT, DataTypeManager.DefaultDataTypes.INTEGER, DataTypeManager.DefaultDataTypes.INTEGER, DataTypeManager.DefaultDataTypes.INTEGER, DataTypeManager.DefaultDataTypes.INTEGER });
-        List cust_e = createElements(cust_g, 
-            new String[] { "cust_name", "cust_num" }, //$NON-NLS-1$ //$NON-NLS-2$
-            new String[] { DataTypeManager.DefaultDataTypes.STRING, DataTypeManager.DefaultDataTypes.INTEGER });
-        List prodhier_e = createElements(prodhier_g, 
-            new String[] { "prod_fam_name", "prod_num" }, //$NON-NLS-1$ //$NON-NLS-2$
-            new String[] { DataTypeManager.DefaultDataTypes.STRING, DataTypeManager.DefaultDataTypes.STRING });
-
-        // Add all objects to the store
-        FakeMetadataStore store = new FakeMetadataStore();
-        store.addObject(model);
-        store.addObject(sales_g);     
-        store.addObjects(sales_e);
-        store.addObject(cust_g);     
-        store.addObjects(cust_e);
-        store.addObject(prodhier_g);     
-        store.addObjects(prodhier_e);
-
-        // Create the facade from the store
-        return new FakeMetadataFacade(store);
-    }       
-
     public static FakeMetadataFacade exampleYahoo() { 
         // Create models
         FakeMetadataObject yahoo = createPhysicalModel("Yahoo"); //$NON-NLS-1$

Modified: trunk/engine/src/test/java/com/metamatrix/query/validator/TestValidator.java
===================================================================
--- trunk/engine/src/test/java/com/metamatrix/query/validator/TestValidator.java	2010-03-08 22:13:59 UTC (rev 1941)
+++ trunk/engine/src/test/java/com/metamatrix/query/validator/TestValidator.java	2010-03-09 05:42:40 UTC (rev 1942)
@@ -1434,27 +1434,17 @@
     
     @Test public void testValidHaving() {
         helpValidate(
-            "SELECT DISTINCT ProdHier.prod_num " + //$NON-NLS-1$
-            "FROM Sales, ProdHier, Cust " + //$NON-NLS-1$
-            "WHERE ((ProdHier.prod_fam_name <> 'garbage') AND ((Sales.month_no = 1) AND (Sales.year_no = 1996)) AND ((Cust.cust_name <> 'garbage') AND (Cust.cust_num = 1001))) AND (Sales.prod_num = ProdHier.prod_num) AND (Sales.cust_num = Cust.cust_num) " + //$NON-NLS-1$
-            "GROUP BY ProdHier.prod_num " + //$NON-NLS-1$
-            "HAVING SUM(Sales.sales_amount) > 1",  //$NON-NLS-1$
-            new String[] { }, FakeMetadataFactory.exampleSymphony());
+            "SELECT intnum " + //$NON-NLS-1$
+            "FROM bqt1.smalla " + //$NON-NLS-1$
+            "GROUP BY intnum " + //$NON-NLS-1$
+            "HAVING SUM(floatnum) > 1",  //$NON-NLS-1$
+            new String[] { }, FakeMetadataFactory.exampleBQTCached());
     } 
     
     @Test public void testValidHaving2() {
         String sql =  "SELECT intkey FROM bqt1.smalla WHERE intkey = 1 " + //$NON-NLS-1$
             "GROUP BY intkey HAVING intkey = 1";         //$NON-NLS-1$
-        QueryMetadataInterface metadata = FakeMetadataFactory.exampleBQTCached();        
-        Command command = helpResolve(sql, metadata);
-
-        try {
-            ValidatorReport report = Validator.validate(command, metadata);
-            assertEquals("Should get no report items", 0, report.getItems().size()); //$NON-NLS-1$
-        } catch(MetaMatrixComponentException e) {
-            e.printStackTrace();
-            fail(e.getMessage());
-        }        
+        helpValidate(sql, new String[] {}, FakeMetadataFactory.exampleBQTCached());
     } 
     
     @Test public void testVirtualProcedure(){

Modified: trunk/engine/src/test/java/org/teiid/dqp/internal/datamgr/language/TestGroupImpl.java
===================================================================
--- trunk/engine/src/test/java/org/teiid/dqp/internal/datamgr/language/TestGroupImpl.java	2010-03-08 22:13:59 UTC (rev 1941)
+++ trunk/engine/src/test/java/org/teiid/dqp/internal/datamgr/language/TestGroupImpl.java	2010-03-09 05:42:40 UTC (rev 1942)
@@ -78,7 +78,7 @@
 
     public void testGetDefinition() throws Exception {
         Object metadataID = TstLanguageBridgeFactory.metadata.getGroupID("pm1.g1"); //$NON-NLS-1$
-        assertEquals("pm1.g1", example("x", "pm1.g1", metadataID).getName()); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+        assertEquals("g1", example("x", "pm1.g1", metadataID).getName()); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
     }
 
 }

Modified: trunk/engine/src/test/java/org/teiid/dqp/internal/datamgr/language/TestInlineViewImpl.java
===================================================================
--- trunk/engine/src/test/java/org/teiid/dqp/internal/datamgr/language/TestInlineViewImpl.java	2010-03-08 22:13:59 UTC (rev 1941)
+++ trunk/engine/src/test/java/org/teiid/dqp/internal/datamgr/language/TestInlineViewImpl.java	2010-03-09 05:42:40 UTC (rev 1942)
@@ -48,7 +48,7 @@
     }
 
     public void testGetQuery() throws Exception {
-        assertEquals("SELECT DISTINCT vm1.g1.e1, vm1.g1.e2, vm1.g1.e3, vm1.g1.e4 FROM vm1.g1, vm1.g2 AS myAlias, vm1.g3, vm1.g4 WHERE 100 >= 200 AND 500 < 600 GROUP BY vm1.g1.e1, vm1.g1.e2, vm1.g1.e3, vm1.g1.e4 HAVING 100 >= 200 AND 500 < 600 ORDER BY e1, e2 DESC, e3, e4 DESC", example().getQuery().toString()); //$NON-NLS-1$
+        assertEquals("SELECT DISTINCT g1.e1, g1.e2, g1.e3, g1.e4 FROM g1, g2 AS myAlias, g3, g4 WHERE 100 >= 200 AND 500 < 600 GROUP BY g1.e1, g1.e2, g1.e3, g1.e4 HAVING 100 >= 200 AND 500 < 600 ORDER BY e1, e2 DESC, e3, e4 DESC", example().getQuery().toString()); //$NON-NLS-1$
     }
 
 }

Modified: trunk/engine/src/test/java/org/teiid/dqp/internal/datamgr/language/TestProcedureImpl.java
===================================================================
--- trunk/engine/src/test/java/org/teiid/dqp/internal/datamgr/language/TestProcedureImpl.java	2010-03-08 22:13:59 UTC (rev 1941)
+++ trunk/engine/src/test/java/org/teiid/dqp/internal/datamgr/language/TestProcedureImpl.java	2010-03-09 05:42:40 UTC (rev 1942)
@@ -49,7 +49,7 @@
     }
     
     public void testGetProcedureName() throws Exception {
-        assertEquals("pm1.sq3", example().getProcedureName()); //$NON-NLS-1$
+        assertEquals("sq3", example().getProcedureName()); //$NON-NLS-1$
     }
 
     public void testGetParameters() throws Exception {

Modified: trunk/engine/src/test/java/org/teiid/dqp/internal/datamgr/language/TestSetQueryImpl.java
===================================================================
--- trunk/engine/src/test/java/org/teiid/dqp/internal/datamgr/language/TestSetQueryImpl.java	2010-03-08 22:13:59 UTC (rev 1941)
+++ trunk/engine/src/test/java/org/teiid/dqp/internal/datamgr/language/TestSetQueryImpl.java	2010-03-09 05:42:40 UTC (rev 1942)
@@ -36,6 +36,7 @@
 import org.teiid.connector.language.SortSpecification;
 import org.teiid.connector.language.SortSpecification.Ordering;
 
+import com.metamatrix.common.types.DataTypeManager;
 import com.metamatrix.query.sql.lang.SetQuery.Operation;
 
 
@@ -60,7 +61,7 @@
     public static SetQuery example2() throws Exception {
         NamedTable group = new NamedTable("ted", null, null); //$NON-NLS-1$
         ColumnReference element = new ColumnReference(group, "nugent", null, String.class); //$NON-NLS-1$
-        DerivedColumn symbol = new DerivedColumn("nugent",element); //$NON-NLS-1$
+        DerivedColumn symbol = new DerivedColumn(null,element); 
         List symbols = new ArrayList();
         symbols.add(symbol);
         List items = new ArrayList();
@@ -68,7 +69,7 @@
         
         NamedTable group2 = new NamedTable("dave", null, null); //$NON-NLS-1$
         ColumnReference element2 = new ColumnReference(group2, "barry", null, String.class); //$NON-NLS-1$
-        DerivedColumn symbol2 = new DerivedColumn("barry", element2); //$NON-NLS-1$
+        DerivedColumn symbol2 = new DerivedColumn(null, element2);
         List symbols2 = new ArrayList();
         symbols2.add(symbol2);
         
@@ -92,8 +93,7 @@
         SetQuery union = example2();
         
         List<SortSpecification> items = new ArrayList<SortSpecification>();
-        ColumnReference element = (ColumnReference) (union.getProjectedQuery().getDerivedColumns().get(0)).getExpression();
-        items.add(new SortSpecification(Ordering.ASC, element));
+        items.add(new SortSpecification(Ordering.ASC, new ColumnReference(null, "nugent", null, DataTypeManager.DefaultDataClasses.STRING))); //$NON-NLS-1$
         OrderBy orderBy = new OrderBy(items);
         
         union.setOrderBy(orderBy);

Modified: trunk/engine/src/test/java/org/teiid/dqp/internal/datamgr/language/TstLanguageBridgeFactory.java
===================================================================
--- trunk/engine/src/test/java/org/teiid/dqp/internal/datamgr/language/TstLanguageBridgeFactory.java	2010-03-08 22:13:59 UTC (rev 1941)
+++ trunk/engine/src/test/java/org/teiid/dqp/internal/datamgr/language/TstLanguageBridgeFactory.java	2010-03-09 05:42:40 UTC (rev 1942)
@@ -24,12 +24,12 @@
 
 import org.teiid.dqp.internal.datamgr.metadata.RuntimeMetadataImpl;
 
-import com.metamatrix.query.unittest.FakeMetadataFacade;
+import com.metamatrix.query.metadata.QueryMetadataInterface;
 import com.metamatrix.query.unittest.FakeMetadataFactory;
 
 public class TstLanguageBridgeFactory {
     
-    public static final FakeMetadataFacade metadata = FakeMetadataFactory.example1();
+    public static final QueryMetadataInterface metadata = FakeMetadataFactory.example1Cached();
     public static final RuntimeMetadataImpl metadataFactory = new RuntimeMetadataImpl(metadata);
     public static final LanguageBridgeFactory factory = new LanguageBridgeFactory(metadata);
 

Modified: trunk/jboss-integration/src/main/java/org/teiid/jboss/deployers/RuntimeEngineDeployer.java
===================================================================
--- trunk/jboss-integration/src/main/java/org/teiid/jboss/deployers/RuntimeEngineDeployer.java	2010-03-08 22:13:59 UTC (rev 1941)
+++ trunk/jboss-integration/src/main/java/org/teiid/jboss/deployers/RuntimeEngineDeployer.java	2010-03-09 05:42:40 UTC (rev 1942)
@@ -58,6 +58,8 @@
 import org.teiid.dqp.internal.transaction.ContainerTransactionProvider;
 import org.teiid.dqp.internal.transaction.TransactionServerImpl;
 import org.teiid.dqp.internal.transaction.XidFactory;
+import org.teiid.logging.LogConfigurationProvider;
+import org.teiid.logging.LogListernerProvider;
 import org.teiid.transport.ClientServiceRegistry;
 import org.teiid.transport.ClientServiceRegistryImpl;
 import org.teiid.transport.LogonImpl;
@@ -78,8 +80,6 @@
 import com.metamatrix.dqp.service.BufferService;
 import com.metamatrix.dqp.service.TransactionService;
 import com.metamatrix.dqp.util.LogConstants;
-import com.metamatrix.jdbc.LogConfigurationProvider;
-import com.metamatrix.jdbc.LogListernerProvider;
 import com.metamatrix.platform.security.api.ILogon;
 import com.metamatrix.platform.security.api.SessionToken;
 import com.metamatrix.platform.security.api.service.SessionService;

Modified: trunk/metadata/src/main/java/org/teiid/metadata/index/RecordFactory.java
===================================================================
--- trunk/metadata/src/main/java/org/teiid/metadata/index/RecordFactory.java	2010-03-08 22:13:59 UTC (rev 1941)
+++ trunk/metadata/src/main/java/org/teiid/metadata/index/RecordFactory.java	2010-03-09 05:42:40 UTC (rev 1942)
@@ -805,9 +805,6 @@
         case MetadataConstants.PARAMETER_TYPES.OUT_PARM:
         	type = ProcedureParameter.Type.Out;
         	break;
-        case MetadataConstants.PARAMETER_TYPES.RESULT_SET:
-        	type = ProcedureParameter.Type.ResultSet;
-        	break;
         case MetadataConstants.PARAMETER_TYPES.RETURN_VALUE:
         	type = ProcedureParameter.Type.ReturnValue;
         	break;

Copied: trunk/runtime/src/main/java/org/teiid/logging (from rev 1934, trunk/runtime/src/main/java/org/teiid/configuration)

Modified: trunk/runtime/src/main/java/org/teiid/logging/CommonsLogManagerAdapter.java
===================================================================
--- trunk/runtime/src/main/java/org/teiid/configuration/CommonsLogManagerAdapter.java	2010-03-06 17:26:23 UTC (rev 1934)
+++ trunk/runtime/src/main/java/org/teiid/logging/CommonsLogManagerAdapter.java	2010-03-09 05:42:40 UTC (rev 1942)
@@ -20,7 +20,7 @@
  * 02110-1301 USA.
  */
 
-package org.teiid.configuration;
+package org.teiid.logging;
 
 import org.apache.commons.logging.Log;
 

Copied: trunk/runtime/src/main/java/org/teiid/logging/Log4JUtil.java (from rev 1934, trunk/runtime/src/main/java/com/metamatrix/jdbc/Log4JUtil.java)
===================================================================
--- trunk/runtime/src/main/java/org/teiid/logging/Log4JUtil.java	                        (rev 0)
+++ trunk/runtime/src/main/java/org/teiid/logging/Log4JUtil.java	2010-03-09 05:42:40 UTC (rev 1942)
@@ -0,0 +1,127 @@
+/*
+ * 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.logging;
+
+import java.util.HashSet;
+import java.util.Set;
+
+import org.apache.log4j.Level;
+import org.apache.log4j.Logger;
+
+import com.metamatrix.common.log.LogConfiguration;
+import com.metamatrix.core.log.MessageLevel;
+
+class Log4JUtil {
+	private static final String ROOT_CONTEXT = LogConfiguration.ROOT_CONTEXT;
+	
+	/**
+	 * Convert {@link MessageLevel} to {@link Level}
+	 * @param level
+	 * @return
+	 */
+    public static Level convert2Log4JLevel(int level) {
+    	switch (level) {
+    	case MessageLevel.CRITICAL:
+    		return Level.FATAL;
+    	case MessageLevel.ERROR:
+    		return Level.ERROR;
+    	case MessageLevel.WARNING:
+    		return Level.WARN;
+    	case MessageLevel.INFO:
+    		return Level.INFO;
+    	case MessageLevel.DETAIL:
+    	case MessageLevel.TRACE:
+    		return Level.DEBUG;
+    	case MessageLevel.NONE:
+    		return Level.OFF;
+    	}
+    	return Level.DEBUG;
+    }		
+    
+	/**
+	 * Convert  {@link Level} to {@link MessageLevel}
+	 * @param level
+	 * @return
+	 */
+    public static int convert2MessageLevel(Level level) {
+    	switch (level.toInt()) {
+    	case Level.FATAL_INT:
+    		return MessageLevel.CRITICAL;
+    	case Level.ERROR_INT:
+    		return MessageLevel.ERROR;
+    	case Level.WARN_INT:
+    		return MessageLevel.WARNING;
+    	case Level.INFO_INT:
+    		return MessageLevel.INFO;
+    	case Level.DEBUG_INT:
+    		return MessageLevel.DETAIL; 
+    	case Level.OFF_INT:
+    		return MessageLevel.NONE;
+    	}
+    	return MessageLevel.DETAIL;
+    }	    
+    
+    /**
+     * Get the logger for the given context.
+     * @param context
+     * @return
+     */
+	public static Logger getLogger(String context) {
+		Logger log4j = null;
+		if (context.indexOf('.') == -1) {
+			log4j = Logger.getLogger(ROOT_CONTEXT+context);
+		}
+		else {
+			log4j = Logger.getLogger(context);
+		}
+		return log4j;
+	}    
+	
+	public static Set<String> getContexts(){
+		HashSet<String> contexts = new HashSet<String>();
+		contexts.add(ROOT_CONTEXT+com.metamatrix.dqp.util.LogConstants.CTX_DQP);
+		contexts.add(ROOT_CONTEXT+com.metamatrix.dqp.util.LogConstants.CTX_CONNECTOR);
+		contexts.add(ROOT_CONTEXT+com.metamatrix.dqp.util.LogConstants.CTX_BUFFER_MGR);
+		contexts.add(ROOT_CONTEXT+com.metamatrix.dqp.util.LogConstants.CTX_STORAGE_MGR);
+		contexts.add(ROOT_CONTEXT+com.metamatrix.dqp.util.LogConstants.CTX_TXN_LOG);
+		contexts.add(ROOT_CONTEXT+com.metamatrix.dqp.util.LogConstants.CTX_EXTENSION_SOURCE);
+		contexts.add(ROOT_CONTEXT+com.metamatrix.dqp.util.LogConstants.CTX_COMMANDLOGGING);
+		contexts.add(ROOT_CONTEXT+com.metamatrix.dqp.util.LogConstants.CTX_AUDITLOGGING);
+		contexts.add(ROOT_CONTEXT+com.metamatrix.dqp.util.LogConstants.CTX_QUERY_SERVICE);
+		contexts.add(ROOT_CONTEXT+com.metamatrix.dqp.util.LogConstants.CTX_PROCESS_INFO_LOG);
+
+		contexts.add(ROOT_CONTEXT+com.metamatrix.common.util.LogConstants.CTX_CONFIG);
+		contexts.add(ROOT_CONTEXT+com.metamatrix.common.util.LogConstants.CTX_COMMUNICATION);
+		contexts.add(ROOT_CONTEXT+com.metamatrix.common.util.LogConstants.CTX_POOLING);
+		contexts.add(ROOT_CONTEXT+com.metamatrix.common.util.LogConstants.CTX_SESSION);
+		contexts.add(ROOT_CONTEXT+com.metamatrix.common.util.LogConstants.CTX_AUTHORIZATION);
+		contexts.add(ROOT_CONTEXT+com.metamatrix.common.util.LogConstants.CTX_MEMBERSHIP);
+		contexts.add(ROOT_CONTEXT+com.metamatrix.common.util.LogConstants.CTX_AUTHORIZATION_ADMIN_API);
+		contexts.add(ROOT_CONTEXT+com.metamatrix.common.util.LogConstants.CTX_SERVER);
+		contexts.add(ROOT_CONTEXT+com.metamatrix.common.util.LogConstants.CTX_ADMIN);
+		
+		contexts.add("com.arjuna"); //$NON-NLS-1$
+		contexts.add("org.jboss"); //$NON-NLS-1$
+		contexts.add("org.teiid"); //$NON-NLS-1$
+		return contexts;
+	}
+}


Property changes on: trunk/runtime/src/main/java/org/teiid/logging/Log4JUtil.java
___________________________________________________________________
Name: svn:mime-type
   + text/plain

Copied: trunk/runtime/src/main/java/org/teiid/logging/LogConfigurationProvider.java (from rev 1934, trunk/runtime/src/main/java/com/metamatrix/jdbc/LogConfigurationProvider.java)
===================================================================
--- trunk/runtime/src/main/java/org/teiid/logging/LogConfigurationProvider.java	                        (rev 0)
+++ trunk/runtime/src/main/java/org/teiid/logging/LogConfigurationProvider.java	2010-03-09 05:42:40 UTC (rev 1942)
@@ -0,0 +1,79 @@
+/*
+ * 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.logging;
+
+import java.util.Set;
+
+import org.apache.log4j.Level;
+import org.apache.log4j.Logger;
+
+import com.metamatrix.common.log.LogConfiguration;
+
+public class LogConfigurationProvider {
+
+	public LogConfiguration get() {
+        return new Log4JLogConfiguration();
+	}
+
+	static class Log4JLogConfiguration implements LogConfiguration {
+
+		@Override
+		public Set<String> getContexts() {
+			return Log4JUtil.getContexts();
+		}
+
+		@Override
+		public int getLogLevel(String context) {
+			Logger log = Log4JUtil.getLogger(context);
+			Level level = log.getLevel();
+			while (level == null) {
+				log = (Logger)log.getParent();
+				if (log != null) {
+					level = log.getLevel();
+				}
+				else {
+					level = Level.ERROR;
+				}
+			}
+			return Log4JUtil.convert2MessageLevel(level);			
+		}
+
+		@Override
+		public boolean isEnabled(String context, int level) {
+	    	if ( context == null ) {
+	            return false;
+	        }
+	    	Level logLevel = Log4JUtil.convert2Log4JLevel(level);
+	        if ( logLevel == Level.OFF) {
+	            return false;
+	        }
+	        Logger log = Log4JUtil.getLogger(context);
+	        return log.isEnabledFor(logLevel);
+		}
+		
+		@Override
+		public void setLogLevel(String context, int level) {
+			Logger log = Log4JUtil.getLogger(context);
+			log.setLevel(Log4JUtil.convert2Log4JLevel(level));			
+		}
+	}
+}


Property changes on: trunk/runtime/src/main/java/org/teiid/logging/LogConfigurationProvider.java
___________________________________________________________________
Name: svn:mime-type
   + text/plain

Copied: trunk/runtime/src/main/java/org/teiid/logging/LogListernerProvider.java (from rev 1934, trunk/runtime/src/main/java/com/metamatrix/jdbc/LogListernerProvider.java)
===================================================================
--- trunk/runtime/src/main/java/org/teiid/logging/LogListernerProvider.java	                        (rev 0)
+++ trunk/runtime/src/main/java/org/teiid/logging/LogListernerProvider.java	2010-03-09 05:42:40 UTC (rev 1942)
@@ -0,0 +1,56 @@
+/*
+ * 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.logging;
+
+import org.apache.log4j.Logger;
+
+import com.metamatrix.core.log.LogListener;
+
+public class LogListernerProvider {
+	
+	public LogListener get() {
+    	return new Log4jListener();
+	}
+
+	/**
+	 * Log4J Listener
+	 */
+	static class Log4jListener implements LogListener{
+
+		@Override
+		public void log(int level, String context, Object msg) {
+			Logger log4j = Log4JUtil.getLogger(context);
+			log4j.log(Log4JUtil.convert2Log4JLevel(level), msg);
+		}
+
+		public void log(int level, String context, Throwable t, Object msg) {
+			Logger log4j = Log4JUtil.getLogger(context);
+			log4j.log(Log4JUtil.convert2Log4JLevel(level), msg, t);
+		}
+						
+		@Override
+		public void shutdown() {
+		}
+
+	}
+}


Property changes on: trunk/runtime/src/main/java/org/teiid/logging/LogListernerProvider.java
___________________________________________________________________
Name: svn:mime-type
   + text/plain

Modified: trunk/runtime/src/main/java/org/teiid/services/BufferServiceImpl.java
===================================================================
--- trunk/runtime/src/main/java/org/teiid/services/BufferServiceImpl.java	2010-03-08 22:13:59 UTC (rev 1941)
+++ trunk/runtime/src/main/java/org/teiid/services/BufferServiceImpl.java	2010-03-09 05:42:40 UTC (rev 1942)
@@ -39,6 +39,7 @@
 import com.metamatrix.common.buffer.impl.FileStorageManager;
 import com.metamatrix.common.buffer.impl.MemoryStorageManager;
 import com.metamatrix.core.MetaMatrixRuntimeException;
+import com.metamatrix.core.util.FileUtils;
 import com.metamatrix.dqp.embedded.DQPEmbeddedPlugin;
 import com.metamatrix.dqp.service.BufferService;
 
@@ -52,18 +53,16 @@
 public class BufferServiceImpl implements BufferService, Serializable {
 	private static final long serialVersionUID = -6217808623863643531L;
 
-	private static final int DEFAULT_MAX_OPEN_FILES = 256;
-	
     // Instance
     private BufferManagerImpl bufferMgr;
 	private File bufferDir;
 	private boolean useDisk = true;
 	private DQPContextCache contextCache;
-	private int processorBatchSize = 256;
-	private int connectorBatchSize = 512;
+	private int processorBatchSize = BufferManager.DEFAULT_PROCESSOR_BATCH_SIZE;
+	private int connectorBatchSize = BufferManager.DEFAULT_CONNECTOR_BATCH_SIZE;
 	private CacheFactory cacheFactory;
-    private int maxOpenFiles = DEFAULT_MAX_OPEN_FILES;
-    private long maxFileSize = 2048; // 2GB
+    private int maxOpenFiles = FileStorageManager.DEFAULT_MAX_OPEN_FILES;
+    private long maxFileSize = FileStorageManager.DEFAULT_MAX_FILESIZE; // 2GB
     private int maxProcessingBatchesColumns = BufferManager.DEFAULT_MAX_PROCESSING_BATCHES;
     private int maxReserveBatchColumns = BufferManager.DEFAULT_RESERVE_BUFFERS;
 	
@@ -73,12 +72,7 @@
      * @since 4.3
      */
     void cleanDirectory(File file) {
-        if (file.exists()) {
-            File[] files = file.listFiles();
-            for (int i = 0; i < files.length; i++) {
-                files[i].delete();                
-            }
-        }
+    	FileUtils.removeChildrenRecursively(file);
     }
 
     public void start(){
@@ -189,10 +183,6 @@
     	this.maxFileSize = maxFileSize;
 	}
     
-    public void setMaxOpenFiles(int maxOpenFiles) {
-		this.maxOpenFiles = maxOpenFiles;
-	}	
-    
     public void setMaxReserveBatchColumns(int value) {
 		this.maxReserveBatchColumns = value;
 	}    
@@ -201,11 +191,6 @@
     	this.maxProcessingBatchesColumns  = value;
     }
 
-    @ManagementProperty(description="Max open buffer files (default 128)")
-	public int getMaxOpenFiles() {
-		return maxOpenFiles;
-	}
-
     @ManagementProperty(description="Max file size for buffer files (default 2GB)")
 	public long getMaxFileSize() {
 		return maxFileSize;
@@ -213,7 +198,7 @@
 
     @ManagementProperty(description="#The number of batch columns guarenteed to a processing operation.  Set this value lower if the workload typically" + 
     		"processes larger numbers of concurrent queries with large intermediate results from operations such as sorting, " + 
-    		"grouping, etc. (default 124)")
+    		"grouping, etc. (default 128)")
 	public int getMaxProcessingBatchesColumns() {
 		return maxProcessingBatchesColumns;
 	}

Modified: trunk/runtime/src/test/java/org/teiid/transport/TestCommSockets.java
===================================================================
--- trunk/runtime/src/test/java/org/teiid/transport/TestCommSockets.java	2010-03-08 22:13:59 UTC (rev 1941)
+++ trunk/runtime/src/test/java/org/teiid/transport/TestCommSockets.java	2010-03-09 05:42:40 UTC (rev 1942)
@@ -30,6 +30,7 @@
 
 import org.junit.After;
 import org.junit.Before;
+import org.junit.Ignore;
 import org.junit.Test;
 
 import com.metamatrix.api.exception.ComponentNotFoundException;
@@ -176,7 +177,7 @@
 		Properties p = new Properties();
 		p.setProperty(SocketUtil.TRUSTSTORE_FILENAME, SocketUtil.NONE);
 		try {
-			helpEstablishConnection(false, config, p);
+			helpEstablishConnection(true, config, p);
 		} catch (CommunicationException e) {
 			
 		}
@@ -184,4 +185,14 @@
 		conn.close();
 	}
 	
+	@Ignore("should be enabled with Netty 3.2")
+	@Test(expected=CommunicationException.class) public void testNonSSLConnectWithSSLServer() throws Exception {
+		SSLConfiguration config = new SSLConfiguration();
+		config.setSslEnabled(true);
+		config.setAuthenticationMode(SSLConfiguration.ANONYMOUS);
+		Properties p = new Properties();
+		p.setProperty(SocketUtil.TRUSTSTORE_FILENAME, SocketUtil.NONE);
+		helpEstablishConnection(true, config, p);
+	}
+	
 }

Modified: trunk/test-integration/common/src/test/java/org/teiid/connector/language/TestLanguageUtil.java
===================================================================
--- trunk/test-integration/common/src/test/java/org/teiid/connector/language/TestLanguageUtil.java	2010-03-08 22:13:59 UTC (rev 1941)
+++ trunk/test-integration/common/src/test/java/org/teiid/connector/language/TestLanguageUtil.java	2010-03-09 05:42:40 UTC (rev 1942)
@@ -22,6 +22,7 @@
 
 package org.teiid.connector.language;
 
+import java.util.Arrays;
 import java.util.HashSet;
 import java.util.List;
 import java.util.Set;
@@ -57,14 +58,11 @@
         Condition criteria = convertCriteria(criteriaStr);
 
         // Execute        
-        List crits = LanguageUtil.separateCriteriaByAnd(criteria);
+        List<Condition> crits = LanguageUtil.separateCriteriaByAnd(criteria);
         
         // Build expected and actual sets
-        Set expectedSet = new HashSet();
-        for(int i=0; i<expected.length; i++) {
-            expectedSet.add(expected[i]);
-        }
-        Set actualSet = new HashSet();
+        Set<String> expectedSet = new HashSet<String>(Arrays.asList(expected));
+        Set<String> actualSet = new HashSet<String>();
         for(int i=0; i<crits.size(); i++) {
             actualSet.add(crits.get(i).toString());
         }
@@ -78,7 +76,7 @@
     }
 
     public void testSeparateCrit_ORisConjunct() throws Exception {
-        helpTestSeparateByAnd("intkey = 1 OR intkey = 2", new String[] { "(SmallA.IntKey = 1) OR (SmallA.IntKey = 2)" }); //$NON-NLS-1$ //$NON-NLS-2$
+        helpTestSeparateByAnd("intkey = 1 OR intkey = 2", new String[] { "SmallA.IntKey = 1 OR SmallA.IntKey = 2" }); //$NON-NLS-1$ //$NON-NLS-2$
     }
 
     public void testSeparateCrit_nestedAND() throws Exception {
@@ -91,7 +89,7 @@
 
     public void testSeparateCrit_NOT() throws Exception {
         helpTestSeparateByAnd("((NOT (intkey = 1 AND intkey = 2)) AND (intkey = 3) AND (intkey = 4))",  //$NON-NLS-1$
-            new String[] { "(SmallA.IntKey <> 1) OR (SmallA.IntKey <> 2)", //$NON-NLS-1$
+            new String[] { "SmallA.IntKey <> 1 OR SmallA.IntKey <> 2", //$NON-NLS-1$
                 "SmallA.IntKey = 3", //$NON-NLS-1$
                 "SmallA.IntKey = 4" }); //$NON-NLS-1$        
     }
@@ -121,15 +119,15 @@
     }
 
     public void testCombineCrit_bothPredicates() throws Exception {
-        helpTestCombineCriteria("intkey = 1", "intkey = 2", "(SmallA.IntKey = 1) AND (SmallA.IntKey = 2)"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+        helpTestCombineCriteria("intkey = 1", "intkey = 2", "SmallA.IntKey = 1 AND SmallA.IntKey = 2"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
     }
 
     public void testCombineCrit_primaryPredicate() throws Exception {
-        helpTestCombineCriteria("intkey = 1", "intkey = 2 AND intkey = 3", "(SmallA.IntKey = 1) AND ((SmallA.IntKey = 2) AND (SmallA.IntKey = 3))"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+        helpTestCombineCriteria("intkey = 1", "intkey = 2 AND intkey = 3", "SmallA.IntKey = 1 AND SmallA.IntKey = 2 AND SmallA.IntKey = 3"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
     }
 
     public void testCombineCrit_additionalPredicate() throws Exception {
-        helpTestCombineCriteria("intkey = 1 AND intkey = 2", "intkey = 3", "(SmallA.IntKey = 1) AND (SmallA.IntKey = 2) AND (SmallA.IntKey = 3)"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+        helpTestCombineCriteria("intkey = 1 AND intkey = 2", "intkey = 3", "SmallA.IntKey = 1 AND SmallA.IntKey = 2 AND SmallA.IntKey = 3"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
     }
     
 }

Modified: trunk/test-integration/common/src/test/java/org/teiid/connector/metadata/runtime/TestElement.java
===================================================================
--- trunk/test-integration/common/src/test/java/org/teiid/connector/metadata/runtime/TestElement.java	2010-03-08 22:13:59 UTC (rev 1941)
+++ trunk/test-integration/common/src/test/java/org/teiid/connector/metadata/runtime/TestElement.java	2010-03-09 05:42:40 UTC (rev 1942)
@@ -79,7 +79,7 @@
         assertEquals(javaType, element.getJavaType());
         assertEquals(length, element.getLength());
         assertEquals(nullable, element.getNullType());
-        assertEquals(position, element.getPosition());
+        assertEquals(position + 1, element.getPosition());
         assertEquals(searchable, element.getSearchType());
         assertEquals(autoIncrement, element.isAutoIncremented());
         assertEquals(caseSensitive, element.isCaseSensitive());      

Modified: trunk/test-integration/common/src/test/java/org/teiid/connector/metadata/runtime/TestMetadataObject.java
===================================================================
--- trunk/test-integration/common/src/test/java/org/teiid/connector/metadata/runtime/TestMetadataObject.java	2010-03-08 22:13:59 UTC (rev 1941)
+++ trunk/test-integration/common/src/test/java/org/teiid/connector/metadata/runtime/TestMetadataObject.java	2010-03-09 05:42:40 UTC (rev 1942)
@@ -22,20 +22,16 @@
 
 package org.teiid.connector.metadata.runtime;
 
-import java.util.Arrays;
-import java.util.HashSet;
 import java.util.List;
-import java.util.Set;
 
+import junit.framework.TestCase;
+
+import org.teiid.connector.language.Call;
 import org.teiid.connector.language.ColumnReference;
+import org.teiid.connector.language.DerivedColumn;
 import org.teiid.connector.language.NamedTable;
-import org.teiid.connector.language.Call;
 import org.teiid.connector.language.Select;
-import org.teiid.connector.language.DerivedColumn;
-import org.teiid.connector.metadata.runtime.Procedure;
 
-import junit.framework.TestCase;
-
 import com.metamatrix.cdk.api.TranslationUtility;
 import com.metamatrix.core.util.UnitTestUtil;
 
@@ -88,7 +84,7 @@
     }   
 
     public void testGroupID_longName() throws Exception {
-        helpTestGroupID("ConnectorMetadata.TestCatalog.TestSchema.TestTable2", "TestTable2", 1, CONNECTOR_METADATA_UTILITY);//$NON-NLS-1$ //$NON-NLS-2$ 
+        helpTestGroupID("ConnectorMetadata.TestCatalog.TestSchema.TestTable2", "TestCatalog.TestSchema.TestTable2", 1, CONNECTOR_METADATA_UTILITY);//$NON-NLS-1$ //$NON-NLS-2$ 
     }   
 
     // ################ TEST ELEMENT METADATAID ######################
@@ -134,38 +130,39 @@
         return proc.getMetadataObject();
     }
     
-    public void helpTestProcedureID(String procName, String shortName, int inputParamCount, String[] paramNames, TranslationUtility transUtil) throws Exception {
+    public void helpTestProcedureID(String procName, String shortName, int inputParamCount, String[] paramNames, String rsParamName, TranslationUtility transUtil) throws Exception {
         Procedure procID = getProcedureID(procName, inputParamCount, transUtil);     
         assertEquals(procName, procID.getFullName()); 
         assertEquals(shortName, procID.getName());
         
         // Check children
         List<ProcedureParameter> children = procID.getParameters();
-        assertEquals(paramNames.length, children.size());
-        Set actualParamNames = new HashSet();
+        int i = 0;
         for (ProcedureParameter childID : children) {
             assertEquals(procID, childID.getParent());
             assertTrue(childID.getFullName() + " " + procID.getFullName(), childID.getFullName().startsWith(procID.getFullName())); //$NON-NLS-1$
-            actualParamNames.add(childID.getName());            
+            assertEquals(paramNames[i++], childID.getName());            
         }
         
-        // Compare actual with expected param names
-        Set expectedParamNames = new HashSet(Arrays.asList(paramNames));
-        assertEquals(expectedParamNames, actualParamNames);
+        if (rsParamName != null) {
+        	assertEquals(rsParamName, procID.getResultSet().getName());
+        } else {
+        	assertNull(procID.getResultSet());
+        }
     }
     
     public void testProcedureID() throws Exception {
         String[] paramNames = new String[] { "InParam", "OutParam", "InOutParam", "ReturnParam" };          //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$//$NON-NLS-4$
-        helpTestProcedureID("ConnectorMetadata.TestProc1", "TestProc1", 2, paramNames, CONNECTOR_METADATA_UTILITY); //$NON-NLS-1$ //$NON-NLS-2$               
+        helpTestProcedureID("ConnectorMetadata.TestProc1", "TestProc1", 2, paramNames, null, CONNECTOR_METADATA_UTILITY); //$NON-NLS-1$ //$NON-NLS-2$               
     }
 
     public void testProcedureID_resultSet() throws Exception {
-        String[] paramNames = new String[] { "Param1", "RSParam" };          //$NON-NLS-1$ //$NON-NLS-2$ 
-        helpTestProcedureID("ConnectorMetadata.TestProc2", "TestProc2", 1, paramNames, CONNECTOR_METADATA_UTILITY); //$NON-NLS-1$ //$NON-NLS-2$               
+        String[] paramNames = new String[] { "Param1"};          //$NON-NLS-1$
+        helpTestProcedureID("ConnectorMetadata.TestProc2", "TestProc2", 1, paramNames, "RSParam", CONNECTOR_METADATA_UTILITY); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$               
     }
 
     public void testProcedureID_longName() throws Exception {
-        helpTestProcedureID("ConnectorMetadata.TestCatalog.TestSchema.TestProc", "TestProc", 0, new String[0], CONNECTOR_METADATA_UTILITY); //$NON-NLS-1$ //$NON-NLS-2$
+        helpTestProcedureID("ConnectorMetadata.TestCatalog.TestSchema.TestProc", "TestCatalog.TestSchema.TestProc", 0, new String[0], null, CONNECTOR_METADATA_UTILITY); //$NON-NLS-1$ //$NON-NLS-2$
     }
 
 

Modified: trunk/test-integration/common/src/test/java/org/teiid/connector/metadata/runtime/TestParams.java
===================================================================
--- trunk/test-integration/common/src/test/java/org/teiid/connector/metadata/runtime/TestParams.java	2010-03-08 22:13:59 UTC (rev 1941)
+++ trunk/test-integration/common/src/test/java/org/teiid/connector/metadata/runtime/TestParams.java	2010-03-09 05:42:40 UTC (rev 1942)
@@ -97,7 +97,7 @@
         assertEquals(length, p.getLength());
         assertEquals(precision, p.getPrecision());
         assertEquals(scale, p.getScale());
-        assertEquals(null, param.getArgumentValue());
+        assertEquals(null, param.getArgumentValue().getValue());
 
         //System.out.println("\n" + p.getModeledType() + "\n" + p.getModeledBaseType() + "\n" + p.getModeledPrimitiveType());
         

Modified: trunk/test-integration/common/src/test/java/org/teiid/connector/metadata/runtime/TestProcedure.java
===================================================================
--- trunk/test-integration/common/src/test/java/org/teiid/connector/metadata/runtime/TestProcedure.java	2010-03-08 22:13:59 UTC (rev 1941)
+++ trunk/test-integration/common/src/test/java/org/teiid/connector/metadata/runtime/TestProcedure.java	2010-03-09 05:42:40 UTC (rev 1942)
@@ -74,16 +74,9 @@
         String[] nameInSource = new String[] { "Param name in source", null, null, null }; //$NON-NLS-1$
         ProcedureParameter.Type[] direction = new ProcedureParameter.Type[] { ProcedureParameter.Type.In, ProcedureParameter.Type.Out, ProcedureParameter.Type.InOut, ProcedureParameter.Type.ReturnValue };
         int[] index = new int[] { 1, 2, 3, 4 };
-        Class[] type = new Class[] { Integer.class, Long.class, Short.class, java.sql.Date.class };        
+        Class<?>[] type = new Class[] { Integer.class, Long.class, Short.class, java.sql.Date.class };        
         
-        List<ProcedureParameter> params = proc.getParameters();        
-        for (int i = 0; i < params.size(); i++) {
-        	ProcedureParameter param = params.get(i);
-            assertEquals(nameInSource[i], param.getNameInSource());
-            assertEquals(direction[i], param.getType());
-            assertEquals(index[i], param.getPosition());
-            assertEquals(type[i], param.getJavaType());
-        }
+        checkParams(proc, nameInSource, direction, index, type);
                 
     }   
     
@@ -91,22 +84,14 @@
         Procedure proc = getProcedure("ConnectorMetadata.TestProc2", 1, CONNECTOR_METADATA_UTILITY);      //$NON-NLS-1$
         assertEquals(null, proc.getNameInSource());
         
-        String[] nameInSource = new String[] { null, "Result set name in source" }; //$NON-NLS-1$
-        ProcedureParameter.Type[] direction = new ProcedureParameter.Type[] { ProcedureParameter.Type.In, ProcedureParameter.Type.ResultSet };
-        int[] index = new int[] { 1, 2 };
-        Class[] type = new Class[] { String.class, java.sql.ResultSet.class };        
+        String[] nameInSource = new String[] { null };
+        ProcedureParameter.Type[] direction = new ProcedureParameter.Type[] { ProcedureParameter.Type.In };
+        int[] index = new int[] { 1 };
+        Class<?>[] type = new Class[] { String.class };        
         
-        List<ProcedureParameter> params = proc.getParameters();        
-        for (int i = 0; i < params.size(); i++) {
-        	ProcedureParameter param = params.get(i);
-            assertEquals(nameInSource[i], param.getNameInSource());
-            assertEquals(direction[i], param.getType());
-            assertEquals(index[i], param.getPosition());
-            assertEquals(type[i], param.getJavaType());
-        }
+        checkParams(proc, nameInSource, direction, index, type);
         
-        ProcedureParameter param = params.get(1);
-        List<Column> rsCols = param.getResultSetColumns();
+        List<Column> rsCols = proc.getResultSet().getColumns();
         // Check first column of result set
         assertEquals(2, rsCols.size());
         Column elemID = rsCols.get(0);
@@ -114,20 +99,35 @@
         assertEquals("ConnectorMetadata.TestProc2.RSParam.RSCol1", elemID.getFullName());         //$NON-NLS-1$
         assertEquals("Result set column name in source", elemID.getNameInSource());         //$NON-NLS-1$
         assertEquals(java.sql.Timestamp.class, elemID.getJavaType());
-        assertEquals(0, elemID.getPosition());
+        assertEquals(1, elemID.getPosition());
         
         Column elemID2 = rsCols.get(1);        
         assertEquals("RSCol2", elemID2.getName());         //$NON-NLS-1$
         assertEquals("ConnectorMetadata.TestProc2.RSParam.RSCol2", elemID2.getFullName());         //$NON-NLS-1$
         assertEquals(null, elemID2.getNameInSource());         
         assertEquals(String.class, elemID2.getJavaType());
-        assertEquals(1, elemID2.getPosition());
+        assertEquals(2, elemID2.getPosition());
         Properties props = new Properties();
         props.put("ColProp", "defaultvalue"); //$NON-NLS-1$ //$NON-NLS-2$
         
         // failing because default extension properties aren't in the VDB file
         //assertEquals(props, e2.getProperties());
 
-    }   
+    }
+
+	private List<ProcedureParameter> checkParams(Procedure proc,
+			String[] nameInSource, ProcedureParameter.Type[] direction,
+			int[] index, Class<?>[] type) {
+		List<ProcedureParameter> params = proc.getParameters();
+		assertEquals(type.length, params.size());
+        for (int i = 0; i < params.size(); i++) {
+        	ProcedureParameter param = params.get(i);
+            assertEquals(nameInSource[i], param.getNameInSource());
+            assertEquals(direction[i], param.getType());
+            assertEquals(index[i], param.getPosition());
+            assertEquals(type[i], param.getJavaType());
+        }
+		return params;
+	}   
     
 }

Modified: trunk/test-integration/common/src/test/java/org/teiid/connector/visitor/util/TestSQLStringVisitor.java
===================================================================
--- trunk/test-integration/common/src/test/java/org/teiid/connector/visitor/util/TestSQLStringVisitor.java	2010-03-08 22:13:59 UTC (rev 1941)
+++ trunk/test-integration/common/src/test/java/org/teiid/connector/visitor/util/TestSQLStringVisitor.java	2010-03-09 05:42:40 UTC (rev 1942)
@@ -39,7 +39,6 @@
 import org.teiid.connector.language.Insert;
 import org.teiid.connector.language.LanguageObject;
 import org.teiid.connector.language.Literal;
-import org.teiid.connector.language.NamedTable;
 import org.teiid.connector.language.SQLReservedWords;
 import org.teiid.connector.language.Select;
 import org.teiid.connector.metadata.runtime.RuntimeMetadata;
@@ -69,17 +68,10 @@
 import org.teiid.dqp.internal.datamgr.language.TestSubqueryInCriteriaImpl;
 import org.teiid.dqp.internal.datamgr.language.TestUpdateImpl;
 import org.teiid.dqp.internal.datamgr.language.TstLanguageBridgeFactory;
-import org.teiid.dqp.internal.datamgr.metadata.RuntimeMetadataImpl;
 
 import com.metamatrix.cdk.unittest.FakeTranslationFactory;
-import com.metamatrix.common.types.DataTypeManager;
-import com.metamatrix.query.metadata.QueryMetadataInterface;
 import com.metamatrix.query.sql.lang.CompareCriteria;
 import com.metamatrix.query.sql.lang.JoinType;
-import com.metamatrix.query.unittest.FakeMetadataFacade;
-import com.metamatrix.query.unittest.FakeMetadataFactory;
-import com.metamatrix.query.unittest.FakeMetadataObject;
-import com.metamatrix.query.unittest.FakeMetadataStore;
 
 public class TestSQLStringVisitor  {
 
@@ -89,31 +81,6 @@
         return SQLStringVisitor.getSQLString(obj);
     }
     
-    private String getString(LanguageObject obj, RuntimeMetadata metadata) {
-        return SQLStringVisitor.getSQLString(obj);
-    }
-        
-    /** create fake BQT metadata to test this case, name in source is important */
-    private RuntimeMetadataImpl exampleRuntimeMetadata(QueryMetadataInterface metadata) {  
-        return new RuntimeMetadataImpl(metadata);
-    }
-    
-    /** create fake BQT metadata to test this case, name in source is important */
-    private FakeMetadataStore exampleMetadataStore() {  
-        // Create models
-        FakeMetadataObject bqt1 = FakeMetadataFactory.createPhysicalModel("BQT1"); //$NON-NLS-1$
-        FakeMetadataObject bqt1SmallA = FakeMetadataFactory.createPhysicalGroup("BQT1.SmallA", bqt1); //$NON-NLS-1$
-        bqt1SmallA.putProperty(FakeMetadataObject.Props.NAME_IN_SOURCE, "SmallishA");//$NON-NLS-1$
-        FakeMetadataObject doubleNum = FakeMetadataFactory.createElement("DoubleNum", bqt1SmallA, DataTypeManager.DefaultDataTypes.DOUBLE, 0); //$NON-NLS-1$
-        doubleNum.putProperty(FakeMetadataObject.Props.NAME_IN_SOURCE, "doublishNum");//$NON-NLS-1$
-
-        FakeMetadataStore store = new FakeMetadataStore();
-        store.addObject(bqt1);
-        store.addObject(bqt1SmallA);
-        store.addObject(doubleNum);
-        return store;
-    }
-
     /*
      * Test for void visit(IAggregate)
      */
@@ -158,7 +125,7 @@
      * Test for void visit(IDelete)
      */
     @Test public void testVisitIDelete() throws Exception {
-        String expected = "DELETE FROM g1 WHERE (100 >= 200) AND (500 < 600)"; //$NON-NLS-1$
+        String expected = "DELETE FROM g1 WHERE 100 >= 200 AND 500 < 600"; //$NON-NLS-1$
         assertEquals(expected, getString(TestDeleteImpl.example()));
     }
     
@@ -182,7 +149,7 @@
      * Test for void visit(IExistsCriteria)
      */
     @Test public void testVisitIExistsCriteria() throws Exception {
-        String expected = "EXISTS (SELECT DISTINCT g1.e1, g1.e2, g1.e3, g1.e4 FROM g1, g2 AS myAlias, g3, g4 WHERE (100 >= 200) AND (500 < 600) GROUP BY g1.e1, g1.e2, g1.e3, g1.e4 HAVING (100 >= 200) AND (500 < 600) ORDER BY e1, e2 DESC, e3, e4 DESC)"; //$NON-NLS-1$
+        String expected = "EXISTS (SELECT DISTINCT g1.e1, g1.e2, g1.e3, g1.e4 FROM g1, g2 AS myAlias, g3, g4 WHERE 100 >= 200 AND 500 < 600 GROUP BY g1.e1, g1.e2, g1.e3, g1.e4 HAVING 100 >= 200 AND 500 < 600 ORDER BY e1, e2 DESC, e3, e4 DESC)"; //$NON-NLS-1$
         assertEquals(expected, getString(TestExistsCriteriaImpl.example()));
     }
 
@@ -195,21 +162,6 @@
         assertEquals(expected, getString(TestFunctionImpl.example("testName"))); //$NON-NLS-1$
     }
     
-    @Test public void testVisitConvertFunctionOracleStyleWithNIS() throws Exception {
-        
-        FakeMetadataFacade facade = new FakeMetadataFacade(exampleMetadataStore());
-        RuntimeMetadataImpl metadata = exampleRuntimeMetadata(facade);
-
-        NamedTable g = new NamedTable("SmallA", null, metadata.getGroup("BQT1.SmallA")); //$NON-NLS-1$
-        ColumnReference e = new ColumnReference(g, "DoubleNum", metadata.getElement("DoubleNum"), Double.class); //$NON-NLS-1$ //$NON-NLS-2$
-        List<? extends Expression> params = Arrays.asList(e, new Literal("integer", String.class)); //$NON-NLS-1$
-        
-        final String expected = "convert(SmallishA.doublishNum, integer)"; //$NON-NLS-1$
-        Function test = new Function("convert", params, Integer.class); //$NON-NLS-1$
-        
-        assertEquals(expected, getString(test, metadata  )); 
-    }
-    
     @Test public void testVisitConvertFunctionOracleStyle() throws Exception {
         String expected = "convert(columnA, integer)"; //$NON-NLS-1$
         
@@ -341,7 +293,7 @@
      * Test for void visit(IQuery)
      */
     @Test public void testVisitIQuery() throws Exception {
-        String expected = "SELECT DISTINCT g1.e1, g1.e2, g1.e3, g1.e4 FROM g1, g2 AS myAlias, g3, g4 WHERE (100 >= 200) AND (500 < 600) GROUP BY g1.e1, g1.e2, g1.e3, g1.e4 HAVING (100 >= 200) AND (500 < 600) ORDER BY e1, e2 DESC, e3, e4 DESC"; //$NON-NLS-1$
+        String expected = "SELECT DISTINCT g1.e1, g1.e2, g1.e3, g1.e4 FROM g1, g2 AS myAlias, g3, g4 WHERE 100 >= 200 AND 500 < 600 GROUP BY g1.e1, g1.e2, g1.e3, g1.e4 HAVING 100 >= 200 AND 500 < 600 ORDER BY e1, e2 DESC, e3, e4 DESC"; //$NON-NLS-1$
         assertEquals(expected, getString(TestQueryImpl.example(true)));
     }
 
@@ -349,7 +301,7 @@
      * Test for void visit(IScalarSubquery)
      */
     @Test public void testVisitIScalarSubquery() throws Exception {
-        String expected = "(SELECT DISTINCT g1.e1, g1.e2, g1.e3, g1.e4 FROM g1, g2 AS myAlias, g3, g4 WHERE (100 >= 200) AND (500 < 600) GROUP BY g1.e1, g1.e2, g1.e3, g1.e4 HAVING (100 >= 200) AND (500 < 600) ORDER BY e1, e2 DESC, e3, e4 DESC)"; //$NON-NLS-1$
+        String expected = "(SELECT DISTINCT g1.e1, g1.e2, g1.e3, g1.e4 FROM g1, g2 AS myAlias, g3, g4 WHERE 100 >= 200 AND 500 < 600 GROUP BY g1.e1, g1.e2, g1.e3, g1.e4 HAVING 100 >= 200 AND 500 < 600 ORDER BY e1, e2 DESC, e3, e4 DESC)"; //$NON-NLS-1$
         assertEquals(expected, getString(TestScalarSubqueryImpl.example()));
     }
 
@@ -365,9 +317,9 @@
      * Test for void visit(ISelect)
      */
     @Test public void testVisitISelect() throws Exception {
-        String expected = "SELECT g1.e1, g1.e2, g1.e3, g1.e4"; //$NON-NLS-1$
+        String expected = "SELECT g1.e1, g1.e2, g1.e3, g1.e4 FROM g1, g2 AS myAlias, g3, g4 WHERE 100 >= 200 AND 500 < 600 GROUP BY g1.e1, g1.e2, g1.e3, g1.e4 HAVING 100 >= 200 AND 500 < 600 ORDER BY e1, e2 DESC, e3, e4 DESC"; //$NON-NLS-1$
         assertEquals(expected, getString(TestQueryImpl.example(false)));
-        expected = "SELECT DISTINCT g1.e1, g1.e2, g1.e3, g1.e4"; //$NON-NLS-1$
+        expected = "SELECT DISTINCT g1.e1, g1.e2, g1.e3, g1.e4 FROM g1, g2 AS myAlias, g3, g4 WHERE 100 >= 200 AND 500 < 600 GROUP BY g1.e1, g1.e2, g1.e3, g1.e4 HAVING 100 >= 200 AND 500 < 600 ORDER BY e1, e2 DESC, e3, e4 DESC"; //$NON-NLS-1$
         assertEquals(expected, getString(TestQueryImpl.example(true)));
     }
 
@@ -376,9 +328,9 @@
      * Test for void visit(ISelectSymbol)
      */
     @Test public void testVisitISelectSymbol() throws Exception {
-        String expected = "g1.e1"; //$NON-NLS-1$
+        String expected = "e1"; //$NON-NLS-1$
         assertEquals(expected, getString(TestSelectSymbolImpl.example("e1", null))); //$NON-NLS-1$
-        expected = "g1.e1 AS alias"; //$NON-NLS-1$
+        expected = "e1 AS alias"; //$NON-NLS-1$
         assertEquals(expected, getString(TestSelectSymbolImpl.example("e1", "alias"))); //$NON-NLS-1$ //$NON-NLS-2$
     }
 
@@ -386,7 +338,7 @@
      * Test for void visit(ISubqueryCompareCriteria)
      */
     @Test public void testVisitISubqueryCompareCriteria() throws Exception {
-        String expected = "g1.e1 > SOME (SELECT DISTINCT g1.e1, g1.e2, g1.e3, g1.e4 FROM g1, g2 AS myAlias, g3, g4 WHERE (100 >= 200) AND (500 < 600) GROUP BY g1.e1, g1.e2, g1.e3, g1.e4 HAVING (100 >= 200) AND (500 < 600) ORDER BY e1, e2 DESC, e3, e4 DESC)"; //$NON-NLS-1$
+        String expected = "g1.e1 > SOME (SELECT DISTINCT g1.e1, g1.e2, g1.e3, g1.e4 FROM g1, g2 AS myAlias, g3, g4 WHERE 100 >= 200 AND 500 < 600 GROUP BY g1.e1, g1.e2, g1.e3, g1.e4 HAVING 100 >= 200 AND 500 < 600 ORDER BY e1, e2 DESC, e3, e4 DESC)"; //$NON-NLS-1$
         assertEquals(expected, getString(TestSubqueryCompareCriteriaImpl.example())); 
     }
 
@@ -394,12 +346,12 @@
      * Test for void visit(ISubqueryInCriteria)
      */
     @Test public void testVisitISubqueryInCriteria() throws Exception {
-        String expected = "g1.e1 NOT IN (SELECT DISTINCT g1.e1, g1.e2, g1.e3, g1.e4 FROM g1, g2 AS myAlias, g3, g4 WHERE (100 >= 200) AND (500 < 600) GROUP BY g1.e1, g1.e2, g1.e3, g1.e4 HAVING (100 >= 200) AND (500 < 600) ORDER BY e1, e2 DESC, e3, e4 DESC)"; //$NON-NLS-1$
+        String expected = "g1.e1 NOT IN (SELECT DISTINCT g1.e1, g1.e2, g1.e3, g1.e4 FROM g1, g2 AS myAlias, g3, g4 WHERE 100 >= 200 AND 500 < 600 GROUP BY g1.e1, g1.e2, g1.e3, g1.e4 HAVING 100 >= 200 AND 500 < 600 ORDER BY e1, e2 DESC, e3, e4 DESC)"; //$NON-NLS-1$
         assertEquals(expected, getString(TestSubqueryInCriteriaImpl.example())); 
     }
 
     @Test public void testVisitIUnion1() throws Exception {
-        String expected = "SELECT DISTINCT g1.e1, g1.e2, g1.e3, g1.e4 FROM g1, g2 AS myAlias, g3, g4 WHERE (100 >= 200) AND (500 < 600) GROUP BY g1.e1, g1.e2, g1.e3, g1.e4 HAVING (100 >= 200) AND (500 < 600) ORDER BY e1, e2 DESC, e3, e4 DESC UNION SELECT DISTINCT g1.e1, g1.e2, g1.e3, g1.e4 FROM g1, g2 AS myAlias, g3, g4 WHERE (100 >= 200) AND (500 < 600) GROUP BY g1.e1, g1.e2, g1.e3, g1.e4 HAVING (100 >= 200) AND (500 < 600) ORDER BY e1, e2 DESC, e3, e4 DESC ORDER BY e1, e2 DESC, e3, e4 DESC";//$NON-NLS-1$
+        String expected = "SELECT DISTINCT g1.e1, g1.e2, g1.e3, g1.e4 FROM g1, g2 AS myAlias, g3, g4 WHERE 100 >= 200 AND 500 < 600 GROUP BY g1.e1, g1.e2, g1.e3, g1.e4 HAVING 100 >= 200 AND 500 < 600 ORDER BY e1, e2 DESC, e3, e4 DESC UNION SELECT DISTINCT g1.e1, g1.e2, g1.e3, g1.e4 FROM g1, g2 AS myAlias, g3, g4 WHERE 100 >= 200 AND 500 < 600 GROUP BY g1.e1, g1.e2, g1.e3, g1.e4 HAVING 100 >= 200 AND 500 < 600 ORDER BY e1, e2 DESC, e3, e4 DESC ORDER BY e1, e2 DESC, e3, e4 DESC";//$NON-NLS-1$
         assertEquals(expected, getString(TestSetQueryImpl.example()));
     }
     
@@ -424,7 +376,7 @@
     }
     
     @Test public void testVisitProcedure() throws Exception {
-        String expected = "EXEC sq3(, x, 1)"; //$NON-NLS-1$
+        String expected = "EXEC sq3('x', 1)"; //$NON-NLS-1$
         assertEquals(expected, getString(TestProcedureImpl.example()));
     }
     

Deleted: trunk/test-integration/db/src/test/java/org/teiid/connector/metadata/TestMetadataInConnector.java
===================================================================
--- trunk/test-integration/db/src/test/java/org/teiid/connector/metadata/TestMetadataInConnector.java	2010-03-08 22:13:59 UTC (rev 1941)
+++ trunk/test-integration/db/src/test/java/org/teiid/connector/metadata/TestMetadataInConnector.java	2010-03-09 05:42:40 UTC (rev 1942)
@@ -1,30 +0,0 @@
-package org.teiid.connector.metadata;
-
-import org.junit.Test;
-
-import com.metamatrix.core.util.UnitTestUtil;
-import com.metamatrix.jdbc.api.AbstractMMQueryTestCase;
-
-public class TestMetadataInConnector extends AbstractMMQueryTestCase {
-	
-    private static final String DQP_PROP_FILE = UnitTestUtil.getTestDataPath() + "/metadata/dqp.properties;user=test"; //$NON-NLS-1$
-    private static final String VDB = "TestExtensions"; //$NON-NLS-1$
-
- 		
-    @Test public void testMetadataTable() throws Exception {
-    	getConnection(VDB, DQP_PROP_FILE, ""); //$NON-NLS-1$
-    	execute("Select * from TableA"); //$NON-NLS-1$
-    	String expected[] = {"column1[string]    column2[integer]"}; //$NON-NLS-1$
-    	assertResults(expected); 
-    	closeConnection();
-    }
-    
-    @Test public void testMetadataProcedure() throws Exception {
-    	getConnection(VDB, DQP_PROP_FILE, ""); //$NON-NLS-1$
-    	execute("exec AnyModel.ProcedureB(?)", new Object[] {"foo"}); //$NON-NLS-1$ //$NON-NLS-2$
-    	String expected[] = {"column1[string]    column2[integer]"}; //$NON-NLS-1$
-    	assertResults(expected);
-    	closeConnection();
-    }	
-    
-}



More information about the teiid-commits mailing list