diff --git a/itests/hive-unit/src/test/java/org/apache/hive/jdbc/TestJdbcDriver2.java b/itests/hive-unit/src/test/java/org/apache/hive/jdbc/TestJdbcDriver2.java index e4b9cd7e7dfb8de8a5889c8a089f6a533c2a4dcb..b2dd2ab12180d80a9d7cf6d3bbc508db7e17e31b 100644 --- a/itests/hive-unit/src/test/java/org/apache/hive/jdbc/TestJdbcDriver2.java +++ b/itests/hive-unit/src/test/java/org/apache/hive/jdbc/TestJdbcDriver2.java @@ -2366,4 +2366,20 @@ private void verifyFetchedLog(List logs, String[] expectedLogs) { assertTrue(accumulatedLogs.contains(expectedLog)); } } + @Test + public void testPrepareSetDate() throws Exception { + try { + String sql = "select * from " + dataTypeTableName + " where c20 = ?"; + PreparedStatement ps = con.prepareStatement(sql); + java.sql.Date dtValue = java.sql.Date.valueOf("2013-01-01"); + ps.setDate(1, dtValue); + ResultSet res = ps.executeQuery(); + assertTrue(res.next()); + assertEquals("2013-01-01", res.getString(20)); + ps.close(); + } catch (Exception e) { + e.printStackTrace(); + fail(e.toString()); + } + } } diff --git a/jdbc/src/java/org/apache/hive/jdbc/HivePreparedStatement.java b/jdbc/src/java/org/apache/hive/jdbc/HivePreparedStatement.java index 26251557ab0eaf995b854b60e84781a69d983e37..76875375c88c3bd228bd011afceecee16f064f53 100644 --- a/jdbc/src/java/org/apache/hive/jdbc/HivePreparedStatement.java +++ b/jdbc/src/java/org/apache/hive/jdbc/HivePreparedStatement.java @@ -436,7 +436,7 @@ public void setClob(int parameterIndex, Reader reader, long length) throws SQLEx */ public void setDate(int parameterIndex, Date x) throws SQLException { - this.parameters.put(parameterIndex, x.toString()); + this.parameters.put(parameterIndex, "'" + x.toString() + "'"); } /*