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);