Return-Path: X-Original-To: apmail-calcite-commits-archive@www.apache.org Delivered-To: apmail-calcite-commits-archive@www.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id 571DD180A2 for ; Mon, 4 Apr 2016 19:03:29 +0000 (UTC) Received: (qmail 80355 invoked by uid 500); 4 Apr 2016 19:03:29 -0000 Delivered-To: apmail-calcite-commits-archive@calcite.apache.org Received: (qmail 80324 invoked by uid 500); 4 Apr 2016 19:03:29 -0000 Mailing-List: contact commits-help@calcite.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@calcite.apache.org Delivered-To: mailing list commits@calcite.apache.org Received: (qmail 80313 invoked by uid 99); 4 Apr 2016 19:03:29 -0000 Received: from git1-us-west.apache.org (HELO git1-us-west.apache.org) (140.211.11.23) by apache.org (qpsmtpd/0.29) with ESMTP; Mon, 04 Apr 2016 19:03:29 +0000 Received: by git1-us-west.apache.org (ASF Mail Server at git1-us-west.apache.org, from userid 33) id 27D4EDFE2E; Mon, 4 Apr 2016 19:03:29 +0000 (UTC) Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit From: elserj@apache.org To: commits@calcite.apache.org Message-Id: <4506c2cca4c14b1e8eb65e17561eff75@git.apache.org> X-Mailer: ASF-Git Admin Mailer Subject: calcite git commit: [CALCITE-1113] Test for precision and scale in column metadata Date: Mon, 4 Apr 2016 19:03:29 +0000 (UTC) Repository: calcite Updated Branches: refs/heads/master 032e0d9a5 -> ea71f9295 [CALCITE-1113] Test for precision and scale in column metadata Project: http://git-wip-us.apache.org/repos/asf/calcite/repo Commit: http://git-wip-us.apache.org/repos/asf/calcite/commit/ea71f929 Tree: http://git-wip-us.apache.org/repos/asf/calcite/tree/ea71f929 Diff: http://git-wip-us.apache.org/repos/asf/calcite/diff/ea71f929 Branch: refs/heads/master Commit: ea71f9295ae3bed9b88046f9a9e426bcc93a0005 Parents: 032e0d9 Author: Josh Elser Authored: Mon Apr 4 14:47:30 2016 -0400 Committer: Josh Elser Committed: Mon Apr 4 15:00:13 2016 -0400 ---------------------------------------------------------------------- .../calcite/avatica/RemoteDriverTest.java | 38 ++++++++++++++++++++ 1 file changed, 38 insertions(+) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/calcite/blob/ea71f929/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 c32a54c..191802c 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 @@ -1608,6 +1608,44 @@ public class RemoteDriverTest { } } + @Test public void testDecimalParameters() throws Exception { + final String tableName = "decimalParameters"; + BigDecimal decimal = new BigDecimal("123451234512345"); + 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 DECIMAL(15,0))"; + assertFalse(stmt.execute(sql)); + + getRequestInspection().getRequestLogger().enableAndClear(); + // Insert a single decimal + try (PreparedStatement pstmt = conn.prepareStatement("INSERT INTO " + tableName + + " values (?, ?)")) { + ParameterMetaData metadata = pstmt.getParameterMetaData(); + assertNotNull(metadata); + assertEquals(5, metadata.getPrecision(1)); + assertEquals(0, metadata.getScale(1)); + assertEquals(15, metadata.getPrecision(2)); + assertEquals(0, metadata.getScale(2)); + + pstmt.setString(1, "asdfg"); + pstmt.setBigDecimal(2, decimal); + assertEquals(1, pstmt.executeUpdate()); + } + + ResultSet results = stmt.executeQuery("SELECT * FROM " + tableName); + assertNotNull(results); + assertTrue(results.next()); + BigDecimal actualDecimal = results.getBigDecimal(2); + assertEquals(decimal, actualDecimal); + + ResultSetMetaData resultMetadata = results.getMetaData(); + assertNotNull(resultMetadata); + assertEquals(15, resultMetadata.getPrecision(2)); + assertEquals(0, resultMetadata.getScale(2)); + } + } + /** * Factory that creates a service based on a local JDBC connection. */