[teiid-commits] teiid SVN: r3900 - in branches/7.7.x/metadata/src: test/java/org/teiid/metadata/index and 1 other directories.

teiid-commits at lists.jboss.org teiid-commits at lists.jboss.org
Tue Feb 28 00:06:12 EST 2012


Author: shawkins
Date: 2012-02-28 00:06:11 -0500 (Tue, 28 Feb 2012)
New Revision: 3900

Added:
   branches/7.7.x/metadata/src/test/resources/ora.vdb
Modified:
   branches/7.7.x/metadata/src/main/java/org/teiid/metadata/index/IndexMetadataFactory.java
   branches/7.7.x/metadata/src/main/java/org/teiid/metadata/index/RecordFactory.java
   branches/7.7.x/metadata/src/test/java/org/teiid/metadata/index/TestMultipleModelIndexes.java
Log:
TEIID-1954 correcting associating index records from index metadata

Modified: branches/7.7.x/metadata/src/main/java/org/teiid/metadata/index/IndexMetadataFactory.java
===================================================================
--- branches/7.7.x/metadata/src/main/java/org/teiid/metadata/index/IndexMetadataFactory.java	2012-02-28 05:01:51 UTC (rev 3899)
+++ branches/7.7.x/metadata/src/main/java/org/teiid/metadata/index/IndexMetadataFactory.java	2012-02-28 05:06:11 UTC (rev 3900)
@@ -376,8 +376,11 @@
 					loadColumnSetRecords(columnSetRecordImpl, uuidColumnMap);
 					columnSetRecordImpl.setParent(tableRecord);
 				}
-		        tableRecord.setIndexes(getByParent(tableRecord.getUUID(), MetadataConstants.RECORD_TYPE.INDEX, KeyRecord.class, false));
-		        for (KeyRecord columnSetRecordImpl : tableRecord.getIndexes()) {
+		        List<KeyRecord> indexRecords = tableRecord.getIndexes();
+				for (int i = 0; i < indexRecords.size(); i++) {
+		        	indexRecords.set(i, (KeyRecord) getRecordByType(indexRecords.get(i).getUUID(), MetadataConstants.RECORD_TYPE.INDEX));
+		        }
+		        for (KeyRecord columnSetRecordImpl : indexRecords) {
 					loadColumnSetRecords(columnSetRecordImpl, uuidColumnMap);
 					columnSetRecordImpl.setParent(tableRecord);
 				}

Modified: branches/7.7.x/metadata/src/main/java/org/teiid/metadata/index/RecordFactory.java
===================================================================
--- branches/7.7.x/metadata/src/main/java/org/teiid/metadata/index/RecordFactory.java	2012-02-28 05:01:51 UTC (rev 3899)
+++ branches/7.7.x/metadata/src/main/java/org/teiid/metadata/index/RecordFactory.java	2012-02-28 05:06:11 UTC (rev 3900)
@@ -44,6 +44,7 @@
 import org.teiid.metadata.BaseColumn.NullType;
 import org.teiid.metadata.Column.SearchType;
 import org.teiid.metadata.Datatype.Variety;
+import org.teiid.metadata.KeyRecord.Type;
 
 
 /**
@@ -422,7 +423,16 @@
         	table.setPrimaryKey(pk);
         }
 
-        tokenIndex+=4; //skip reading uuids for associated records
+        List<String> indexes = getStrings(tokens.get(++tokenIndex), getListDelimiter(indexVersion));
+        if (!indexes.isEmpty()) {
+        	table.setIndexes(new ArrayList<KeyRecord>(indexes.size()));
+	        for (String string : indexes) {
+	        	KeyRecord index = new KeyRecord(Type.Index);
+	        	index.setUUID(string);
+	        	table.getIndexes().add(index);
+			}
+        }
+        tokenIndex+=3; //skip reading uuids for associated records
 
         if(includeMaterializationFlag(indexVersion)) {
             // The next token are the UUIDs for the materialized table ID

Modified: branches/7.7.x/metadata/src/test/java/org/teiid/metadata/index/TestMultipleModelIndexes.java
===================================================================
--- branches/7.7.x/metadata/src/test/java/org/teiid/metadata/index/TestMultipleModelIndexes.java	2012-02-28 05:01:51 UTC (rev 3899)
+++ branches/7.7.x/metadata/src/test/java/org/teiid/metadata/index/TestMultipleModelIndexes.java	2012-02-28 05:06:11 UTC (rev 3900)
@@ -59,6 +59,12 @@
 		assertNotNull(pk);
 	}
 	
+	@Test public void testIndex() throws Exception {
+		TransformationMetadata tm = VDBMetadataFactory.getVDBMetadata(UnitTestUtil.getTestDataPath() + "/ora.vdb");
+		Collection indexes = tm.getIndexesInGroup(tm.getGroupID("ORACLE_BQT.SMALLA"));
+		assertEquals(1, indexes.size());
+	}
+	
 	@Test public void testSchemaLoad() throws Exception {
 		TransformationMetadata tm = VDBMetadataFactory.getVDBMetadata(UnitTestUtil.getTestDataPath() + "/Test.vdb");
 		

Added: branches/7.7.x/metadata/src/test/resources/ora.vdb
===================================================================
(Binary files differ)


Property changes on: branches/7.7.x/metadata/src/test/resources/ora.vdb
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream



More information about the teiid-commits mailing list