[teiid-commits] teiid SVN: r4050 - trunk/client/src/main/java/org/teiid/jdbc.

teiid-commits at lists.jboss.org teiid-commits at lists.jboss.org
Wed May 2 13:05:08 EDT 2012


Author: shawkins
Date: 2012-05-02 13:05:07 -0400 (Wed, 02 May 2012)
New Revision: 4050

Modified:
   trunk/client/src/main/java/org/teiid/jdbc/PreparedStatementImpl.java
   trunk/client/src/main/java/org/teiid/jdbc/StatementImpl.java
Log:
TEIID-2023 fix for prepared metadata

Modified: trunk/client/src/main/java/org/teiid/jdbc/PreparedStatementImpl.java
===================================================================
--- trunk/client/src/main/java/org/teiid/jdbc/PreparedStatementImpl.java	2012-05-02 17:00:12 UTC (rev 4049)
+++ trunk/client/src/main/java/org/teiid/jdbc/PreparedStatementImpl.java	2012-05-02 17:05:07 UTC (rev 4050)
@@ -261,12 +261,16 @@
 
 	private MetadataResult getMetadataResults() throws TeiidSQLException {
 		if (metadataResults == null) {
-			try {
-				metadataResults = this.getDQP().getMetadata(this.currentRequestID, prepareSql, Boolean.valueOf(getExecutionProperty(ExecutionProperties.ANSI_QUOTED_IDENTIFIERS)).booleanValue());
-			} catch (TeiidComponentException e) {
-				throw TeiidSQLException.create(e);
-			} catch (TeiidProcessingException e) {
-				throw TeiidSQLException.create(e);
+			if (StatementImpl.SET_STATEMENT.matcher(prepareSql).matches() || StatementImpl.TRANSACTION_STATEMENT.matcher(prepareSql).matches() || StatementImpl.SHOW_STATEMENT.matcher(prepareSql).matches()) {
+				metadataResults = new MetadataResult();
+			} else {
+				try {
+					metadataResults = this.getDQP().getMetadata(this.currentRequestID, prepareSql, Boolean.valueOf(getExecutionProperty(ExecutionProperties.ANSI_QUOTED_IDENTIFIERS)).booleanValue());
+				} catch (TeiidComponentException e) {
+					throw TeiidSQLException.create(e);
+				} catch (TeiidProcessingException e) {
+					throw TeiidSQLException.create(e);
+				}
 			}
 		}
 		return metadataResults;

Modified: trunk/client/src/main/java/org/teiid/jdbc/StatementImpl.java
===================================================================
--- trunk/client/src/main/java/org/teiid/jdbc/StatementImpl.java	2012-05-02 17:00:12 UTC (rev 4049)
+++ trunk/client/src/main/java/org/teiid/jdbc/StatementImpl.java	2012-05-02 17:05:07 UTC (rev 4050)
@@ -155,9 +155,9 @@
     protected Map<Integer, Integer> outParamIndexMap = new HashMap<Integer, Integer>();
     protected Map<String, Integer> outParamByName = new TreeMap<String, Integer>(String.CASE_INSENSITIVE_ORDER);
     
-    private static Pattern TRANSACTION_STATEMENT = Pattern.compile("\\s*(commit|rollback|(start\\s+transaction))\\s*;?", Pattern.CASE_INSENSITIVE); //$NON-NLS-1$
-    private static Pattern SET_STATEMENT = Pattern.compile("\\s*set(?:\\s+(payload))?\\s+((?:session authorization)|(?:[a-zA-Z]\\w*))\\s+(?:([a-zA-Z]\\w*)|((?:'[^']*')+));?", Pattern.CASE_INSENSITIVE); //$NON-NLS-1$
-    private static Pattern SHOW_STATEMENT = Pattern.compile("\\s*show\\s+([a-zA-Z]\\w*);?", Pattern.CASE_INSENSITIVE); //$NON-NLS-1$
+    static Pattern TRANSACTION_STATEMENT = Pattern.compile("\\s*(commit|rollback|(start\\s+transaction))\\s*;?", Pattern.CASE_INSENSITIVE); //$NON-NLS-1$
+    static Pattern SET_STATEMENT = Pattern.compile("\\s*set(?:\\s+(payload))?\\s+((?:session authorization)|(?:[a-zA-Z]\\w*))\\s+(?:([a-zA-Z]\\w*)|((?:'[^']*')+));?", Pattern.CASE_INSENSITIVE); //$NON-NLS-1$
+    static Pattern SHOW_STATEMENT = Pattern.compile("\\s*show\\s+([a-zA-Z]\\w*);?", Pattern.CASE_INSENSITIVE); //$NON-NLS-1$
     /**
      * Factory Constructor 
      * @param driverConnection



More information about the teiid-commits mailing list