Mercurial > hg > monetdb-java
changeset 110:8af0a7387b4e embedded
Small fixes for the embedded connection.
author | Pedro Ferreira <pedro.ferreira@monetdbsolutions.com> |
---|---|
date | Tue, 24 Jan 2017 18:13:12 +0100 (2017-01-24) |
parents | e026fe73bb5e |
children | d7added7aaf3 |
files | src/main/java/nl/cwi/monetdb/jdbc/MonetConnection.java src/main/java/nl/cwi/monetdb/jdbc/MonetDataSource.java |
diffstat | 2 files changed, 25 insertions(+), 16 deletions(-) [+] |
line wrap: on
line diff
--- a/src/main/java/nl/cwi/monetdb/jdbc/MonetConnection.java +++ b/src/main/java/nl/cwi/monetdb/jdbc/MonetConnection.java @@ -2,7 +2,6 @@ package nl.cwi.monetdb.jdbc; import nl.cwi.monetdb.mcl.connection.*; import nl.cwi.monetdb.mcl.connection.SenderThread; -import nl.cwi.monetdb.mcl.connection.mapi.MapiLanguage; import nl.cwi.monetdb.mcl.protocol.ProtocolException; import nl.cwi.monetdb.mcl.protocol.AbstractProtocol; import nl.cwi.monetdb.mcl.protocol.ServerResponses; @@ -394,7 +393,7 @@ public abstract class MonetConnection ex */ @Override public DatabaseMetaData getMetaData() throws SQLException { - if (this.language != MapiLanguage.LANG_SQL) { + if (!this.language.getRepresentation().equals("sql")) { throw new SQLException("This method is only supported in SQL mode", "M0M04"); } return new MonetDatabaseMetaData(this); @@ -1511,7 +1510,7 @@ public abstract class MonetConnection ex int size = (cachesize != 0 && !isEmbedded) ? cachesize : MonetConnection.this.getDefFetchsize(); size = maxrows != 0 ? Math.min(maxrows, size) : size; // don't do work if it's not needed - if (language == MapiLanguage.LANG_SQL && size != curReplySize && + if (!language.getRepresentation().equals("sql") && size != curReplySize && !Arrays.deepEquals(templ, language.getCommandTemplates())) { sendControlCommand(ControlCommands.REPLY_SIZE, size); // store the reply size after a successful change
--- a/src/main/java/nl/cwi/monetdb/jdbc/MonetDataSource.java +++ b/src/main/java/nl/cwi/monetdb/jdbc/MonetDataSource.java @@ -27,7 +27,7 @@ import java.util.logging.Logger; * * Additionally, pooled connections can be used when using a DataSource. * - * @author Fabian Groffen + * @author Fabian Groffen, Pedro Ferreira * @version 0.1 */ public class MonetDataSource extends MonetWrapper implements DataSource { @@ -37,7 +37,7 @@ public class MonetDataSource extends Mon private String description = "MonetDB database"; private String url = "jdbc:monetdb://localhost/"; private int loginTimeout; - private boolean isEmbedded; + private String directory; private final MonetDriver driver = new MonetDriver(); // the following properties are also standard: @@ -75,8 +75,9 @@ public class MonetDataSource extends Mon if (loginTimeout > 0) { props.put("so_timeout", Integer.toString(loginTimeout)); } - if(isEmbedded) { + if(directory != null) { props.put("embedded", "true"); + props.put("directory", directory); } return driver.connect(url, props); } @@ -184,21 +185,30 @@ public class MonetDataSource extends Mon } /** + * Gets the directory value + * + * @return the directory value + */ + public String getDirectory() { + return directory; + } + + /** + * Sets the directory value, meaning it wil start an embedded connection + * + * @param directory The directory location + */ + public void setDirectory(String directory) { + this.directory = directory; + } + + /** * Gets the embedded connection directory. If not, then a MAPI connection will be created instead. * * @return If the connection will be embedded. If not, then a MAPI connection will be created instead. */ public boolean isEmbedded() { - return isEmbedded; - } - - /** - * Sets the connection to be embedded - * - * @param isEmbedded A boolean to indicate if the connection will be embedded - */ - public void setIsEmbedded(boolean isEmbedded) { - this.isEmbedded = isEmbedded; + return directory != null; } /**