src/main/java/org/embulk/output/jdbc/JdbcOutputConnection.java in embulk-output-jdbc-0.4.5 vs src/main/java/org/embulk/output/jdbc/JdbcOutputConnection.java in embulk-output-jdbc-0.5.0

- old
+ new

@@ -151,10 +151,20 @@ sb.append(")"); return sb.toString(); } + protected String buildRenameTableSql(String fromTable, String toTable) + { + StringBuilder sb = new StringBuilder(); + sb.append("ALTER TABLE "); + quoteIdentifierString(sb, fromTable); + sb.append(" RENAME TO "); + quoteIdentifierString(sb, toTable); + return sb.toString(); + } + public static enum ColumnDeclareType { SIMPLE, SIZE, SIZE_AND_SCALE, @@ -206,10 +216,11 @@ "FLOAT", // SQL standard's FLOAT[(p)] optionally accepts precision }; private static final String[] STANDARD_SIZE_AND_SCALE_TYPE_NAMES = new String[] { "DECIMAL", + "NUMERIC", }; protected ColumnDeclareType getColumnDeclareType(String convertedTypeName, JdbcColumn col) { for (String x : STANDARD_SIZE_TYPE_NAMES) { @@ -344,16 +355,10 @@ { Statement stmt = connection.createStatement(); try { dropTableIfExists(stmt, toTable); - StringBuilder sb = new StringBuilder(); - sb.append("ALTER TABLE "); - quoteIdentifierString(sb, fromTable); - sb.append(" RENAME TO "); - quoteIdentifierString(sb, toTable); - String sql = sb.toString(); - executeUpdate(stmt, sql); + executeUpdate(stmt, buildRenameTableSql(fromTable, toTable)); commitIfNecessary(connection); } catch (SQLException ex) { throw safeRollback(connection, ex); } finally {