You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@phoenix.apache.org by ja...@apache.org on 2017/09/21 18:14:27 UTC

[2/3] phoenix git commit: PHOENIX-4221 Disallow DML operations on connections with CURRENT_SCN set - VariableLengthPKIT (Ethan Wang)

http://git-wip-us.apache.org/repos/asf/phoenix/blob/c6960642/phoenix-core/src/it/java/org/apache/phoenix/end2end/VariableLengthPKIT.java
----------------------------------------------------------------------
diff --git a/phoenix-core/src/it/java/org/apache/phoenix/end2end/VariableLengthPKIT.java b/phoenix-core/src/it/java/org/apache/phoenix/end2end/VariableLengthPKIT.java
index 753f2c8..e45d01e 100644
--- a/phoenix-core/src/it/java/org/apache/phoenix/end2end/VariableLengthPKIT.java
+++ b/phoenix-core/src/it/java/org/apache/phoenix/end2end/VariableLengthPKIT.java
@@ -43,34 +43,31 @@ import java.util.Properties;
 import org.apache.phoenix.exception.SQLExceptionCode;
 import org.apache.phoenix.schema.ConstraintViolationException;
 import org.apache.phoenix.util.DateUtil;
-import org.apache.phoenix.util.PhoenixRuntime;
 import org.apache.phoenix.util.PropertiesUtil;
 import org.junit.Test;
 
 
-
-public class VariableLengthPKIT extends BaseClientManagedTimeIT {
+public class VariableLengthPKIT extends ParallelStatsDisabledIT {
     private static final String DS1 = "1970-01-01 00:58:00";
     private static final Date D1 = toDate(DS1);
 
     private static Date toDate(String dateString) {
         return DateUtil.parseDate(dateString);
     }
-
-    protected static void initGroupByRowKeyColumns(long ts) throws Exception {
-        ensureTableCreated(getUrl(),PTSDB_NAME, PTSDB_NAME, null, ts-2, null);
-
+    
+    protected static void initGroupByRowKeyColumns(String pTSDBtableName) throws Exception {
+        ensureTableCreated(getUrl(),pTSDBtableName, PTSDB_NAME, null, null, null);
         // Insert all rows at ts
-        String url = getUrl() + ";" + PhoenixRuntime.CURRENT_SCN_ATTRIB + "=" + ts;
+        String url = getUrl();
         Properties props = PropertiesUtil.deepCopy(TEST_PROPERTIES);
         Connection conn = DriverManager.getConnection(url, props);
         PreparedStatement stmt = conn.prepareStatement(
-                "upsert into " +
-                "PTSDB(" +
-                "    INST, " +
-                "    HOST," +
-                "    \"DATE\")" +
-                "VALUES (?, ?, CURRENT_DATE())");
+                "upsert into " + pTSDBtableName+
+                        " (" +
+                        "    INST, " +
+                        "    HOST," +
+                        "    \"DATE\")" +
+                        "VALUES (?, ?, CURRENT_DATE())");
         stmt.setString(1, "ab");
         stmt.setString(2, "a");
         stmt.execute();
@@ -84,44 +81,70 @@ public class VariableLengthPKIT extends BaseClientManagedTimeIT {
         conn.close();
     }
 
-    protected static void initTableValues(byte[][] splits, long ts) throws Exception {
-        ensureTableCreated(getUrl(),PTSDB_NAME, PTSDB_NAME, splits, ts-2, null);
+    private static void initVarcharKeyTableValues(byte[][] splits, String varcharKeyTestTableName) throws Exception {
+        String url = getUrl();
+        Properties props = PropertiesUtil.deepCopy(TEST_PROPERTIES);
+        Connection conn = DriverManager.getConnection(url, props);
+
+        String ddl = "create table " +varcharKeyTestTableName+
+                "   (pk varchar not null primary key)";
+        createTestTable(getUrl(), ddl, splits, null);
+        PreparedStatement stmt = conn.prepareStatement(
+                "upsert into " + varcharKeyTestTableName+
+                        "(pk) " +
+                        "VALUES (?)");
+        stmt.setString(1, "   def");
+        stmt.execute();
+        stmt.setString(1, "jkl   ");
+        stmt.execute();
+        stmt.setString(1, "   ghi   ");
+        stmt.execute();
+
+        conn.commit();
+        conn.close();
+    }
 
+    private static void initPTSDBTableValues(byte[][] splits, String pTSDBtableName) throws Exception {
+        ensureTableCreated(getUrl(),pTSDBtableName, PTSDB_NAME, splits, null, null);
         // Insert all rows at ts
-        String url = getUrl() + ";" + PhoenixRuntime.CURRENT_SCN_ATTRIB + "=" + ts;
+        String url = getUrl();
         Properties props = PropertiesUtil.deepCopy(TEST_PROPERTIES);
         Connection conn = DriverManager.getConnection(url, props);
         conn.setAutoCommit(true);
         PreparedStatement stmt = conn.prepareStatement(
-                "upsert into " +
-                "PTSDB(" +
-                "    INST, " +
-                "    HOST," +
-                "    \"DATE\"," +
-                "    VAL)" +
-                "VALUES (?, ?, ?, ?)");
+                "upsert into " + pTSDBtableName +
+                        " (" +
+                        "    INST, " +
+                        "    HOST," +
+                        "    \"DATE\"," +
+                        "    VAL)" +
+                        "VALUES (?, ?, ?, ?)");
         stmt.setString(1, "abc");
         stmt.setString(2, "abc-def-ghi");
         stmt.setDate(3, new Date(System.currentTimeMillis()));
         stmt.setBigDecimal(4, new BigDecimal(.5));
         stmt.execute();
+        conn.close();
+    }
 
-        ensureTableCreated(getUrl(),BTABLE_NAME, BTABLE_NAME, splits, ts-2, null);
-        conn.setAutoCommit(false);
+    private static void initBTableValues(byte[][] splits, String bTableName) throws Exception {
+        String url = getUrl();
+        Properties props = PropertiesUtil.deepCopy(TEST_PROPERTIES);
+        Connection conn = DriverManager.getConnection(url, props);
+        ensureTableCreated(getUrl(),bTableName, BTABLE_NAME, splits, null, null);
 
-        // Insert all rows at ts
-        stmt = conn.prepareStatement(
-                "upsert into " +
-                "BTABLE(" +
-                "    A_STRING, " +
-                "    A_ID," +
-                "    B_STRING," +
-                "    A_INTEGER," +
-                "    B_INTEGER," +
-                "    C_INTEGER," +
-                "    D_STRING," +
-                "    E_STRING)" +
-                "VALUES (?, ?, ?, ?, ?, ?, ?, ?)");
+        PreparedStatement stmt = conn.prepareStatement(
+                "upsert into " + bTableName+
+                        " (" +
+                        "    A_STRING, " +
+                        "    A_ID," +
+                        "    B_STRING," +
+                        "    A_INTEGER," +
+                        "    B_INTEGER," +
+                        "    C_INTEGER," +
+                        "    D_STRING," +
+                        "    E_STRING)" +
+                        "VALUES (?, ?, ?, ?, ?, ?, ?, ?)");
         stmt.setString(1, "abc");
         stmt.setString(2, "111");
         stmt.setString(3, "x");
@@ -154,33 +177,19 @@ public class VariableLengthPKIT extends BaseClientManagedTimeIT {
         stmt.setString(7, null);
         stmt.execute();
 
-        String ddl = "create table VarcharKeyTest" +
-            "   (pk varchar not null primary key)";
-        createTestTable(getUrl(), ddl, splits, ts-2);
-        stmt = conn.prepareStatement(
-                "upsert into " +
-                "VarcharKeyTest(pk) " +
-                "VALUES (?)");
-        stmt.setString(1, "   def");
-        stmt.execute();
-        stmt.setString(1, "jkl   ");
-        stmt.execute();
-        stmt.setString(1, "   ghi   ");
-        stmt.execute();
-
         conn.commit();
         conn.close();
     }
 
     @Test
     public void testSingleColumnScanKey() throws Exception {
-        long ts = nextTimestamp();
-        String query = "SELECT A_STRING,substr(a_id,1,1),B_STRING,A_INTEGER,B_INTEGER FROM BTABLE WHERE A_STRING=?";
-        String url = getUrl() + ";" + PhoenixRuntime.CURRENT_SCN_ATTRIB + "=" + (ts + 5); // Run query at timestamp 5
+        String bTableName = generateUniqueName();
+        String query = "SELECT A_STRING,substr(a_id,1,1),B_STRING,A_INTEGER,B_INTEGER FROM "+bTableName+" WHERE A_STRING=?";
+        String url = getUrl();
         Properties props = PropertiesUtil.deepCopy(TEST_PROPERTIES);
         Connection conn = DriverManager.getConnection(url, props);
         try {
-            initTableValues(null, ts);
+            initBTableValues(null,bTableName);
             PreparedStatement statement = conn.prepareStatement(query);
             statement.setString(1, "abc");
             ResultSet rs = statement.executeQuery();
@@ -198,13 +207,14 @@ public class VariableLengthPKIT extends BaseClientManagedTimeIT {
 
     @Test
     public void testSingleColumnGroupBy() throws Exception {
-        long ts = nextTimestamp();
-        String query = "SELECT INST FROM PTSDB GROUP BY INST";
-        String url = getUrl() + ";" + PhoenixRuntime.CURRENT_SCN_ATTRIB + "=" + (ts + 5); // Run query at timestamp 5
+        String pTSDBTableName = generateUniqueName();
+        String query = "SELECT INST FROM "+pTSDBTableName+" GROUP BY INST";
+        String url = getUrl();
         Properties props = PropertiesUtil.deepCopy(TEST_PROPERTIES);
         Connection conn = DriverManager.getConnection(url, props);
+
         try {
-            initTableValues(null, ts);
+            initPTSDBTableValues(null, pTSDBTableName);
             PreparedStatement statement = conn.prepareStatement(query);
             ResultSet rs = statement.executeQuery();
             assertTrue(rs.next());
@@ -217,13 +227,13 @@ public class VariableLengthPKIT extends BaseClientManagedTimeIT {
 
     @Test
     public void testNonfirstColumnGroupBy() throws Exception {
-        long ts = nextTimestamp();
-        String query = "SELECT HOST FROM PTSDB WHERE INST='abc' GROUP BY HOST";
-        String url = getUrl() + ";" + PhoenixRuntime.CURRENT_SCN_ATTRIB + "=" + (ts + 5); // Run query at timestamp 5
+        String pTSDBTableName = generateUniqueName();
+        String query = "SELECT HOST FROM "+pTSDBTableName+" WHERE INST='abc' GROUP BY HOST";
+        String url = getUrl();
         Properties props = PropertiesUtil.deepCopy(TEST_PROPERTIES);
         Connection conn = DriverManager.getConnection(url, props);
         try {
-            initTableValues(null, ts);
+            initPTSDBTableValues(null, pTSDBTableName);
             PreparedStatement statement = conn.prepareStatement(query);
             ResultSet rs = statement.executeQuery();
             assertTrue(rs.next());
@@ -236,13 +246,13 @@ public class VariableLengthPKIT extends BaseClientManagedTimeIT {
 
     @Test
     public void testGroupByRowKeyColumns() throws Exception {
-        long ts = nextTimestamp();
-        String query = "SELECT SUBSTR(INST,1,1),HOST FROM PTSDB GROUP BY SUBSTR(INST,1,1),HOST";
-        String url = getUrl() + ";" + PhoenixRuntime.CURRENT_SCN_ATTRIB + "=" + (ts + 5); // Run query at timestamp 5
+        String pTSDBTableName = generateUniqueName();
+        String query = "SELECT SUBSTR(INST,1,1),HOST FROM "+pTSDBTableName+" GROUP BY SUBSTR(INST,1,1),HOST";
+        String url = getUrl();
         Properties props = PropertiesUtil.deepCopy(TEST_PROPERTIES);
         Connection conn = DriverManager.getConnection(url, props);
         try {
-            initGroupByRowKeyColumns(ts);
+            initGroupByRowKeyColumns(pTSDBTableName);
             PreparedStatement statement = conn.prepareStatement(query);
             ResultSet rs = statement.executeQuery();
             assertTrue(rs.next());
@@ -259,13 +269,13 @@ public class VariableLengthPKIT extends BaseClientManagedTimeIT {
 
     @Test
     public void testSkipScan() throws Exception {
-        long ts = nextTimestamp();
-        String query = "SELECT HOST FROM PTSDB WHERE INST='abc' AND \"DATE\">=TO_DATE('1970-01-01 00:00:00') AND \"DATE\" <TO_DATE('2171-01-01 00:00:00')";
-        String url = getUrl() + ";" + PhoenixRuntime.CURRENT_SCN_ATTRIB + "=" + (ts + 5); // Run query at timestamp 5
+        String pTSDBTableName = generateUniqueName();
+        String query = "SELECT HOST FROM "+pTSDBTableName+" WHERE INST='abc' AND \"DATE\">=TO_DATE('1970-01-01 00:00:00') AND \"DATE\" <TO_DATE('2171-01-01 00:00:00')";
+        String url = getUrl();
         Properties props = PropertiesUtil.deepCopy(TEST_PROPERTIES);
         Connection conn = DriverManager.getConnection(url, props);
         try {
-            initTableValues(null, ts);
+            initPTSDBTableValues(null, pTSDBTableName);
             PreparedStatement statement = conn.prepareStatement(query);
             ResultSet rs = statement.executeQuery();
             assertTrue(rs.next());
@@ -278,13 +288,13 @@ public class VariableLengthPKIT extends BaseClientManagedTimeIT {
 
     @Test
     public void testSkipMax() throws Exception {
-        long ts = nextTimestamp();
-        String query = "SELECT MAX(INST),MAX(\"DATE\") FROM PTSDB WHERE INST='abc' AND \"DATE\">=TO_DATE('1970-01-01 00:00:00') AND \"DATE\" <TO_DATE('2171-01-01 00:00:00')";
-        String url = getUrl() + ";" + PhoenixRuntime.CURRENT_SCN_ATTRIB + "=" + (ts + 5); // Run query at timestamp 5
+        String pTSDBTableName = generateUniqueName();
+        String query = "SELECT MAX(INST),MAX(\"DATE\") FROM "+pTSDBTableName+" WHERE INST='abc' AND \"DATE\">=TO_DATE('1970-01-01 00:00:00') AND \"DATE\" <TO_DATE('2171-01-01 00:00:00')";
+        String url = getUrl();
         Properties props = PropertiesUtil.deepCopy(TEST_PROPERTIES);
         Connection conn = DriverManager.getConnection(url, props);
         try {
-            initTableValues(null, ts);
+            initPTSDBTableValues(null, pTSDBTableName);
             PreparedStatement statement = conn.prepareStatement(query);
             ResultSet rs = statement.executeQuery();
             assertTrue(rs.next());
@@ -297,13 +307,13 @@ public class VariableLengthPKIT extends BaseClientManagedTimeIT {
 
     @Test
     public void testSkipMaxWithLimit() throws Exception {
-        long ts = nextTimestamp();
-        String query = "SELECT MAX(INST),MAX(\"DATE\") FROM PTSDB WHERE INST='abc' AND \"DATE\">=TO_DATE('1970-01-01 00:00:00') AND \"DATE\" <TO_DATE('2171-01-01 00:00:00') LIMIT 2";
-        String url = getUrl() + ";" + PhoenixRuntime.CURRENT_SCN_ATTRIB + "=" + (ts + 5); // Run query at timestamp 5
+        String pTSDBTableName = generateUniqueName();
+        String query = "SELECT MAX(INST),MAX(\"DATE\") FROM "+pTSDBTableName+" WHERE INST='abc' AND \"DATE\">=TO_DATE('1970-01-01 00:00:00') AND \"DATE\" <TO_DATE('2171-01-01 00:00:00') LIMIT 2";
+        String url = getUrl();
         Properties props = PropertiesUtil.deepCopy(TEST_PROPERTIES);
         Connection conn = DriverManager.getConnection(url, props);
         try {
-            initTableValues(null, ts);
+            initPTSDBTableValues(null, pTSDBTableName);
             PreparedStatement statement = conn.prepareStatement(query);
             ResultSet rs = statement.executeQuery();
             assertTrue(rs.next());
@@ -316,15 +326,15 @@ public class VariableLengthPKIT extends BaseClientManagedTimeIT {
 
     @Test
     public void testSingleColumnKeyFilter() throws Exception {
-        long ts = nextTimestamp();
+        String bTableName = generateUniqueName();
         // Requires not null column to be projected, since the only one projected in the query is
         // nullable and will cause the no key value to be returned if it is the only one projected.
-        String query = "SELECT A_STRING,substr(a_id,1,1),B_STRING,A_INTEGER,B_INTEGER FROM BTABLE WHERE B_STRING=?";
-        String url = getUrl() + ";" + PhoenixRuntime.CURRENT_SCN_ATTRIB + "=" + (ts + 5); // Run query at timestamp 5
+        String query = "SELECT A_STRING,substr(a_id,1,1),B_STRING,A_INTEGER,B_INTEGER FROM "+bTableName+" WHERE B_STRING=?";
+        String url = getUrl();
         Properties props = PropertiesUtil.deepCopy(TEST_PROPERTIES);
         Connection conn = DriverManager.getConnection(url, props);
         try {
-            initTableValues(null, ts);
+            initBTableValues(null, bTableName);
             PreparedStatement statement = conn.prepareStatement(query);
             statement.setString(1, "xy");
             ResultSet rs = statement.executeQuery();
@@ -343,14 +353,13 @@ public class VariableLengthPKIT extends BaseClientManagedTimeIT {
 
     @Test
     public void testMultiColumnEqScanKey() throws Exception {
-        long ts = nextTimestamp();
-        // TODO: add compile test to confirm start/stop scan key
-        String query = "SELECT A_STRING,substr(a_id,1,1),B_STRING,A_INTEGER,B_INTEGER FROM BTABLE WHERE A_STRING=? AND A_ID=? AND B_STRING=?";
-        String url = getUrl() + ";" + PhoenixRuntime.CURRENT_SCN_ATTRIB + "=" + (ts + 5); // Run query at timestamp 5
+        String bTableName = generateUniqueName();
+        String query = "SELECT A_STRING,substr(a_id,1,1),B_STRING,A_INTEGER,B_INTEGER FROM "+bTableName+" WHERE A_STRING=? AND A_ID=? AND B_STRING=?";
+        String url = getUrl();
         Properties props = PropertiesUtil.deepCopy(TEST_PROPERTIES);
         Connection conn = DriverManager.getConnection(url, props);
         try {
-            initTableValues(null, ts);
+            initBTableValues(null, bTableName);
             PreparedStatement statement = conn.prepareStatement(query);
             statement.setString(1, "abcd");
             statement.setString(2, "222");
@@ -371,14 +380,13 @@ public class VariableLengthPKIT extends BaseClientManagedTimeIT {
 
     @Test
     public void testMultiColumnGTScanKey() throws Exception {
-        long ts = nextTimestamp();
-        // TODO: add compile test to confirm start/stop scan key
-        String query = "SELECT A_STRING,substr(a_id,1,1),B_STRING,A_INTEGER,B_INTEGER FROM BTABLE WHERE A_STRING=? AND A_ID=? AND B_STRING>?";
-        String url = getUrl() + ";" + PhoenixRuntime.CURRENT_SCN_ATTRIB + "=" + (ts + 5); // Run query at timestamp 5
+        String bTableName = generateUniqueName();
+        String query = "SELECT A_STRING,substr(a_id,1,1),B_STRING,A_INTEGER,B_INTEGER FROM "+bTableName+" WHERE A_STRING=? AND A_ID=? AND B_STRING>?";
+        String url = getUrl();
         Properties props = PropertiesUtil.deepCopy(TEST_PROPERTIES);
         Connection conn = DriverManager.getConnection(url, props);
         try {
-            initTableValues(null, ts);
+            initBTableValues(null, bTableName);
             PreparedStatement statement = conn.prepareStatement(query);
             statement.setString(1, "abcd");
             statement.setString(2, "222");
@@ -404,14 +412,13 @@ public class VariableLengthPKIT extends BaseClientManagedTimeIT {
 
     @Test
     public void testMultiColumnGTKeyFilter() throws Exception {
-        long ts = nextTimestamp();
-        // TODO: add compile test to confirm start/stop scan key
-        String query = "SELECT A_STRING,substr(a_id,1,1),B_STRING,A_INTEGER,B_INTEGER FROM BTABLE WHERE A_STRING>? AND A_INTEGER>=?";
-        String url = getUrl() + ";" + PhoenixRuntime.CURRENT_SCN_ATTRIB + "=" + (ts + 5); // Run query at timestamp 5
+        String bTableName = generateUniqueName();
+        String query = "SELECT A_STRING,substr(a_id,1,1),B_STRING,A_INTEGER,B_INTEGER FROM "+bTableName+" WHERE A_STRING>? AND A_INTEGER>=?";
+        String url = getUrl();
         Properties props = PropertiesUtil.deepCopy(TEST_PROPERTIES);
         Connection conn = DriverManager.getConnection(url, props);
         try {
-            initTableValues(null, ts);
+            initBTableValues(null, bTableName);
             PreparedStatement statement = conn.prepareStatement(query);
             statement.setString(1, "abc");
             statement.setInt(2, 4);
@@ -430,22 +437,21 @@ public class VariableLengthPKIT extends BaseClientManagedTimeIT {
 
     @Test
     public void testNullValueEqualityScan() throws Exception {
-        long ts = nextTimestamp();
-        ensureTableCreated(getUrl(),PTSDB_NAME, PTSDB_NAME, null, ts-2, null);
-
+        String pTSDBTableName = generateUniqueName();
+        ensureTableCreated(getUrl(),pTSDBTableName, PTSDB_NAME, null, null, null);
         // Insert all rows at ts
-        String url = getUrl() + ";" + PhoenixRuntime.CURRENT_SCN_ATTRIB + "=" + ts;
+        String url = getUrl();
         Properties props = PropertiesUtil.deepCopy(TEST_PROPERTIES);
         Connection conn = DriverManager.getConnection(url, props);
         conn.setAutoCommit(true);
-        PreparedStatement stmt = conn.prepareStatement("upsert into PTSDB VALUES ('', '', ?, 0.5)");
+        PreparedStatement stmt = conn.prepareStatement("upsert into "+pTSDBTableName+" VALUES ('', '', ?, 0.5)");
         stmt.setDate(1, D1);
         stmt.execute();
         conn.close();
 
         // Comparisons against null are always false.
-        String query = "SELECT HOST,\"DATE\" FROM PTSDB WHERE HOST='' AND INST=''";
-        url = getUrl() + ";" + PhoenixRuntime.CURRENT_SCN_ATTRIB + "=" + (ts + 5); // Run query at timestamp 5
+        String query = "SELECT HOST,\"DATE\" FROM "+pTSDBTableName+" WHERE HOST='' AND INST=''";
+        url = getUrl();
         conn = DriverManager.getConnection(url, props);
         try {
             PreparedStatement statement = conn.prepareStatement(query);
@@ -458,14 +464,13 @@ public class VariableLengthPKIT extends BaseClientManagedTimeIT {
 
     @Test
     public void testVarLengthPKColScan() throws Exception {
-        long ts = nextTimestamp();
-        ensureTableCreated(getUrl(),PTSDB_NAME, PTSDB_NAME, null, ts-2, null);
-
-        String url = getUrl() + ";" + PhoenixRuntime.CURRENT_SCN_ATTRIB + "=" + ts; // Insert at timestamp 0
+        String pTSDBTableName = generateUniqueName();
+        ensureTableCreated(getUrl(),pTSDBTableName, PTSDB_NAME, null, null, null);
+        String url = getUrl(); // Insert at timestamp 0
         Properties props = PropertiesUtil.deepCopy(TEST_PROPERTIES);
         Connection conn = DriverManager.getConnection(url, props);
         conn.setAutoCommit(true);
-        PreparedStatement stmt = conn.prepareStatement("upsert into PTSDB VALUES (?, 'y', ?, 0.5)");
+        PreparedStatement stmt = conn.prepareStatement("upsert into "+pTSDBTableName+" VALUES (?, 'y', ?, 0.5)");
         stmt.setString(1, "x");
         stmt.setDate(2, D1);
         stmt.execute();
@@ -473,8 +478,8 @@ public class VariableLengthPKIT extends BaseClientManagedTimeIT {
         stmt.execute();
         conn.close();
 
-        String query = "SELECT HOST,\"DATE\" FROM PTSDB WHERE INST='x' AND HOST='y'";
-        url = getUrl() + ";" + PhoenixRuntime.CURRENT_SCN_ATTRIB + "=" + (ts + 5); // Run query at timestamp 5
+        String query = "SELECT HOST,\"DATE\" FROM "+pTSDBTableName+" WHERE INST='x' AND HOST='y'";
+        url = getUrl();
         conn = DriverManager.getConnection(url, props);
         try {
             PreparedStatement statement = conn.prepareStatement(query);
@@ -488,14 +493,13 @@ public class VariableLengthPKIT extends BaseClientManagedTimeIT {
 
     @Test
     public void testEscapedQuoteScan() throws Exception {
-        long ts = nextTimestamp();
-        ensureTableCreated(getUrl(), PTSDB_NAME, PTSDB_NAME, null, ts-2, null);
-
-        String url = getUrl() + ";" + PhoenixRuntime.CURRENT_SCN_ATTRIB + "=" + ts; // Insert at timestamp 0
+        String pTSDBTableName = generateUniqueName();
+        ensureTableCreated(getUrl(), pTSDBTableName, PTSDB_NAME, null, null, null);
+        String url = getUrl(); // Insert at timestamp 0
         Properties props = PropertiesUtil.deepCopy(TEST_PROPERTIES);
         Connection conn = DriverManager.getConnection(url, props);
         conn.setAutoCommit(true);
-        PreparedStatement stmt = conn.prepareStatement("upsert into PTSDB VALUES (?, 'y', ?, 0.5)");
+        PreparedStatement stmt = conn.prepareStatement("upsert into "+pTSDBTableName+" VALUES (?, 'y', ?, 0.5)");
         stmt.setString(1, "x'y");
         stmt.setDate(2, D1);
         stmt.execute();
@@ -503,9 +507,9 @@ public class VariableLengthPKIT extends BaseClientManagedTimeIT {
         stmt.execute();
         conn.close();
 
-        String query1 = "SELECT INST,\"DATE\" FROM PTSDB WHERE INST='x''y'";
-        String query2 = "SELECT INST,\"DATE\" FROM PTSDB WHERE INST='x\\\'y'";
-        url = getUrl() + ";" + PhoenixRuntime.CURRENT_SCN_ATTRIB + "=" + (ts + 5); // Run query at timestamp 5
+        String query1 = "SELECT INST,\"DATE\" FROM "+pTSDBTableName+" WHERE INST='x''y'";
+        String query2 = "SELECT INST,\"DATE\" FROM "+pTSDBTableName+" WHERE INST='x\\\'y'";
+        url = getUrl();
         conn = DriverManager.getConnection(url, props);
         try {
             PreparedStatement statement = conn.prepareStatement(query1);
@@ -526,14 +530,13 @@ public class VariableLengthPKIT extends BaseClientManagedTimeIT {
         }
     }
 
-    private static void initPtsdbTableValues(long ts) throws Exception {
-        ensureTableCreated(getUrl(),PTSDB_NAME, PTSDB_NAME, null, ts-2, null);
-
-        String url = getUrl() + ";" + PhoenixRuntime.CURRENT_SCN_ATTRIB + "=" + ts; // Insert at timestamp 0
+    private static void initPTSDBTableValues1(String pTSDBTableName) throws Exception {
+        ensureTableCreated(getUrl(),pTSDBTableName, PTSDB_NAME, null, null, null);
+        String url = getUrl(); // Insert at timestamp 0
         Properties props = PropertiesUtil.deepCopy(TEST_PROPERTIES);
         Connection conn = DriverManager.getConnection(url, props);
         conn.setAutoCommit(true);
-        PreparedStatement stmt = conn.prepareStatement("upsert into PTSDB VALUES ('x', 'y', ?, 0.5)");
+        PreparedStatement stmt = conn.prepareStatement("upsert into "+pTSDBTableName+" VALUES ('x', 'y', ?, 0.5)");
         stmt.setDate(1, D1);
         stmt.execute();
         conn.close();
@@ -541,11 +544,10 @@ public class VariableLengthPKIT extends BaseClientManagedTimeIT {
 
     @Test
     public void testToStringOnDate() throws Exception {
-        long ts = nextTimestamp();
-        initPtsdbTableValues(ts);
-
-        String query = "SELECT HOST,\"DATE\" FROM PTSDB WHERE INST='x' AND HOST='y'";
-        String url = getUrl() + ";" + PhoenixRuntime.CURRENT_SCN_ATTRIB + "=" + (ts + 5); // Run query at timestamp 5
+        String pTSDBTableName = generateUniqueName();
+        initPTSDBTableValues1(pTSDBTableName);
+        String query = "SELECT HOST,\"DATE\" FROM "+pTSDBTableName+" WHERE INST='x' AND HOST='y'";
+        String url = getUrl();
         Properties props = PropertiesUtil.deepCopy(TEST_PROPERTIES);
         Connection conn = DriverManager.getConnection(url, props);
         try {
@@ -559,14 +561,13 @@ public class VariableLengthPKIT extends BaseClientManagedTimeIT {
         }
     }
 
-    private static void initPtsdbTableValues2(long ts, Date d) throws Exception {
-        ensureTableCreated(getUrl(),PTSDB2_NAME, PTSDB2_NAME, null, ts-2, null);
-
-        String url = getUrl() + ";" + PhoenixRuntime.CURRENT_SCN_ATTRIB + "=" + ts; // Insert at timestamp 0
+    private static void initPTSDBTableValues2(String pTSDB2TableName, Date d) throws Exception {
+        ensureTableCreated(getUrl(),pTSDB2TableName, PTSDB2_NAME, null, null, null);
+        String url = getUrl();
         Properties props = PropertiesUtil.deepCopy(TEST_PROPERTIES);
         Connection conn = DriverManager.getConnection(url, props);
         conn.setAutoCommit(true);
-        PreparedStatement stmt = conn.prepareStatement("upsert into "+PTSDB2_NAME+"(inst,\"DATE\",val2) VALUES (?, ?, ?)");
+        PreparedStatement stmt = conn.prepareStatement("upsert into "+pTSDB2TableName+"(inst,\"DATE\",val2) VALUES (?, ?, ?)");
         stmt.setString(1, "a");
         stmt.setDate(2, d);
         stmt.setDouble(3, 101.3);
@@ -596,16 +597,17 @@ public class VariableLengthPKIT extends BaseClientManagedTimeIT {
 
     @Test
     public void testRoundOnDate() throws Exception {
-        long ts = nextTimestamp();
+        String pTSDB2TableName = generateUniqueName();
+
         Date date = new Date(System.currentTimeMillis());
-        initPtsdbTableValues2(ts, date);
+        initPTSDBTableValues2(pTSDB2TableName, date);
 
         String query = "SELECT MAX(val2)"
-        + " FROM "+PTSDB2_NAME
-        + " WHERE inst='a'"
-        + " GROUP BY ROUND(\"DATE\",'day',1)"
-        + " ORDER BY MAX(val2)"; // disambiguate row order
-        String url = getUrl() + ";" + PhoenixRuntime.CURRENT_SCN_ATTRIB + "=" + (ts + 5); // Run query at timestamp 5
+                + " FROM "+pTSDB2TableName
+                + " WHERE inst='a'"
+                + " GROUP BY ROUND(\"DATE\",'day',1)"
+                + " ORDER BY MAX(val2)"; // disambiguate row order
+        String url = getUrl();
         Properties props = PropertiesUtil.deepCopy(TEST_PROPERTIES);
         Connection conn = DriverManager.getConnection(url, props);
         try {
@@ -625,16 +627,16 @@ public class VariableLengthPKIT extends BaseClientManagedTimeIT {
 
     @Test
     public void testOrderBy() throws Exception {
-        long ts = nextTimestamp();
+        String pTSDB2TableName = generateUniqueName();
         Date date = new Date(System.currentTimeMillis());
-        initPtsdbTableValues2(ts, date);
+        initPTSDBTableValues2(pTSDB2TableName, date);
 
         String query = "SELECT inst,MAX(val2),MIN(val2)"
-        + " FROM "+PTSDB2_NAME
-        + " GROUP BY inst,ROUND(\"DATE\",'day',1)"
-        + " ORDER BY inst,ROUND(\"DATE\",'day',1)"
-        ;
-        String url = getUrl() + ";" + PhoenixRuntime.CURRENT_SCN_ATTRIB + "=" + (ts + 5); // Run query at timestamp 5
+                + " FROM "+pTSDB2TableName
+                + " GROUP BY inst,ROUND(\"DATE\",'day',1)"
+                + " ORDER BY inst,ROUND(\"DATE\",'day',1)"
+                ;
+        String url = getUrl();
         Properties props = PropertiesUtil.deepCopy(TEST_PROPERTIES);
         Connection conn = DriverManager.getConnection(url, props);
         try {
@@ -672,14 +674,13 @@ public class VariableLengthPKIT extends BaseClientManagedTimeIT {
 
     @Test
     public void testSelectCount() throws Exception {
-        long ts = nextTimestamp();
+        String pTSDB2TableName = generateUniqueName();
         Date date = new Date(System.currentTimeMillis());
-        initPtsdbTableValues2(ts, date);
-
+        initPTSDBTableValues2(pTSDB2TableName, date);
         String query = "SELECT COUNT(*)"
-        + " FROM "+PTSDB2_NAME
-        + " WHERE inst='a'";
-        String url = getUrl() + ";" + PhoenixRuntime.CURRENT_SCN_ATTRIB + "=" + (ts + 5); // Run query at timestamp 5
+                + " FROM "+pTSDB2TableName
+                + " WHERE inst='a'";
+        String url = getUrl();
         Properties props = PropertiesUtil.deepCopy(TEST_PROPERTIES);
         Connection conn = DriverManager.getConnection(url, props);
         try {
@@ -695,15 +696,14 @@ public class VariableLengthPKIT extends BaseClientManagedTimeIT {
 
     @Test
     public void testBatchUpsert() throws Exception {
-        long ts = nextTimestamp();
-        ensureTableCreated(getUrl(),PTSDB2_NAME, PTSDB2_NAME, null, ts-2, null);
-        Date d = new Date(ts);
+        String pTSDB2TableName = generateUniqueName();
+        Date d = new Date(System.currentTimeMillis());
+        ensureTableCreated(getUrl(),pTSDB2TableName, PTSDB2_NAME, null, null, null);
         Properties props = PropertiesUtil.deepCopy(TEST_PROPERTIES);
-        props.setProperty(PhoenixRuntime.CURRENT_SCN_ATTRIB, Long.toString(ts));
-        String query = "SELECT SUM(val1),SUM(val2),SUM(val3) FROM "+PTSDB2_NAME;
-        String sql1 = "UPSERT INTO "+PTSDB2_NAME+"(inst,\"DATE\",val1) VALUES (?, ?, ?)";
-        String sql2 = "UPSERT INTO "+PTSDB2_NAME+"(inst,\"DATE\",val2) VALUES (?, ?, ?)";
-        String sql3 = "UPSERT INTO "+PTSDB2_NAME+"(inst,\"DATE\",val3) VALUES (?, ?, ?)";
+        String query = "SELECT SUM(val1),SUM(val2),SUM(val3) FROM "+pTSDB2TableName;
+        String sql1 = "UPSERT INTO "+pTSDB2TableName+"(inst,\"DATE\",val1) VALUES (?, ?, ?)";
+        String sql2 = "UPSERT INTO "+pTSDB2TableName+"(inst,\"DATE\",val2) VALUES (?, ?, ?)";
+        String sql3 = "UPSERT INTO "+pTSDB2TableName+"(inst,\"DATE\",val3) VALUES (?, ?, ?)";
         Connection conn = DriverManager.getConnection(getUrl(), props);
         conn.setAutoCommit(false);
         // conn.setAutoCommit(true);
@@ -772,7 +772,6 @@ public class VariableLengthPKIT extends BaseClientManagedTimeIT {
         conn.close();
 
         // Query at a time after the upsert to confirm they took place
-        props.setProperty(PhoenixRuntime.CURRENT_SCN_ATTRIB, Long.toString(ts+1));
         conn = DriverManager.getConnection(getUrl(), props);
         {
             PreparedStatement statement = conn.prepareStatement(query);
@@ -788,11 +787,10 @@ public class VariableLengthPKIT extends BaseClientManagedTimeIT {
 
     @Test
     public void testSelectStar() throws Exception {
-        long ts = nextTimestamp();
-        initPtsdbTableValues(ts);
-
-        String query = "SELECT * FROM PTSDB WHERE INST='x' AND HOST='y'";
-        String url = getUrl() + ";" + PhoenixRuntime.CURRENT_SCN_ATTRIB + "=" + (ts + 5); // Run query at timestamp 5
+        String pTSDBTableName = generateUniqueName();
+        initPTSDBTableValues1(pTSDBTableName);
+        String query = "SELECT * FROM "+pTSDBTableName+" WHERE INST='x' AND HOST='y'";
+        String url = getUrl();
         Properties props = PropertiesUtil.deepCopy(TEST_PROPERTIES);
         Connection conn = DriverManager.getConnection(url, props);
         try {
@@ -811,11 +809,12 @@ public class VariableLengthPKIT extends BaseClientManagedTimeIT {
 
     @Test
     public void testToCharOnDate() throws Exception {
-        long ts = nextTimestamp();
-        initPtsdbTableValues(ts);
+        String pTSDBTableName = generateUniqueName();
 
-        String query = "SELECT HOST,TO_CHAR(\"DATE\") FROM PTSDB WHERE INST='x' AND HOST='y'";
-        String url = getUrl() + ";" + PhoenixRuntime.CURRENT_SCN_ATTRIB + "=" + (ts + 5); // Run query at timestamp 5
+        initPTSDBTableValues1(pTSDBTableName);
+
+        String query = "SELECT HOST,TO_CHAR(\"DATE\") FROM "+pTSDBTableName+" WHERE INST='x' AND HOST='y'";
+        String url = getUrl();
         Properties props = PropertiesUtil.deepCopy(TEST_PROPERTIES);
         Connection conn = DriverManager.getConnection(url, props);
         try {
@@ -830,13 +829,13 @@ public class VariableLengthPKIT extends BaseClientManagedTimeIT {
 
     @Test
     public void testToCharWithFormatOnDate() throws Exception {
-        long ts = nextTimestamp();
-        initPtsdbTableValues(ts);
+        String pTSDBTableName = generateUniqueName();
 
+        initPTSDBTableValues1(pTSDBTableName);
         String format = "HH:mm:ss";
         Format dateFormatter = DateUtil.getDateFormatter(format);
-        String query = "SELECT HOST,TO_CHAR(\"DATE\",'" + format + "') FROM PTSDB WHERE INST='x' AND HOST='y'";
-        String url = getUrl() + ";" + PhoenixRuntime.CURRENT_SCN_ATTRIB + "=" + (ts + 5); // Run query at timestamp 5
+        String query = "SELECT HOST,TO_CHAR(\"DATE\",'" + format + "') FROM "+pTSDBTableName+" WHERE INST='x' AND HOST='y'";
+        String url = getUrl();
         Properties props = PropertiesUtil.deepCopy(TEST_PROPERTIES);
         Connection conn = DriverManager.getConnection(url, props);
         try {
@@ -851,13 +850,14 @@ public class VariableLengthPKIT extends BaseClientManagedTimeIT {
 
     @Test
     public void testToDateWithFormatOnDate() throws Exception {
-        long ts = nextTimestamp();
-        initPtsdbTableValues(ts);
+        String pTSDBTableName = generateUniqueName();
+
+        initPTSDBTableValues1(pTSDBTableName);
 
         String format = "yyyy-MM-dd HH:mm:ss.S";
         Format dateFormatter = DateUtil.getDateFormatter(format);
-        String query = "SELECT HOST,TO_CHAR(\"DATE\",'" + format + "') FROM PTSDB WHERE INST='x' AND HOST='y' and \"DATE\"=TO_DATE(?,'" + format + "')";
-        String url = getUrl() + ";" + PhoenixRuntime.CURRENT_SCN_ATTRIB + "=" + (ts + 5); // Run query at timestamp 5
+        String query = "SELECT HOST,TO_CHAR(\"DATE\",'" + format + "') FROM "+pTSDBTableName+" WHERE INST='x' AND HOST='y' and \"DATE\"=TO_DATE(?,'" + format + "')";
+        String url = getUrl();
         Properties props = PropertiesUtil.deepCopy(TEST_PROPERTIES);
         Connection conn = DriverManager.getConnection(url, props);
         try {
@@ -873,16 +873,15 @@ public class VariableLengthPKIT extends BaseClientManagedTimeIT {
 
     @Test
     public void testMissingPKColumn() throws Exception {
-        long ts = nextTimestamp();
-        ensureTableCreated(getUrl(),PTSDB_NAME, PTSDB_NAME, null, ts-2, null);
-
-        String url = getUrl() + ";" + PhoenixRuntime.CURRENT_SCN_ATTRIB + "=" + ts; // Insert at timestamp 0
+        String pTSDBTableName = generateUniqueName();
+        ensureTableCreated(getUrl(),pTSDBTableName, PTSDB_NAME, null, null, null);
+        String url = getUrl(); // Insert at timestamp 0
         Properties props = PropertiesUtil.deepCopy(TEST_PROPERTIES);
         Connection conn = DriverManager.getConnection(url, props);
         conn.setAutoCommit(true);
         Statement stmt = conn.createStatement();
         try {
-            stmt.execute("upsert into PTSDB(INST,HOST,VAL) VALUES ('abc', 'abc-def-ghi', 0.5)");
+            stmt.execute("upsert into "+pTSDBTableName+"(INST,HOST,VAL) VALUES ('abc', 'abc-def-ghi', 0.5)");
             fail();
         } catch (SQLException e) {
             assertEquals(SQLExceptionCode.CONSTRAINT_VIOLATION.getErrorCode(), e.getErrorCode());
@@ -893,15 +892,15 @@ public class VariableLengthPKIT extends BaseClientManagedTimeIT {
 
     @Test
     public void testNoKVColumn() throws Exception {
-        long ts = nextTimestamp();
-        ensureTableCreated(getUrl(),BTABLE_NAME, BTABLE_NAME, null, ts-2, null);
+        String pTSDBTableName = generateUniqueName();
 
-        String url = getUrl() + ";" + PhoenixRuntime.CURRENT_SCN_ATTRIB + "=" + ts; // Insert at timestamp 0
+        ensureTableCreated(getUrl(),pTSDBTableName, BTABLE_NAME, null, null, null);
+        String url = getUrl(); // Insert at timestamp 0
         Properties props = PropertiesUtil.deepCopy(TEST_PROPERTIES);
         Connection conn = DriverManager.getConnection(url, props);
         conn.setAutoCommit(true);
         PreparedStatement stmt = conn.prepareStatement(
-                "upsert into BTABLE VALUES (?, ?, ?, ?, ?)");
+                "upsert into "+pTSDBTableName+" VALUES (?, ?, ?, ?, ?)");
         stmt.setString(1, "abc");
         stmt.setString(2, "123");
         stmt.setString(3, "x");
@@ -911,54 +910,25 @@ public class VariableLengthPKIT extends BaseClientManagedTimeIT {
         stmt.execute();
     }
 
-    // Broken, since we don't know if insert vs update. @Test
-    public void testMissingKVColumn() throws Exception {
-        long ts = nextTimestamp();
-        ensureTableCreated(getUrl(),BTABLE_NAME, BTABLE_NAME, null, ts-2, null);
-
-        String url = getUrl() + ";" + PhoenixRuntime.CURRENT_SCN_ATTRIB + "=" + ts; // Insert at timestamp 0
-        Properties props = PropertiesUtil.deepCopy(TEST_PROPERTIES);
-        Connection conn = DriverManager.getConnection(url, props);
-        conn.setAutoCommit(true);
-        PreparedStatement stmt = conn.prepareStatement(
-                "upsert into BTABLE VALUES (?, ?, ?, ?, ?, ?)");
-        stmt.setString(1, "abc");
-        stmt.setString(2, "123");
-        stmt.setString(3, "x");
-        stmt.setInt(4, 1);
-        stmt.setString(5, "ab");
-        stmt.setInt(6, 1);
-        try {
-            stmt.execute();
-            fail();
-        } catch (ConstraintViolationException e) {
-            // Non nullable key value E_STRING has no value
-            assertTrue(e.getMessage().contains("may not be null"));
-        } finally {
-            conn.close();
-        }
-    }
-
     @Test
     public void testTooShortKVColumn() throws Exception {
-        long ts = nextTimestamp();
-        ensureTableCreated(getUrl(),BTABLE_NAME, BTABLE_NAME, null, ts-2, null);
-
-        String url = getUrl() + ";" + PhoenixRuntime.CURRENT_SCN_ATTRIB + "=" + ts; // Insert at timestamp 0
+        String pTSDBTableName = generateUniqueName();
+        ensureTableCreated(getUrl(),pTSDBTableName, BTABLE_NAME, null, null, null);
+        String url = getUrl(); // Insert at timestamp 0
         Properties props = PropertiesUtil.deepCopy(TEST_PROPERTIES);
         Connection conn = DriverManager.getConnection(url, props);
         conn.setAutoCommit(true);
         // Insert all rows at ts
         PreparedStatement stmt = conn.prepareStatement(
-                "upsert into " +
-                "BTABLE(" +
-                "    A_STRING, " +
-                "    A_ID," +
-                "    B_STRING," +
-                "    A_INTEGER," +
-                "    C_STRING," +
-                "    E_STRING)" +
-                "VALUES (?, ?, ?, ?, ?, ?)");
+                "upsert into " + pTSDBTableName +
+                        " (" +
+                        "    A_STRING, " +
+                        "    A_ID," +
+                        "    B_STRING," +
+                        "    A_INTEGER," +
+                        "    C_STRING," +
+                        "    E_STRING)" +
+                        "VALUES (?, ?, ?, ?, ?, ?)");
         stmt.setString(1, "abc");
         stmt.setString(2, "123");
         stmt.setString(3, "x");
@@ -977,24 +947,23 @@ public class VariableLengthPKIT extends BaseClientManagedTimeIT {
 
     @Test
     public void testTooShortPKColumn() throws Exception {
-        long ts = nextTimestamp();
-        ensureTableCreated(getUrl(),BTABLE_NAME, BTABLE_NAME, null, ts-2, null);
-
-        String url = getUrl() + ";" + PhoenixRuntime.CURRENT_SCN_ATTRIB + "=" + ts; // Insert at timestamp 0
+        String pTSDBTableName = generateUniqueName();
+        ensureTableCreated(getUrl(),pTSDBTableName, BTABLE_NAME, null, null, null);
+        String url = getUrl(); // Insert at timestamp 0
         Properties props = PropertiesUtil.deepCopy(TEST_PROPERTIES);
         Connection conn = DriverManager.getConnection(url, props);
         conn.setAutoCommit(true);
         // Insert all rows at ts
         PreparedStatement stmt = conn.prepareStatement(
-                "upsert into " +
-                "BTABLE(" +
-                "    A_STRING, " +
-                "    A_ID," +
-                "    B_STRING," +
-                "    A_INTEGER," +
-                "    C_STRING," +
-                "    E_STRING)" +
-                "VALUES (?, ?, ?, ?, ?, ?)");
+                "upsert into " + pTSDBTableName+
+                        " (" +
+                        "    A_STRING, " +
+                        "    A_ID," +
+                        "    B_STRING," +
+                        "    A_INTEGER," +
+                        "    C_STRING," +
+                        "    E_STRING)" +
+                        "VALUES (?, ?, ?, ?, ?, ?)");
         stmt.setString(1, "abc");
         stmt.setString(2, "12");
         stmt.setString(3, "x");
@@ -1013,24 +982,23 @@ public class VariableLengthPKIT extends BaseClientManagedTimeIT {
 
     @Test
     public void testTooLongPKColumn() throws Exception {
-        long ts = nextTimestamp();
-        ensureTableCreated(getUrl(),BTABLE_NAME, BTABLE_NAME, null, ts-2, null);
-
-        String url = getUrl() + ";" + PhoenixRuntime.CURRENT_SCN_ATTRIB + "=" + ts; // Insert at timestamp 0
+        String bTableName = generateUniqueName();
+        ensureTableCreated(getUrl(),bTableName, BTABLE_NAME, null, null, null);
+        String url = getUrl(); // Insert at timestamp 0
         Properties props = PropertiesUtil.deepCopy(TEST_PROPERTIES);
         Connection conn = DriverManager.getConnection(url, props);
         conn.setAutoCommit(true);
         // Insert all rows at ts
         PreparedStatement stmt = conn.prepareStatement(
-                "upsert into " +
-                "BTABLE(" +
-                "    A_STRING, " +
-                "    A_ID," +
-                "    B_STRING," +
-                "    A_INTEGER," +
-                "    C_STRING," +
-                "    E_STRING)" +
-                "VALUES (?, ?, ?, ?, ?, ?)");
+                "upsert into " + bTableName+
+                        "(" +
+                        "    A_STRING, " +
+                        "    A_ID," +
+                        "    B_STRING," +
+                        "    A_INTEGER," +
+                        "    C_STRING," +
+                        "    E_STRING)" +
+                        "VALUES (?, ?, ?, ?, ?, ?)");
         stmt.setString(1, "abc");
         stmt.setString(2, "123");
         stmt.setString(3, "x");
@@ -1050,25 +1018,24 @@ public class VariableLengthPKIT extends BaseClientManagedTimeIT {
 
     @Test
     public void testTooLongKVColumn() throws Exception {
-        long ts = nextTimestamp();
-        ensureTableCreated(getUrl(),BTABLE_NAME, BTABLE_NAME, null, ts-2, null);
-
-        String url = getUrl() + ";" + PhoenixRuntime.CURRENT_SCN_ATTRIB + "=" + ts; // Insert at timestamp 0
+        String bTableName = generateUniqueName();
+        ensureTableCreated(getUrl(),bTableName, BTABLE_NAME, null, null, null);
+        String url = getUrl(); // Insert at timestamp 0
         Properties props = PropertiesUtil.deepCopy(TEST_PROPERTIES);
         Connection conn = DriverManager.getConnection(url, props);
         conn.setAutoCommit(true);
         // Insert all rows at ts
         PreparedStatement stmt = conn.prepareStatement(
-                "upsert into " +
-                "BTABLE(" +
-                "    A_STRING, " +
-                "    A_ID," +
-                "    B_STRING," +
-                "    A_INTEGER," +
-                "    C_STRING," +
-                "    D_STRING," +
-                "    E_STRING)" +
-                "VALUES (?, ?, ?, ?, ?, ?, ?)");
+                "upsert into " + bTableName+
+                        "(" +
+                        "    A_STRING, " +
+                        "    A_ID," +
+                        "    B_STRING," +
+                        "    A_INTEGER," +
+                        "    C_STRING," +
+                        "    D_STRING," +
+                        "    E_STRING)" +
+                        "VALUES (?, ?, ?, ?, ?, ?, ?)");
         stmt.setString(1, "abc");
         stmt.setString(2, "123");
         stmt.setString(3, "x");
@@ -1089,13 +1056,13 @@ public class VariableLengthPKIT extends BaseClientManagedTimeIT {
 
     @Test
     public void testMultiFixedLengthNull() throws Exception {
-        long ts = nextTimestamp();
-        String query = "SELECT B_INTEGER,C_INTEGER,COUNT(1) FROM BTABLE GROUP BY B_INTEGER,C_INTEGER";
-        String url = getUrl() + ";" + PhoenixRuntime.CURRENT_SCN_ATTRIB + "=" + (ts + 5); // Run query at timestamp 5
+        String bTableName = generateUniqueName();
+        String query = "SELECT B_INTEGER,C_INTEGER,COUNT(1) FROM "+bTableName+" GROUP BY B_INTEGER,C_INTEGER";
+        String url = getUrl();
         Properties props = PropertiesUtil.deepCopy(TEST_PROPERTIES);
         Connection conn = DriverManager.getConnection(url, props);
         try {
-            initTableValues(null, ts);
+            initBTableValues(null, bTableName);
             PreparedStatement statement = conn.prepareStatement(query);
             ResultSet rs = statement.executeQuery();
             assertTrue(rs.next());
@@ -1124,13 +1091,13 @@ public class VariableLengthPKIT extends BaseClientManagedTimeIT {
 
     @Test
     public void testSingleFixedLengthNull() throws Exception {
-        long ts = nextTimestamp();
-        String query = "SELECT C_INTEGER,COUNT(1) FROM BTABLE GROUP BY C_INTEGER";
-        String url = getUrl() + ";" + PhoenixRuntime.CURRENT_SCN_ATTRIB + "=" + (ts + 5); // Run query at timestamp 5
+        String bTableName = generateUniqueName();
+        String query = "SELECT C_INTEGER,COUNT(1) FROM "+bTableName+" GROUP BY C_INTEGER";
+        String url = getUrl();
         Properties props = PropertiesUtil.deepCopy(TEST_PROPERTIES);
         Connection conn = DriverManager.getConnection(url, props);
         try {
-            initTableValues(null, ts);
+            initBTableValues(null,bTableName);
             PreparedStatement statement = conn.prepareStatement(query);
             ResultSet rs = statement.executeQuery();
             assertTrue(rs.next());
@@ -1150,13 +1117,13 @@ public class VariableLengthPKIT extends BaseClientManagedTimeIT {
 
     @Test
     public void testMultiMixedTypeGroupBy() throws Exception {
-        long ts = nextTimestamp();
-        String query = "SELECT A_ID, E_STRING, D_STRING, C_INTEGER, COUNT(1) FROM BTABLE GROUP BY A_ID, E_STRING, D_STRING, C_INTEGER";
-        String url = getUrl() + ";" + PhoenixRuntime.CURRENT_SCN_ATTRIB + "=" + (ts + 5); // Run query at timestamp 5
+        String bTableName = generateUniqueName();
+        String query = "SELECT A_ID, E_STRING, D_STRING, C_INTEGER, COUNT(1) FROM "+bTableName+" GROUP BY A_ID, E_STRING, D_STRING, C_INTEGER";
+        String url = getUrl();
         Properties props = PropertiesUtil.deepCopy(TEST_PROPERTIES);
         Connection conn = DriverManager.getConnection(url, props);
         try {
-            initTableValues(null, ts);
+            initBTableValues(null,bTableName);
             PreparedStatement statement = conn.prepareStatement(query);
             ResultSet rs = statement.executeQuery();
             assertTrue(rs.next());
@@ -1189,46 +1156,48 @@ public class VariableLengthPKIT extends BaseClientManagedTimeIT {
 
     @Test
     public void testSubstrFunction() throws Exception {
-        long ts = nextTimestamp();
+        String bTableName = generateUniqueName();
+        String varcharKeyTestTable = generateUniqueName();
         String query[] = {
-            "SELECT substr('ABC',-1,1) FROM BTABLE LIMIT 1",
-            "SELECT substr('ABC',-4,1) FROM BTABLE LIMIT 1",
-            "SELECT substr('ABC',2,4) FROM BTABLE LIMIT 1",
-            "SELECT substr('ABC',1,1) FROM BTABLE LIMIT 1",
-            "SELECT substr('ABC',0,1) FROM BTABLE LIMIT 1",
-            // Test for multibyte characters support.
-            "SELECT substr('ĎďĒ',0,1) FROM BTABLE LIMIT 1",
-            "SELECT substr('ĎďĒ',0,2) FROM BTABLE LIMIT 1",
-            "SELECT substr('ĎďĒ',1,1) FROM BTABLE LIMIT 1",
-            "SELECT substr('ĎďĒ',1,2) FROM BTABLE LIMIT 1",
-            "SELECT substr('ĎďĒ',2,1) FROM BTABLE LIMIT 1",
-            "SELECT substr('ĎďĒ',2,2) FROM BTABLE LIMIT 1",
-            "SELECT substr('ĎďĒ',-1,1) FROM BTABLE LIMIT 1",
-            "SELECT substr('Ďďɚʍ',2,4) FROM BTABLE LIMIT 1",
-            "SELECT pk FROM VarcharKeyTest WHERE substr(pk, 0, 3)='jkl'",
+                "SELECT substr('ABC',-1,1) FROM "+bTableName+" LIMIT 1",
+                "SELECT substr('ABC',-4,1) FROM "+bTableName+" LIMIT 1",
+                "SELECT substr('ABC',2,4) FROM "+bTableName+" LIMIT 1",
+                "SELECT substr('ABC',1,1) FROM "+bTableName+" LIMIT 1",
+                "SELECT substr('ABC',0,1) FROM "+bTableName+" LIMIT 1",
+                // Test for multibyte characters support.
+                "SELECT substr('ĎďĒ',0,1) FROM "+bTableName+" LIMIT 1",
+                "SELECT substr('ĎďĒ',0,2) FROM "+bTableName+" LIMIT 1",
+                "SELECT substr('ĎďĒ',1,1) FROM "+bTableName+" LIMIT 1",
+                "SELECT substr('ĎďĒ',1,2) FROM "+bTableName+" LIMIT 1",
+                "SELECT substr('ĎďĒ',2,1) FROM "+bTableName+" LIMIT 1",
+                "SELECT substr('ĎďĒ',2,2) FROM "+bTableName+" LIMIT 1",
+                "SELECT substr('ĎďĒ',-1,1) FROM "+bTableName+" LIMIT 1",
+                "SELECT substr('Ďďɚʍ',2,4) FROM "+bTableName+" LIMIT 1",
+                "SELECT pk FROM "+varcharKeyTestTable+" WHERE substr(pk, 0, 3)='jkl'",
         };
         String result[] = {
-            "C",
-            null,
-            "BC",
-            "A",
-            "A",
-            "Ď",
-            "Ďď",
-            "Ď",
-            "Ďď",
-            "ď",
-            "ďĒ",
-            "Ē",
-            "ďɚʍ",
-            "jkl   ",
+                "C",
+                null,
+                "BC",
+                "A",
+                "A",
+                "Ď",
+                "Ďď",
+                "Ď",
+                "Ďď",
+                "ď",
+                "ďĒ",
+                "Ē",
+                "ďɚʍ",
+                "jkl   ",
         };
         assertEquals(query.length,result.length);
-        String url = getUrl() + ";" + PhoenixRuntime.CURRENT_SCN_ATTRIB + "=" + (ts + 5); // Run query at timestamp 5
+        String url = getUrl();
         Properties props = PropertiesUtil.deepCopy(TEST_PROPERTIES);
         Connection conn = DriverManager.getConnection(url, props);
         try {
-            initTableValues(null, ts);
+            initBTableValues(null,bTableName);
+            initVarcharKeyTableValues(null,varcharKeyTestTable);
             for (int i = 0; i < query.length; i++) {
                 PreparedStatement statement = conn.prepareStatement(query[i]);
                 ResultSet rs = statement.executeQuery();
@@ -1243,51 +1212,51 @@ public class VariableLengthPKIT extends BaseClientManagedTimeIT {
 
     @Test
     public void testRegexReplaceFunction() throws Exception {
-        long ts = nextTimestamp();
+        String bTableName = generateUniqueName();
         // NOTE: we need to double escape the "\\" here because conn.prepareStatement would
         // also try to evaluate the escaping. As a result, to represent what normally would be
         // a "\d" in this test, it would become "\\\\d".
         String query[] = {
-            "SELECT regexp_replace('', '') FROM BTABLE LIMIT 1",
-            "SELECT regexp_replace('', 'abc', 'def') FROM BTABLE LIMIT 1",
-            "SELECT regexp_replace('123abcABC', '[a-z]+') FROM BTABLE LIMIT 1",
-            "SELECT regexp_replace('123-abc-ABC', '-[a-zA-Z-]+') FROM BTABLE LIMIT 1",
-            "SELECT regexp_replace('abcABC123', '\\\\d+', '') FROM BTABLE LIMIT 1",
-            "SELECT regexp_replace('abcABC123', '\\\\D+', '') FROM BTABLE LIMIT 1",
-            "SELECT regexp_replace('abc', 'abc', 'def') FROM BTABLE LIMIT 1",
-            "SELECT regexp_replace('abc123ABC', '\\\\d+', 'def') FROM BTABLE LIMIT 1",
-            "SELECT regexp_replace('abc123ABC', '[0-9]+', '#') FROM BTABLE LIMIT 1",
-            "SELECT CASE WHEN regexp_replace('abcABC123', '[a-zA-Z]+') = '123' THEN '1' ELSE '2' END FROM BTABLE LIMIT 1",
-            "SELECT A_STRING FROM BTABLE WHERE A_ID = regexp_replace('abcABC111', '[a-zA-Z]+') LIMIT 1", // 111
-            // Test for multibyte characters support.
-            "SELECT regexp_replace('Ďď Ēĕ ĜĞ ϗϘϛϢ', '[a-zA-Z]+') from BTABLE LIMIT 1",
-            "SELECT regexp_replace('Ďď Ēĕ ĜĞ ϗϘϛϢ', '[Ď-ě]+', '#') from BTABLE LIMIT 1",
-            "SELECT regexp_replace('Ďď Ēĕ ĜĞ ϗϘϛϢ', '.+', 'replacement') from BTABLE LIMIT 1",
-            "SELECT regexp_replace('Ďď Ēĕ ĜĞ ϗϘϛϢ', 'Ďď', 'DD') from BTABLE LIMIT 1",
+                "SELECT regexp_replace('', '') FROM "+bTableName+" LIMIT 1",
+                "SELECT regexp_replace('', 'abc', 'def') FROM "+bTableName+" LIMIT 1",
+                "SELECT regexp_replace('123abcABC', '[a-z]+') FROM "+bTableName+" LIMIT 1",
+                "SELECT regexp_replace('123-abc-ABC', '-[a-zA-Z-]+') FROM "+bTableName+" LIMIT 1",
+                "SELECT regexp_replace('abcABC123', '\\\\d+', '') FROM "+bTableName+" LIMIT 1",
+                "SELECT regexp_replace('abcABC123', '\\\\D+', '') FROM "+bTableName+" LIMIT 1",
+                "SELECT regexp_replace('abc', 'abc', 'def') FROM "+bTableName+" LIMIT 1",
+                "SELECT regexp_replace('abc123ABC', '\\\\d+', 'def') FROM "+bTableName+" LIMIT 1",
+                "SELECT regexp_replace('abc123ABC', '[0-9]+', '#') FROM "+bTableName+" LIMIT 1",
+                "SELECT CASE WHEN regexp_replace('abcABC123', '[a-zA-Z]+') = '123' THEN '1' ELSE '2' END FROM "+bTableName+" LIMIT 1",
+                "SELECT A_STRING FROM "+bTableName+" WHERE A_ID = regexp_replace('abcABC111', '[a-zA-Z]+') LIMIT 1", // 111
+                // Test for multibyte characters support.
+                "SELECT regexp_replace('Ďď Ēĕ ĜĞ ϗϘϛϢ', '[a-zA-Z]+') FROM "+bTableName+" LIMIT 1",
+                "SELECT regexp_replace('Ďď Ēĕ ĜĞ ϗϘϛϢ', '[Ď-ě]+', '#') FROM "+bTableName+" LIMIT 1",
+                "SELECT regexp_replace('Ďď Ēĕ ĜĞ ϗϘϛϢ', '.+', 'replacement') FROM "+bTableName+" LIMIT 1",
+                "SELECT regexp_replace('Ďď Ēĕ ĜĞ ϗϘϛϢ', 'Ďď', 'DD') FROM "+bTableName+" LIMIT 1",
         };
         String result[] = {
-            null,
-            null,
-            "123ABC",
-            "123",
-            "abcABC",
-            "123",
-            "def",
-            "abcdefABC",
-            "abc#ABC",
-            "1",
-            "abc", // the first column
-            "Ďď Ēĕ ĜĞ ϗϘϛϢ",
-            "# # ĜĞ ϗϘϛϢ",
-            "replacement",
-            "DD Ēĕ ĜĞ ϗϘϛϢ",
+                null,
+                null,
+                "123ABC",
+                "123",
+                "abcABC",
+                "123",
+                "def",
+                "abcdefABC",
+                "abc#ABC",
+                "1",
+                "abc", // the first column
+                "Ďď Ēĕ ĜĞ ϗϘϛϢ",
+                "# # ĜĞ ϗϘϛϢ",
+                "replacement",
+                "DD Ēĕ ĜĞ ϗϘϛϢ",
         };
         assertEquals(query.length,result.length);
-        String url = getUrl() + ";" + PhoenixRuntime.CURRENT_SCN_ATTRIB + "=" + (ts + 5); // Run query at timestamp 5
+        String url = getUrl();
         Properties props = PropertiesUtil.deepCopy(TEST_PROPERTIES);
         Connection conn = DriverManager.getConnection(url, props);
         try {
-            initTableValues(null, ts);
+            initBTableValues(null,bTableName);
             for (int i = 0; i < query.length; i++) {
                 PreparedStatement statement = conn.prepareStatement(query[i]);
                 ResultSet rs = statement.executeQuery();
@@ -1302,54 +1271,54 @@ public class VariableLengthPKIT extends BaseClientManagedTimeIT {
 
     @Test
     public void testRegexpSubstrFunction() throws Exception {
-        long ts = nextTimestamp();
+        String bTableName = generateUniqueName();
         String query[] = {
-            "SELECT regexp_substr('', '', 0) FROM BTABLE LIMIT 1",
-            "SELECT regexp_substr('', '', 1) FROM BTABLE LIMIT 1",
-            "SELECT regexp_substr('', 'abc', 0) FROM BTABLE LIMIT 1",
-            "SELECT regexp_substr('abc', '', 0) FROM BTABLE LIMIT 1",
-            "SELECT regexp_substr('123', '123', 3) FROM BTABLE LIMIT 1",
-            "SELECT regexp_substr('123', '123', -4) FROM BTABLE LIMIT 1",
-            "SELECT regexp_substr('123ABC', '[a-z]+', 0) FROM BTABLE LIMIT 1",
-            "SELECT regexp_substr('123ABC', '[0-9]+', 4) FROM BTABLE LIMIT 1",
-            "SELECT regexp_substr('123ABCabc', '\\\\d+', 0) FROM BTABLE LIMIT 1",
-            "SELECT regexp_substr('123ABCabc', '\\\\D+', 0) FROM BTABLE LIMIT 1",
-            "SELECT regexp_substr('123ABCabc', '\\\\D+', 4) FROM BTABLE LIMIT 1",
-            "SELECT regexp_substr('123ABCabc', '\\\\D+', 7) FROM BTABLE LIMIT 1",
-            "SELECT regexp_substr('na11-app5-26-sjl', '[^-]+', 0) FROM BTABLE LIMIT 1",
-            "SELECT regexp_substr('na11-app5-26-sjl', '[^-]+') FROM BTABLE LIMIT 1",
-            // Test for multibyte characters support.
-            "SELECT regexp_substr('ĎďĒĕĜĞ', '.+') from BTABLE LIMIT 1",
-            "SELECT regexp_substr('ĎďĒĕĜĞ', '.+', 3) from BTABLE LIMIT 1",
-            "SELECT regexp_substr('ĎďĒĕĜĞ', '[a-zA-Z]+', 0) from BTABLE LIMIT 1",
-            "SELECT regexp_substr('ĎďĒĕĜĞ', '[Ď-ě]+', 3) from BTABLE LIMIT 1",
+                "SELECT regexp_substr('', '', 0) FROM "+bTableName+" LIMIT 1",
+                "SELECT regexp_substr('', '', 1) FROM "+bTableName+" LIMIT 1",
+                "SELECT regexp_substr('', 'abc', 0) FROM "+bTableName+" LIMIT 1",
+                "SELECT regexp_substr('abc', '', 0) FROM "+bTableName+" LIMIT 1",
+                "SELECT regexp_substr('123', '123', 3) FROM "+bTableName+" LIMIT 1",
+                "SELECT regexp_substr('123', '123', -4) FROM "+bTableName+" LIMIT 1",
+                "SELECT regexp_substr('123ABC', '[a-z]+', 0) FROM "+bTableName+" LIMIT 1",
+                "SELECT regexp_substr('123ABC', '[0-9]+', 4) FROM "+bTableName+" LIMIT 1",
+                "SELECT regexp_substr('123ABCabc', '\\\\d+', 0) FROM "+bTableName+" LIMIT 1",
+                "SELECT regexp_substr('123ABCabc', '\\\\D+', 0) FROM "+bTableName+" LIMIT 1",
+                "SELECT regexp_substr('123ABCabc', '\\\\D+', 4) FROM "+bTableName+" LIMIT 1",
+                "SELECT regexp_substr('123ABCabc', '\\\\D+', 7) FROM "+bTableName+" LIMIT 1",
+                "SELECT regexp_substr('na11-app5-26-sjl', '[^-]+', 0) FROM "+bTableName+" LIMIT 1",
+                "SELECT regexp_substr('na11-app5-26-sjl', '[^-]+') FROM "+bTableName+" LIMIT 1",
+                // Test for multibyte characters support.
+                "SELECT regexp_substr('ĎďĒĕĜĞ', '.+') FROM "+bTableName+" LIMIT 1",
+                "SELECT regexp_substr('ĎďĒĕĜĞ', '.+', 3) FROM "+bTableName+" LIMIT 1",
+                "SELECT regexp_substr('ĎďĒĕĜĞ', '[a-zA-Z]+', 0) FROM "+bTableName+" LIMIT 1",
+                "SELECT regexp_substr('ĎďĒĕĜĞ', '[Ď-ě]+', 3) FROM "+bTableName+" LIMIT 1",
         };
         String result[] = {
-            null,
-            null,
-            null,
-            null,
-            null,
-            null,
-            null,
-            null,
-            "123",
-            "ABCabc",
-            "ABCabc",
-            "abc",
-            "na11",
-            "na11",
-            "ĎďĒĕĜĞ",
-            "ĒĕĜĞ",
-            null,
-            "Ēĕ",
+                null,
+                null,
+                null,
+                null,
+                null,
+                null,
+                null,
+                null,
+                "123",
+                "ABCabc",
+                "ABCabc",
+                "abc",
+                "na11",
+                "na11",
+                "ĎďĒĕĜĞ",
+                "ĒĕĜĞ",
+                null,
+                "Ēĕ",
         };
         assertEquals(query.length,result.length);
-        String url = getUrl() + ";" + PhoenixRuntime.CURRENT_SCN_ATTRIB + "=" + (ts + 5); // Run query at timestamp 5
+        String url = getUrl();
         Properties props = PropertiesUtil.deepCopy(TEST_PROPERTIES);
         Connection conn = DriverManager.getConnection(url, props);
         try {
-            initTableValues(null, ts);
+            initBTableValues(null,bTableName);
             for (int i = 0; i < query.length; i++) {
                 PreparedStatement statement = conn.prepareStatement(query[i]);
                 ResultSet rs = statement.executeQuery();
@@ -1364,17 +1333,15 @@ public class VariableLengthPKIT extends BaseClientManagedTimeIT {
 
     @Test
     public void testRegexpSubstrFunction2() throws Exception {
-        long ts = nextTimestamp();
+        String tTableName = generateUniqueName();
         String url = getUrl();
         Properties props = PropertiesUtil.deepCopy(TEST_PROPERTIES);
-        props.setProperty(PhoenixRuntime.CURRENT_SCN_ATTRIB, Long.toString(ts));
         Connection conn = DriverManager.getConnection(url, props);
-        String ddl = "create table t (k INTEGER NOT NULL PRIMARY KEY, name VARCHAR)";
+        String ddl = "create table " + tTableName + " (k INTEGER NOT NULL PRIMARY KEY, name VARCHAR)";
         conn.createStatement().execute(ddl);
         conn.close();
 
-        String dml = "upsert into t values(?,?)";
-        props.setProperty(PhoenixRuntime.CURRENT_SCN_ATTRIB, Long.toString(ts+2));
+        String dml = "upsert into " + tTableName + " values(?,?)";
         conn = DriverManager.getConnection(url, props);
         PreparedStatement stmt = conn.prepareStatement(dml);
         String[] values = new String[] {"satax","jruls","hrjcu","yqtrv","jjcvw"};
@@ -1388,8 +1355,7 @@ public class VariableLengthPKIT extends BaseClientManagedTimeIT {
 
         // This matches what Oracle returns for regexp_substr, even through
         // it seems oke for "satax", it should return null.
-        String query = "select regexp_substr(name,'[^s]+',1) from t limit 5";
-        props.setProperty(PhoenixRuntime.CURRENT_SCN_ATTRIB, Long.toString(ts+5));
+        String query = "select regexp_substr(name,'[^s]+',1) from " + tTableName + " limit 5";
         conn = DriverManager.getConnection(url, props);
         ResultSet rs = conn.createStatement().executeQuery(query);
         int count = 0;
@@ -1402,27 +1368,27 @@ public class VariableLengthPKIT extends BaseClientManagedTimeIT {
 
     @Test
     public void testLikeConstant() throws Exception {
-        long ts = nextTimestamp();
+        String bTableName = generateUniqueName();
         String query[] = {
-            "SELECT CASE WHEN 'ABC' LIKE '' THEN '1' ELSE '2' END FROM BTABLE LIMIT 1",
-            "SELECT CASE WHEN 'ABC' LIKE 'A_' THEN '1' ELSE '2' END FROM BTABLE LIMIT 1",
-            "SELECT CASE WHEN 'ABC' LIKE 'A__' THEN '1' ELSE '2' END FROM BTABLE LIMIT 1",
-            "SELECT CASE WHEN 'AB_C' LIKE 'AB\\_C' THEN '1' ELSE '2' END FROM BTABLE LIMIT 1",
-            "SELECT CASE WHEN 'ABC%DE' LIKE 'ABC\\%D%' THEN '1' ELSE '2' END FROM BTABLE LIMIT 1",
+                "SELECT CASE WHEN 'ABC' LIKE '' THEN '1' ELSE '2' END FROM "+bTableName+" LIMIT 1",
+                "SELECT CASE WHEN 'ABC' LIKE 'A_' THEN '1' ELSE '2' END FROM "+bTableName+" LIMIT 1",
+                "SELECT CASE WHEN 'ABC' LIKE 'A__' THEN '1' ELSE '2' END FROM "+bTableName+" LIMIT 1",
+                "SELECT CASE WHEN 'AB_C' LIKE 'AB\\_C' THEN '1' ELSE '2' END FROM "+bTableName+" LIMIT 1",
+                "SELECT CASE WHEN 'ABC%DE' LIKE 'ABC\\%D%' THEN '1' ELSE '2' END FROM "+bTableName+" LIMIT 1",
         };
         String result[] = {
-            "2",
-            "2",
-            "1",
-            "1",
-            "1",
+                "2",
+                "2",
+                "1",
+                "1",
+                "1",
         };
         assertEquals(query.length,result.length);
-        String url = getUrl() + ";" + PhoenixRuntime.CURRENT_SCN_ATTRIB + "=" + (ts + 5); // Run query at timestamp 5
+        String url = getUrl();
         Properties props = PropertiesUtil.deepCopy(TEST_PROPERTIES);
         Connection conn = DriverManager.getConnection(url, props);
         try {
-            initTableValues(null, ts);
+            initBTableValues(null,bTableName);
             for (int i = 0; i < query.length; i++) {
                 PreparedStatement statement = conn.prepareStatement(query[i]);
                 ResultSet rs = statement.executeQuery();
@@ -1437,35 +1403,36 @@ public class VariableLengthPKIT extends BaseClientManagedTimeIT {
 
     @Test
     public void testInListConstant() throws Exception {
-        long ts = nextTimestamp();
+        String bTableName = generateUniqueName();
+
         String query[] = {
-            "SELECT CASE WHEN 'a' IN (null,'a') THEN '1' ELSE '2' END FROM BTABLE LIMIT 1",
-            "SELECT CASE WHEN NOT 'a' IN (null,'b') THEN '1' ELSE '2' END FROM BTABLE LIMIT 1",
-            "SELECT CASE WHEN 'a' IN (null,'b') THEN '1' ELSE '2' END FROM BTABLE LIMIT 1",
-            "SELECT CASE WHEN NOT 'a' IN ('c','b') THEN '1' ELSE '2' END FROM BTABLE LIMIT 1",
-            "SELECT CASE WHEN 1 IN ('foo',2,1) THEN '1' ELSE '2' END FROM BTABLE LIMIT 1",
-            "SELECT CASE WHEN NOT null IN ('c','b') THEN '1' ELSE '2' END FROM BTABLE LIMIT 1",
-            "SELECT CASE WHEN NOT null IN (null,'c','b') THEN '1' ELSE '2' END FROM BTABLE LIMIT 1",
-            "SELECT CASE WHEN null IN (null,'c','b') THEN '1' ELSE '2' END FROM BTABLE LIMIT 1",
-            "SELECT CASE WHEN 'a' IN (null,1) THEN '1' ELSE '2' END FROM BTABLE LIMIT 1",
+                "SELECT CASE WHEN 'a' IN (null,'a') THEN '1' ELSE '2' END FROM "+bTableName+" LIMIT 1",
+                "SELECT CASE WHEN NOT 'a' IN (null,'b') THEN '1' ELSE '2' END FROM "+bTableName+" LIMIT 1",
+                "SELECT CASE WHEN 'a' IN (null,'b') THEN '1' ELSE '2' END FROM "+bTableName+" LIMIT 1",
+                "SELECT CASE WHEN NOT 'a' IN ('c','b') THEN '1' ELSE '2' END FROM "+bTableName+" LIMIT 1",
+                "SELECT CASE WHEN 1 IN ('foo',2,1) THEN '1' ELSE '2' END FROM "+bTableName+" LIMIT 1",
+                "SELECT CASE WHEN NOT null IN ('c','b') THEN '1' ELSE '2' END FROM "+bTableName+" LIMIT 1",
+                "SELECT CASE WHEN NOT null IN (null,'c','b') THEN '1' ELSE '2' END FROM "+bTableName+" LIMIT 1",
+                "SELECT CASE WHEN null IN (null,'c','b') THEN '1' ELSE '2' END FROM "+bTableName+" LIMIT 1",
+                "SELECT CASE WHEN 'a' IN (null,1) THEN '1' ELSE '2' END FROM "+bTableName+" LIMIT 1",
         };
         String result[] = {
-            "1",
-            "1",
-            "2",
-            "1",
-            "1",
-            "2",
-            "2",
-            "2",
-            "2"
+                "1",
+                "1",
+                "2",
+                "1",
+                "1",
+                "2",
+                "2",
+                "2",
+                "2"
         };
         assertEquals(query.length,result.length);
-        String url = getUrl() + ";" + PhoenixRuntime.CURRENT_SCN_ATTRIB + "=" + (ts + 5); // Run query at timestamp 5
+        String url = getUrl();
         Properties props = PropertiesUtil.deepCopy(TEST_PROPERTIES);
         Connection conn = DriverManager.getConnection(url, props);
         try {
-            initTableValues(null, ts);
+            initBTableValues(null,bTableName);
             for (int i = 0; i < query.length; i++) {
                 PreparedStatement statement = conn.prepareStatement(query[i]);
                 ResultSet rs = statement.executeQuery();
@@ -1480,14 +1447,13 @@ public class VariableLengthPKIT extends BaseClientManagedTimeIT {
 
     @Test
     public void testLikeOnColumn() throws Exception {
-        long ts = nextTimestamp();
-        ensureTableCreated(getUrl(),PTSDB_NAME, PTSDB_NAME, null, ts-2, null);
-
+        String pTSDBTableName = generateUniqueName();
+        ensureTableCreated(getUrl(),pTSDBTableName, PTSDB_NAME, null, null, null);
         // Insert all rows at ts
-        String url = getUrl() + ";" + PhoenixRuntime.CURRENT_SCN_ATTRIB + "=" + ts;
+        String url = getUrl();
         Properties props = PropertiesUtil.deepCopy(TEST_PROPERTIES);
         Connection conn = DriverManager.getConnection(url, props);
-        PreparedStatement stmt = conn.prepareStatement("upsert into PTSDB VALUES (?, ?, ?, 0.5)");
+        PreparedStatement stmt = conn.prepareStatement("upsert into "+pTSDBTableName+" VALUES (?, ?, ?, 0.5)");
         stmt.setDate(3, D1);
 
         stmt.setString(1, "a");
@@ -1521,13 +1487,13 @@ public class VariableLengthPKIT extends BaseClientManagedTimeIT {
         conn.commit();
         conn.close();
 
-        url = getUrl() + ";" + PhoenixRuntime.CURRENT_SCN_ATTRIB + "=" + (ts + 5); // Run query at timestamp 5
+        url = getUrl();
         conn = DriverManager.getConnection(url, props);
         PreparedStatement statement;
         ResultSet rs;
         try {
             // Test 1
-            statement = conn.prepareStatement("SELECT INST FROM PTSDB WHERE INST LIKE 'x%'");
+            statement = conn.prepareStatement("SELECT INST FROM "+pTSDBTableName+" WHERE INST LIKE 'x%'");
             rs = statement.executeQuery();
 
             assertTrue(rs.next());
@@ -1548,7 +1514,7 @@ public class VariableLengthPKIT extends BaseClientManagedTimeIT {
             assertFalse(rs.next());
 
             // Test 2
-            statement = conn.prepareStatement("SELECT INST FROM PTSDB WHERE INST LIKE 'xy_a%'");
+            statement = conn.prepareStatement("SELECT INST FROM "+pTSDBTableName+" WHERE INST LIKE 'xy_a%'");
             rs = statement.executeQuery();
 
             assertTrue(rs.next());
@@ -1560,7 +1526,7 @@ public class VariableLengthPKIT extends BaseClientManagedTimeIT {
             assertFalse(rs.next());
 
             // Test 3
-            statement = conn.prepareStatement("SELECT INST FROM PTSDB WHERE INST NOT LIKE 'xy_a%'");
+            statement = conn.prepareStatement("SELECT INST FROM "+pTSDBTableName+" WHERE INST NOT LIKE 'xy_a%'");
             rs = statement.executeQuery();
 
             assertTrue(rs.next());
@@ -1581,12 +1547,12 @@ public class VariableLengthPKIT extends BaseClientManagedTimeIT {
             assertFalse(rs.next());
 
             // Test 4
-            statement = conn.prepareStatement("SELECT INST FROM PTSDB WHERE 'xzabc' LIKE 'xy_a%'");
+            statement = conn.prepareStatement("SELECT INST FROM "+pTSDBTableName+" WHERE 'xzabc' LIKE 'xy_a%'");
             rs = statement.executeQuery();
             assertFalse(rs.next());
 
             // Test 5
-            statement = conn.prepareStatement("SELECT INST FROM PTSDB WHERE 'abcdef' LIKE '%bCd%'");
+            statement = conn.prepareStatement("SELECT INST FROM "+pTSDBTableName+" WHERE 'abcdef' LIKE '%bCd%'");
             rs = statement.executeQuery();
             assertFalse(rs.next());
 
@@ -1597,14 +1563,13 @@ public class VariableLengthPKIT extends BaseClientManagedTimeIT {
 
     @Test
     public void testILikeOnColumn() throws Exception {
-        long ts = nextTimestamp();
-        ensureTableCreated(getUrl(),PTSDB_NAME, PTSDB_NAME, null, ts-2, null);
-
+        String pTSDBTableName = generateUniqueName();
+        ensureTableCreated(getUrl(),pTSDBTableName, PTSDB_NAME, null, null, null);
         // Insert all rows at ts
-        String url = getUrl() + ";" + PhoenixRuntime.CURRENT_SCN_ATTRIB + "=" + ts;
+        String url = getUrl();
         Properties props = PropertiesUtil.deepCopy(TEST_PROPERTIES);
         Connection conn = DriverManager.getConnection(url, props);
-        PreparedStatement stmt = conn.prepareStatement("upsert into PTSDB(INST, HOST, \"DATE\", VAL, PATTERN VARCHAR) VALUES (?, ?, ?, 0.5, 'x_Z%')");
+        PreparedStatement stmt = conn.prepareStatement("upsert into "+pTSDBTableName+"(INST, HOST, \"DATE\", VAL, PATTERN VARCHAR) VALUES (?, ?, ?, 0.5, 'x_Z%')");
         stmt.setDate(3, D1);
 
         stmt.setString(1, "a");
@@ -1638,13 +1603,13 @@ public class VariableLengthPKIT extends BaseClientManagedTimeIT {
         conn.commit();
         conn.close();
 
-        url = getUrl() + ";" + PhoenixRuntime.CURRENT_SCN_ATTRIB + "=" + (ts + 5); // Run query at timestamp 5
+        url = getUrl();
         conn = DriverManager.getConnection(url, props);
         PreparedStatement statement;
         ResultSet rs;
         try {
             // Test 1
-            statement = conn.prepareStatement("SELECT INST FROM PTSDB WHERE INST ILIKE 'x%'");
+            statement = conn.prepareStatement("SELECT INST FROM "+pTSDBTableName+" WHERE INST ILIKE 'x%'");
             rs = statement.executeQuery();
 
             assertTrue(rs.next());
@@ -1665,7 +1630,7 @@ public class VariableLengthPKIT extends BaseClientManagedTimeIT {
             assertFalse(rs.next());
 
             // Test 2
-            statement = conn.prepareStatement("SELECT INST FROM PTSDB WHERE INST ILIKE 'xy_a%'");
+            statement = conn.prepareStatement("SELECT INST FROM "+pTSDBTableName+" WHERE INST ILIKE 'xy_a%'");
             rs = statement.executeQuery();
 
             assertTrue(rs.next());
@@ -1677,7 +1642,7 @@ public class VariableLengthPKIT extends BaseClientManagedTimeIT {
             assertFalse(rs.next());
 
             // Test 3
-            statement = conn.prepareStatement("SELECT INST FROM PTSDB WHERE INST NOT ILIKE 'xy_a%'");
+            statement = conn.prepareStatement("SELECT INST FROM "+pTSDBTableName+" WHERE INST NOT ILIKE 'xy_a%'");
             rs = statement.executeQuery();
 
             assertTrue(rs.next());
@@ -1698,17 +1663,17 @@ public class VariableLengthPKIT extends BaseClientManagedTimeIT {
             assertFalse(rs.next());
 
             // Test 4
-            statement = conn.prepareStatement("SELECT INST FROM PTSDB WHERE 'xzabc' ILIKE 'xy_a%'");
+            statement = conn.prepareStatement("SELECT INST FROM "+pTSDBTableName+" WHERE 'xzabc' ILIKE 'xy_a%'");
             rs = statement.executeQuery();
             assertFalse(rs.next());
 
             // Test 5
-            statement = conn.prepareStatement("SELECT INST FROM PTSDB WHERE 'abcdef' ILIKE '%bCd%'");
+            statement = conn.prepareStatement("SELECT INST FROM "+pTSDBTableName+" WHERE 'abcdef' ILIKE '%bCd%'");
             rs = statement.executeQuery();
             assertTrue(rs.next());
 
             // Test 5
-            statement = conn.prepareStatement("SELECT INST FROM PTSDB(PATTERN VARCHAR) WHERE INST ILIKE PATTERN");
+            statement = conn.prepareStatement("SELECT INST FROM "+pTSDBTableName+"(PATTERN VARCHAR) WHERE INST ILIKE PATTERN");
             rs = statement.executeQuery();
 
             assertTrue(rs.next());
@@ -1729,21 +1694,19 @@ public class VariableLengthPKIT extends BaseClientManagedTimeIT {
 
     @Test
     public void testIsNullInPK() throws Exception {
-        long ts = nextTimestamp();
-        ensureTableCreated(getUrl(),PTSDB_NAME, PTSDB_NAME, null, ts-2, null);
-
-        // Insert all rows at ts
-        String url = getUrl() + ";" + PhoenixRuntime.CURRENT_SCN_ATTRIB + "=" + ts;
+        String pTSDBTableName = generateUniqueName();
+        ensureTableCreated(getUrl(),pTSDBTableName, PTSDB_NAME, null, null, null);
+        String url = getUrl();
         Properties props = PropertiesUtil.deepCopy(TEST_PROPERTIES);
         Connection conn = DriverManager.getConnection(url, props);
         conn.setAutoCommit(true);
-        PreparedStatement stmt = conn.prepareStatement("upsert into PTSDB VALUES ('', '', ?, 0.5)");
+        PreparedStatement stmt = conn.prepareStatement("upsert into "+pTSDBTableName+" VALUES ('', '', ?, 0.5)");
         stmt.setDate(1, D1);
         stmt.execute();
         conn.close();
 
-        String query = "SELECT HOST,INST,\"DATE\" FROM PTSDB WHERE HOST IS NULL AND INST IS NULL AND \"DATE\"=?";
-        url = getUrl() + ";" + PhoenixRuntime.CURRENT_SCN_ATTRIB + "=" + (ts + 5); // Run query at timestamp 5
+        String query = "SELECT HOST,INST,\"DATE\" FROM "+pTSDBTableName+" WHERE HOST IS NULL AND INST IS NULL AND \"DATE\"=?";
+        url = getUrl();
         conn = DriverManager.getConnection(url, props);
         try {
             PreparedStatement statement = conn.prepareStatement(query);
@@ -1761,33 +1724,33 @@ public class VariableLengthPKIT extends BaseClientManagedTimeIT {
 
     @Test
     public void testLengthFunction() throws Exception {
-        long ts = nextTimestamp();
+        String bTableName = generateUniqueName();
         String query[] = {
-            "SELECT length('') FROM BTABLE LIMIT 1",
-            "SELECT length(' ') FROM BTABLE LIMIT 1",
-            "SELECT length('1') FROM BTABLE LIMIT 1",
-            "SELECT length('1234') FROM BTABLE LIMIT 1",
-            "SELECT length('ɚɦɰɸ') FROM BTABLE LIMIT 1",
-            "SELECT length('ǢǛǟƈ') FROM BTABLE LIMIT 1",
-            "SELECT length('This is a test!') FROM BTABLE LIMIT 1",
-            "SELECT A_STRING FROM BTABLE WHERE length(A_STRING)=3",
+                "SELECT length('') FROM "+bTableName+" LIMIT 1",
+                "SELECT length(' ') FROM "+bTableName+" LIMIT 1",
+                "SELECT length('1') FROM "+bTableName+" LIMIT 1",
+                "SELECT length('1234') FROM "+bTableName+" LIMIT 1",
+                "SELECT length('ɚɦɰɸ') FROM "+bTableName+" LIMIT 1",
+                "SELECT length('ǢǛǟƈ') FROM "+bTableName+" LIMIT 1",
+                "SELECT length('This is a test!') FROM "+bTableName+" LIMIT 1",
+                "SELECT A_STRING FROM "+bTableName+" WHERE length(A_STRING)=3",
         };
         String result[] = {
-            null,
-            "1",
-            "1",
-            "4",
-            "4",
-            "4",
-            "15",
-            "abc",
+                null,
+                "1",
+                "1",
+                "4",
+                "4",
+                "4",
+                "15",
+                "abc",
         };
         assertEquals(query.length,result.length);
-        String url = getUrl() + ";" + PhoenixRuntime.CURRENT_SCN_ATTRIB + "=" + (ts + 5); // Run query at timestamp 5
+        String url = getUrl();
         Properties props = PropertiesUtil.deepCopy(TEST_PROPERTIES);
         Connection conn = DriverManager.getConnection(url, props);
         try {
-            initTableValues(null, ts);
+            initBTableValues(null,bTableName);
             for (int i = 0; i < query.length; i++) {
                 PreparedStatement statement = conn.prepareStatement(query[i]);
                 ResultSet rs = statement.executeQuery();
@@ -1802,13 +1765,13 @@ public class VariableLengthPKIT extends BaseClientManagedTimeIT {
 
     @Test
     public void testUpperFunction() throws Exception {
-        long ts = nextTimestamp();
+        String bTableName = generateUniqueName();
         String query[] = {
-                "SELECT upper('abc') FROM BTABLE LIMIT 1",
-                "SELECT upper('Abc') FROM BTABLE LIMIT 1",
-                "SELECT upper('ABC') FROM BTABLE LIMIT 1",
-                "SELECT upper('ĎďĒ') FROM BTABLE LIMIT 1",
-                "SELECT upper('ß') FROM BTABLE LIMIT 1",
+                "SELECT upper('abc') FROM "+bTableName+" LIMIT 1",
+                "SELECT upper('Abc') FROM "+bTableName+" LIMIT 1",
+                "SELECT upper('ABC') FROM "+bTableName+" LIMIT 1",
+                "SELECT upper('ĎďĒ') FROM "+bTableName+" LIMIT 1",
+                "SELECT upper('ß') FROM "+bTableName+" LIMIT 1",
         };
         String result[] = {
                 "ABC",
@@ -1818,11 +1781,11 @@ public class VariableLengthPKIT extends BaseClientManagedTimeIT {
                 "SS",
         };
         assertEquals(query.length, result.length);
-        String url = getUrl() + ";" + PhoenixRuntime.CURRENT_SCN_ATTRIB + "=" + (ts + 5); // Run query at timestamp 5
+        String url = getUrl();
         Properties props = PropertiesUtil.deepCopy(TEST_PROPERTIES);
         Connection conn = DriverManager.getConnection(url, props);
         try {
-            initTableValues(null, ts);
+            initBTableValues(null,bTableName);
             for (int i = 0; i < query.length; i++) {
                 PreparedStatement statement = conn.prepareStatement(query[i]);
                 ResultSet rs = statement.executeQuery();
@@ -1837,14 +1800,14 @@ public class VariableLengthPKIT extends BaseClientManagedTimeIT {
 
     @Test
     public void testLowerFunction() throws Exception {
-        long ts = nextTimestamp();
+        String bTableName = generateUniqueName();
         String query[] = {
-                "SELECT lower('abc') FROM BTABLE LIMIT 1",
-                "SELECT lower('Abc') FROM BTABLE LIMIT 1",
-                "SELECT lower('ABC') FROM BTABLE LIMIT 1",
-                "SELECT lower('ĎďĒ') FROM BTABLE LIMIT 1",
-                "SELECT lower('ß') FROM BTABLE LIMIT 1",
-                "SELECT lower('SS') FROM BTABLE LIMIT 1",
+                "SELECT lower('abc') FROM "+bTableName+" LIMIT 1",
+                "SELECT lower('Abc') FROM "+bTableName+" LIMIT 1",
+                "SELECT lower('ABC') FROM "+bTableName+" LIMIT 1",
+                "SELECT lower('ĎďĒ') FROM "+bTableName+" LIMIT 1",
+                "SELECT lower('ß') FROM "+bTableName+" LIMIT 1",
+                "SELECT lower('SS') FROM "+bTableName+" LIMIT 1",
         };
         String result[] = {
                 "abc",
@@ -1855,11 +1818,11 @@ public class VariableLengthPKIT extends BaseClientManagedTimeIT {
                 "ss",
         };
         assertEquals(query.length, result.length);
-        String url = getUrl() + ";" + PhoenixRuntime.CURRENT_SCN_ATTRIB + "=" + (ts + 5); // Run query at timestamp 5
+        String url = getUrl();
         Properties props = PropertiesUtil.deepCopy(TEST_PROPERTIES);
         Connection conn = DriverManager.getConnection(url, props);
         try {
-            initTableValues(null, ts);
+            initBTableValues(null,bTableName);
             for (int i = 0; i < query.length; i++) {
                 PreparedStatement statement = conn.prepareStatement(query[i]);
                 ResultSet rs = statement.executeQuery();
@@ -1874,35 +1837,37 @@ public class VariableLengthPKIT extends BaseClientManagedTimeIT {
 
     @Test
     public void testRTrimFunction() throws Exception {
-        long ts = nextTimestamp();
+        String bTableName = generateUniqueName();
+        String varcharKeyTestTable = generateUniqueName();
         String query[] = {
-            "SELECT rtrim('') FROM BTABLE LIMIT 1",
-            "SELECT rtrim(' ') FROM BTABLE LIMIT 1",
-            "SELECT rtrim('   ') FROM BTABLE LIMIT 1",
-            "SELECT rtrim('abc') FROM BTABLE LIMIT 1",
-            "SELECT rtrim('abc   ') FROM BTABLE LIMIT 1",
-            "SELECT rtrim('abc   def') FROM BTABLE LIMIT 1",
-            "SELECT rtrim('abc   def   ') FROM BTABLE LIMIT 1",
-            "SELECT rtrim('ĎďĒ   ') FROM BTABLE LIMIT 1",
-            "SELECT pk FROM VarcharKeyTest WHERE rtrim(pk)='jkl' LIMIT 1",
+                "SELECT rtrim('') FROM "+bTableName+" LIMIT 1",
+                "SELECT rtrim(' ') FROM "+bTableName+" LIMIT 1",
+                "SELECT rtrim('   ') FROM "+bTableName+" LIMIT 1",
+                "SELECT rtrim('abc') FROM "+bTableName+" LIMIT 1",
+                "SELECT rtrim('abc   ') FROM "+bTableName+" LIMIT 1",
+                "SELECT rtrim('abc   def') FROM "+bTableName+" LIMIT 1",
+                "SELECT rtrim('abc   def   ') FROM "+bTableName+" LIMIT 1",
+                "SELECT rtrim('ĎďĒ   ') FROM "+bTableName+" LIMIT 1",
+                "SELECT pk FROM "+varcharKeyTestTable+" WHERE rtrim(pk)='jkl' LIMIT 1",
         };
         String result[] = {
-            null,
-            null,
-            null,
-            "abc",
-            "abc",
-            "abc   def",
-            "abc   def",
-            "ĎďĒ",
-            "jkl   ",
+                null,
+                null,
+                null,
+                "abc",
+                "abc",
+                "abc   def",
+                "abc   def",
+                "ĎďĒ",
+                "jkl   ",
         };
         assertEquals(query.length, result.length);
-        String url = getUrl() + ";" + PhoenixRuntime.CURRENT_SCN_ATTRIB + "=" + (ts + 5); // Run query at timestamp 5
+        String url = getUrl();
         Properties props = PropertiesUtil.deepCopy(TEST_PROPERTIES);
         Connection conn = DriverManager.getConnection(url, props);
         try {
-            initTableValues(null, ts);
+            initBTableValues(null,bTableName);
+            initVarcharKeyTableValues(null,varcharKeyTestTable);
             for (int i = 0; i < query.length; i++) {
                 PreparedStatement statement = conn.prepareStatement(query[i]);
                 ResultSet rs = statement.executeQuery();
@@ -1917,35 +1882,37 @@ public class VariableLengthPKIT extends BaseClientManagedTimeIT {
 
     @Test
     public void testLTrimFunction() throws Exception {
-        long ts = nextTimestamp();
+        String bTableName = generateUniqueName();
+        String varcharKeyTestTable = generateUniqueName();
         String query[] = {
-            "SELECT ltrim('') FROM BTABLE LIMIT 1",
-            "SELECT ltrim(' ') FROM BTABLE LIMIT 1",
-            "SELECT ltrim('   ') FROM BTABLE LIMIT 1",
-            "SELECT ltrim('abc') FROM BTABLE LIMIT 1",
-            "SELECT ltrim('   abc') FROM BTABLE LIMIT 1",
-            "SELECT ltrim('abc   def') FROM BTABLE LIMIT 1",
-            "SELECT ltrim('   abc   def') FROM BTABLE LIMIT 1",
-            "SELECT ltrim('   ĎďĒ') FROM BTABLE LIMIT 1",
-            "SELECT pk FROM VarcharKeyTest WHERE ltrim(pk)='def' LIMIT 1",
+                "SELECT ltrim('') FROM "+bTableName+" LIMIT 1",
+                "SELECT ltrim(' ') FROM "+bTableName+" LIMIT 1",
+                "SELECT ltrim('   ') FROM "+bTableName+" LIMIT 1",
+                "SELECT ltrim('abc') FROM "+bTableName+" LIMIT 1",
+                "SELECT ltrim('   abc') FROM "+bTableName+" LIMIT 1",
+                "SELECT ltrim('abc   def') FROM "+bTableName+" LIMIT 1",
+                "SELECT ltrim('   abc   def') FROM "+bTableName+" LIMIT 1",
+                "SELECT ltrim('   ĎďĒ') FROM "+bTableName+" LIMIT 1",
+                "SELECT pk FROM "+varcharKeyTestTable+" WHERE ltrim(pk)='def' LIMIT 1",
         };
         String result[] = {
-            null,
-            null,
-            null,
-            "abc",
-            "abc",
-            "abc   def",
-            "abc   def",
-            "ĎďĒ",
-            "   def",
+            

<TRUNCATED>