Author: shawkins
Date: 2012-05-08 13:12:27 -0400 (Tue, 08 May 2012)
New Revision: 4075
Modified:
branches/7.7.x/connectors/translator-jdbc/src/main/java/org/teiid/translator/jdbc/JDBCBaseExecution.java
branches/7.7.x/engine/src/main/java/org/teiid/dqp/internal/datamgr/ConnectorWorkItem.java
branches/7.7.x/metadata/src/main/java/org/teiid/metadata/index/RecordFactory.java
Log:
TEIID-2020: Running Sybase procedure with jconnect driver in Teiid fails
Modified:
branches/7.7.x/connectors/translator-jdbc/src/main/java/org/teiid/translator/jdbc/JDBCBaseExecution.java
===================================================================
---
branches/7.7.x/connectors/translator-jdbc/src/main/java/org/teiid/translator/jdbc/JDBCBaseExecution.java 2012-05-08
13:55:30 UTC (rev 4074)
+++
branches/7.7.x/connectors/translator-jdbc/src/main/java/org/teiid/translator/jdbc/JDBCBaseExecution.java 2012-05-08
17:12:27 UTC (rev 4075)
@@ -38,6 +38,7 @@
import org.teiid.translator.Execution;
import org.teiid.translator.ExecutionContext;
import org.teiid.translator.TranslatorException;
+import org.teiid.translator.jdbc.sybase.SybaseExecutionFactory;
/**
@@ -135,7 +136,10 @@
}
protected void setSizeContraints(Statement statement) {
- try {
+ try {
+ if (statement instanceof CallableStatement && this.executionFactory
instanceof SybaseExecutionFactory) {
+ return;
+ }
statement.setFetchSize(fetchSize);
} catch (SQLException e) {
if (LogManager.isMessageToBeRecorded(LogConstants.CTX_CONNECTOR, MessageLevel.DETAIL))
{
Modified:
branches/7.7.x/engine/src/main/java/org/teiid/dqp/internal/datamgr/ConnectorWorkItem.java
===================================================================
---
branches/7.7.x/engine/src/main/java/org/teiid/dqp/internal/datamgr/ConnectorWorkItem.java 2012-05-08
13:55:30 UTC (rev 4074)
+++
branches/7.7.x/engine/src/main/java/org/teiid/dqp/internal/datamgr/ConnectorWorkItem.java 2012-05-08
17:12:27 UTC (rev 4075)
@@ -218,6 +218,9 @@
// Translate the command
Command command = this.requestMsg.getCommand();
this.expectedColumns = command.getProjectedSymbols().size();
+ if (command instanceof StoredProcedure) {
+ this.expectedColumns =
((StoredProcedure)command).getResultSetColumns().size();
+ }
LanguageBridgeFactory factory = new LanguageBridgeFactory(queryMetadata);
factory.setConvertIn(!this.connector.supportsInCriteria());
this.translatedCommand = factory.translate(command);
Modified:
branches/7.7.x/metadata/src/main/java/org/teiid/metadata/index/RecordFactory.java
===================================================================
---
branches/7.7.x/metadata/src/main/java/org/teiid/metadata/index/RecordFactory.java 2012-05-08
13:55:30 UTC (rev 4074)
+++
branches/7.7.x/metadata/src/main/java/org/teiid/metadata/index/RecordFactory.java 2012-05-08
17:12:27 UTC (rev 4075)
@@ -800,6 +800,8 @@
case MetadataConstants.PARAMETER_TYPES.RETURN_VALUE:
type = ProcedureParameter.Type.ReturnValue;
break;
+ default:
+ throw new IllegalArgumentException("Invalid parameter type, please ensure
all parameter types are valid in Designer.");
}
paramRd.setType(type);
Show replies by thread