You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tuscany.apache.org by bo...@apache.org on 2011/03/22 21:10:33 UTC

svn commit: r1084336 - /tuscany/das-java/trunk/rdb/src/main/java/org/apache/tuscany/das/rdb/impl/ReadCommandImpl.java

Author: bolbic
Date: Tue Mar 22 20:10:33 2011
New Revision: 1084336

URL: http://svn.apache.org/viewvc?rev=1084336&view=rev
Log:
when result descriptor count doesn't match result column count, truncate result descriptors

Modified:
    tuscany/das-java/trunk/rdb/src/main/java/org/apache/tuscany/das/rdb/impl/ReadCommandImpl.java

Modified: tuscany/das-java/trunk/rdb/src/main/java/org/apache/tuscany/das/rdb/impl/ReadCommandImpl.java
URL: http://svn.apache.org/viewvc/tuscany/das-java/trunk/rdb/src/main/java/org/apache/tuscany/das/rdb/impl/ReadCommandImpl.java?rev=1084336&r1=1084335&r2=1084336&view=diff
==============================================================================
--- tuscany/das-java/trunk/rdb/src/main/java/org/apache/tuscany/das/rdb/impl/ReadCommandImpl.java (original)
+++ tuscany/das-java/trunk/rdb/src/main/java/org/apache/tuscany/das/rdb/impl/ReadCommandImpl.java Tue Mar 22 20:10:33 2011
@@ -20,6 +20,8 @@ package org.apache.tuscany.das.rdb.impl;
 
 import java.io.IOException;
 import java.io.OutputStream;
+import java.sql.ResultSet;
+import java.sql.ResultSetMetaData;
 import java.sql.SQLException;
 import java.util.ArrayList;
 import java.util.Iterator;
@@ -272,8 +274,21 @@ public class ReadCommandImpl extends Com
 
         boolean success = false;
         try {
+        	// execute query
             List results = statement.executeQuery(parameters);
             success = true;
+            // if result set contains less columns than result descriptors, crop result descriptors
+            if (resultDescriptors != null && results.size() > 0) {
+            	ResultSet resultSet = (ResultSet) results.get(0);
+            	ResultSetMetaData resultSetMetadata = resultSet.getMetaData();
+            	int columnCount = resultSetMetadata.getColumnCount();
+            	int resultDescriptorCount = resultDescriptors.size();
+            	if (resultDescriptorCount > columnCount) {
+            		resultDescriptors = resultDescriptors.subList(0, columnCount);
+                	refreshResultSetShape();
+            	}
+            }
+            // build graph
             return buildGraph(results);
         } catch (SQLException e) {
             throw new RuntimeException(e);