You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@phoenix.apache.org by mi...@apache.org on 2019/10/10 09:15:51 UTC

[phoenix] branch 4.x-HBase-1.5 updated: PHOENIX-4306 Add more tests for DESC sort order

This is an automated email from the ASF dual-hosted git repository.

mihir6692 pushed a commit to branch 4.x-HBase-1.5
in repository https://gitbox.apache.org/repos/asf/phoenix.git


The following commit(s) were added to refs/heads/4.x-HBase-1.5 by this push:
     new 5973ba6  PHOENIX-4306 Add more tests for DESC sort order
5973ba6 is described below

commit 5973ba68efd2603dfac4781d2331c3b1a56b66db
Author: Viraj Jasani <vi...@gmail.com>
AuthorDate: Thu Oct 10 14:45:30 2019 +0530

    PHOENIX-4306 Add more tests for DESC sort order
---
 .../apache/phoenix/end2end/DescOrderKeysIT.java    | 441 +++++++++++++++++++++
 1 file changed, 441 insertions(+)

diff --git a/phoenix-core/src/it/java/org/apache/phoenix/end2end/DescOrderKeysIT.java b/phoenix-core/src/it/java/org/apache/phoenix/end2end/DescOrderKeysIT.java
new file mode 100644
index 0000000..a6ecfd7
--- /dev/null
+++ b/phoenix-core/src/it/java/org/apache/phoenix/end2end/DescOrderKeysIT.java
@@ -0,0 +1,441 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.phoenix.end2end;
+
+import java.math.BigDecimal;
+import java.sql.Connection;
+import java.sql.DriverManager;
+import java.sql.ResultSet;
+import java.sql.Statement;
+
+import org.apache.phoenix.compile.QueryPlan;
+import org.apache.phoenix.jdbc.PhoenixStatement;
+import org.junit.Assert;
+import org.junit.Test;
+
+public class DescOrderKeysIT extends ParallelStatsDisabledIT {
+
+  @Test
+  public void testVarCharDescOrderPKs() throws Exception {
+    final String tableName = generateUniqueName();
+
+    try (Connection conn = DriverManager.getConnection(getUrl())) {
+      conn.setAutoCommit(true);
+      final Statement stmt = conn.createStatement();
+
+      stmt.execute("CREATE TABLE " + tableName +
+        " (COL1 VARCHAR, COL2 VARCHAR CONSTRAINT PK PRIMARY KEY (COL1 DESC, COL2)) ");
+
+      stmt.execute("UPSERT INTO " + tableName + " (COL1, COL2) VALUES ('h1uniq1', 'val1')");
+      stmt.execute("UPSERT INTO " + tableName + " (COL1, COL2) VALUES ('41efh', 'val2')");
+      stmt.execute("UPSERT INTO " + tableName + " (COL1, COL2) VALUES ('c49ghd', 'val3')");
+      stmt.execute("UPSERT INTO " + tableName + " (COL1, COL2) VALUES ('4232jfjg', 'val4')");
+      stmt.execute("UPSERT INTO " + tableName + " (COL1, COL2) VALUES ('zsw4tg', 'val5')");
+      stmt.execute("UPSERT INTO " + tableName + " (COL1, COL2) VALUES ('93hgwef', 'val6')");
+      stmt.execute("UPSERT INTO " + tableName + " (COL1, COL2) VALUES ('3jfytw', 'val7')");
+
+      final String sql = "select COL1, COL2 from " + tableName;
+
+      ResultSet rs = stmt.executeQuery(sql);
+      Assert.assertTrue(rs.next());
+
+      QueryPlan plan = stmt.unwrap(PhoenixStatement.class).getQueryPlan();
+      Assert.assertEquals("Expected a single scan ", 1, plan.getScans().size());
+      Assert.assertEquals("Expected a single scan ", 1, plan.getScans().get(0).size());
+
+      Assert.assertEquals("zsw4tg", rs.getString(1));
+      Assert.assertEquals("val5", rs.getString(2));
+      Assert.assertTrue(rs.next());
+
+      Assert.assertEquals("h1uniq1", rs.getString(1));
+      Assert.assertEquals("val1", rs.getString(2));
+      Assert.assertTrue(rs.next());
+
+      Assert.assertEquals("c49ghd", rs.getString(1));
+      Assert.assertEquals("val3", rs.getString(2));
+      Assert.assertTrue(rs.next());
+
+      Assert.assertEquals("93hgwef", rs.getString(1));
+      Assert.assertEquals("val6", rs.getString(2));
+      Assert.assertTrue(rs.next());
+
+      Assert.assertEquals("4232jfjg", rs.getString(1));
+      Assert.assertEquals("val4", rs.getString(2));
+      Assert.assertTrue(rs.next());
+
+      Assert.assertEquals("41efh", rs.getString(1));
+      Assert.assertEquals("val2", rs.getString(2));
+      Assert.assertTrue(rs.next());
+
+      Assert.assertEquals("3jfytw", rs.getString(1));
+      Assert.assertEquals("val7", rs.getString(2));
+      Assert.assertFalse(rs.next());
+    }
+  }
+
+  @Test
+  public void testVarCharDescOrderMultiplePKs() throws Exception {
+    final String tableName = generateUniqueName();
+
+    try (Connection conn = DriverManager.getConnection(getUrl())) {
+      conn.setAutoCommit(true);
+      final Statement stmt = conn.createStatement();
+
+      stmt.execute("CREATE TABLE " + tableName +
+        " (COL1 VARCHAR, COL2 VARCHAR, COL3 VARCHAR CONSTRAINT " +
+        "PK PRIMARY KEY (COL1 DESC, COL2 DESC, COL3)) ");
+
+      stmt.execute("UPSERT INTO " + tableName + " (COL1, COL2, COL3) VALUES " +
+        "('h1uniq1', 'key1', 'val1')");
+      stmt.execute("UPSERT INTO " + tableName + " (COL1, COL2, COL3) VALUES " +
+        "('41efh', 'key2', 'val2')");
+      stmt.execute("UPSERT INTO " + tableName + " (COL1, COL2, COL3) VALUES " +
+        "('c49ghd', 'key3', 'val3')");
+      stmt.execute("UPSERT INTO " + tableName + " (COL1, COL2, COL3) VALUES " +
+        "('zsw4tg', 'key5', 'val5')");
+      stmt.execute("UPSERT INTO " + tableName + " (COL1, COL2, COL3) VALUES " +
+        "('zsw4tg', 'key4', 'val4')");
+      stmt.execute("UPSERT INTO " + tableName + " (COL1, COL2, COL3) VALUES " +
+        "('h1uniq1', 'key6', 'val6')");
+      stmt.execute("UPSERT INTO " + tableName + " (COL1, COL2, COL3) VALUES " +
+        "('93hgwef', 'key7', 'val7')");
+      stmt.execute("UPSERT INTO " + tableName + " (COL1, COL2, COL3) VALUES " +
+        "('3jfytw', 'key8', 'val8')");
+      stmt.execute("UPSERT INTO " + tableName + " (COL1, COL2, COL3) VALUES " +
+        "('4232jfjg', 'key9', 'val9')");
+
+      final String sql = "select COL1, COL2, COL3 from " + tableName;
+
+      ResultSet rs = stmt.executeQuery(sql);
+      Assert.assertTrue(rs.next());
+
+      QueryPlan plan = stmt.unwrap(PhoenixStatement.class).getQueryPlan();
+      Assert.assertEquals("Expected a single scan ", 1, plan.getScans().size());
+      Assert.assertEquals("Expected a single scan ", 1, plan.getScans().get(0).size());
+
+      Assert.assertEquals("zsw4tg", rs.getString(1));
+      Assert.assertEquals("key5", rs.getString(2));
+      Assert.assertEquals("val5", rs.getString(3));
+      Assert.assertTrue(rs.next());
+
+      Assert.assertEquals("zsw4tg", rs.getString(1));
+      Assert.assertEquals("key4", rs.getString(2));
+      Assert.assertEquals("val4", rs.getString(3));
+      Assert.assertTrue(rs.next());
+
+      Assert.assertEquals("h1uniq1", rs.getString(1));
+      Assert.assertEquals("key6", rs.getString(2));
+      Assert.assertEquals("val6", rs.getString(3));
+      Assert.assertTrue(rs.next());
+
+      Assert.assertEquals("h1uniq1", rs.getString(1));
+      Assert.assertEquals("key1", rs.getString(2));
+      Assert.assertEquals("val1", rs.getString(3));
+      Assert.assertTrue(rs.next());
+
+      Assert.assertEquals("c49ghd", rs.getString(1));
+      Assert.assertEquals("key3", rs.getString(2));
+      Assert.assertEquals("val3", rs.getString(3));
+      Assert.assertTrue(rs.next());
+
+      Assert.assertEquals("93hgwef", rs.getString(1));
+      Assert.assertEquals("key7", rs.getString(2));
+      Assert.assertEquals("val7", rs.getString(3));
+      Assert.assertTrue(rs.next());
+
+      Assert.assertEquals("4232jfjg", rs.getString(1));
+      Assert.assertEquals("key9", rs.getString(2));
+      Assert.assertEquals("val9", rs.getString(3));
+      Assert.assertTrue(rs.next());
+
+      Assert.assertEquals("41efh", rs.getString(1));
+      Assert.assertEquals("key2", rs.getString(2));
+      Assert.assertEquals("val2", rs.getString(3));
+      Assert.assertTrue(rs.next());
+
+      Assert.assertEquals("3jfytw", rs.getString(1));
+      Assert.assertEquals("key8", rs.getString(2));
+      Assert.assertEquals("val8", rs.getString(3));
+      Assert.assertFalse(rs.next());
+    }
+  }
+
+  @Test
+  public void testIntDescOrderMultiplePKs() throws Exception {
+    final String tableName = generateUniqueName();
+
+    try (Connection conn = DriverManager.getConnection(getUrl())) {
+      conn.setAutoCommit(true);
+      final Statement stmt = conn.createStatement();
+
+      stmt.execute("CREATE TABLE " + tableName +
+        " (COL1 INTEGER NOT NULL, COL2 INTEGER NOT NULL, COL3 VARCHAR NOT NULL CONSTRAINT " +
+        "PK PRIMARY KEY (COL1 DESC, COL2 DESC, COL3)) ");
+
+      stmt.execute("UPSERT INTO " + tableName + " (COL1, COL2, COL3) VALUES " +
+        "(1234, 3957, 'val1')");
+      stmt.execute("UPSERT INTO " + tableName + " (COL1, COL2, COL3) VALUES " +
+        "(2453, 234, 'val2')");
+      stmt.execute("UPSERT INTO " + tableName + " (COL1, COL2, COL3) VALUES " +
+        "(3463, 345561, 'val3')");
+      stmt.execute("UPSERT INTO " + tableName + " (COL1, COL2, COL3) VALUES " +
+        "(34534, 345657, 'val4')");
+      stmt.execute("UPSERT INTO " + tableName + " (COL1, COL2, COL3) VALUES " +
+        "(2453, 92374, 'val5')");
+      stmt.execute("UPSERT INTO " + tableName + " (COL1, COL2, COL3) VALUES " +
+        "(9375, 11037, 'val6')");
+      stmt.execute("UPSERT INTO " + tableName + " (COL1, COL2, COL3) VALUES " +
+        "(9375, 455, 'val7')");
+      stmt.execute("UPSERT INTO " + tableName + " (COL1, COL2, COL3) VALUES " +
+        "(9375, 7712, 'val8')");
+      stmt.execute("UPSERT INTO " + tableName + " (COL1, COL2, COL3) VALUES " +
+        "(1234, 3956, 'val9')");
+
+      final String sql = "select COL1, COL2, COL3 from " + tableName;
+
+      ResultSet rs = stmt.executeQuery(sql);
+      Assert.assertTrue(rs.next());
+
+      QueryPlan plan = stmt.unwrap(PhoenixStatement.class).getQueryPlan();
+      Assert.assertEquals("Expected a single scan ", 1, plan.getScans().size());
+      Assert.assertEquals("Expected a single scan ", 1, plan.getScans().get(0).size());
+
+      Assert.assertEquals(34534, rs.getInt(1));
+      Assert.assertEquals(345657, rs.getInt(2));
+      Assert.assertEquals("val4", rs.getString(3));
+      Assert.assertTrue(rs.next());
+
+      Assert.assertEquals(9375, rs.getInt(1));
+      Assert.assertEquals(11037, rs.getInt(2));
+      Assert.assertEquals("val6", rs.getString(3));
+      Assert.assertTrue(rs.next());
+
+      Assert.assertEquals(9375, rs.getInt(1));
+      Assert.assertEquals(7712, rs.getInt(2));
+      Assert.assertEquals("val8", rs.getString(3));
+      Assert.assertTrue(rs.next());
+
+      Assert.assertEquals(9375, rs.getInt(1));
+      Assert.assertEquals(455, rs.getInt(2));
+      Assert.assertEquals("val7", rs.getString(3));
+      Assert.assertTrue(rs.next());
+
+      Assert.assertEquals(3463, rs.getInt(1));
+      Assert.assertEquals(345561, rs.getInt(2));
+      Assert.assertEquals("val3", rs.getString(3));
+      Assert.assertTrue(rs.next());
+
+      Assert.assertEquals(2453, rs.getInt(1));
+      Assert.assertEquals(92374, rs.getInt(2));
+      Assert.assertEquals("val5", rs.getString(3));
+      Assert.assertTrue(rs.next());
+
+      Assert.assertEquals(2453, rs.getInt(1));
+      Assert.assertEquals(234, rs.getInt(2));
+      Assert.assertEquals("val2", rs.getString(3));
+      Assert.assertTrue(rs.next());
+
+      Assert.assertEquals(1234, rs.getInt(1));
+      Assert.assertEquals(3957, rs.getInt(2));
+      Assert.assertEquals("val1", rs.getString(3));
+      Assert.assertTrue(rs.next());
+
+      Assert.assertEquals(1234, rs.getInt(1));
+      Assert.assertEquals(3956, rs.getInt(2));
+      Assert.assertEquals("val9", rs.getString(3));
+      Assert.assertFalse(rs.next());
+    }
+  }
+
+  @Test
+  public void testDoubleDescOrderMultiplePKs() throws Exception {
+    final String tableName = generateUniqueName();
+
+    try (Connection conn = DriverManager.getConnection(getUrl())) {
+      conn.setAutoCommit(true);
+      final Statement stmt = conn.createStatement();
+
+      stmt.execute("CREATE TABLE " + tableName +
+        " (COL1 DOUBLE NOT NULL, COL2 DOUBLE NOT NULL, COL3 VARCHAR NOT NULL CONSTRAINT " +
+        "PK PRIMARY KEY (COL1 DESC, COL2 DESC, COL3)) ");
+
+      stmt.execute("UPSERT INTO " + tableName + " (COL1, COL2, COL3) VALUES " +
+        "(1234.39, 3957.124, 'val1')");
+      stmt.execute("UPSERT INTO " + tableName + " (COL1, COL2, COL3) VALUES " +
+        "(2453.97, 234.112, 'val2')");
+      stmt.execute("UPSERT INTO " + tableName + " (COL1, COL2, COL3) VALUES " +
+        "(3463.384, 345561.124, 'val3')");
+      stmt.execute("UPSERT INTO " + tableName + " (COL1, COL2, COL3) VALUES " +
+        "(34534.9191, 345657.913, 'val4')");
+      stmt.execute("UPSERT INTO " + tableName + " (COL1, COL2, COL3) VALUES " +
+        "(2453.89, 92374.11, 'val5')");
+      stmt.execute("UPSERT INTO " + tableName + " (COL1, COL2, COL3) VALUES " +
+        "(9375.23, 11037.729, 'val6')");
+      stmt.execute("UPSERT INTO " + tableName + " (COL1, COL2, COL3) VALUES " +
+        "(9375.23, 11037.8, 'val7')");
+      stmt.execute("UPSERT INTO " + tableName + " (COL1, COL2, COL3) VALUES " +
+        "(9375.23, 11037.72888, 'val8')");
+      stmt.execute("UPSERT INTO " + tableName + " (COL1, COL2, COL3) VALUES " +
+        "(1234.39, 3957.123999, 'val9')");
+
+      final String sql = "select COL1, COL2, COL3 from " + tableName;
+
+      ResultSet rs = stmt.executeQuery(sql);
+      Assert.assertTrue(rs.next());
+
+      QueryPlan plan = stmt.unwrap(PhoenixStatement.class).getQueryPlan();
+      Assert.assertEquals("Expected a single scan ", 1, plan.getScans().size());
+      Assert.assertEquals("Expected a single scan ", 1, plan.getScans().get(0).size());
+
+      Assert.assertEquals(34534.9191, rs.getDouble(1), 0.0);
+      Assert.assertEquals(345657.913, rs.getDouble(2), 0.0);
+      Assert.assertEquals("val4", rs.getString(3));
+      Assert.assertTrue(rs.next());
+
+      Assert.assertEquals(9375.23, rs.getDouble(1), 0.0);
+      Assert.assertEquals(11037.8, rs.getDouble(2), 0.0);
+      Assert.assertEquals("val7", rs.getString(3));
+      Assert.assertTrue(rs.next());
+
+      Assert.assertEquals(9375.23, rs.getDouble(1), 0.0);
+      Assert.assertEquals(11037.729, rs.getDouble(2), 0.0);
+      Assert.assertEquals("val6", rs.getString(3));
+      Assert.assertTrue(rs.next());
+
+      Assert.assertEquals(9375.23, rs.getDouble(1), 0.0);
+      Assert.assertEquals(11037.72888, rs.getDouble(2), 0.0);
+      Assert.assertEquals("val8", rs.getString(3));
+      Assert.assertTrue(rs.next());
+
+      Assert.assertEquals(3463.384, rs.getDouble(1), 0.0);
+      Assert.assertEquals(345561.124, rs.getDouble(2), 0.0);
+      Assert.assertEquals("val3", rs.getString(3));
+      Assert.assertTrue(rs.next());
+
+      Assert.assertEquals(2453.97, rs.getDouble(1), 0.0);
+      Assert.assertEquals(234.112, rs.getDouble(2), 0.0);
+      Assert.assertEquals("val2", rs.getString(3));
+      Assert.assertTrue(rs.next());
+
+      Assert.assertEquals(2453.89, rs.getDouble(1), 0.0);
+      Assert.assertEquals(92374.11, rs.getDouble(2), 0.0);
+      Assert.assertEquals("val5", rs.getString(3));
+      Assert.assertTrue(rs.next());
+
+      Assert.assertEquals(1234.39, rs.getDouble(1), 0.0);
+      Assert.assertEquals(3957.124, rs.getDouble(2), 0.0);
+      Assert.assertEquals("val1", rs.getString(3));
+      Assert.assertTrue(rs.next());
+
+      Assert.assertEquals(1234.39, rs.getDouble(1), 0.0);
+      Assert.assertEquals(3957.123999, rs.getDouble(2), 0.0);
+      Assert.assertEquals("val9", rs.getString(3));
+      Assert.assertFalse(rs.next());
+    }
+  }
+
+  @Test
+  public void testDecimalDescOrderMultiplePKs() throws Exception {
+    final String tableName = generateUniqueName();
+
+    try (Connection conn = DriverManager.getConnection(getUrl())) {
+      conn.setAutoCommit(true);
+      final Statement stmt = conn.createStatement();
+
+      stmt.execute("CREATE TABLE " + tableName +
+        " (COL1 DECIMAL NOT NULL, COL2 DECIMAL NOT NULL, COL3 VARCHAR NOT NULL CONSTRAINT " +
+        "PK PRIMARY KEY (COL1 DESC, COL2 DESC, COL3)) ");
+
+      stmt.execute("UPSERT INTO " + tableName + " (COL1, COL2, COL3) VALUES " +
+        "(1234.39, 3957.124, 'val1')");
+      stmt.execute("UPSERT INTO " + tableName + " (COL1, COL2, COL3) VALUES " +
+        "(2453.97, 234.112, 'val2')");
+      stmt.execute("UPSERT INTO " + tableName + " (COL1, COL2, COL3) VALUES " +
+        "(3463.384, 345561.124, 'val3')");
+      stmt.execute("UPSERT INTO " + tableName + " (COL1, COL2, COL3) VALUES " +
+        "(34534.9191, 345657.913, 'val4')");
+      stmt.execute("UPSERT INTO " + tableName + " (COL1, COL2, COL3) VALUES " +
+        "(2453.89, 92374.11, 'val5')");
+      stmt.execute("UPSERT INTO " + tableName + " (COL1, COL2, COL3) VALUES " +
+        "(9375.23, 11037.729, 'val6')");
+      stmt.execute("UPSERT INTO " + tableName + " (COL1, COL2, COL3) VALUES " +
+        "(9375.23, 11037.8, 'val7')");
+      stmt.execute("UPSERT INTO " + tableName + " (COL1, COL2, COL3) VALUES " +
+        "(9375.23, 11037.72888, 'val8')");
+      stmt.execute("UPSERT INTO " + tableName + " (COL1, COL2, COL3) VALUES " +
+        "(1234.39, 3957.123999, 'val9')");
+
+      final String sql = "select COL1, COL2, COL3 from " + tableName;
+
+      ResultSet rs = stmt.executeQuery(sql);
+      Assert.assertTrue(rs.next());
+
+      QueryPlan plan = stmt.unwrap(PhoenixStatement.class).getQueryPlan();
+      Assert.assertEquals("Expected a single scan ", 1, plan.getScans().size());
+      Assert.assertEquals("Expected a single scan ", 1, plan.getScans().get(0).size());
+
+      Assert.assertEquals(BigDecimal.valueOf(34534.9191), rs.getBigDecimal(1));
+      Assert.assertEquals(BigDecimal.valueOf(345657.913), rs.getBigDecimal(2));
+      Assert.assertEquals("val4", rs.getString(3));
+      Assert.assertTrue(rs.next());
+
+      Assert.assertEquals(BigDecimal.valueOf(9375.23), rs.getBigDecimal(1));
+      Assert.assertEquals(BigDecimal.valueOf(11037.8), rs.getBigDecimal(2));
+      Assert.assertEquals("val7", rs.getString(3));
+      Assert.assertTrue(rs.next());
+
+      Assert.assertEquals(BigDecimal.valueOf(9375.23), rs.getBigDecimal(1));
+      Assert.assertEquals(BigDecimal.valueOf(11037.729), rs.getBigDecimal(2));
+      Assert.assertEquals("val6", rs.getString(3));
+      Assert.assertTrue(rs.next());
+
+      Assert.assertEquals(BigDecimal.valueOf(9375.23), rs.getBigDecimal(1));
+      Assert.assertEquals(BigDecimal.valueOf(11037.72888), rs.getBigDecimal(2));
+      Assert.assertEquals("val8", rs.getString(3));
+      Assert.assertTrue(rs.next());
+
+      Assert.assertEquals(BigDecimal.valueOf(3463.384), rs.getBigDecimal(1));
+      Assert.assertEquals(BigDecimal.valueOf(345561.124), rs.getBigDecimal(2));
+      Assert.assertEquals("val3", rs.getString(3));
+      Assert.assertTrue(rs.next());
+
+      Assert.assertEquals(BigDecimal.valueOf(2453.97), rs.getBigDecimal(1));
+      Assert.assertEquals(BigDecimal.valueOf(234.112), rs.getBigDecimal(2));
+      Assert.assertEquals("val2", rs.getString(3));
+      Assert.assertTrue(rs.next());
+
+      Assert.assertEquals(BigDecimal.valueOf(2453.89), rs.getBigDecimal(1));
+      Assert.assertEquals(BigDecimal.valueOf(92374.11), rs.getBigDecimal(2));
+      Assert.assertEquals("val5", rs.getString(3));
+      Assert.assertTrue(rs.next());
+
+      Assert.assertEquals(BigDecimal.valueOf(1234.39), rs.getBigDecimal(1));
+      Assert.assertEquals(BigDecimal.valueOf(3957.124), rs.getBigDecimal(2));
+      Assert.assertEquals("val1", rs.getString(3));
+      Assert.assertTrue(rs.next());
+
+      Assert.assertEquals(BigDecimal.valueOf(1234.39), rs.getBigDecimal(1));
+      Assert.assertEquals(BigDecimal.valueOf(3957.123999), rs.getBigDecimal(2));
+      Assert.assertEquals("val9", rs.getString(3));
+      Assert.assertFalse(rs.next());
+    }
+  }
+
+
+}