Merge remote branch 'origin/pr/1242/head' into merge_1242
diff --git a/core/conn/jdbcT4/src/main/java/org/trafodion/jdbc/t4/T4Properties.java b/core/conn/jdbcT4/src/main/java/org/trafodion/jdbc/t4/T4Properties.java
index 202bc27..3e87910 100644
--- a/core/conn/jdbcT4/src/main/java/org/trafodion/jdbc/t4/T4Properties.java
+++ b/core/conn/jdbcT4/src/main/java/org/trafodion/jdbc/t4/T4Properties.java
@@ -120,6 +120,7 @@
String blobTableName_;
private int lobChunkSize_ = 10; // default 10M
+ private boolean useLobHandle_ = false;
// private short transportBufferSize_;
private boolean useArrayBinding_;
@@ -429,6 +430,7 @@
setTcpNoDelay(getProperty("tcpNoDelay"));
setLobChunkSize(getProperty("lobChunkSize"));
+ setUseLobHandle(getProperty("useLobHandle"));
}
T4Properties getT4Properties() {
@@ -523,6 +525,7 @@
props.setProperty("tcpNoDelay", String.valueOf(_tcpNoDelay));
props.setProperty("lobChunkSize", String.valueOf(lobChunkSize_));
+ props.setProperty("useLobHandle", String.valueOf(useLobHandle_));
return props;
}
@@ -1910,6 +1913,23 @@
}
}
+ public boolean getUseLobHandle() {
+ return useLobHandle_;
+ }
+
+ public void setUseLobHandle(boolean useLobHandle) {
+ this.useLobHandle_ = useLobHandle;
+ }
+
+ public void setUseLobHandle(String val) {
+ if (val != null) {
+ setUseLobHandle(Boolean.parseBoolean(val));
+ }
+ else {
+ setUseLobHandle(false);
+ }
+ }
+
/**
* Returns the rounding mode set for the driver as an Integer value with one
* of the following values. static int ROUND_CEILING Rounding mode to round
diff --git a/core/conn/jdbcT4/src/main/java/org/trafodion/jdbc/t4/TrafT4ResultSet.java b/core/conn/jdbcT4/src/main/java/org/trafodion/jdbc/t4/TrafT4ResultSet.java
index 20338a8..9997f98 100644
--- a/core/conn/jdbcT4/src/main/java/org/trafodion/jdbc/t4/TrafT4ResultSet.java
+++ b/core/conn/jdbcT4/src/main/java/org/trafodion/jdbc/t4/TrafT4ResultSet.java
@@ -1857,16 +1857,16 @@
break;
case Types.BLOB:
data = getLocalString(columnIndex);
- if (data != null) {
+ if ( !connection_.props_.getUseLobHandle() && data != null) {
Blob blob = new TrafT4Blob(connection_, data, null);
- return new String((blob.getBytes(1, (int) blob.length())));
+ data = new String((blob.getBytes(1, (int) blob.length())));
}
break;
case Types.CLOB:
data = getLocalString(columnIndex);
- if (data != null) {
+ if ( !connection_.props_.getUseLobHandle() && data != null) {
Clob clob = new TrafT4Clob(connection_, data, null);
- return clob.getSubString(1, (int)clob.length());
+ data = clob.getSubString(1, (int)clob.length());
}
break;
case Types.VARBINARY:
diff --git a/core/conn/trafci/src/main/java/org/trafodion/ci/SessionInterface.java b/core/conn/trafci/src/main/java/org/trafodion/ci/SessionInterface.java
index 0243eb1..cf167b5 100644
--- a/core/conn/trafci/src/main/java/org/trafodion/ci/SessionInterface.java
+++ b/core/conn/trafci/src/main/java/org/trafodion/ci/SessionInterface.java
@@ -1133,6 +1133,7 @@
driver.getMajorVersion();
driver.getMinorVersion();
+ connProp.put("useLobHandle", String.valueOf(true));
connProp.put("user",sessObj.getSessionUser());
connProp.put("password",sessObj.getSessionPass());
@@ -1238,6 +1239,7 @@
driver.getMajorVersion();
driver.getMinorVersion();
+ connProp.put("useLobHandle", String.valueOf(true));
connProp.put("user", (user==null?sessObj.getSessionUser():user) );
connProp.put("password",(password==null?sessObj.getSessionPass():password));
connProp.put("roleName", (null==role?"":role));