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