[teiid-commits] teiid SVN: r2456 - trunk/runtime/src/main/java/org/teiid/deployers.

teiid-commits at lists.jboss.org teiid-commits at lists.jboss.org
Thu Aug 12 10:55:41 EDT 2010


Author: shawkins
Date: 2010-08-12 10:55:40 -0400 (Thu, 12 Aug 2010)
New Revision: 2456

Modified:
   trunk/runtime/src/main/java/org/teiid/deployers/PgCatalogMetadataStore.java
Log:
TEIID-860 simplifying the attribute query

Modified: trunk/runtime/src/main/java/org/teiid/deployers/PgCatalogMetadataStore.java
===================================================================
--- trunk/runtime/src/main/java/org/teiid/deployers/PgCatalogMetadataStore.java	2010-08-12 03:43:32 UTC (rev 2455)
+++ trunk/runtime/src/main/java/org/teiid/deployers/PgCatalogMetadataStore.java	2010-08-12 14:55:40 UTC (rev 2456)
@@ -142,17 +142,18 @@
 		addPrimaryKey("pk_pg_attr", Arrays.asList("oid"), t); //$NON-NLS-1$ //$NON-NLS-2$
 		
 		String transformation = "SELECT t1.OID as oid, " + //$NON-NLS-1$
-				"(SELECT OID FROM SYS.Tables WHERE Name = t1.TableName AND SchemaName = t1.SchemaName) as attrelid, " + //$NON-NLS-1$
+				"st.oid as attrelid, " + //$NON-NLS-1$
 				"t1.Name as attname, " + //$NON-NLS-1$
-				"(SELECT pt.oid FROM pg_catalog.pg_type pt, SYS.DataTypes dt WHERE (dt.Name = t1.DataType AND dt.Name = pt.typname) " + //$NON-NLS-1$
-				"OR ((t1.DataType = 'clob' OR t1.DataType = 'blob') AND pt.typname = 'lo')) as atttypid, " + //$NON-NLS-1$
+				"pt.oid as atttypid," + //$NON-NLS-1$
 				"convert(t1.Length, short) as attlen, " + //$NON-NLS-1$
 				"convert(t1.Position, short) as attnum, " + //$NON-NLS-1$
 				"t1.Length as atttypmod, " + //$NON-NLS-1$
 				"false as attnotnull, " + //$NON-NLS-1$
 				"false as attisdropped, " + //$NON-NLS-1$
 				"false as atthasdef " + //$NON-NLS-1$
-				"FROM SYS.Columns as t1"; //$NON-NLS-1$
+				"FROM SYS.Columns as t1 LEFT OUTER JOIN " + //$NON-NLS-1$
+				"SYS.Tables st ON (st.Name = t1.TableName AND st.SchemaName = t1.SchemaName) LEFT OUTER JOIN " + //$NON-NLS-1$
+				"pg_catalog.pg_type pt ON (CASE WHEN (t1.DataType = 'clob' OR t1.DataType = 'blob') THEN 'lo' ELSE t1.DataType END = pt.typname)"; //$NON-NLS-1$
 		t.setSelectTransformation(transformation);
 		t.setMaterialized(true);
 		return t;		



More information about the teiid-commits mailing list