From 441ecd5d5efacc5053a1b39b8a43afebc696b1c0 Mon Sep 17 00:00:00 2001 From: "Piotr Gega (pietia)" Date: Sat, 14 Nov 2009 03:01:30 +0100 Subject: [PATCH] [do_hdqldb,do_mysql,do_oracle,do_postgres,do_sqlite3] Added support for subclasses of supported types - p.2 --- .../src/main/java/do_hsqldb/HsqldbDriverDefinition.java | 5 +---- .../src/main/java/do_mysql/MySqlDriverDefinition.java | 2 +- .../src/main/java/do_oracle/OracleDriverDefinition.java | 5 +---- .../src/main/java/do_postgres/PostgresDriverDefinition.java | 2 +- .../src/main/java/do_sqlite3/Sqlite3DriverDefinition.java | 2 +- 5 files changed, 5 insertions(+), 11 deletions(-) diff --git a/do_hsqldb/ext-java/src/main/java/do_hsqldb/HsqldbDriverDefinition.java b/do_hsqldb/ext-java/src/main/java/do_hsqldb/HsqldbDriverDefinition.java index 1312f0c0..a3f37558 100644 --- a/do_hsqldb/ext-java/src/main/java/do_hsqldb/HsqldbDriverDefinition.java +++ b/do_hsqldb/ext-java/src/main/java/do_hsqldb/HsqldbDriverDefinition.java @@ -40,11 +40,8 @@ public HsqldbDriverDefinition() { @Override public void setPreparedStatementParam(PreparedStatement ps, IRubyObject arg, int idx) throws SQLException { - switch (RubyType.getRubyType(arg.getType().getName())) { + switch (RubyType.inferRubyType(arg)) { case NIL: - // XXX ps.getParameterMetaData().getParameterType(idx) produces - // com.mysql.jdbc.ResultSetMetaData:397:in `getField': java.lang.NullPointerException - // from com.mysql.jdbc.ResultSetMetaData:275:in `getColumnType' ps.setNull(idx, Types.NULL); break; default: diff --git a/do_mysql/ext-java/src/main/java/do_mysql/MySqlDriverDefinition.java b/do_mysql/ext-java/src/main/java/do_mysql/MySqlDriverDefinition.java index 1e5b2cbc..32d1ccad 100644 --- a/do_mysql/ext-java/src/main/java/do_mysql/MySqlDriverDefinition.java +++ b/do_mysql/ext-java/src/main/java/do_mysql/MySqlDriverDefinition.java @@ -67,7 +67,7 @@ public IRubyObject getTypecastResultSetValue(Ruby runtime, @Override public void setPreparedStatementParam(PreparedStatement ps, IRubyObject arg, int idx) throws SQLException { - switch (RubyType.getRubyType(arg.getType().getName())) { + switch (RubyType.inferRubyType(arg)) { case NIL: // XXX ps.getParameterMetaData().getParameterType(idx) produces // com.mysql.jdbc.ResultSetMetaData:397:in `getField': java.lang.NullPointerException diff --git a/do_oracle/ext-java/src/main/java/do_oracle/OracleDriverDefinition.java b/do_oracle/ext-java/src/main/java/do_oracle/OracleDriverDefinition.java index 8b7cb1af..08e5376f 100644 --- a/do_oracle/ext-java/src/main/java/do_oracle/OracleDriverDefinition.java +++ b/do_oracle/ext-java/src/main/java/do_oracle/OracleDriverDefinition.java @@ -131,11 +131,8 @@ public IRubyObject getTypecastResultSetValue(Ruby runtime, @Override public void setPreparedStatementParam(PreparedStatement ps, IRubyObject arg, int idx) throws SQLException { - switch (RubyType.getRubyType(arg.getType().getName())) { + switch (RubyType.inferRubyType(arg)) { case NIL: - // XXX ps.getParameterMetaData().getParameterType(idx) produces - // com.mysql.jdbc.ResultSetMetaData:397:in `getField': java.lang.NullPointerException - // from com.mysql.jdbc.ResultSetMetaData:275:in `getColumnType' ps.setNull(idx, Types.NULL); break; default: diff --git a/do_postgres/ext-java/src/main/java/do_postgres/PostgresDriverDefinition.java b/do_postgres/ext-java/src/main/java/do_postgres/PostgresDriverDefinition.java index 82978e25..9042df9f 100644 --- a/do_postgres/ext-java/src/main/java/do_postgres/PostgresDriverDefinition.java +++ b/do_postgres/ext-java/src/main/java/do_postgres/PostgresDriverDefinition.java @@ -75,7 +75,7 @@ public Properties getDefaultConnectionProperties() { public void setPreparedStatementParam(PreparedStatement ps, IRubyObject arg, int idx) throws SQLException { int jdbcType; - switch (RubyType.getRubyType(arg.getType().getName())) { + switch (RubyType.inferRubyType(arg)) { case STRING: jdbcType = ps.getParameterMetaData().getParameterType(idx); switch (jdbcType) { diff --git a/do_sqlite3/ext-java/src/main/java/do_sqlite3/Sqlite3DriverDefinition.java b/do_sqlite3/ext-java/src/main/java/do_sqlite3/Sqlite3DriverDefinition.java index c5b188d0..f1ece5ac 100644 --- a/do_sqlite3/ext-java/src/main/java/do_sqlite3/Sqlite3DriverDefinition.java +++ b/do_sqlite3/ext-java/src/main/java/do_sqlite3/Sqlite3DriverDefinition.java @@ -160,7 +160,7 @@ public IRubyObject getTypecastResultSetValue(Ruby runtime, @Override public void setPreparedStatementParam(PreparedStatement ps, IRubyObject arg, int idx) throws SQLException { - switch (RubyType.getRubyType(arg.getType().getName())) { + switch (RubyType.inferRubyType(arg)) { case BIG_DECIMAL: ps.setString(idx, ((RubyBigDecimal) arg).toString()); break;