db-derby-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From abr...@apache.org
Subject svn commit: r495750 - in /db/derby/code/trunk/java: engine/org/apache/derby/impl/sql/compile/ engine/org/apache/derby/loc/ shared/org/apache/derby/shared/common/reference/ testing/org/apache/derbyTesting/functionTests/tests/lang/
Date Fri, 12 Jan 2007 21:53:05 GMT
Author: abrown
Date: Fri Jan 12 13:53:04 2007
New Revision: 495750

URL: http://svn.apache.org/viewvc?view=rev&rev=495750
Log:
DERBY-64 (partial): Implement CREATE TABLE ... AS ... WITH NO DATA
functionality in accordance with SQL 2003 standards.  In this patch:

 - SQLState.java and messages.xml were modified to add three messages
to flag various errors. These error messages are similar to those
used by CREATE VIEW.

 - sqlgrammer.jj was modified to support the following syntax:

    CREATE TABLE new_table AS subquery WITH [NO] DATA

 - CreateTableNode.java was modified to define a new init method to
take a result column list and a query expression. The bindStatement
method was modified to bind the quiery expression and create the
table element list from the result column list and the query
expression.

 - A new JUnit test, CreateTableFromQueryTest, was added to the lang
suite.

The current patch does not implement the WITH DATA option. 

Contributed by James F. Adams (derby@xemaps.com) 

Added:
    db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/tests/lang/CreateTableFromQueryTest.java
  (with props)
Modified:
    db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/compile/CreateTableNode.java
    db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/compile/sqlgrammar.jj
    db/derby/code/trunk/java/engine/org/apache/derby/loc/messages.xml
    db/derby/code/trunk/java/shared/org/apache/derby/shared/common/reference/SQLState.java
    db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/tests/lang/_Suite.java

Modified: db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/compile/CreateTableNode.java
URL: http://svn.apache.org/viewvc/db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/compile/CreateTableNode.java?view=diff&rev=495750&r1=495749&r2=495750
==============================================================================
--- db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/compile/CreateTableNode.java
(original)
+++ db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/compile/CreateTableNode.java
Fri Jan 12 13:53:04 2007
@@ -30,11 +30,14 @@
 
 import org.apache.derby.iapi.sql.execute.ConstantAction;
 
+import org.apache.derby.iapi.sql.depend.ProviderList;
 import org.apache.derby.iapi.sql.dictionary.DataDictionary;
 import org.apache.derby.iapi.sql.dictionary.SchemaDescriptor;
 import org.apache.derby.iapi.sql.dictionary.TableDescriptor;
 
 import org.apache.derby.iapi.sql.compile.C_NodeTypes;
+import org.apache.derby.iapi.sql.compile.CompilerContext;
+import org.apache.derby.iapi.sql.conn.Authorizer;
 
 import org.apache.derby.iapi.error.StandardException;
 
@@ -58,6 +61,8 @@
 	private Properties			properties;
 	private TableElementList	tableElementList;
 	protected int	tableType; //persistent table or global temporary table
+	private ResultColumnList	resultColumns;
+	private ResultSetNode		queryExpression;
 
 	/**
 	 * Initializer for a CreateTableNode for a base table
@@ -137,6 +142,28 @@
 			}
 		}
 	}
+	
+	/**
+	 * Initializer for a CreateTableNode for a base table create from a query
+	 * 
+	 * @param newObjectName		The name of the new object being created
+	 * 	                        (ie base table).
+	 * @param resultColumns		The optional column list.
+	 * @param queryExpression	The query expression for the table.
+	 */
+	public void init(
+			Object newObjectName,
+			Object resultColumns,
+			Object queryExpression)
+		throws StandardException
+	{
+		tableType = TableDescriptor.BASE_TABLE_TYPE;
+		lockGranularity = TableDescriptor.DEFAULT_LOCK_GRANULARITY;
+		implicitCreateSchema = true;
+		initAndCheck(newObjectName);
+		this.resultColumns = (ResultColumnList) resultColumns;
+		this.queryExpression = (ResultSetNode) queryExpression;
+	}
 
 	/**
 	 * If no schema name specified for global temporary table, SESSION is the implicit schema.
@@ -208,6 +235,78 @@
 		int numCheckConstraints = 0;
 		int numReferenceConstraints = 0;
 		int numUniqueConstraints = 0;
+
+		if (queryExpression != null)
+		{
+			FromList fromList = (FromList) getNodeFactory().getNode(
+					C_NodeTypes.FROM_LIST,
+					getNodeFactory().doJoinOrderOptimization(),
+					getContextManager());
+			
+			CompilerContext cc = getCompilerContext();
+			ProviderList prevAPL = cc.getCurrentAuxiliaryProviderList();
+			ProviderList apl = new ProviderList();
+			
+			try
+			{
+				cc.setCurrentAuxiliaryProviderList(apl);
+				cc.pushCurrentPrivType(Authorizer.SELECT_PRIV);
+				
+				/* Bind the tables in the queryExpression */
+				queryExpression =
+					queryExpression.bindNonVTITables(dataDictionary, fromList);
+				queryExpression = queryExpression.bindVTITables(fromList);
+				
+				/* Bind the expressions under the resultSet */
+				queryExpression.bindExpressions(fromList);
+				
+				/* Bind the query expression */
+				queryExpression.bindResultColumns(fromList);
+				
+				/* Reject any untyped nulls in the RCL */
+				/* e.g. CREATE TABLE t1 (x) AS VALUES NULL WITH NO DATA */
+				queryExpression.bindUntypedNullsToResultColumns(null);
+			}
+			finally
+			{
+				cc.popCurrentPrivType();
+				cc.setCurrentAuxiliaryProviderList(prevAPL);
+			}
+			
+			/* If there is an RCL for the table definition then copy the
+			 * names to the queryExpression's RCL after verifying that
+			 * they both have the same size.
+			 */
+			ResultColumnList qeRCL = queryExpression.getResultColumns();
+			
+			if (resultColumns != null)
+			{
+				if (resultColumns.size() != qeRCL.size())
+				{
+					throw StandardException.newException(
+							SQLState.LANG_TABLE_DEFINITION_R_C_L_MISMATCH,
+							getFullName());
+				}
+				qeRCL.copyResultColumnNames(resultColumns);
+			}
+			
+			/* Create table element list from columns in query expression */
+			tableElementList = new TableElementList();
+			
+			for (int index = 0; index < qeRCL.size(); index++)
+			{
+				ResultColumn rc = (ResultColumn) qeRCL.elementAt(index);
+				/* Raise error if column name is system generated. */
+				if (rc.isNameGenerated())
+				{
+					throw StandardException.newException(
+							SQLState.LANG_TABLE_REQUIRES_COLUMN_NAMES);
+				}
+				ColumnDefinitionNode column = new ColumnDefinitionNode();
+				column.init(rc.getName(), null, rc.getType(), null);
+				tableElementList.addTableElement(column);
+			}
+		}
 
 		tableElementList.validate(this, dataDictionary, (TableDescriptor) null);
 

Modified: db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/compile/sqlgrammar.jj
URL: http://svn.apache.org/viewvc/db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/compile/sqlgrammar.jj?view=diff&rev=495750&r1=495749&r2=495750
==============================================================================
--- db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/compile/sqlgrammar.jj (original)
+++ db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/compile/sqlgrammar.jj Fri Jan
12 13:53:04 2007
@@ -9589,20 +9589,71 @@
 	Properties			properties = null;
 	TableName			tableName;
 	TableElementList	tableElementList;
+	ResultColumnList	resultColumns = null;
+	ResultSetNode		queryExpression;
+	boolean				withData = true;
 }
 {
 	<TABLE> tableName = qualifiedName(Limits.MAX_IDENTIFIER_LENGTH)
-	tableElementList = tableElementList()
-	[ properties = propertyList(false)<CHECK_PROPERTIES>]
+			// Lookahead needed to choose between
+			// tableElementList and tableColumnList
+	(		LOOKAHEAD({getToken(1).kind == LEFT_PAREN && 
+	                   getToken(3).kind != COMMA &&
+	                   getToken(3).kind != RIGHT_PAREN})
+			tableElementList = tableElementList()
+			[ properties = propertyList(false)<CHECK_PROPERTIES>]
+			{
+				return (StatementNode) nodeFactory.getNode(
+										C_NodeTypes.CREATE_TABLE_NODE,
+										tableName,
+										tableElementList,
+										properties,
+										new Character(lockGranularity),
+										getContextManager());
+			}
+		|
+			[ <LEFT_PAREN> resultColumns = tableColumnList() <RIGHT_PAREN> ]
+			<AS>
+			queryExpression = queryExpression(null, NO_SET_OP)
+			<WITH> [ <NO> { withData = false; } ] <DATA>
+			{
+				// Raise error if WITH DATA is specified
+				// (until it is implemented)
+				if (withData) {
+					throw StandardException.newException(
+						SQLState.NOT_IMPLEMENTED, "WITH DATA");
+				}
+				/* Parameters not allowed in create table */
+				HasNodeVisitor visitor =
+					new HasNodeVisitor(ParameterNode.class);
+				queryExpression.accept(visitor);
+				if (visitor.hasNode())
+				{
+					throw StandardException.newException(
+						SQLState.LANG_NO_PARAMS_IN_TABLES);
+				}
+				
+				return (StatementNode) nodeFactory.getNode(
+										C_NodeTypes.CREATE_TABLE_NODE,
+										tableName,
+										resultColumns,
+										queryExpression,
+										getContextManager());
+			}
+	)
+}
+
+ResultColumnList
+tableColumnList() throws StandardException :
+{
+	ResultColumnList resultColumns = (ResultColumnList) nodeFactory.getNode(
+											C_NodeTypes.RESULT_COLUMN_LIST,
+											getContextManager());
+}
+{
+	columnNameList(resultColumns)
 	{
-		return (StatementNode) nodeFactory.getNode(
-								C_NodeTypes.CREATE_TABLE_NODE,
-								tableName,
-								tableElementList,
-								properties,
-								new Character(lockGranularity),
-								getContextManager());
-		
+		return resultColumns;
 	}
 }
 

Modified: db/derby/code/trunk/java/engine/org/apache/derby/loc/messages.xml
URL: http://svn.apache.org/viewvc/db/derby/code/trunk/java/engine/org/apache/derby/loc/messages.xml?view=diff&rev=495750&r1=495749&r2=495750
==============================================================================
--- db/derby/code/trunk/java/engine/org/apache/derby/loc/messages.xml (original)
+++ db/derby/code/trunk/java/engine/org/apache/derby/loc/messages.xml Fri Jan 12 13:53:04
2007
@@ -1200,6 +1200,11 @@
             </msg>
 
             <msg>
+                <name>42909</name>
+                <text>The CREATE TABLE statement does not include a column list.</text>
+            </msg>
+
+            <msg>
                 <name>42915</name>
                 <text>Foreign  Key '{0}' is invalid because '{1}'. </text>
                 <arg>key</arg>
@@ -1619,6 +1624,12 @@
             </msg>
 
             <msg>
+                <name>42X70</name>
+                <text>The number of columns in the table column list does not match
the number of columns in the underlying query expression in the table definition for '{0}'.</text>
+                <arg>value</arg>
+            </msg>
+
+            <msg>
                 <name>42X72</name>
                 <text>No static field '{0}' was found belonging to class '{1}'.  The
field might exist, but it is not public and/or static, or the class does not exist or the
class is not public.  </text>
                 <arg>fieldName</arg>
@@ -1765,6 +1776,11 @@
             <msg>
                 <name>42X98</name>
                 <text>Parameters are not allowed in a VIEW definition.</text>
+            </msg>
+
+            <msg>
+                <name>42X99</name>
+                <text>Parameters are not allowed in a TABLE definition.</text>
             </msg>
 
             <msg>

Modified: db/derby/code/trunk/java/shared/org/apache/derby/shared/common/reference/SQLState.java
URL: http://svn.apache.org/viewvc/db/derby/code/trunk/java/shared/org/apache/derby/shared/common/reference/SQLState.java?view=diff&rev=495750&r1=495749&r2=495750
==============================================================================
--- db/derby/code/trunk/java/shared/org/apache/derby/shared/common/reference/SQLState.java
(original)
+++ db/derby/code/trunk/java/shared/org/apache/derby/shared/common/reference/SQLState.java
Fri Jan 12 13:53:04 2007
@@ -747,6 +747,7 @@
 
 	String LANG_NO_AGGREGATES_IN_WHERE_CLAUSE                          = "42903";
 	String LANG_DB2_VIEW_REQUIRES_COLUMN_NAMES                         = "42908";
+	String LANG_TABLE_REQUIRES_COLUMN_NAMES                            = "42909";
 	String LANG_DELETE_RULE_VIOLATION		   					       = "42915";
 	String LANG_SYNONYM_CIRCULAR   		   					           = "42916";
 	String LANG_DB2_ON_CLAUSE_INVALID		   					       = "42972";
@@ -818,6 +819,7 @@
 	//42X67
 	String LANG_NO_FIELD_FOUND                                         = "42X68";
 	String LANG_PRIMITIVE_REFERENCING_EXPRESSION                       = "42X69";
+	String LANG_TABLE_DEFINITION_R_C_L_MISMATCH                        = "42X70";
 	String LANG_NO_STATIC_FIELD_FOUND                                  = "42X72";
 	String LANG_AMBIGUOUS_METHOD_INVOCATION                            = "42X73";
 	String LANG_INVALID_CALL_STATEMENT                                 = "42X74";
@@ -843,6 +845,7 @@
 	String LANG_OBJECT_NOT_FOUND                                       = "42X94";
 	String LANG_DB_CLASS_PATH_HAS_MISSING_JAR                          = "42X96";
 	String LANG_NO_PARAMS_IN_VIEWS                                     = "42X98";
+	String LANG_NO_PARAMS_IN_TABLES                                    = "42X99";
 	String LANG_INVALID_USER_AGGREGATE_DEFINITION2                     = "42Y00";
 	String LANG_INVALID_CHECK_CONSTRAINT                               = "42Y01";
 	// String LANG_NO_ALTER_TABLE_COMPRESS_ON_TARGET_TABLE                = "42Y02";

Added: db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/tests/lang/CreateTableFromQueryTest.java
URL: http://svn.apache.org/viewvc/db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/tests/lang/CreateTableFromQueryTest.java?view=auto&rev=495750
==============================================================================
--- db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/tests/lang/CreateTableFromQueryTest.java
(added)
+++ db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/tests/lang/CreateTableFromQueryTest.java
Fri Jan 12 13:53:04 2007
@@ -0,0 +1,295 @@
+/*
+
+   Derby - Class org.apache.derbyTesting.functionTests.tests.lang.CreateTableFromQueryTest
+
+       Licensed to the Apache Software Foundation (ASF) under one
+       or more contributor license agreements.  See the NOTICE file
+       distributed with this work for additional information
+       regarding copyright ownership.  The ASF licenses this file
+       to you under the Apache License, Version 2.0 (the
+       "License"); you may not use this file except in compliance
+       with the License.  You may obtain a copy of the License at
+
+         http://www.apache.org/licenses/LICENSE-2.0
+
+       Unless required by applicable law or agreed to in writing,
+       software distributed under the License is distributed on an
+       "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+       KIND, either express or implied.  See the License for the
+       specific language governing permissions and limitations
+       under the License
+*/
+package org.apache.derbyTesting.functionTests.tests.lang;
+
+import java.sql.Connection;
+import java.sql.DatabaseMetaData;
+import java.sql.ResultSet;
+import java.sql.SQLException;
+import java.sql.Statement;
+
+import junit.framework.Assert;
+import junit.framework.Test;
+import junit.framework.TestSuite;
+
+import org.apache.derbyTesting.junit.BaseJDBCTestCase;
+import org.apache.derbyTesting.junit.JDBC;
+
+/**
+ * Test for creating tables using a query expression.
+ */
+public final class CreateTableFromQueryTest extends BaseJDBCTestCase {
+    private Statement stmt;
+
+    /**
+     * Public constructor required for running test as standalone JUnit.
+     */
+    public CreateTableFromQueryTest(String name)
+    {
+        super(name);
+    }
+
+    /**
+     * Create a suite of tests.
+    */
+    public static Test suite()
+    {
+        final TestSuite suite = new TestSuite("CreateTableFromQueryTest");
+        suite.addTestSuite(CreateTableFromQueryTest.class);
+        return suite;
+    }
+
+    /**
+     * Test basic table creation.
+     * @throws Exception
+     */
+    public void testBasicTableCreation() throws Exception
+    {
+        positiveTest("create table t3 as select * from t1 with no data",
+            new String [] {"I", "S", "F", "DP", "V"},
+            new String [] {"NO", "YES", "YES", "YES", "NO"},
+            new String [] {"INTEGER", "SMALLINT", "DOUBLE", "DOUBLE", "VARCHAR"});
+    }
+    
+    /**
+     * Test creating table with a list of column names.
+     * @throws Exception
+     */
+    public void testCreateTableWithColumnList() throws Exception
+    {
+        positiveTest(
+            "create table t3 (a,b,c,d,e) as select * from t1 with no data",
+            new String [] {"A", "B", "C", "D", "E"},
+            new String [] {"NO", "YES", "YES", "YES", "NO"},
+            new String [] {"INTEGER", "SMALLINT", "DOUBLE", "DOUBLE", "VARCHAR"});
+    }
+
+    /**
+     * Test creating a table with a subset of the base table's columns.
+     * @throws Exception
+     */
+    public void testCreateTableWithSubsetOfColumns() throws Exception
+    {
+        positiveTest("create table t3 as select v,f from t1 with no data",
+            new String [] {"V", "F"},
+            new String [] {"NO", "YES"},
+            new String [] {"VARCHAR", "DOUBLE"});
+    }
+
+    /**
+     * Test creating a table with a subset of the base table's columns
+     * and a column list.
+     * @throws Exception
+     */
+    public void testCreateTableWithSubsetOfColumnsAndColumnList() throws Exception
+    {
+        positiveTest(
+            "create table t3 (a,b,c) as select v,dp,i from t1 with no data",
+            new String [] {"A", "B", "C"},
+            new String [] {"NO", "YES", "NO"},
+            new String [] {"VARCHAR", "DOUBLE", "INTEGER"});
+    }
+
+    /**
+     * Test creating a table with multiple base tables.
+     * @throws Exception
+     */
+    public void testCreateTableWithMultipleBaseTables() throws Exception
+    {
+        positiveTest("create table t3 (one, two) as select x.s, y.v from "
+                     + "t1 y, t2 x where x.a = y.i with no data",
+            new String [] {"ONE", "TWO"},
+            new String [] {"YES", "NO"},
+            new String [] {"VARCHAR", "VARCHAR"});
+    }
+
+    /**
+     * Test creating a table with a column list and system generated
+     * column names in the query.
+     * @throws Exception
+     */
+    public void testCreateTableWithDerivedColumnName() throws Exception
+    {
+        positiveTest(
+            "create table t3 (x,y) as select 2*i,2.0*f from t1 with no data",
+            new String [] {"X", "Y"},
+            new String [] {"NO", "YES"},
+            new String [] {"INTEGER", "DOUBLE"});
+    }
+
+    /**
+     * Test creating a table from a values statement.
+     * @throws Exception
+     */
+    public void testCreateTableFromValues() throws Exception
+    {
+        positiveTest(
+            "create table t3 (x,y) as values (1, 'name') with no data",
+            new String [] {"X", "Y"},
+            new String [] {"NO", "NO"},
+            new String [] {"INTEGER", "CHAR"});
+    }
+
+    /**
+     * Test error when base table does not exist.
+     * @throws Exception
+     */
+    public void testBaseTableDoesNotExist() throws Exception
+    {
+        assertStatementError("42X05", stmt,
+            "create table t3 as select * from t4 with no data");
+    }
+
+    /**
+     * Test error when parameters are supplied in the query expression.
+     * @throws Exception
+     */
+    public void testParametersNotAllowed() throws Exception
+    {
+        assertStatementError("42X99", stmt,
+            "create table t3 as select * from t1 where i = ? with no data");
+    }
+
+    /**
+     * Test error when duplicate column names are specified in the column list.
+     * @throws Exception
+     */
+    public void testDuplicateColumnName() throws Exception
+    {
+        assertStatementError("42X12", stmt,
+            "create table t3 (c1,c2,c1) "
+                + "as select i, s, f from t1 with no data");
+    }
+
+    /**
+     * Test error when the number of columns in the column list does
+     * not match the number of columns in the query expression.
+     * @throws Exception
+     */
+    public void testColumnCountMismatch() throws Exception
+    {
+        assertStatementError("42X70", stmt,
+            "create table t3 (c1,c2,c3) as select i,s from t1 with no data");
+    }
+
+    /**
+     * Test error when the query expression contains system generated
+     * column names and no column list was provided.
+     * @throws Exception
+     */
+    public void testSystemGeneratedColumnName() throws Exception
+    {
+        assertStatementError("42909", stmt,
+            "create table t3 as select i, 2*i from t1 with no data");
+    }
+
+    /**
+     * Test error when the column type can not be determined.
+     * @throws Exception
+     */
+    public void testNullValues() throws Exception
+    {
+        assertStatementError("42X07", stmt,
+            "create table t3 (x) as values null with no data");
+    }
+
+    /**
+     * Test error for unimplemented WITH DATA clause.
+     * @throws Exception
+     */
+    public void testUnimplementedWithDataClause() throws Exception
+    {
+        assertStatementError("0A000", stmt,
+            "create table t3 as select * from t1 with data");
+    }
+   
+    private void positiveTest(String sql, String [] columnNames,
+            String [] nullability, String [] types) throws Exception
+    {
+        // create table
+        stmt.executeUpdate(sql);
+
+        // check column's name, nullability, and type
+        DatabaseMetaData dmd = getConnection().getMetaData();
+        ResultSet rs = dmd.getColumns(null, null, "T3", null);
+        int col = 0;
+        while (rs.next()) {
+            Assert.assertEquals("Column names do not match:",
+                    columnNames[col], rs.getString("COLUMN_NAME"));
+            Assert.assertEquals("Nullability incorrect:",
+                    nullability[col], rs.getString("IS_NULLABLE"));
+            Assert.assertEquals("Column type incorrect:",
+                    types[col], rs.getString("TYPE_NAME"));
+            col++;
+        }
+        Assert.assertEquals("Unexpected column count:",
+                columnNames.length, col);
+        stmt.executeUpdate("drop table t3");
+    }
+
+    /**
+     * Set the fixture up with base tables t1 and t2.
+     */
+    protected void setUp() throws SQLException
+    {    
+        getConnection().setAutoCommit(false);
+
+        stmt = createStatement();
+
+        // create base tables t1 and t2       
+        stmt.executeUpdate(
+            "create table t1(i int not null, s smallint, f float, dp "
+            + "double precision, v varchar(10) not null)");
+
+        stmt.executeUpdate("create table t2 (a int, s varchar(5))");
+    }
+    
+    /**
+     * Tear-down the fixture by removing the tables
+     * (if they still exist).
+     */
+    protected void tearDown() throws Exception
+    {
+        // drop tables
+        try {
+            stmt.execute("drop table t1");
+        } catch (SQLException e) {
+            assertSQLState("42Y55", e);
+        }
+
+        try {
+            stmt.execute("drop table t2");
+        } catch (SQLException e) {
+            assertSQLState("42Y55", e);
+        }
+
+        try {
+            stmt.execute("drop table t3");
+        } catch (SQLException e) {
+            assertSQLState("42Y55", e);
+        }
+
+        stmt.close();
+
+        super.tearDown();
+    }
+}

Propchange: db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/tests/lang/CreateTableFromQueryTest.java
------------------------------------------------------------------------------
    svn:eol-style = native

Modified: db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/tests/lang/_Suite.java
URL: http://svn.apache.org/viewvc/db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/tests/lang/_Suite.java?view=diff&rev=495750&r1=495749&r2=495750
==============================================================================
--- db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/tests/lang/_Suite.java
(original)
+++ db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/tests/lang/_Suite.java
Fri Jan 12 13:53:04 2007
@@ -60,6 +60,7 @@
         // suite.addTest(largeCodeGen.suite());
 
 
+        suite.addTest(CreateTableFromQueryTest.suite());
         suite.addTest(DatabaseClassLoadingTest.suite());
         suite.addTest(GroupByExpressionTest.suite());
 		suite.addTest(LangScripts.suite());



Mime
View raw message