Skip to content

Commit 0d2ab46

Browse files
authored
Merge pull request #109 from raymondchen-byte/main
support decimal type and support delete varchar field
2 parents 4d54f4f + b1d09df commit 0d2ab46

File tree

3 files changed

+15
-1
lines changed

3 files changed

+15
-1
lines changed

databend-jdbc/src/main/java/com/databend/jdbc/DatabendColumnInfo.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -202,6 +202,8 @@ private static int getType(DatabendRawType type) {
202202
return java.sql.Types.TIMESTAMP;
203203
case DatabendTypes.ARRAY:
204204
return java.sql.Types.ARRAY;
205+
case DatabendTypes.DECIMAL:
206+
return java.sql.Types.DECIMAL;
205207
default:
206208
return Types.JAVA_OBJECT;
207209
}

databend-jdbc/src/main/java/com/databend/jdbc/DatabendPreparedStatement.java

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -455,7 +455,11 @@ public void setBigDecimal(int i, BigDecimal bigDecimal)
455455
public void setString(int i, String s)
456456
throws SQLException {
457457
checkOpen();
458-
batchInsertUtils.ifPresent(insertUtils -> insertUtils.setPlaceHolderValue(i, s));
458+
if (originalSql.toLowerCase().contains("delete from")) {
459+
batchInsertUtils.ifPresent(insertUtils -> insertUtils.setPlaceHolderValue(i, String.format("%s%s%s", "'", s, "'")));
460+
} else {
461+
batchInsertUtils.ifPresent(insertUtils -> insertUtils.setPlaceHolderValue(i, s));
462+
}
459463
}
460464

461465
@Override

databend-jdbc/src/test/java/com/databend/jdbc/TestPrepareStatement.java

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -342,6 +342,14 @@ public void testAllPreparedStatement() throws SQLException {
342342
int result = statement.executeUpdate();
343343
System.out.println(result);
344344
}
345+
346+
String deleteSQLVarchar = "delete from test_prepare_statement where b = ?";
347+
try (PreparedStatement statement = conn.prepareStatement(deleteSQLVarchar)) {
348+
statement.setString(1, "1");
349+
int result = statement.executeUpdate();
350+
System.out.println(result);
351+
}
352+
345353
ResultSet r3 = conn.createStatement().executeQuery("select * from test_prepare_statement");
346354
Assert.assertEquals(0, r3.getRow());
347355
while (r3.next()) {

0 commit comments

Comments
 (0)