Changeset: 6325594f01af for monetdb-java URL: http://dev.monetdb.org/hg/monetdb-java?cmd=changeset;node=6325594f01af Added Files: src/main/java/nl/cwi/monetdb/mcl/connection/AbstractMonetDBConnection.java src/main/java/nl/cwi/monetdb/mcl/connection/DeleteMe.java src/main/java/nl/cwi/monetdb/mcl/connection/EmbeddedMonetDB.java src/main/java/nl/cwi/monetdb/mcl/connection/MapiConnection.java src/main/java/nl/cwi/monetdb/mcl/connection/MonetDBLanguage.java src/main/java/nl/cwi/monetdb/mcl/io/InternalConnection.java src/main/java/nl/cwi/monetdb/mcl/io/SocketConnection.java src/main/java/nl/cwi/monetdb/mcl/io/SocketIOHandler.java src/main/java/nl/cwi/monetdb/mcl/protocol/AbstractProtocolParser.java src/main/java/nl/cwi/monetdb/mcl/protocol/ServerResponses.java src/main/java/nl/cwi/monetdb/mcl/protocol/StarterHeaders.java src/main/java/nl/cwi/monetdb/mcl/protocol/TableResultHeaders.java src/main/java/nl/cwi/monetdb/mcl/protocol/embedded/EmbeddedProtocol.java src/main/java/nl/cwi/monetdb/mcl/protocol/newmapi/NewMapiProtocol.java src/main/java/nl/cwi/monetdb/mcl/protocol/oldmapi/OldMapiConverter.java src/main/java/nl/cwi/monetdb/mcl/protocol/oldmapi/OldMapiProtocol.java Removed Files: src/main/java/nl/cwi/monetdb/mcl/net/AbstractMCLConnection.java src/main/java/nl/cwi/monetdb/mcl/net/EmbeddedMonetDB.java src/main/java/nl/cwi/monetdb/mcl/net/MapiSocket.java Modified Files: example/SQLcopyinto.java src/main/java/nl/cwi/monetdb/embedded/env/MonetDBEmbeddedConnection.java src/main/java/nl/cwi/monetdb/embedded/env/MonetDBEmbeddedDatabase.java src/main/java/nl/cwi/monetdb/embedded/resultset/QueryResultSet.java src/main/java/nl/cwi/monetdb/embedded/resultset/QueryResultSetBooleanColumn.java src/main/java/nl/cwi/monetdb/embedded/resultset/QueryResultSetByteColumn.java src/main/java/nl/cwi/monetdb/embedded/resultset/QueryResultSetDoubleColumn.java src/main/java/nl/cwi/monetdb/embedded/resultset/QueryResultSetFloatColumn.java src/main/java/nl/cwi/monetdb/embedded/resultset/QueryResultSetIntColumn.java src/main/java/nl/cwi/monetdb/embedded/resultset/QueryResultSetLongColumn.java src/main/java/nl/cwi/monetdb/embedded/resultset/QueryResultSetObjectColumn.java src/main/java/nl/cwi/monetdb/embedded/resultset/QueryResultSetShortColumn.java src/main/java/nl/cwi/monetdb/embedded/tables/MonetDBTable.java src/main/java/nl/cwi/monetdb/embedded/tables/RowIterator.java src/main/java/nl/cwi/monetdb/jdbc/MonetBlob.java src/main/java/nl/cwi/monetdb/jdbc/MonetConnection.java src/main/java/nl/cwi/monetdb/jdbc/MonetStatement.java src/main/java/nl/cwi/monetdb/mcl/io/AbstractMCLReader.java src/main/java/nl/cwi/monetdb/mcl/io/BufferedMCLReader.java src/main/java/nl/cwi/monetdb/mcl/io/BufferedMCLWriter.java src/main/java/nl/cwi/monetdb/mcl/io/EmbeddedMCLReader.java src/main/java/nl/cwi/monetdb/mcl/io/EmbeddedMCLWriter.java src/main/java/nl/cwi/monetdb/mcl/parser/MCLParser.java src/main/java/nl/cwi/monetdb/mcl/parser/StartOfHeaderParser.java src/main/java/nl/cwi/monetdb/mcl/parser/embedded/EmbeddedHeaderLineParser.java src/main/java/nl/cwi/monetdb/mcl/parser/embedded/EmbeddedStartOfHeaderParser.java src/main/java/nl/cwi/monetdb/mcl/parser/socket/SocketHeaderLineParser.java src/main/java/nl/cwi/monetdb/merovingian/Control.java src/main/java/nl/cwi/monetdb/util/SQLRestore.java Branch: embedded Log Message:
Lots of cleaning, but still a long way to go. diffs (truncated from 3455 to 300 lines): diff --git a/example/SQLcopyinto.java b/example/SQLcopyinto.java --- a/example/SQLcopyinto.java +++ b/example/SQLcopyinto.java @@ -10,9 +10,9 @@ import java.sql.*; import java.io.*; import java.util.*; +import nl.cwi.monetdb.mcl.connection.DeleteMe; import nl.cwi.monetdb.mcl.io.AbstractMCLReader; import nl.cwi.monetdb.mcl.io.AbstractMCLWriter; -import nl.cwi.monetdb.mcl.net.*; /** * This example demonstrates how the MonetDB JDBC driver can facilitate @@ -47,7 +47,7 @@ public class SQLcopyinto { // of course also be done simultaneously with the JDBC // connection being kept connected - MapiSocket server = new MapiSocket("localhost", 50000, "monetdb", "monetdb", false, "sql", "SHA256"); + DeleteMe server = new DeleteMe("localhost", 50000, "monetdb", "monetdb", false, "sql", "SHA256"); server.setDatabase("database"); server.setLanguage("sql"); diff --git a/src/main/java/nl/cwi/monetdb/embedded/env/MonetDBEmbeddedConnection.java b/src/main/java/nl/cwi/monetdb/embedded/env/MonetDBEmbeddedConnection.java --- a/src/main/java/nl/cwi/monetdb/embedded/env/MonetDBEmbeddedConnection.java +++ b/src/main/java/nl/cwi/monetdb/embedded/env/MonetDBEmbeddedConnection.java @@ -22,7 +22,7 @@ import java.util.concurrent.ConcurrentHa * * @author <a href="mailto:pedro.ferre...@monetdbsolutions.com">Pedro Ferreira</a> */ -public class MonetDBEmbeddedConnection implements IEmbeddedConnection { +public final class MonetDBEmbeddedConnection implements IEmbeddedConnection { private final long connectionPointer; diff --git a/src/main/java/nl/cwi/monetdb/embedded/env/MonetDBEmbeddedDatabase.java b/src/main/java/nl/cwi/monetdb/embedded/env/MonetDBEmbeddedDatabase.java --- a/src/main/java/nl/cwi/monetdb/embedded/env/MonetDBEmbeddedDatabase.java +++ b/src/main/java/nl/cwi/monetdb/embedded/env/MonetDBEmbeddedDatabase.java @@ -8,7 +8,8 @@ package nl.cwi.monetdb.embedded.env; -import nl.cwi.monetdb.mcl.net.EmbeddedMonetDB; +import nl.cwi.monetdb.mcl.connection.EmbeddedMonetDB; +import nl.cwi.monetdb.mcl.io.InternalConnection; import java.util.concurrent.ConcurrentHashMap; @@ -21,7 +22,7 @@ import java.util.concurrent.ConcurrentHa * * @author <a href="mailto:pedro.ferre...@monetdbsolutions.com">Pedro Ferreira</a> */ -public class MonetDBEmbeddedDatabase { +public final class MonetDBEmbeddedDatabase { private static MonetDBEmbeddedDatabase MonetDBEmbeddedDatabase = null; @@ -123,7 +124,7 @@ public class MonetDBEmbeddedDatabase { } } - /** + /* * Stops the database asynchronously. All the pending connections will be shut down as well. * * @throws MonetDBEmbeddedException If the database is not running or an error in the database occurred @@ -162,7 +163,7 @@ public class MonetDBEmbeddedDatabase { } } - /** + /* * Creates a connection on the database, set on the default schema asynchronously. * * @return A MonetDBEmbeddedConnection instance @@ -172,19 +173,20 @@ public class MonetDBEmbeddedDatabase { return CompletableFuture.supplyAsync(() -> this.createConnectionInternal()); }*/ - public static void AddJDBCEmbeddedConnection(EmbeddedMonetDB con) throws MonetDBEmbeddedException { + public static InternalConnection AddJDBCEmbeddedConnection() throws MonetDBEmbeddedException { if(MonetDBEmbeddedDatabase == null) { throw new MonetDBEmbeddedException("The database is not running!"); } else { - MonetDBEmbeddedDatabase.createJDBCConnectionInternal(con); - MonetDBEmbeddedDatabase.connections.put(con.getConnectionPointer(), con); + InternalConnection res = MonetDBEmbeddedDatabase.createJDBCConnectionInternal(); + MonetDBEmbeddedDatabase.connections.put(res.getConnectionPointer(), res); + return res; } } /** * Removes a connection from this database. */ - protected static void RemoveConnection(MonetDBEmbeddedConnection con) { + static void RemoveConnection(MonetDBEmbeddedConnection con) { MonetDBEmbeddedDatabase.connections.remove(con.getConnectionPointer()); } @@ -208,5 +210,5 @@ public class MonetDBEmbeddedDatabase { /** * Internal implementation to create a JDBC embeddded connection on this database. */ - private native void createJDBCConnectionInternal(EmbeddedMonetDB emc) throws MonetDBEmbeddedException; + private native InternalConnection createJDBCConnectionInternal() throws MonetDBEmbeddedException; } diff --git a/src/main/java/nl/cwi/monetdb/embedded/resultset/QueryResultSet.java b/src/main/java/nl/cwi/monetdb/embedded/resultset/QueryResultSet.java --- a/src/main/java/nl/cwi/monetdb/embedded/resultset/QueryResultSet.java +++ b/src/main/java/nl/cwi/monetdb/embedded/resultset/QueryResultSet.java @@ -25,7 +25,7 @@ import java.util.ListIterator; * * @author <a href="mailto:pedro.ferre...@monetdbsolutions.com">Pedro Ferreira</a> */ -public class QueryResultSet extends AbstractResultTable implements Iterable { +public final class QueryResultSet extends AbstractResultTable implements Iterable { /** * The table C pointer. diff --git a/src/main/java/nl/cwi/monetdb/embedded/resultset/QueryResultSetBooleanColumn.java b/src/main/java/nl/cwi/monetdb/embedded/resultset/QueryResultSetBooleanColumn.java --- a/src/main/java/nl/cwi/monetdb/embedded/resultset/QueryResultSetBooleanColumn.java +++ b/src/main/java/nl/cwi/monetdb/embedded/resultset/QueryResultSetBooleanColumn.java @@ -15,7 +15,7 @@ import nl.cwi.monetdb.embedded.env.Monet * * @author <a href="mailto:pedro.ferre...@monetdbsolutions.com">Pedro Ferreira</a> */ -public class QueryResultSetBooleanColumn extends AbstractQueryResultSetColumn<boolean[]> { +public final class QueryResultSetBooleanColumn extends AbstractQueryResultSetColumn<boolean[]> { /** * Gets MonetDB's boolean null constant diff --git a/src/main/java/nl/cwi/monetdb/embedded/resultset/QueryResultSetByteColumn.java b/src/main/java/nl/cwi/monetdb/embedded/resultset/QueryResultSetByteColumn.java --- a/src/main/java/nl/cwi/monetdb/embedded/resultset/QueryResultSetByteColumn.java +++ b/src/main/java/nl/cwi/monetdb/embedded/resultset/QueryResultSetByteColumn.java @@ -15,7 +15,7 @@ import nl.cwi.monetdb.embedded.env.Monet * * @author <a href="mailto:pedro.ferre...@monetdbsolutions.com">Pedro Ferreira</a> */ -public class QueryResultSetByteColumn extends AbstractQueryResultSetColumn<byte[]> { +public final class QueryResultSetByteColumn extends AbstractQueryResultSetColumn<byte[]> { /** * Gets MonetDB's byte null constant diff --git a/src/main/java/nl/cwi/monetdb/embedded/resultset/QueryResultSetDoubleColumn.java b/src/main/java/nl/cwi/monetdb/embedded/resultset/QueryResultSetDoubleColumn.java --- a/src/main/java/nl/cwi/monetdb/embedded/resultset/QueryResultSetDoubleColumn.java +++ b/src/main/java/nl/cwi/monetdb/embedded/resultset/QueryResultSetDoubleColumn.java @@ -15,7 +15,7 @@ import nl.cwi.monetdb.embedded.env.Monet * * @author <a href="mailto:pedro.ferre...@monetdbsolutions.com">Pedro Ferreira</a> */ -public class QueryResultSetDoubleColumn extends AbstractQueryResultSetColumn<double[]> { +public final class QueryResultSetDoubleColumn extends AbstractQueryResultSetColumn<double[]> { /** * Gets MonetDB's double null constant diff --git a/src/main/java/nl/cwi/monetdb/embedded/resultset/QueryResultSetFloatColumn.java b/src/main/java/nl/cwi/monetdb/embedded/resultset/QueryResultSetFloatColumn.java --- a/src/main/java/nl/cwi/monetdb/embedded/resultset/QueryResultSetFloatColumn.java +++ b/src/main/java/nl/cwi/monetdb/embedded/resultset/QueryResultSetFloatColumn.java @@ -15,7 +15,7 @@ import nl.cwi.monetdb.embedded.env.Monet * * @author <a href="mailto:pedro.ferre...@monetdbsolutions.com">Pedro Ferreira</a> */ -public class QueryResultSetFloatColumn extends AbstractQueryResultSetColumn<float[]> { +public final class QueryResultSetFloatColumn extends AbstractQueryResultSetColumn<float[]> { /** * Gets MonetDB's float null constant diff --git a/src/main/java/nl/cwi/monetdb/embedded/resultset/QueryResultSetIntColumn.java b/src/main/java/nl/cwi/monetdb/embedded/resultset/QueryResultSetIntColumn.java --- a/src/main/java/nl/cwi/monetdb/embedded/resultset/QueryResultSetIntColumn.java +++ b/src/main/java/nl/cwi/monetdb/embedded/resultset/QueryResultSetIntColumn.java @@ -15,7 +15,7 @@ import nl.cwi.monetdb.embedded.env.Monet * * @author <a href="mailto:pedro.ferre...@monetdbsolutions.com">Pedro Ferreira</a> */ -public class QueryResultSetIntColumn extends AbstractQueryResultSetColumn<int[]> { +public final class QueryResultSetIntColumn extends AbstractQueryResultSetColumn<int[]> { /** * Gets MonetDB's int null constant diff --git a/src/main/java/nl/cwi/monetdb/embedded/resultset/QueryResultSetLongColumn.java b/src/main/java/nl/cwi/monetdb/embedded/resultset/QueryResultSetLongColumn.java --- a/src/main/java/nl/cwi/monetdb/embedded/resultset/QueryResultSetLongColumn.java +++ b/src/main/java/nl/cwi/monetdb/embedded/resultset/QueryResultSetLongColumn.java @@ -15,7 +15,7 @@ import nl.cwi.monetdb.embedded.env.Monet * * @author <a href="mailto:pedro.ferre...@monetdbsolutions.com">Pedro Ferreira</a> */ -public class QueryResultSetLongColumn extends AbstractQueryResultSetColumn<long[]> { +public final class QueryResultSetLongColumn extends AbstractQueryResultSetColumn<long[]> { /** * Gets MonetDB's long null constant diff --git a/src/main/java/nl/cwi/monetdb/embedded/resultset/QueryResultSetObjectColumn.java b/src/main/java/nl/cwi/monetdb/embedded/resultset/QueryResultSetObjectColumn.java --- a/src/main/java/nl/cwi/monetdb/embedded/resultset/QueryResultSetObjectColumn.java +++ b/src/main/java/nl/cwi/monetdb/embedded/resultset/QueryResultSetObjectColumn.java @@ -20,7 +20,7 @@ import java.util.ListIterator; * @param <T> The Java class of the mapped MonetDB column * @author <a href="mailto:pedro.ferre...@monetdbsolutions.com">Pedro Ferreira</a> */ -public class QueryResultSetObjectColumn<T> extends AbstractQueryResultSetColumn<T[]> implements Iterable<T> { +public final class QueryResultSetObjectColumn<T> extends AbstractQueryResultSetColumn<T[]> implements Iterable<T> { /** * A null pointer returning method. diff --git a/src/main/java/nl/cwi/monetdb/embedded/resultset/QueryResultSetShortColumn.java b/src/main/java/nl/cwi/monetdb/embedded/resultset/QueryResultSetShortColumn.java --- a/src/main/java/nl/cwi/monetdb/embedded/resultset/QueryResultSetShortColumn.java +++ b/src/main/java/nl/cwi/monetdb/embedded/resultset/QueryResultSetShortColumn.java @@ -15,7 +15,7 @@ import nl.cwi.monetdb.embedded.env.Monet * * @author <a href="mailto:pedro.ferre...@monetdbsolutions.com">Pedro Ferreira</a> */ -public class QueryResultSetShortColumn extends AbstractQueryResultSetColumn<short[]> { +public final class QueryResultSetShortColumn extends AbstractQueryResultSetColumn<short[]> { /** * Gets MonetDB's short null constant diff --git a/src/main/java/nl/cwi/monetdb/embedded/tables/MonetDBTable.java b/src/main/java/nl/cwi/monetdb/embedded/tables/MonetDBTable.java --- a/src/main/java/nl/cwi/monetdb/embedded/tables/MonetDBTable.java +++ b/src/main/java/nl/cwi/monetdb/embedded/tables/MonetDBTable.java @@ -22,7 +22,7 @@ import nl.cwi.monetdb.embedded.resultset * * @author <a href="mailto:pedro.ferre...@monetdbsolutions.com">Pedro Ferreira</a> */ -public class MonetDBTable extends AbstractResultTable { +public final class MonetDBTable extends AbstractResultTable { private final String tableSchema; diff --git a/src/main/java/nl/cwi/monetdb/embedded/tables/RowIterator.java b/src/main/java/nl/cwi/monetdb/embedded/tables/RowIterator.java --- a/src/main/java/nl/cwi/monetdb/embedded/tables/RowIterator.java +++ b/src/main/java/nl/cwi/monetdb/embedded/tables/RowIterator.java @@ -154,5 +154,5 @@ public class RowIterator extends Abstrac /** * Sets the next value to iterate. */ - protected void setNextIteration() { this.currentIterationNumber++; } + void setNextIteration() { this.currentIterationNumber++; } } diff --git a/src/main/java/nl/cwi/monetdb/jdbc/MonetBlob.java b/src/main/java/nl/cwi/monetdb/jdbc/MonetBlob.java --- a/src/main/java/nl/cwi/monetdb/jdbc/MonetBlob.java +++ b/src/main/java/nl/cwi/monetdb/jdbc/MonetBlob.java @@ -268,8 +268,7 @@ public class MonetBlob implements Blob { throw new SQLException("This Blob object has been freed", "M1M20"); try { /* transactions? what are you talking about? */ - for (int i = (int)pos; i < len; i++) - buf[i] = bytes[offset - 1 + i]; + System.arraycopy(bytes, offset - 1 + (int) pos, buf, (int) pos, len - (int) pos); } catch (IndexOutOfBoundsException e) { throw new SQLException(e.getMessage(), "M0M10"); } @@ -291,8 +290,7 @@ public class MonetBlob implements Blob { throw new SQLException("This Blob object has been freed", "M1M20"); if (buf.length > len) { byte[] newbuf = new byte[(int)len]; - for (int i = 0; i < len; i++) - newbuf[i] = buf[i]; + System.arraycopy(buf, 0, newbuf, 0, (int) len); buf = newbuf; } } diff --git a/src/main/java/nl/cwi/monetdb/jdbc/MonetConnection.java b/src/main/java/nl/cwi/monetdb/jdbc/MonetConnection.java --- a/src/main/java/nl/cwi/monetdb/jdbc/MonetConnection.java +++ b/src/main/java/nl/cwi/monetdb/jdbc/MonetConnection.java @@ -46,9 +46,9 @@ import nl.cwi.monetdb.jdbc.types.URL; import nl.cwi.monetdb.mcl.MCLException; import nl.cwi.monetdb.mcl.io.AbstractMCLReader; import nl.cwi.monetdb.mcl.io.AbstractMCLWriter; -import nl.cwi.monetdb.mcl.net.EmbeddedMonetDB; -import nl.cwi.monetdb.mcl.net.MapiSocket; -import nl.cwi.monetdb.mcl.net.AbstractMCLConnection; +import nl.cwi.monetdb.mcl.connection.EmbeddedMonetDB; +import nl.cwi.monetdb.mcl.connection.DeleteMe; +import nl.cwi.monetdb.mcl.connection.AbstractMonetDBConnection; import nl.cwi.monetdb.mcl.parser.HeaderLineParser; import nl.cwi.monetdb.mcl.parser.StartOfHeaderParser; import nl.cwi.monetdb.mcl.parser.MCLParseException; @@ -81,7 +81,7 @@ import nl.cwi.monetdb.mcl.parser.MCLPars public class MonetConnection extends MonetWrapper implements Connection { /** A connection to mserver5 either through MAPI with TCP or embedded */ - private final AbstractMCLConnection server; + private final AbstractMonetDBConnection server; /** The Reader from the server */ private final AbstractMCLReader in; /** The Writer to the server */ @@ -179,7 +179,7 @@ public class MonetConnection extends Mon language = "sql"; addWarning("No language given, defaulting to 'sql'", "M1M05"); } - server = new MapiSocket(hostname, port, database, username, debug, language, hash); + server = new DeleteMe(hostname, port, database, username, debug, language, hash); try { server.setSoTimeout(sockTimeout); } catch (SocketException e) { @@ -239,7 +239,7 @@ public class MonetConnection extends Mon // the following initialisers are only valid when the language // is SQL... - if (server.getLang() == AbstractMCLConnection.LANG_SQL) { + if (server.getLang() == AbstractMonetDBConnection.LANG_SQL) { _______________________________________________ checkin-list mailing list checkin-list@monetdb.org https://www.monetdb.org/mailman/listinfo/checkin-list