You are viewing a plain text version of this content. The canonical link for it is here.
Posted to derby-commits@db.apache.org by ba...@apache.org on 2006/06/03 09:25:04 UTC

svn commit: r411399 - in /db/derby/code/trunk/java: engine/org/apache/derby/impl/sql/execute/ testing/org/apache/derbyTesting/functionTests/master/ testing/org/apache/derbyTesting/functionTests/master/DerbyNet/ testing/org/apache/derbyTesting/functionT...

Author: bandaram
Date: Sat Jun  3 00:25:03 2006
New Revision: 411399

URL: http://svn.apache.org/viewvc?rev=411399&view=rev
Log:
DERBY-655: Generate unique logical conglomerateId for duplicate indexes, instead of just reusing existing conglomerateId.

Submitted by Mamta A. Satoor(msatoor@gmail.com)

Modified:
    db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/execute/CreateIndexConstantAction.java
    db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/master/DerbyNet/metadata.out
    db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/master/DerbyNet/odbc_metadata.out
    db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/master/DerbyNetClient/jdk14/metadata.out
    db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/master/DerbyNetClient/odbc_metadata.out
    db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/master/metadata.out
    db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/master/odbc_metadata.out
    db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/tests/jdbcapi/metadata_test.java

Modified: db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/execute/CreateIndexConstantAction.java
URL: http://svn.apache.org/viewvc/db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/execute/CreateIndexConstantAction.java?rev=411399&r1=411398&r2=411399&view=diff
==============================================================================
--- db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/execute/CreateIndexConstantAction.java (original)
+++ db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/execute/CreateIndexConstantAction.java Sat Jun  3 00:25:03 2006
@@ -353,9 +353,12 @@
 					return;
 				}
 
+				//Duplicate indexes share the physical conglomerate underneath
 				conglomId = cd.getConglomerateNumber();
 				indexRowGenerator = cd.getIndexDescriptor();
-				conglomerateUUID = cd.getUUID();
+				//DERBY-655 and DERBY-1343  
+				//Duplicate indexes will have unqiue logical conglomerate UUIDs.  
+				conglomerateUUID = dd.getUUIDFactory().createUUID();
 				duplicate = true;
 				break;
 			}

Modified: db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/master/DerbyNet/metadata.out
URL: http://svn.apache.org/viewvc/db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/master/DerbyNet/metadata.out?rev=411399&r1=411398&r2=411399&view=diff
==============================================================================
--- db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/master/DerbyNet/metadata.out (original)
+++ db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/master/DerbyNet/metadata.out Sat Jun  3 00:25:03 2006
@@ -634,4 +634,7 @@
 defval for col C5 type CHAR DEFAULT 'NULL' wasnull false
 defval for col C6 type CHAR DEFAULT ''NULL'' wasnull false
 defval for col C7 type INTEGER DEFAULT '88' wasnull false
+getImportedKeys('',null,null,'','APP','Derby655t1' ):
+PKTABLE_CAT[VARCHAR],PKTABLE_SCHEM[VARCHAR],PKTABLE_NAME[VARCHAR],PKCOLUMN_NAME[VARCHAR],FKTABLE_CAT[VARCHAR],FKTABLE_SCHEM[VARCHAR],FKTABLE_NAME[VARCHAR],FKCOLUMN_NAME[VARCHAR],KEY_SEQ[SMALLINT],UPDATE_RULE[SMALLINT],DELETE_RULE[SMALLINT],FK_NAME[VARCHAR],PK_NAME[VARCHAR],DEFERRABILITY[SMALLINT]
+,APP,DERBY655T2,C21_ID,,APP,DERBY655T1,C11_ID,1,3,0,F_12,xxxxGENERATED-IDxxxx,7
 Test metadata finished

Modified: db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/master/DerbyNet/odbc_metadata.out
URL: http://svn.apache.org/viewvc/db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/master/DerbyNet/odbc_metadata.out?rev=411399&r1=411398&r2=411399&view=diff
==============================================================================
--- db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/master/DerbyNet/odbc_metadata.out (original)
+++ db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/master/DerbyNet/odbc_metadata.out Sat Jun  3 00:25:03 2006
@@ -665,4 +665,7 @@
 defval for col C5 type CHAR DEFAULT 'NULL' wasnull false
 defval for col C6 type CHAR DEFAULT ''NULL'' wasnull false
 defval for col C7 type INTEGER DEFAULT '88' wasnull false
+getImportedKeys('',null,null,'','APP','Derby655t1' ):
+PKTABLE_CAT[VARCHAR],PKTABLE_SCHEM[VARCHAR],PKTABLE_NAME[VARCHAR],PKCOLUMN_NAME[VARCHAR],FKTABLE_CAT[VARCHAR],FKTABLE_SCHEM[VARCHAR],FKTABLE_NAME[VARCHAR],FKCOLUMN_NAME[VARCHAR],KEY_SEQ[SMALLINT],UPDATE_RULE[SMALLINT],DELETE_RULE[SMALLINT],FK_NAME[VARCHAR],PK_NAME[VARCHAR],DEFERRABILITY[SMALLINT]
+,APP,DERBY655T2,C21_ID,,APP,DERBY655T1,C11_ID,1,3,0,F_12,xxxxGENERATED-IDxxxx,7
 Test metadata finished

Modified: db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/master/DerbyNetClient/jdk14/metadata.out
URL: http://svn.apache.org/viewvc/db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/master/DerbyNetClient/jdk14/metadata.out?rev=411399&r1=411398&r2=411399&view=diff
==============================================================================
--- db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/master/DerbyNetClient/jdk14/metadata.out (original)
+++ db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/master/DerbyNetClient/jdk14/metadata.out Sat Jun  3 00:25:03 2006
@@ -727,4 +727,7 @@
 defval for col C5 type CHAR DEFAULT 'NULL' wasnull false
 defval for col C6 type CHAR DEFAULT ''NULL'' wasnull false
 defval for col C7 type INTEGER DEFAULT '88' wasnull false
+getImportedKeys('',null,null,'','APP','Derby655t1' ):
+PKTABLE_CAT[VARCHAR],PKTABLE_SCHEM[VARCHAR],PKTABLE_NAME[VARCHAR],PKCOLUMN_NAME[VARCHAR],FKTABLE_CAT[VARCHAR],FKTABLE_SCHEM[VARCHAR],FKTABLE_NAME[VARCHAR],FKCOLUMN_NAME[VARCHAR],KEY_SEQ[SMALLINT],UPDATE_RULE[SMALLINT],DELETE_RULE[SMALLINT],FK_NAME[VARCHAR],PK_NAME[VARCHAR],DEFERRABILITY[SMALLINT]
+,APP,DERBY655T2,C21_ID,,APP,DERBY655T1,C11_ID,1,3,0,F_12,xxxxGENERATED-IDxxxx,7
 Test metadata finished

Modified: db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/master/DerbyNetClient/odbc_metadata.out
URL: http://svn.apache.org/viewvc/db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/master/DerbyNetClient/odbc_metadata.out?rev=411399&r1=411398&r2=411399&view=diff
==============================================================================
--- db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/master/DerbyNetClient/odbc_metadata.out (original)
+++ db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/master/DerbyNetClient/odbc_metadata.out Sat Jun  3 00:25:03 2006
@@ -758,4 +758,7 @@
 defval for col C5 type CHAR DEFAULT 'NULL' wasnull false
 defval for col C6 type CHAR DEFAULT ''NULL'' wasnull false
 defval for col C7 type INTEGER DEFAULT '88' wasnull false
+getImportedKeys('',null,null,'','APP','Derby655t1' ):
+PKTABLE_CAT[VARCHAR],PKTABLE_SCHEM[VARCHAR],PKTABLE_NAME[VARCHAR],PKCOLUMN_NAME[VARCHAR],FKTABLE_CAT[VARCHAR],FKTABLE_SCHEM[VARCHAR],FKTABLE_NAME[VARCHAR],FKCOLUMN_NAME[VARCHAR],KEY_SEQ[SMALLINT],UPDATE_RULE[SMALLINT],DELETE_RULE[SMALLINT],FK_NAME[VARCHAR],PK_NAME[VARCHAR],DEFERRABILITY[SMALLINT]
+,APP,DERBY655T2,C21_ID,,APP,DERBY655T1,C11_ID,1,3,0,F_12,xxxxGENERATED-IDxxxx,7
 Test metadata finished

Modified: db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/master/metadata.out
URL: http://svn.apache.org/viewvc/db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/master/metadata.out?rev=411399&r1=411398&r2=411399&view=diff
==============================================================================
--- db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/master/metadata.out (original)
+++ db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/master/metadata.out Sat Jun  3 00:25:03 2006
@@ -727,4 +727,7 @@
 defval for col C5 type CHAR DEFAULT 'NULL' wasnull false
 defval for col C6 type CHAR DEFAULT ''NULL'' wasnull false
 defval for col C7 type INTEGER DEFAULT '88' wasnull false
+getImportedKeys('',null,null,'','APP','Derby655t1' ):
+PKTABLE_CAT[VARCHAR],PKTABLE_SCHEM[VARCHAR],PKTABLE_NAME[VARCHAR],PKCOLUMN_NAME[VARCHAR],FKTABLE_CAT[VARCHAR],FKTABLE_SCHEM[VARCHAR],FKTABLE_NAME[VARCHAR],FKCOLUMN_NAME[VARCHAR],KEY_SEQ[SMALLINT],UPDATE_RULE[SMALLINT],DELETE_RULE[SMALLINT],FK_NAME[VARCHAR],PK_NAME[VARCHAR],DEFERRABILITY[SMALLINT]
+,APP,DERBY655T2,C21_ID,,APP,DERBY655T1,C11_ID,1,3,0,F_12,xxxxGENERATED-IDxxxx,7
 Test metadata finished

Modified: db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/master/odbc_metadata.out
URL: http://svn.apache.org/viewvc/db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/master/odbc_metadata.out?rev=411399&r1=411398&r2=411399&view=diff
==============================================================================
--- db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/master/odbc_metadata.out (original)
+++ db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/master/odbc_metadata.out Sat Jun  3 00:25:03 2006
@@ -758,4 +758,7 @@
 defval for col C5 type CHAR DEFAULT 'NULL' wasnull false
 defval for col C6 type CHAR DEFAULT ''NULL'' wasnull false
 defval for col C7 type INTEGER DEFAULT '88' wasnull false
+getImportedKeys('',null,null,'','APP','Derby655t1' ):
+PKTABLE_CAT[VARCHAR],PKTABLE_SCHEM[VARCHAR],PKTABLE_NAME[VARCHAR],PKCOLUMN_NAME[VARCHAR],FKTABLE_CAT[VARCHAR],FKTABLE_SCHEM[VARCHAR],FKTABLE_NAME[VARCHAR],FKCOLUMN_NAME[VARCHAR],KEY_SEQ[SMALLINT],UPDATE_RULE[SMALLINT],DELETE_RULE[SMALLINT],FK_NAME[VARCHAR],PK_NAME[VARCHAR],DEFERRABILITY[SMALLINT]
+,APP,DERBY655T2,C21_ID,,APP,DERBY655T1,C11_ID,1,3,0,F_12,xxxxGENERATED-IDxxxx,7
 Test metadata finished

Modified: db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/tests/jdbcapi/metadata_test.java
URL: http://svn.apache.org/viewvc/db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/tests/jdbcapi/metadata_test.java?rev=411399&r1=411398&r2=411399&view=diff
==============================================================================
--- db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/tests/jdbcapi/metadata_test.java (original)
+++ db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/tests/jdbcapi/metadata_test.java Sat Jun  3 00:25:03 2006
@@ -1233,6 +1233,24 @@
 			}
 			s.execute("drop table t1");
 
+			// test DERBY-655, DERBY-1343
+			// If a table has duplicate backing index, then it will share the 
+			// physical conglomerate with the existing index, but the duplicate
+			// indexes should have their own unique logical congomerates 
+			// associated with them. That way, it will be possible to 
+			// distinguish the 2 indexes in SYSCONGLOMERATES from each other.
+			s.execute("CREATE TABLE Derby655t1(c11_ID BIGINT NOT NULL)");
+			s.execute("CREATE TABLE Derby655t2 (c21_ID BIGINT NOT NULL primary key)");
+			s.execute("ALTER TABLE Derby655t1 ADD CONSTRAINT F_12 Foreign Key (c11_ID) REFERENCES Derby655t2 (c21_ID) ON DELETE CASCADE ON UPDATE NO ACTION");
+			s.execute("CREATE TABLE Derby655t3(c31_ID BIGINT NOT NULL primary key)");
+			s.execute("ALTER TABLE Derby655t2 ADD CONSTRAINT F_443 Foreign Key (c21_ID) REFERENCES Derby655t3(c31_ID) ON DELETE CASCADE ON UPDATE NO ACTION");
+			dmd = con.getMetaData();
+			System.out.println("\ngetImportedKeys('',null,null,'','APP','Derby655t1' ):");
+			dumpRS(met.getImportedKeys("", "APP", "DERBY655T1"));
+			s.execute("drop table Derby655t1");
+			s.execute("drop table Derby655t2");
+			s.execute("drop table Derby655t3");
+
 			// tiny test moved over from no longer used metadata2.sql
 			// This checks for a bug where you get incorrect behavior on a nested connection.
 			// if you do not get an error, the bug does not occur.