Changeset: 9dea0795a926 for monetdb-java
URL: https://dev.monetdb.org/hg/monetdb-java/rev/9dea0795a926
Modified Files:
src/main/java/org/monetdb/mcl/net/Parameter.java
src/main/java/org/monetdb/mcl/net/Target.java
tests/UrlTester.java
tests/tests.md
Branch: monetdbs
Log Message:
Understand so_timeout, treat_clob_as_varchar and treat_blob_as_binary
diffs (186 lines):
diff --git a/src/main/java/org/monetdb/mcl/net/Parameter.java
b/src/main/java/org/monetdb/mcl/net/Parameter.java
--- a/src/main/java/org/monetdb/mcl/net/Parameter.java
+++ b/src/main/java/org/monetdb/mcl/net/Parameter.java
@@ -29,6 +29,9 @@ public enum Parameter {
DEBUG("debug", ParameterType.Bool, false, "specific to jdbc", false),
LOGFILE("logfile", ParameterType.Str, "", "specific to jdbc", false),
+ SO_TIMEOUT("so_timeout", ParameterType.Int, 0, "abort if network I/O does
not complete in this many milliseconds", false),
+ CLOB_AS_VARCHAR("treat_clob_as_varchar", ParameterType.Bool, true, "return
CLOB/TEXT data as type VARCHAR instead of type CLOB", false),
+ BLOB_AS_BINARY("treat_blob_as_binary", ParameterType.Bool, true, "return
BLOB data as type BINARY instead of type BLOB", false),
;
public final String name;
@@ -71,6 +74,9 @@ public enum Parameter {
case "hash": return HASH;
case "debug": return DEBUG;
case "logfile": return LOGFILE;
+ case "so_timeout": return SO_TIMEOUT;
+ case "treat_clob_as_varchar": return CLOB_AS_VARCHAR;
+ case "treat_blob_as_binary": return BLOB_AS_BINARY;
default: return null;
}
}
diff --git a/src/main/java/org/monetdb/mcl/net/Target.java
b/src/main/java/org/monetdb/mcl/net/Target.java
--- a/src/main/java/org/monetdb/mcl/net/Target.java
+++ b/src/main/java/org/monetdb/mcl/net/Target.java
@@ -28,6 +28,9 @@ public class Target {
private String hash = "";
private boolean debug = false;
private String logfile = "";
+ private int soTimeout = 0;
+ private boolean treatClobAsVarchar = true;
+ private boolean treatBlobAsBinary = true;
private boolean userWasSet = false;
private boolean passwordWasSet = false;
@@ -102,8 +105,13 @@ public class Target {
case HASH: setHash((String)value); break;
case DEBUG: setDebug((boolean)value); break;
case LOGFILE: setLogfile((String)value); break;
+
+ case SO_TIMEOUT: setSoTimeout((int)value); break;
+ case CLOB_AS_VARCHAR: setTreatClobAsVarchar((boolean)value); break;
+ case BLOB_AS_BINARY: setTreatBlobAsBinary((boolean)value); break;
+
default:
- throw new IllegalStateException("unreachable -- missing case");
+ throw new IllegalStateException("unreachable -- missing case:
" + parm.name);
}
}
@@ -138,6 +146,9 @@ public class Target {
case HASH: return hash;
case DEBUG: return debug;
case LOGFILE: return logfile;
+ case SO_TIMEOUT: return soTimeout;
+ case CLOB_AS_VARCHAR: return treatClobAsVarchar;
+ case BLOB_AS_BINARY: return treatBlobAsBinary;
default:
throw new IllegalStateException("unreachable -- missing case");
}
@@ -340,6 +351,31 @@ public class Target {
this.logfile = logfile;
}
+ public int getSoTimeout() {
+ return soTimeout;
+ }
+
+
+ public void setSoTimeout(int soTimeout) {
+ this.soTimeout = soTimeout;
+ }
+
+ public void setTreatClobAsVarchar(boolean treatClobAsVarchar) {
+ this.treatClobAsVarchar = treatClobAsVarchar;
+ }
+
+ public boolean isTreatClobAsVarchar() {
+ return treatClobAsVarchar;
+ }
+
+ public boolean isTreatBlobAsBinary() {
+ return treatBlobAsBinary;
+ }
+
+ public void setTreatBlobAsBinary(boolean treatBlobAsBinary) {
+ this.treatBlobAsBinary = treatBlobAsBinary;
+ }
+
public Validated validate() throws ValidationError {
return new Validated();
}
@@ -519,6 +555,18 @@ public class Target {
return logfile;
}
+ public int getSoTimeout() {
+ return soTimeout;
+ }
+
+ public boolean isTreatClobAsVarchar() {
+ return treatClobAsVarchar;
+ }
+
+ public boolean isTreatBlobAsBinary() {
+ return treatBlobAsBinary;
+ }
+
public boolean connectScan() {
if (database.isEmpty()) return false;
if (!sock.isEmpty() || !host.isEmpty() || port != -1) return false;
diff --git a/tests/UrlTester.java b/tests/UrlTester.java
--- a/tests/UrlTester.java
+++ b/tests/UrlTester.java
@@ -21,6 +21,7 @@ public class UrlTester {
public static void main(String[] args) throws Exception {
checkDefaults();
+ checkParameters();
int exitcode;
UrlTester tester = new UrlTester();
@@ -30,6 +31,7 @@ public class UrlTester {
System.exit(exitcode);
}
+
private static void checkDefaults() {
Target target = new Target();
@@ -39,8 +41,17 @@ public class UrlTester {
continue;
Object actual = target.getObject(parm);
if (!expected.equals(actual)) {
- System.err.println("Default for " + parm.name + " expected to
be <" + expected + "> but is <" + actual + ">");
- System.exit(1);
+ throw new RuntimeException("Default for " + parm.name + "
expected to be <" + expected + "> but is <" + actual + ">");
+ }
+ }
+ }
+
+ private static void checkParameters() {
+ for (Parameter parm: Parameter.values()) {
+ Parameter found = Parameter.forName(parm.name);
+ if (parm != found) {
+ String foundStr = found != null ? found.name : "null";
+ throw new RuntimeException("Looking up <" + parm.name + ">,
found <" + foundStr);
}
}
}
diff --git a/tests/tests.md b/tests/tests.md
--- a/tests/tests.md
+++ b/tests/tests.md
@@ -1457,3 +1457,31 @@ EXPECT language=sql
ACCEPT mapi:monetdb://localhost:12345/db?_l%61nguage=mal
```
+# lalala Java
+
+```test
+ONLY jdbc
+EXPECT so_timeout=0
+SET so_timeout=42
+EXPECT so_timeout=42
+ACCEPT monetdb://?so_timeout=99
+EXPECT so_timeout=99
+```
+
+```test
+ONLY jdbc
+EXPECT treat_clob_as_varchar=true
+SET treat_clob_as_varchar=off
+EXPECT treat_clob_as_varchar=false
+ACCEPT monetdb://?treat_clob_as_varchar=yes
+EXPECT treat_clob_as_varchar=on
+```
+
+```test
+ONLY jdbc
+EXPECT treat_blob_as_binary=true
+SET treat_blob_as_binary=off
+EXPECT treat_blob_as_binary=false
+ACCEPT monetdb://?treat_blob_as_binary=yes
+EXPECT treat_blob_as_binary=on
+```
_______________________________________________
checkin-list mailing list -- [email protected]
To unsubscribe send an email to [email protected]