in rdb/src/main/java/org/apache/tuscany/das/rdb/impl/ReadCommandImpl.java [269:302]
public DataObject executeQuery() {
if (statement.getConnection() == null) {
throw new RuntimeException("A DASConnection object must be specified before executing the query.");
}
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);
} finally {
if (success) {
statement.getConnection().cleanUp();
} else {
statement.getConnection().errorCleanUp();
}
}
}