Changeset: 3f288787fd77 for monetdb-java
URL: https://dev.monetdb.org/hg/monetdb-java/rev/3f288787fd77
Modified Files:
        src/main/java/org/monetdb/jdbc/MonetConnection.java
        src/main/java/org/monetdb/mcl/net/MapiSocket.java
Branch: monetdbs
Log Message:

Merge 'default' into 'monetdbs'


diffs (145 lines):

diff --git a/src/main/java/org/monetdb/jdbc/MonetBlob.java 
b/src/main/java/org/monetdb/jdbc/MonetBlob.java
--- a/src/main/java/org/monetdb/jdbc/MonetBlob.java
+++ b/src/main/java/org/monetdb/jdbc/MonetBlob.java
@@ -299,8 +299,8 @@ public final class MonetBlob implements 
                try {
                        offset--;
                        /* transactions? what are you talking about? */
-                       for (int i = (int)pos; i < len; i++)
-                               buf[i] = bytes[offset + i];
+            if (len - (int) pos >= 0)
+                System.arraycopy(bytes, offset + (int) pos, buf, (int) pos, 
len - (int) pos);
                } catch (IndexOutOfBoundsException e) {
                        throw new SQLException(e.getMessage(), "M0M10");
                }
diff --git a/src/main/java/org/monetdb/jdbc/MonetConnection.java 
b/src/main/java/org/monetdb/jdbc/MonetConnection.java
--- a/src/main/java/org/monetdb/jdbc/MonetConnection.java
+++ b/src/main/java/org/monetdb/jdbc/MonetConnection.java
@@ -24,12 +24,8 @@ import java.sql.SQLNonTransientConnectio
 import java.sql.SQLWarning;
 import java.sql.Savepoint;
 import java.sql.Statement;
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.Map;
+import java.util.*;
 import java.util.Map.Entry;
-import java.util.Properties;
-import java.util.WeakHashMap;
 import java.util.concurrent.Executor;
 
 import org.monetdb.mcl.io.BufferedMCLReader;
@@ -2765,8 +2761,7 @@ public class MonetConnection
                @Override
                public void close() {
                        // feed all rows to the garbage collector
-                       for (int i = 0; i < data.length; i++)
-                               data[i] = null;
+            Arrays.fill(data, null);
                }
 
                /**
diff --git a/src/main/java/org/monetdb/jdbc/MonetDatabaseMetaData.java 
b/src/main/java/org/monetdb/jdbc/MonetDatabaseMetaData.java
--- a/src/main/java/org/monetdb/jdbc/MonetDatabaseMetaData.java
+++ b/src/main/java/org/monetdb/jdbc/MonetDatabaseMetaData.java
@@ -1317,7 +1317,7 @@ public final class MonetDatabaseMetaData
         */
        @Override
        public int getMaxBinaryLiteralLength() {
-               return 2*1024*1024*1024 - 2;    // MonetDB supports null 
terminated strings of max 2GB, see function: int UTF8_strlen()
+               return 0x7ffffffe;      // MonetDB supports null terminated 
strings of max 2GB, see function: int UTF8_strlen()
        }
 
        /**
@@ -1327,7 +1327,7 @@ public final class MonetDatabaseMetaData
         */
        @Override
        public int getMaxCharLiteralLength() {
-               return 2*1024*1024*1024 - 2;    // MonetDB supports null 
terminated strings of max 2GB, see function: int UTF8_strlen()
+               return 0x7ffffffe;      // MonetDB supports null terminated 
strings of max 2GB, see function: int UTF8_strlen()
        }
 
        /**
@@ -1492,7 +1492,7 @@ public final class MonetDatabaseMetaData
         */
        @Override
        public int getMaxStatementLength() {
-               return 2*1024*1024*1024 - 2;    // MonetDB supports null 
terminated strings of max 2GB, see function: int UTF8_strlen()
+               return 0x7ffffffe;      // MonetDB supports null terminated 
strings of max 2GB, see function: int UTF8_strlen()
        }
 
        /**
diff --git a/src/main/java/org/monetdb/jdbc/MonetPreparedStatement.java 
b/src/main/java/org/monetdb/jdbc/MonetPreparedStatement.java
--- a/src/main/java/org/monetdb/jdbc/MonetPreparedStatement.java
+++ b/src/main/java/org/monetdb/jdbc/MonetPreparedStatement.java
@@ -944,7 +944,13 @@ public class MonetPreparedStatement
                // simply serialise the Reader data into a large buffer
                final CharBuffer buf = CharBuffer.allocate((int)length); // 
have to down cast
                try {
-                       reader.read(buf);
+                       long foo = 0;
+                       while (foo < length) {
+                               int n = reader.read(buf);
+                               if (n < 0)
+                                       throw new SQLException("Stream ended 
unexpectedly at position " + foo + " out of " + length);
+                               foo += n;
+                       }
                        // We have to rewind the buffer, because otherwise 
toString() returns "".
                        buf.rewind();
                        setString(parameterIndex, buf.toString());
diff --git a/src/main/java/org/monetdb/jdbc/MonetStatement.java 
b/src/main/java/org/monetdb/jdbc/MonetStatement.java
--- a/src/main/java/org/monetdb/jdbc/MonetStatement.java
+++ b/src/main/java/org/monetdb/jdbc/MonetStatement.java
@@ -689,7 +689,7 @@ public class MonetStatement
         */
        @Override
        public int getMaxFieldSize() {
-               return 2*1024*1024*1024 - 2;    // MonetDB supports null 
terminated strings of max 2GB, see function: int UTF8_strlen()
+               return 0x7ffffffe;      // MonetDB supports null terminated 
strings of max 2GB, see function: int UTF8_strlen()
        }
 
        /**
@@ -1571,9 +1571,7 @@ final class MonetVirtualResultSet extend
                if (row < 1 || row > tupleCount)
                        return false;
 
-               for (int i = 0; i < results[row - 1].length; i++) {
-                       tlp.values[i] = results[row - 1][i];
-               }
+        System.arraycopy(results[row - 1], 0, tlp.values, 0, results[row - 
1].length);
 
                return true;
        }
diff --git a/src/main/java/org/monetdb/mcl/net/MapiSocket.java 
b/src/main/java/org/monetdb/mcl/net/MapiSocket.java
--- a/src/main/java/org/monetdb/mcl/net/MapiSocket.java
+++ b/src/main/java/org/monetdb/mcl/net/MapiSocket.java
@@ -1067,7 +1067,7 @@ public final class MapiSocket {
                        if (isDebug())
                                log("RX ", new String(block, readPos, 1, 
StandardCharsets.UTF_8), true);
 
-                       return (int)block[readPos++];
+                       return block[readPos++] & 0xFF;
                }
 
                @Override
@@ -1453,7 +1453,7 @@ public final class MapiSocket {
                        final byte[] buf = { 0 };
                        final int nread = read(buf, 0, 1);
                        if (nread == 1)
-                               return buf[0];
+                               return buf[0] & 0xFF;
                        else
                                return -1;
                }
diff --git a/src/main/java/org/monetdb/mcl/parser/TupleLineParser.java 
b/src/main/java/org/monetdb/mcl/parser/TupleLineParser.java
--- a/src/main/java/org/monetdb/mcl/parser/TupleLineParser.java
+++ b/src/main/java/org/monetdb/mcl/parser/TupleLineParser.java
@@ -112,7 +112,7 @@ public final class TupleLineParser exten
                                                        if (fieldHasEscape) {
                                                                if (uesc == 
null) {
                                                                        // 
first time use, create it with enough capacity, minimum 1024
-                                                                       uesc = 
new StringBuilder(fieldlen > 1024 ? fieldlen : 1024);
+                                                                       uesc = 
new StringBuilder(Math.max(fieldlen, 1024));
                                                                } else {
                                                                        // 
reuse the StringBuilder by cleaning it
                                                                        
uesc.setLength(0);
_______________________________________________
checkin-list mailing list -- checkin-list@monetdb.org
To unsubscribe send an email to checkin-list-le...@monetdb.org

Reply via email to