Repository: calcite Updated Branches: refs/heads/master 70829e53f -> 919b31f0e
[CALCITE-1186] Add a test for signedness in parameters Project: http://git-wip-us.apache.org/repos/asf/calcite/repo Commit: http://git-wip-us.apache.org/repos/asf/calcite/commit/919b31f0 Tree: http://git-wip-us.apache.org/repos/asf/calcite/tree/919b31f0 Diff: http://git-wip-us.apache.org/repos/asf/calcite/diff/919b31f0 Branch: refs/heads/master Commit: 919b31f0ebbd1501b9b2216fcc8534449fa3258e Parents: 70829e5 Author: Josh Elser <[email protected]> Authored: Mon Apr 4 17:55:50 2016 -0400 Committer: Josh Elser <[email protected]> Committed: Mon Apr 4 17:55:50 2016 -0400 ---------------------------------------------------------------------- .../calcite/avatica/RemoteDriverTest.java | 35 +++++++++++++++++++- 1 file changed, 34 insertions(+), 1 deletion(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/calcite/blob/919b31f0/avatica/server/src/test/java/org/apache/calcite/avatica/RemoteDriverTest.java ---------------------------------------------------------------------- diff --git a/avatica/server/src/test/java/org/apache/calcite/avatica/RemoteDriverTest.java b/avatica/server/src/test/java/org/apache/calcite/avatica/RemoteDriverTest.java index 191802c..4507532 100644 --- a/avatica/server/src/test/java/org/apache/calcite/avatica/RemoteDriverTest.java +++ b/avatica/server/src/test/java/org/apache/calcite/avatica/RemoteDriverTest.java @@ -1617,7 +1617,6 @@ public class RemoteDriverTest { String sql = "CREATE TABLE " + tableName + " (keycolumn VARCHAR(5), column1 DECIMAL(15,0))"; assertFalse(stmt.execute(sql)); - getRequestInspection().getRequestLogger().enableAndClear(); // Insert a single decimal try (PreparedStatement pstmt = conn.prepareStatement("INSERT INTO " + tableName + " values (?, ?)")) { @@ -1646,6 +1645,40 @@ public class RemoteDriverTest { } } + @Test public void testSignedParameters() throws Exception { + final String tableName = "signedParameters"; + try (Connection conn = getLocalConnection(); + Statement stmt = conn.createStatement()) { + assertFalse(stmt.execute("DROP TABLE IF EXISTS " + tableName)); + String sql = "CREATE TABLE " + tableName + " (keycolumn VARCHAR(5), column1 integer)"; + assertFalse(stmt.execute(sql)); + + // Insert a single decimal + try (PreparedStatement pstmt = conn.prepareStatement("INSERT INTO " + tableName + + " values (?, ?)")) { + ParameterMetaData metadata = pstmt.getParameterMetaData(); + assertNotNull(metadata); + assertFalse("Varchar should not be signed", metadata.isSigned(1)); + assertTrue("Integer should be signed", metadata.isSigned(2)); + + pstmt.setString(1, "asdfg"); + pstmt.setInt(2, 10); + assertEquals(1, pstmt.executeUpdate()); + } + + ResultSet results = stmt.executeQuery("SELECT * FROM " + tableName); + assertNotNull(results); + assertTrue(results.next()); + assertEquals("asdfg", results.getString(1)); + assertEquals(10, results.getInt(2)); + + ResultSetMetaData resultMetadata = results.getMetaData(); + assertNotNull(resultMetadata); + assertFalse("Varchar should not be signed", resultMetadata.isSigned(1)); + assertTrue("Integer should be signed", resultMetadata.isSigned(2)); + } + } + /** * Factory that creates a service based on a local JDBC connection. */
