Changeset: 6325594f01af for monetdb-java
URL: https://dev.monetdb.org/hg/monetdb-java/rev/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 3458 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:[email protected]">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:[email protected]">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:[email protected]">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:[email protected]">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:[email protected]">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:[email protected]">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:[email protected]">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:[email protected]">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:[email protected]">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:[email protected]">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:[email protected]">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:[email protected]">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
[email protected]
https://www.monetdb.org/mailman/listinfo/checkin-list