[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