Changeset: 2ab2b21cf930 for monetdb-java
URL: https://dev.monetdb.org/hg/monetdb-java/rev/2ab2b21cf930
Modified Files:
        src/main/java/nl/cwi/monetdb/embedded/env/MonetDBEmbeddedConnection.java
        src/main/java/nl/cwi/monetdb/embedded/mapping/MonetDBEmbeddedBlob.java
        src/main/java/nl/cwi/monetdb/embedded/mapping/MonetDBToJavaMapping.java
        
src/main/java/nl/cwi/monetdb/embedded/resultset/EmbeddedPreparedStatement.java
        
src/main/java/nl/cwi/monetdb/embedded/resultset/QueryResultSetColumn.java
Branch: embedded
Log Message:

Change some Java Class - BAT mappings


diffs (199 lines):

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
@@ -10,7 +10,6 @@ package nl.cwi.monetdb.embedded.env;
 
 import nl.cwi.monetdb.embedded.resultset.*;
 import nl.cwi.monetdb.embedded.tables.MonetDBTable;
-import nl.cwi.monetdb.embedded.tables.MonetDBTableColumn;
 import nl.cwi.monetdb.embedded.utils.StringEscaper;
 
 import java.util.HashSet;
@@ -148,7 +147,7 @@ public class MonetDBEmbeddedConnection {
     /**
      * Creates a prepared query statement likewise the PreparedStatement in 
JDBC.
      *
-     * @param query The SQL query with ? indicating the parameters to replace 
in the query
+     * @param query The SQL query with '?' indicating the parameters to 
replace in the query
      * @return An instance of EmbeddedPreparedStatement
      * @throws MonetDBEmbeddedException If an error in the database occurred
      */
@@ -162,7 +161,7 @@ public class MonetDBEmbeddedConnection {
     /**
      * Creates a prepared query statement likewise the PreparedStatement in 
JDBC asynchronously.
      *
-     * @param query The SQL query with ? indicating the parameters to replace 
in the query
+     * @param query The SQL query with '?' indicating the parameters to 
replace in the query
      * @return An instance of EmbeddedPreparedStatement
      * @throws MonetDBEmbeddedException If an error in the database occurred
      */
@@ -176,37 +175,11 @@ public class MonetDBEmbeddedConnection {
      *
      * @param schemaName The schema of the table
      * @param tableName The name of the table
-     * @return A MonetDBTable instance with currentColumns details
+     * @return A MonetDBTable instance with column details
      * @throws MonetDBEmbeddedException If an error in the database occurred
      */
     public MonetDBTable getMonetDBTable(String schemaName, String tableName) 
throws MonetDBEmbeddedException {
-        String qschemaName = StringEscaper.SQLStringEscape(schemaName);
-        String qtableName = StringEscaper.SQLStringEscape(tableName);
-        String query = "SELECT currentColumns.\"name\" AS column, 
currentColumns.\"type\", currentColumns.\"type_digits\", 
currentColumns.\"type_scale\", currentColumns.\"default\", 
currentColumns.\"null\" FROM (SELECT \"id\", \"table_id\", \"name\", \"type\", 
\"type_digits\", \"type_scale\", \"default\", \"null\", \"number\" FROM 
sys.currentColumns) AS currentColumns INNER JOIN (SELECT \"id\", \"schema_id\" 
FROM sys.tables WHERE name="
-                + qtableName + ") AS tables ON 
(tables.\"id\"=currentColumns.\"table_id\") INNER JOIN (SELECT \"id\" FROM 
sys.schemas WHERE name="
-                + qschemaName + ") AS schemas ON 
(tables.\"schema_id\"=schemas.\"id\") ORDER BY currentColumns.\"number\";";
-
-        QueryResultSet eqr = this.sendQuery(query);
-        int numberOfRows = eqr.getNumberOfRows();
-        if(numberOfRows == 0) {
-            throw new MonetDBEmbeddedException("The table " + tableName + " on 
schema " + schemaName + " does not exist!");
-        }
-        QueryResultSetRows rows = eqr.fetchAllRowValues();
-        eqr.close();
-
-        MonetDBTableColumn<?>[] array = new 
MonetDBTableColumn<?>[numberOfRows];
-        int i = 0;
-        for(QueryResultSetRows.QueryResulSetRow row : rows.getAllRows()) {
-            String columnName = row.getColumn(0);
-            String columnType = row.getColumn(1);
-            int ndigits = row.getColumn(2);
-            int nscale = row.getColumn(3);
-            String defaultValue = row.getColumn(4);
-            boolean isNullable = row.getColumn(5);
-            array[i] = new MonetDBTableColumn(i, columnName, columnType, 
ndigits, nscale, defaultValue, isNullable);
-            i++;
-        }
-        MonetDBTable res = new MonetDBTable(this, schemaName, tableName, 
array);
+        MonetDBTable res = 
this.getMonetDBTableInternal(this.connectionPointer, schemaName, tableName);
         results.add(res);
         return res;
     }
@@ -216,7 +189,7 @@ public class MonetDBEmbeddedConnection {
      *
      * @param schemaName The schema of the table
      * @param tableName The name of the table
-     * @return A MonetDBTable instance with currentColumns details
+     * @return A MonetDBTable instance with column details
      * @throws MonetDBEmbeddedException If an error in the database occurred
      */
     /*public MonetDBTable getMonetDBTableAsync(String schemaName, String 
tableName) throws MonetDBEmbeddedException {
@@ -301,9 +274,7 @@ public class MonetDBEmbeddedConnection {
     /**
      * Removes a query result from this connection.
      */
-    protected void removeQueryResult(AbstractConnectionResult res) {
-        this.results.remove(res);
-    }
+    protected void removeQueryResult(AbstractConnectionResult res) { 
this.results.remove(res); }
 
     /**
      * Internal implementation of sendUpdate.
@@ -317,6 +288,12 @@ public class MonetDBEmbeddedConnection {
     private native QueryResultSet sendQueryInternal(long connectionPointer, 
String query, boolean execute)
             throws MonetDBEmbeddedException;
 
+    /**
+     * Internal implementation of getMonetDBTable.
+     */
+    private native MonetDBTable getMonetDBTableInternal(long 
connectionPointer, String schemaName, String tableName)
+            throws MonetDBEmbeddedException;
+
     /*private native EmbeddedPreparedStatement 
createPreparedStatementInternal(long connectionPointer, String query)
             throws MonetDBEmbeddedException;*/
 
diff --git 
a/src/main/java/nl/cwi/monetdb/embedded/mapping/MonetDBEmbeddedBlob.java 
b/src/main/java/nl/cwi/monetdb/embedded/mapping/MonetDBEmbeddedBlob.java
--- a/src/main/java/nl/cwi/monetdb/embedded/mapping/MonetDBEmbeddedBlob.java
+++ b/src/main/java/nl/cwi/monetdb/embedded/mapping/MonetDBEmbeddedBlob.java
@@ -1,5 +1,6 @@
 package nl.cwi.monetdb.embedded.mapping;
 
+import java.io.Serializable;
 import java.util.Arrays;
 
 /**
@@ -7,7 +8,7 @@ import java.util.Arrays;
  *
  * @author <a href="mailto:pedro.ferre...@monetdbsolutions.com";>Pedro 
Ferreira</a>
  */
-public class MonetDBEmbeddedBlob {
+public class MonetDBEmbeddedBlob implements Serializable {
 
     /**
      * The BLOB's content as a Java byte array.
diff --git 
a/src/main/java/nl/cwi/monetdb/embedded/mapping/MonetDBToJavaMapping.java 
b/src/main/java/nl/cwi/monetdb/embedded/mapping/MonetDBToJavaMapping.java
--- a/src/main/java/nl/cwi/monetdb/embedded/mapping/MonetDBToJavaMapping.java
+++ b/src/main/java/nl/cwi/monetdb/embedded/mapping/MonetDBToJavaMapping.java
@@ -10,8 +10,8 @@ package nl.cwi.monetdb.embedded.mapping;
 
 import java.math.BigDecimal;
 import java.math.BigInteger;
-import java.net.InetAddress;
-import java.net.URI;
+import java.net.Inet4Address;
+import java.net.URL;
 import java.sql.Date;
 import java.sql.Time;
 import java.sql.Timestamp;
@@ -30,7 +30,7 @@ public enum MonetDBToJavaMapping {
     Hugeint(BigInteger.class), Decimal(BigDecimal.class), Real(Float.class), 
Double(Double.class),
     MonthInterval(Integer.class), SecondInterval(Long.class), 
Time(Time.class), TimeTz(Time.class), Date(Date.class),
     Timestamp(Timestamp.class), TimestampTz(Timestamp.class), 
Blob(MonetDBEmbeddedBlob.class),
-    Geometry(MonetDBEmbeddedBlob.class), GeometryA(MonetDBEmbeddedBlob.class), 
URL(URI.class), Inet(InetAddress.class),
+    Geometry(MonetDBEmbeddedBlob.class), GeometryA(MonetDBEmbeddedBlob.class), 
URL(URL.class), Inet(Inet4Address.class),
     JSON(MonetDBEmbeddedBlob.class), UUID(UUID.class);
 
     /**
diff --git 
a/src/main/java/nl/cwi/monetdb/embedded/resultset/EmbeddedPreparedStatement.java
 
b/src/main/java/nl/cwi/monetdb/embedded/resultset/EmbeddedPreparedStatement.java
--- 
a/src/main/java/nl/cwi/monetdb/embedded/resultset/EmbeddedPreparedStatement.java
+++ 
b/src/main/java/nl/cwi/monetdb/embedded/resultset/EmbeddedPreparedStatement.java
@@ -17,8 +17,8 @@ import nl.cwi.monetdb.embedded.utils.Str
 import java.math.BigDecimal;
 import java.math.BigInteger;
 import java.math.RoundingMode;
-import java.net.InetAddress;
-import java.net.URI;
+import java.net.Inet4Address;
+import java.net.URL;
 import java.sql.PreparedStatement;
 import java.sql.Time;
 import java.sql.Timestamp;
@@ -72,8 +72,8 @@ public class EmbeddedPreparedStatement {
         DirectMappingClasses.add(Float.class);
         DirectMappingClasses.add(Double.class);
         DirectMappingClasses.add(MonetDBEmbeddedBlob.class);
-        DirectMappingClasses.add(URI.class);
-        DirectMappingClasses.add(InetAddress.class);
+        DirectMappingClasses.add(URL.class);
+        DirectMappingClasses.add(Inet4Address.class);
         DirectMappingClasses.add(UUID.class);
     }
 
@@ -366,6 +366,7 @@ public class EmbeddedPreparedStatement {
     /**
      * Creates the SQL String from the parsed parameters (adapted from the 
JDBC driver implementation).
      *
+     * @return The SQL statement with all parameters replaced
      * @throws MonetDBEmbeddedException If a parameter has not been set yet
      */
     private String applyParameters() throws MonetDBEmbeddedException {
diff --git 
a/src/main/java/nl/cwi/monetdb/embedded/resultset/QueryResultSetColumn.java 
b/src/main/java/nl/cwi/monetdb/embedded/resultset/QueryResultSetColumn.java
--- a/src/main/java/nl/cwi/monetdb/embedded/resultset/QueryResultSetColumn.java
+++ b/src/main/java/nl/cwi/monetdb/embedded/resultset/QueryResultSetColumn.java
@@ -107,8 +107,7 @@ public class QueryResultSetColumn<T> ext
                 throw new MonetDBEmbeddedException("Connection closed!");
             }
             T[] newvalues = this.fetchValuesInternal(this.resultSetPointer, 
this.resultSetIndex,
-                    (Class<T>) this.mapping.getJavaClass(), 
this.mapping.getJavaClass().getSimpleName(),
-                    this.mapping.ordinal(), firstIndexToFetch, 
lastIndexToFetch);
+                    (Class<T>) this.mapping.getJavaClass(), 
this.mapping.ordinal(), firstIndexToFetch, lastIndexToFetch);
             System.arraycopy(newvalues, 0, this.values, firstIndexToFetch, 
newvalues.length);
         }
 
@@ -257,6 +256,6 @@ public class QueryResultSetColumn<T> ext
     /**
      * Internal implementation to fetch values from the column.
      */
-    private native T[] fetchValuesInternal(long resultPointer, int 
resultSetIndex, Class<T> jclass, String className,
-                                           int enumEntry, int first, int last) 
throws MonetDBEmbeddedException;
+    private native T[] fetchValuesInternal(long resultPointer, int 
resultSetIndex, Class<T> jclass, int enumEntry,
+                                           int first, int last) throws 
MonetDBEmbeddedException;
 }
_______________________________________________
checkin-list mailing list
checkin-list@monetdb.org
https://www.monetdb.org/mailman/listinfo/checkin-list

Reply via email to