You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@phoenix.apache.org by sa...@apache.org on 2016/04/08 23:57:16 UTC

[1/6] phoenix git commit: PHOENIX-2822 Tests that extend BaseHBaseManagedTimeIT are very slow(Rahul Gidwani)

Repository: phoenix
Updated Branches:
  refs/heads/master 05bae1fbd -> 6d147896f


http://git-wip-us.apache.org/repos/asf/phoenix/blob/6d147896/phoenix-core/src/it/java/org/apache/phoenix/end2end/index/DropViewIT.java
----------------------------------------------------------------------
diff --git a/phoenix-core/src/it/java/org/apache/phoenix/end2end/index/DropViewIT.java b/phoenix-core/src/it/java/org/apache/phoenix/end2end/index/DropViewIT.java
index 38e0c6c..9287eef 100644
--- a/phoenix-core/src/it/java/org/apache/phoenix/end2end/index/DropViewIT.java
+++ b/phoenix-core/src/it/java/org/apache/phoenix/end2end/index/DropViewIT.java
@@ -33,6 +33,7 @@ import org.apache.hadoop.hbase.client.HBaseAdmin;
 import org.apache.hadoop.hbase.io.encoding.DataBlockEncoding;
 import org.apache.hadoop.hbase.util.Bytes;
 import org.apache.phoenix.end2end.BaseHBaseManagedTimeIT;
+import org.apache.phoenix.end2end.BaseHBaseManagedTimeTableReuseIT;
 import org.apache.phoenix.end2end.Shadower;
 import org.apache.phoenix.query.QueryServices;
 import org.apache.phoenix.util.PropertiesUtil;

http://git-wip-us.apache.org/repos/asf/phoenix/blob/6d147896/phoenix-core/src/it/java/org/apache/phoenix/end2end/salted/SaltedTableUpsertSelectIT.java
----------------------------------------------------------------------
diff --git a/phoenix-core/src/it/java/org/apache/phoenix/end2end/salted/SaltedTableUpsertSelectIT.java b/phoenix-core/src/it/java/org/apache/phoenix/end2end/salted/SaltedTableUpsertSelectIT.java
index 65eeb20..b21655a 100644
--- a/phoenix-core/src/it/java/org/apache/phoenix/end2end/salted/SaltedTableUpsertSelectIT.java
+++ b/phoenix-core/src/it/java/org/apache/phoenix/end2end/salted/SaltedTableUpsertSelectIT.java
@@ -32,11 +32,12 @@ import java.sql.SQLException;
 import java.util.Properties;
 
 import org.apache.phoenix.end2end.BaseHBaseManagedTimeIT;
+import org.apache.phoenix.end2end.BaseHBaseManagedTimeTableReuseIT;
 import org.apache.phoenix.util.PropertiesUtil;
 import org.junit.Test;
 
 
-public class SaltedTableUpsertSelectIT extends BaseHBaseManagedTimeIT {
+public class SaltedTableUpsertSelectIT extends BaseHBaseManagedTimeTableReuseIT {
 
     @Test
     public void testUpsertIntoSaltedTableFromNormalTable() throws Exception {
@@ -44,26 +45,28 @@ public class SaltedTableUpsertSelectIT extends BaseHBaseManagedTimeIT {
         Connection conn = DriverManager.getConnection(getUrl(), props);
         conn.setAutoCommit(false);
         try {
-            String ddl = "CREATE TABLE IF NOT EXISTS source" + 
+            String source = generateRandomString();
+            String ddl = "CREATE TABLE IF NOT EXISTS " + source +
                     " (pk VARCHAR NOT NULL PRIMARY KEY, col INTEGER)";
             createTestTable(getUrl(), ddl);
-            ddl = "CREATE TABLE IF NOT EXISTS target" + 
+            String target = generateRandomString();
+            ddl = "CREATE TABLE IF NOT EXISTS " + target +
                     " (pk VARCHAR NOT NULL PRIMARY KEY, col INTEGER) SALT_BUCKETS=4";
             createTestTable(getUrl(), ddl);
             
-            String query = "UPSERT INTO source(pk, col) VALUES(?,?)";
+            String query = "UPSERT INTO " + source + "(pk, col) VALUES(?,?)";
             PreparedStatement stmt = conn.prepareStatement(query);
             stmt.setString(1, "1");
             stmt.setInt(2, 1);
             stmt.execute();
             conn.commit();
             
-            query = "UPSERT INTO target(pk, col) SELECT pk, col from source";
+            query = "UPSERT INTO " + target + "(pk, col) SELECT pk, col from " + source;
             stmt = conn.prepareStatement(query);
             stmt.execute();
             conn.commit();
             
-            query = "SELECT * FROM target";
+            query = "SELECT * FROM " + target;
             stmt = conn.prepareStatement(query);
             ResultSet rs = stmt.executeQuery();
             assertTrue(rs.next());
@@ -81,26 +84,28 @@ public class SaltedTableUpsertSelectIT extends BaseHBaseManagedTimeIT {
         Connection conn = DriverManager.getConnection(getUrl(), props);
         conn.setAutoCommit(false);
         try {
-            String ddl = "CREATE TABLE IF NOT EXISTS source" + 
+            String source = generateRandomString();
+            String ddl = "CREATE TABLE IF NOT EXISTS " + source +
                     " (pk VARCHAR NOT NULL PRIMARY KEY, col INTEGER) SALT_BUCKETS=4";
             createTestTable(getUrl(), ddl);
-            ddl = "CREATE TABLE IF NOT EXISTS target" + 
+            String target = generateRandomString();
+            ddl = "CREATE TABLE IF NOT EXISTS " + target +
                     " (pk VARCHAR NOT NULL PRIMARY KEY, col INTEGER)";
             createTestTable(getUrl(), ddl);
             
-            String query = "UPSERT INTO source(pk, col) VALUES(?,?)";
+            String query = "UPSERT INTO " + source + "(pk, col) VALUES(?,?)";
             PreparedStatement stmt = conn.prepareStatement(query);
             stmt.setString(1, "1");
             stmt.setInt(2, 1);
             stmt.execute();
             conn.commit();
-            query = "UPSERT INTO target(pk, col) SELECT pk, col from source";
+            query = "UPSERT INTO " + target + "(pk, col) SELECT pk, col from " + source;
             stmt = conn.prepareStatement(query);
             stmt.execute();
             conn.commit();
-            analyzeTable(conn, "source");
-            analyzeTable(conn, "target");
-            query = "SELECT * FROM target";
+            analyzeTable(conn, source);
+            analyzeTable(conn, target);
+            query = "SELECT * FROM " + target;
             stmt = conn.prepareStatement(query);
             ResultSet rs = stmt.executeQuery();
             assertTrue(rs.next());
@@ -123,26 +128,28 @@ public class SaltedTableUpsertSelectIT extends BaseHBaseManagedTimeIT {
         Connection conn = DriverManager.getConnection(getUrl(), props);
         conn.setAutoCommit(false);
         try {
-            String ddl = "CREATE TABLE IF NOT EXISTS source" + 
+            String source = generateRandomString();
+            String ddl = "CREATE TABLE IF NOT EXISTS " + source +
                     " (pk VARCHAR NOT NULL PRIMARY KEY, col INTEGER) SALT_BUCKETS=4";
             createTestTable(getUrl(), ddl);
-            ddl = "CREATE TABLE IF NOT EXISTS target" + 
+            String target = generateRandomString();
+            ddl = "CREATE TABLE IF NOT EXISTS " + target +
                     " (pk VARCHAR NOT NULL PRIMARY KEY, col INTEGER) SALT_BUCKETS=4";
             createTestTable(getUrl(), ddl);
             
-            String query = "UPSERT INTO source(pk, col) VALUES(?,?)";
+            String query = "UPSERT INTO " + source + "(pk, col) VALUES(?,?)";
             PreparedStatement stmt = conn.prepareStatement(query);
             stmt.setString(1, "1");
             stmt.setInt(2, 1);
             stmt.execute();
             conn.commit();
             
-            query = "UPSERT INTO target(pk, col) SELECT pk, col from source";
+            query = "UPSERT INTO " + target + "(pk, col) SELECT pk, col from " + source;
             stmt = conn.prepareStatement(query);
             stmt.execute();
             conn.commit();
             
-            query = "SELECT * FROM target";
+            query = "SELECT * FROM " + target;
             stmt = conn.prepareStatement(query);
             ResultSet rs = stmt.executeQuery();
             assertTrue(rs.next());
@@ -160,23 +167,24 @@ public class SaltedTableUpsertSelectIT extends BaseHBaseManagedTimeIT {
         Connection conn = DriverManager.getConnection(getUrl(), props);
         conn.setAutoCommit(false);
         try {
-            String ddl = "CREATE TABLE IF NOT EXISTS source" + 
+            String source = generateRandomString();
+            String ddl = "CREATE TABLE IF NOT EXISTS " + source +
                     " (pk VARCHAR NOT NULL PRIMARY KEY, col1 INTEGER, col2 INTEGER) SALT_BUCKETS=4";
             createTestTable(getUrl(), ddl);
             
-            String query = "UPSERT INTO source(pk, col1) VALUES(?,?)";
+            String query = "UPSERT INTO " + source + "(pk, col1) VALUES(?,?)";
             PreparedStatement stmt = conn.prepareStatement(query);
             stmt.setString(1, "1");
             stmt.setInt(2, 1);
             stmt.execute();
             conn.commit();
             
-            query = "UPSERT INTO source(pk, col2) SELECT pk, col1 from source";
+            query = "UPSERT INTO " + source + "(pk, col2) SELECT pk, col1 from " + source;
             stmt = conn.prepareStatement(query);
             stmt.execute();
             conn.commit();
             
-            query = "SELECT col2 FROM source";
+            query = "SELECT col2 FROM " + source;
             stmt = conn.prepareStatement(query);
             ResultSet rs = stmt.executeQuery();
             assertTrue(rs.next());
@@ -193,12 +201,13 @@ public class SaltedTableUpsertSelectIT extends BaseHBaseManagedTimeIT {
         Connection conn = DriverManager.getConnection(getUrl(), props);
         conn.setAutoCommit(false);
         try {
-            String ddl = "CREATE TABLE IF NOT EXISTS source1" + 
+            String source1 = generateRandomString();
+            String ddl = "CREATE TABLE IF NOT EXISTS " + source1 +
                     " (pk1 varchar NULL, pk2 varchar NULL, pk3 integer NOT NULL, col1 INTEGER" + 
                     " CONSTRAINT pk PRIMARY KEY (pk1, pk2, pk3)) SALT_BUCKETS=4";
             createTestTable(getUrl(), ddl);
             
-            String query = "UPSERT INTO source1(pk1, pk2, pk3, col1) VALUES(?,?,?,?)";
+            String query = "UPSERT INTO " + source1 + "(pk1, pk2, pk3, col1) VALUES(?,?,?,?)";
             PreparedStatement stmt = conn.prepareStatement(query);
             stmt.setString(1, "1");
             stmt.setString(2, "2");
@@ -208,12 +217,13 @@ public class SaltedTableUpsertSelectIT extends BaseHBaseManagedTimeIT {
             conn.commit();
             
             conn.setAutoCommit(true);
-            query = "UPSERT INTO source1(pk3, col1, pk1) SELECT pk3+1, col1+1, pk2 from source1";
+            query = "UPSERT INTO " + source1
+                + "(pk3, col1, pk1) SELECT pk3+1, col1+1, pk2 from " + source1;
             stmt = conn.prepareStatement(query);
             stmt.execute();
             conn.commit();
-            analyzeTable(conn, "source1");
-            query = "SELECT col1 FROM source1";
+            analyzeTable(conn, source1);
+            query = "SELECT col1 FROM " + source1;
             stmt = conn.prepareStatement(query);
             ResultSet rs = stmt.executeQuery();
             assertTrue(rs.next());
@@ -232,13 +242,14 @@ public class SaltedTableUpsertSelectIT extends BaseHBaseManagedTimeIT {
         Connection conn = DriverManager.getConnection(getUrl(), props);
         conn.setAutoCommit(false);
         try {
-            String ddl = "CREATE TABLE IF NOT EXISTS source1" +
+            String source1 = generateRandomString();
+            String ddl = "CREATE TABLE IF NOT EXISTS " + source1 +
                     " (pk1 varchar NULL, pk2 varchar NULL, pk3 integer NOT NULL, col1 INTEGER" +
                     " CONSTRAINT pk PRIMARY KEY (pk1, pk2, pk3)) SALT_BUCKETS=4";
             createTestTable(getUrl(), ddl);
 
             for (int i = 0; i < 1000; i++) {
-                String upsert = "UPSERT INTO source1(pk1, pk2, pk3, col1) VALUES (?,?,?,?)";
+                String upsert = "UPSERT INTO " + source1 + "(pk1, pk2, pk3, col1) VALUES (?,?,?,?)";
                 PreparedStatement stmt = conn.prepareStatement(upsert);
                 stmt.setString(1, Integer.toString(i));
                 stmt.setString(2, Integer.toString(i));
@@ -248,13 +259,14 @@ public class SaltedTableUpsertSelectIT extends BaseHBaseManagedTimeIT {
             }
             conn.commit();
 
-            String ddl2 = "CREATE TABLE IF NOT EXISTS source2" +
+            String source2 = generateRandomString();
+            String ddl2 = "CREATE TABLE IF NOT EXISTS " + source2 +
                     " (pk1 varchar NULL, pk2 varchar NULL, pk3 integer NOT NULL, col1 INTEGER" +
                     " CONSTRAINT pk PRIMARY KEY (pk1, pk2, pk3)) SALT_BUCKETS=4";
             createTestTable(getUrl(), ddl2);
 
             for (int i = 0; i < 1000; i++) {
-                String upsert = "UPSERT INTO source2(pk1, pk2, pk3, col1) VALUES (?,?,?,?)";
+                String upsert = "UPSERT INTO " + source2 + "(pk1, pk2, pk3, col1) VALUES (?,?,?,?)";
                 PreparedStatement stmt = conn.prepareStatement(upsert);
                 stmt.setString(1, Integer.toString(i));
                 stmt.setString(2, Integer.toString(i));
@@ -264,16 +276,22 @@ public class SaltedTableUpsertSelectIT extends BaseHBaseManagedTimeIT {
             }
             conn.commit();
 
-            String ddl3 = "CREATE TABLE IF NOT EXISTS dest" +
+            String dest = generateRandomString();
+            String ddl3 = "CREATE TABLE IF NOT EXISTS " + dest +
                     " (pk1 varchar NULL, pk2 varchar NULL, pk3 integer NOT NULL, col1 INTEGER" +
                     " CONSTRAINT pk PRIMARY KEY (pk1, pk2, pk3)) SALT_BUCKETS=4";
             createTestTable(getUrl(), ddl3);
 
-            String query = "UPSERT INTO dest(pk1, pk2, pk3, col1) SELECT S1.pk1, S1.pk2, S2.pk3, S2.col1 FROM source1 AS S1 JOIN source2 AS S2 ON S1.pk1 = S2.pk1 AND S1.pk2 = S2.pk2 AND S1.pk3 = S2.pk3";
+            String query =
+                "UPSERT INTO " + dest
+                    + "(pk1, pk2, pk3, col1) SELECT S1.pk1, S1.pk2, S2.pk3, S2.col1 FROM "
+                    + source1
+                    + " AS S1 JOIN " + source2
+                    + " AS S2 ON S1.pk1 = S2.pk1 AND S1.pk2 = S2.pk2 AND S1.pk3 = S2.pk3";
             conn.createStatement().execute(query);
             conn.commit();
 
-            query = "SELECT COUNT(*) FROM dest";
+            query = "SELECT COUNT(*) FROM " + dest;
             PreparedStatement stmt = conn.prepareStatement(query);
             ResultSet rs = stmt.executeQuery();
             assertTrue(rs.next());

http://git-wip-us.apache.org/repos/asf/phoenix/blob/6d147896/phoenix-core/src/it/java/org/apache/phoenix/end2end/salted/SaltedTableVarLengthRowKeyIT.java
----------------------------------------------------------------------
diff --git a/phoenix-core/src/it/java/org/apache/phoenix/end2end/salted/SaltedTableVarLengthRowKeyIT.java b/phoenix-core/src/it/java/org/apache/phoenix/end2end/salted/SaltedTableVarLengthRowKeyIT.java
index 53b267c..e94ae3a 100644
--- a/phoenix-core/src/it/java/org/apache/phoenix/end2end/salted/SaltedTableVarLengthRowKeyIT.java
+++ b/phoenix-core/src/it/java/org/apache/phoenix/end2end/salted/SaltedTableVarLengthRowKeyIT.java
@@ -30,11 +30,14 @@ import java.sql.ResultSet;
 import java.util.Properties;
 
 import org.apache.phoenix.end2end.BaseHBaseManagedTimeIT;
+import org.apache.phoenix.end2end.BaseHBaseManagedTimeTableReuseIT;
 import org.apache.phoenix.util.PropertiesUtil;
 import org.junit.Test;
 
 
-public class SaltedTableVarLengthRowKeyIT extends BaseHBaseManagedTimeIT {
+public class SaltedTableVarLengthRowKeyIT extends BaseHBaseManagedTimeTableReuseIT {
+
+    private static final String TEST_TABLE = generateRandomString();
 
     private static void initTableValues() throws Exception {
         Properties props = PropertiesUtil.deepCopy(TEST_PROPERTIES);
@@ -42,9 +45,9 @@ public class SaltedTableVarLengthRowKeyIT extends BaseHBaseManagedTimeIT {
         conn.setAutoCommit(false);
         
         try {
-            createTestTable(getUrl(), "create table testVarcharKey " +
+            createTestTable(getUrl(), "create table " + TEST_TABLE + " " +
                     " (key_string varchar not null primary key, kv integer) SALT_BUCKETS=4\n");
-            String query = "UPSERT INTO testVarcharKey VALUES(?,?)";
+            String query = "UPSERT INTO " + TEST_TABLE + " VALUES(?,?)";
             PreparedStatement stmt = conn.prepareStatement(query);
             stmt.setString(1, "a");
             stmt.setInt(2, 1);
@@ -74,7 +77,7 @@ public class SaltedTableVarLengthRowKeyIT extends BaseHBaseManagedTimeIT {
             PreparedStatement stmt;
             ResultSet rs;
             
-            query = "SELECT * FROM testVarcharKey where key_string = 'abc'";
+            query = "SELECT * FROM " + TEST_TABLE + " where key_string = 'abc'";
             stmt = conn.prepareStatement(query);
             rs = stmt.executeQuery();
             assertTrue(rs.next());

http://git-wip-us.apache.org/repos/asf/phoenix/blob/6d147896/phoenix-core/src/it/java/org/apache/phoenix/iterate/PhoenixQueryTimeoutIT.java
----------------------------------------------------------------------
diff --git a/phoenix-core/src/it/java/org/apache/phoenix/iterate/PhoenixQueryTimeoutIT.java b/phoenix-core/src/it/java/org/apache/phoenix/iterate/PhoenixQueryTimeoutIT.java
index 8399362..6bf3790 100644
--- a/phoenix-core/src/it/java/org/apache/phoenix/iterate/PhoenixQueryTimeoutIT.java
+++ b/phoenix-core/src/it/java/org/apache/phoenix/iterate/PhoenixQueryTimeoutIT.java
@@ -29,14 +29,18 @@ import java.util.Properties;
 import java.util.Set;
 
 import org.apache.phoenix.end2end.BaseHBaseManagedTimeIT;
+import org.apache.phoenix.end2end.BaseHBaseManagedTimeTableReuseIT;
 import org.apache.phoenix.jdbc.PhoenixStatement;
+import org.junit.BeforeClass;
 import org.junit.Test;
 
 /**
  * Tests to validate that user specified property phoenix.query.timeoutMs
  * works as expected.
  */
-public class PhoenixQueryTimeoutIT extends BaseHBaseManagedTimeIT {
+public class PhoenixQueryTimeoutIT extends BaseHBaseManagedTimeTableReuseIT {
+
+    private static final String QUERY_TIMEOUT_TEST = generateRandomString();
 
     @Test
     /**
@@ -83,32 +87,31 @@ public class PhoenixQueryTimeoutIT extends BaseHBaseManagedTimeIT {
     //-----------------------------------------------------------------
     
     private PreparedStatement loadDataAndPrepareQuery(int timeoutMs, int timeoutSecs) throws Exception, SQLException {
-        createTableAndInsertRows(1000);
         Properties props = new Properties();
         props.setProperty("phoenix.query.timeoutMs", String.valueOf(timeoutMs));
         Connection conn = DriverManager.getConnection(getUrl(), props);
-        PreparedStatement ps = conn.prepareStatement("SELECT * FROM QUERY_TIMEOUT_TEST");
+        PreparedStatement ps = conn.prepareStatement("SELECT * FROM " + QUERY_TIMEOUT_TEST);
         PhoenixStatement phoenixStmt = ps.unwrap(PhoenixStatement.class);
         assertEquals(timeoutMs, phoenixStmt.getQueryTimeoutInMillis());
         assertEquals(timeoutSecs, phoenixStmt.getQueryTimeout());
         return ps;
     }
-    
-    private Set<String> createTableAndInsertRows(int numRows) throws Exception {
-        String ddl = "CREATE TABLE QUERY_TIMEOUT_TEST (K VARCHAR NOT NULL PRIMARY KEY, V VARCHAR)";
+
+    @BeforeClass
+    public static void createTableAndInsertRows() throws Exception {
+        int numRows = 1000;
+        String ddl =
+            "CREATE TABLE " + QUERY_TIMEOUT_TEST + " (K VARCHAR NOT NULL PRIMARY KEY, V VARCHAR)";
         Connection conn = DriverManager.getConnection(getUrl());
         conn.createStatement().execute(ddl);
-        String dml = "UPSERT INTO QUERY_TIMEOUT_TEST VALUES (?, ?)";
+        String dml = "UPSERT INTO " + QUERY_TIMEOUT_TEST + " VALUES (?, ?)";
         PreparedStatement stmt = conn.prepareStatement(dml);
-        final Set<String> expectedKeys = new HashSet<>(numRows);
         for (int i = 1; i <= numRows; i++) {
             String key = "key" + i;
-            expectedKeys.add(key);
             stmt.setString(1, key);
             stmt.setString(2, "value" + i);
             stmt.executeUpdate();
         }
         conn.commit();
-        return expectedKeys;
     }
 }

http://git-wip-us.apache.org/repos/asf/phoenix/blob/6d147896/phoenix-core/src/main/java/org/apache/phoenix/memory/GlobalMemoryManager.java
----------------------------------------------------------------------
diff --git a/phoenix-core/src/main/java/org/apache/phoenix/memory/GlobalMemoryManager.java b/phoenix-core/src/main/java/org/apache/phoenix/memory/GlobalMemoryManager.java
index 71d1b69..6dbd78d 100644
--- a/phoenix-core/src/main/java/org/apache/phoenix/memory/GlobalMemoryManager.java
+++ b/phoenix-core/src/main/java/org/apache/phoenix/memory/GlobalMemoryManager.java
@@ -17,6 +17,7 @@
  */
 package org.apache.phoenix.memory;
 
+import com.google.common.annotations.VisibleForTesting;
 import org.apache.http.annotation.GuardedBy;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -72,17 +73,7 @@ public class GlobalMemoryManager implements MemoryManager {
         long nBytes;
         synchronized(sync) {
             while (usedMemoryBytes + minBytes > maxMemoryBytes) { // Only wait if minBytes not available
-                try {
-                    logger.debug("Waiting for " + (usedMemoryBytes + minBytes - maxMemoryBytes) + " bytes to be free");
-                    long remainingWaitTimeMs = maxWaitMs - (System.currentTimeMillis() - startTimeMs);
-                    if (remainingWaitTimeMs <= 0) { // Ran out of time waiting for some memory to get freed up
-                        throw new InsufficientMemoryException("Requested memory of " + minBytes + " bytes could not be allocated. Using memory of " + usedMemoryBytes + " bytes from global pool of " + maxMemoryBytes + " bytes after waiting for " + maxWaitMs + "ms.");
-                    }
-                    sync.wait(remainingWaitTimeMs);
-                } catch (InterruptedException ie) {
-                    Thread.currentThread().interrupt();
-                    throw new RuntimeException("Interrupted allocation of " + minBytes + " bytes", ie);
-                }
+                waitForBytesToFree(minBytes, startTimeMs);
             }
             // Allocate at most reqBytes, but at least minBytes
             nBytes = Math.min(reqBytes, maxMemoryBytes - usedMemoryBytes);
@@ -94,6 +85,21 @@ public class GlobalMemoryManager implements MemoryManager {
         return nBytes;
     }
 
+    @VisibleForTesting
+    void waitForBytesToFree(long minBytes, long startTimeMs) {
+        try {
+            logger.debug("Waiting for " + (usedMemoryBytes + minBytes - maxMemoryBytes) + " bytes to be free " + startTimeMs);
+            long remainingWaitTimeMs = maxWaitMs - (System.currentTimeMillis() - startTimeMs);
+            if (remainingWaitTimeMs <= 0) { // Ran out of time waiting for some memory to get freed up
+                throw new InsufficientMemoryException("Requested memory of " + minBytes + " bytes could not be allocated. Using memory of " + usedMemoryBytes + " bytes from global pool of " + maxMemoryBytes + " bytes after waiting for " + maxWaitMs + "ms.");
+            }
+            sync.wait(remainingWaitTimeMs);
+        } catch (InterruptedException ie) {
+            Thread.currentThread().interrupt();
+            throw new RuntimeException("Interrupted allocation of " + minBytes + " bytes", ie);
+        }
+    }
+
     @Override
     public MemoryChunk allocate(long minBytes, long reqBytes) {
         long nBytes = allocateBytes(minBytes, reqBytes);
@@ -105,7 +111,7 @@ public class GlobalMemoryManager implements MemoryManager {
         return allocate(nBytes,nBytes);
     }
 
-    protected MemoryChunk newMemoryChunk(long sizeBytes) {
+    private MemoryChunk newMemoryChunk(long sizeBytes) {
         return new GlobalMemoryChunk(sizeBytes);
     }
 

http://git-wip-us.apache.org/repos/asf/phoenix/blob/6d147896/phoenix-core/src/test/java/org/apache/phoenix/memory/MemoryManagerTest.java
----------------------------------------------------------------------
diff --git a/phoenix-core/src/test/java/org/apache/phoenix/memory/MemoryManagerTest.java b/phoenix-core/src/test/java/org/apache/phoenix/memory/MemoryManagerTest.java
index 94e6c79..e7aaa69 100644
--- a/phoenix-core/src/test/java/org/apache/phoenix/memory/MemoryManagerTest.java
+++ b/phoenix-core/src/test/java/org/apache/phoenix/memory/MemoryManagerTest.java
@@ -19,19 +19,24 @@ package org.apache.phoenix.memory;
 
 import static org.junit.Assert.assertTrue;
 import static org.junit.Assert.fail;
+import static org.mockito.Matchers.anyLong;
+import static org.mockito.Mockito.atLeastOnce;
+import static org.mockito.Mockito.spy;
 
-import org.junit.Ignore;
 import org.junit.Test;
 
 import org.apache.phoenix.memory.MemoryManager.MemoryChunk;
+import org.mockito.Mockito;
 
+import java.util.concurrent.CountDownLatch;
+import java.util.concurrent.TimeUnit;
 
 /**
- * 
+ *
  * Tests for GlobalMemoryManager and ChildMemoryManager
  * TODO: use our own time keeper so these tests don't flap
  *
- * 
+ *
  * @since 0.1
  */
 public class MemoryManagerTest {
@@ -53,7 +58,7 @@ public class MemoryManagerTest {
             fail();
         } catch (InsufficientMemoryException e) { // expected
         }
-        
+
         c1.close();
         c2.close();
         assertTrue(rmm1.getAvailableMemory() == rmm1.getMaxMemory());
@@ -69,35 +74,37 @@ public class MemoryManagerTest {
     }
 
     @Test
-    public void testWaitForMemoryAvailable() {
-        final GlobalMemoryManager gmm = new GlobalMemoryManager(100,8000);
+    public void testWaitForMemoryAvailable() throws Exception {
+        final GlobalMemoryManager gmm = spy(new GlobalMemoryManager(100, 80));
         final ChildMemoryManager rmm1 = new ChildMemoryManager(gmm,100);
         final ChildMemoryManager rmm2 = new ChildMemoryManager(gmm,100);
+        final CountDownLatch latch = new CountDownLatch(2);
         Thread t1 = new Thread() {
             @Override
             public void run() {
                 MemoryChunk c1 = rmm1.allocate(50);
                 MemoryChunk c2 = rmm1.allocate(50);
-                sleepFor(4000);
+                sleepFor(40);
                 c1.close();
-                sleepFor(2000);
+                sleepFor(20);
                 c2.close();
+                latch.countDown();
             }
         };
         Thread t2 = new Thread() {
             @Override
             public void run() {
-                sleepFor(2000);
+                sleepFor(20);
                 // Will require waiting for a bit of time before t1 frees the requested memory
-                long startTime = System.currentTimeMillis();
                 MemoryChunk c3 = rmm2.allocate(50);
-                assertTrue(System.currentTimeMillis() - startTime >= 1000);
+                Mockito.verify(gmm, atLeastOnce()).waitForBytesToFree(anyLong(), anyLong());
                 c3.close();
+                latch.countDown();
             }
         };
-        t1.start();
         t2.start();
-        sleepFor(1000);
+        t1.start();
+        latch.await(1, TimeUnit.SECONDS);
         // Main thread competes with others to get all memory, but should wait
         // until both threads are complete (since that's when the memory will
         // again be all available.
@@ -108,39 +115,40 @@ public class MemoryManagerTest {
         assertTrue(rmm1.getAvailableMemory() == rmm1.getMaxMemory());
         assertTrue(rmm2.getAvailableMemory() == rmm2.getMaxMemory());
     }
-    
+
     @Test
-    @Ignore // TODO: get this not to flap
-    public void testResizeWaitForMemoryAvailable() {
-        final GlobalMemoryManager gmm = new GlobalMemoryManager(100,8000);
+    public void testResizeWaitForMemoryAvailable() throws Exception {
+        final GlobalMemoryManager gmm = spy(new GlobalMemoryManager(100, 80));
         final ChildMemoryManager rmm1 = new ChildMemoryManager(gmm,100);
         final ChildMemoryManager rmm2 = new ChildMemoryManager(gmm,100);
+        final CountDownLatch latch = new CountDownLatch(2);
         Thread t1 = new Thread() {
             @Override
             public void run() {
                 MemoryChunk c1 = rmm1.allocate(50);
                 MemoryChunk c2 = rmm1.allocate(40);
-                sleepFor(4000);
+                sleepFor(40);
                 c1.close();
-                sleepFor(2000);
+                sleepFor(20);
                 c2.close();
+                latch.countDown();
             }
         };
         Thread t2 = new Thread() {
             @Override
             public void run() {
-                sleepFor(2000);
+                sleepFor(20);
                 MemoryChunk c3 = rmm2.allocate(10);
                 // Will require waiting for a bit of time before t1 frees the requested memory
-                long startTime = System.currentTimeMillis();
                 c3.resize(50);
-                assertTrue(System.currentTimeMillis() - startTime >= 2000);
+                Mockito.verify(gmm, atLeastOnce()).waitForBytesToFree(anyLong(), anyLong());
                 c3.close();
+                latch.countDown();
             }
         };
         t1.start();
         t2.start();
-        sleepFor(3000);
+        latch.await(1, TimeUnit.SECONDS);
         // Main thread competes with others to get all memory, but should wait
         // until both threads are complete (since that's when the memory will
         // again be all available.
@@ -151,41 +159,47 @@ public class MemoryManagerTest {
         assertTrue(rmm1.getAvailableMemory() == rmm1.getMaxMemory());
         assertTrue(rmm2.getAvailableMemory() == rmm2.getMaxMemory());
     }
-    
-    // @Test commenting out because the test is flapping too often
-    public void broken_testWaitUntilResize() {
-        final GlobalMemoryManager gmm = new GlobalMemoryManager(100,8000);
+
+    @Test
+    public void testWaitUntilResize() throws Exception {
+        final GlobalMemoryManager gmm = spy(new GlobalMemoryManager(100, 80));
         final ChildMemoryManager rmm1 = new ChildMemoryManager(gmm,100);
         final MemoryChunk c1 = rmm1.allocate(70);
+        final CountDownLatch latch = new CountDownLatch(2);
+
         Thread t1 = new Thread() {
             @Override
             public void run() {
                 MemoryChunk c2 = rmm1.allocate(20);
-                sleepFor(4000);
+                sleepFor(40);
                 c1.resize(20); // resize down to test that other thread is notified
-                sleepFor(2000);
+                sleepFor(20);
                 c2.close();
                 c1.close();
                 assertTrue(rmm1.getAvailableMemory() == rmm1.getMaxMemory());
+                latch.countDown();
             }
         };
         Thread t2 = new Thread() {
             @Override
             public void run() {
-                sleepFor(2000);
+                sleepFor(20);
                 ChildMemoryManager rmm2 = new ChildMemoryManager(gmm,100);
                 MemoryChunk c3 = rmm2.allocate(10);
                 long startTime = System.currentTimeMillis();
                 c3.resize(60); // Test that resize waits if memory not available
                 assertTrue(c1.getSize() == 20); // c1 was resized not closed
-                assertTrue(System.currentTimeMillis() - startTime >= 2000); // we waited some time before the allocate happened
+                // we waited some time before the allocate happened
+
+                Mockito.verify(gmm, atLeastOnce()).waitForBytesToFree(anyLong(), anyLong());
                 c3.close();
                 assertTrue(rmm2.getAvailableMemory() == rmm2.getMaxMemory());
+                latch.countDown();
             }
         };
         t1.start();
         t2.start();
-        sleepFor(1000);
+        latch.await(1, TimeUnit.SECONDS);
         // Main thread competes with others to get all memory, but should wait
         // until both threads are complete (since that's when the memory will
         // again be all available.
@@ -197,7 +211,7 @@ public class MemoryManagerTest {
 
     @Test
     public void testChildDecreaseAllocation() throws Exception {
-        MemoryManager gmm = new GlobalMemoryManager(100,1);
+        MemoryManager gmm = spy(new GlobalMemoryManager(100, 1));
         ChildMemoryManager rmm1 = new ChildMemoryManager(gmm,100);
         ChildMemoryManager rmm2 = new ChildMemoryManager(gmm,10);
         MemoryChunk c1 = rmm1.allocate(50);
@@ -209,7 +223,7 @@ public class MemoryManagerTest {
         assertTrue(rmm2.getAvailableMemory() == rmm2.getMaxMemory());
         assertTrue(gmm.getAvailableMemory() == gmm.getMaxMemory());
     }
-    
+
     @Test
     public void testOverChildMemoryLimit() throws Exception {
         MemoryManager gmm = new GlobalMemoryManager(100,1);
@@ -229,7 +243,7 @@ public class MemoryManagerTest {
         // Ensure that you can get back to max for rmn1 after failure
         MemoryChunk c4 = rmm1.allocate(10);
         MemoryChunk c5 = rmm1.allocate(15);
-        
+
         MemoryChunk c6 = rmm4.allocate(25);
         try {
             // This passes % test, but fails the next total memory usage test
@@ -241,7 +255,7 @@ public class MemoryManagerTest {
         // Tests that % test passes (confirming that the 10 above was subtracted back from request memory usage,
         // since we'd be at the max of 35% now
         MemoryChunk c7 = rmm4.allocate(10);
-        
+
         try {
             rmm4.allocate(1);
             fail();

http://git-wip-us.apache.org/repos/asf/phoenix/blob/6d147896/phoenix-core/src/test/java/org/apache/phoenix/query/BaseTest.java
----------------------------------------------------------------------
diff --git a/phoenix-core/src/test/java/org/apache/phoenix/query/BaseTest.java b/phoenix-core/src/test/java/org/apache/phoenix/query/BaseTest.java
index 8b9b74f..8c3678d 100644
--- a/phoenix-core/src/test/java/org/apache/phoenix/query/BaseTest.java
+++ b/phoenix-core/src/test/java/org/apache/phoenix/query/BaseTest.java
@@ -118,6 +118,9 @@ import java.util.concurrent.TimeoutException;
 
 import javax.annotation.Nonnull;
 
+
+import org.apache.commons.lang.RandomStringUtils;
+
 import org.apache.hadoop.conf.Configuration;
 import org.apache.hadoop.hbase.HBaseConfiguration;
 import org.apache.hadoop.hbase.HBaseTestingUtility;
@@ -125,6 +128,7 @@ import org.apache.hadoop.hbase.HColumnDescriptor;
 import org.apache.hadoop.hbase.HConstants;
 import org.apache.hadoop.hbase.HTableDescriptor;
 import org.apache.hadoop.hbase.IntegrationTestingUtility;
+import org.apache.hadoop.hbase.RandomStringGeneratorImpl;
 import org.apache.hadoop.hbase.TableName;
 import org.apache.hadoop.hbase.client.HBaseAdmin;
 import org.apache.hadoop.hbase.coprocessor.CoprocessorHost;
@@ -828,6 +832,10 @@ public abstract class BaseTest {
         createTestTable(url, ddl, splits, ts);
     }
 
+    protected static String generateRandomString() {
+      return RandomStringUtils.randomAlphabetic(20).toUpperCase();
+    }
+
     protected static void createTestTable(String url, String ddl) throws SQLException {
         createTestTable(url, ddl, null, null);
     }


[6/6] phoenix git commit: PHOENIX-2822 Tests that extend BaseHBaseManagedTimeIT are very slow(Rahul Gidwani)

Posted by sa...@apache.org.
PHOENIX-2822 Tests that extend BaseHBaseManagedTimeIT are very slow(Rahul Gidwani)


Project: http://git-wip-us.apache.org/repos/asf/phoenix/repo
Commit: http://git-wip-us.apache.org/repos/asf/phoenix/commit/6d147896
Tree: http://git-wip-us.apache.org/repos/asf/phoenix/tree/6d147896
Diff: http://git-wip-us.apache.org/repos/asf/phoenix/diff/6d147896

Branch: refs/heads/master
Commit: 6d147896f5856e728c454e4a1fa47575d9690aa7
Parents: 05bae1f
Author: Samarth <sa...@salesforce.com>
Authored: Fri Apr 8 14:57:06 2016 -0700
Committer: Samarth <sa...@salesforce.com>
Committed: Fri Apr 8 14:57:06 2016 -0700

----------------------------------------------------------------------
 .../phoenix/end2end/AbsFunctionEnd2EndIT.java   |  11 +-
 .../apache/phoenix/end2end/AlterSessionIT.java  |  20 +-
 .../phoenix/end2end/ArithmeticQueryIT.java      | 294 ++++++++++-------
 .../phoenix/end2end/ArrayFillFunctionIT.java    | 175 ++++++----
 .../end2end/ArrayToStringFunctionIT.java        | 326 +++++++++----------
 .../phoenix/end2end/ArraysWithNullsIT.java      | 152 ++++++---
 .../apache/phoenix/end2end/AutoCommitIT.java    |  21 +-
 .../phoenix/end2end/BaseHBaseManagedTimeIT.java |   5 +-
 .../BaseHBaseManagedTimeTableReuseIT.java       |  56 ++++
 .../phoenix/end2end/CbrtFunctionEnd2EndIT.java  |  35 +-
 .../end2end/ConvertTimezoneFunctionIT.java      |  71 ++--
 .../phoenix/end2end/DecodeFunctionIT.java       |  49 ++-
 .../apache/phoenix/end2end/DynamicFamilyIT.java |  31 +-
 .../phoenix/end2end/FirstValueFunctionIT.java   | 144 +++++---
 .../end2end/GetSetByteBitFunctionEnd2EndIT.java |  26 +-
 .../phoenix/end2end/LikeExpressionIT.java       |  34 +-
 .../apache/phoenix/end2end/MD5FunctionIT.java   |  30 +-
 .../phoenix/end2end/MappingTableDataTypeIT.java |  15 +-
 .../end2end/MinMaxAggregateFunctionIT.java      |  24 +-
 .../phoenix/end2end/NthValueFunctionIT.java     | 252 +++++++++-----
 .../end2end/OctetLengthFunctionEnd2EndIT.java   |  13 +-
 .../phoenix/end2end/PowerFunctionEnd2EndIT.java |  21 +-
 .../apache/phoenix/end2end/PrimitiveTypeIT.java |  63 ++--
 .../org/apache/phoenix/end2end/QueryMoreIT.java |  31 +-
 .../apache/phoenix/end2end/RTrimFunctionIT.java |  24 +-
 .../org/apache/phoenix/end2end/ReadOnlyIT.java  |  17 +-
 .../phoenix/end2end/RegexpSplitFunctionIT.java  |  52 +--
 .../phoenix/end2end/ReverseFunctionIT.java      |  42 +--
 .../RoundFloorCeilFunctionsEnd2EndIT.java       | 101 ++++--
 .../phoenix/end2end/ServerExceptionIT.java      |   9 +-
 .../phoenix/end2end/SignFunctionEnd2EndIT.java  |  35 +-
 .../org/apache/phoenix/end2end/SortOrderIT.java | 303 ++++++++++-------
 .../phoenix/end2end/StatementHintsIT.java       |  12 +-
 .../apache/phoenix/end2end/StoreNullsIT.java    |  51 +--
 .../end2end/StringToArrayFunctionIT.java        | 164 ++++++----
 .../end2end/TimezoneOffsetFunctionIT.java       |  63 ++--
 .../end2end/UpsertSelectAutoCommitIT.java       |  50 ++-
 .../phoenix/end2end/index/DropViewIT.java       |   1 +
 .../salted/SaltedTableUpsertSelectIT.java       |  86 +++--
 .../salted/SaltedTableVarLengthRowKeyIT.java    |  11 +-
 .../phoenix/iterate/PhoenixQueryTimeoutIT.java  |  23 +-
 .../phoenix/memory/GlobalMemoryManager.java     |  30 +-
 .../phoenix/memory/MemoryManagerTest.java       |  86 +++--
 .../java/org/apache/phoenix/query/BaseTest.java |   8 +
 44 files changed, 1883 insertions(+), 1184 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/phoenix/blob/6d147896/phoenix-core/src/it/java/org/apache/phoenix/end2end/AbsFunctionEnd2EndIT.java
----------------------------------------------------------------------
diff --git a/phoenix-core/src/it/java/org/apache/phoenix/end2end/AbsFunctionEnd2EndIT.java b/phoenix-core/src/it/java/org/apache/phoenix/end2end/AbsFunctionEnd2EndIT.java
index 0c6204c..f053b2f 100644
--- a/phoenix-core/src/it/java/org/apache/phoenix/end2end/AbsFunctionEnd2EndIT.java
+++ b/phoenix-core/src/it/java/org/apache/phoenix/end2end/AbsFunctionEnd2EndIT.java
@@ -34,8 +34,9 @@ import org.junit.Test;
 /**
  * End to end tests for {@link AbsFunction}
  */
-public class AbsFunctionEnd2EndIT extends BaseHBaseManagedTimeIT {
+public class AbsFunctionEnd2EndIT extends BaseHBaseManagedTimeTableReuseIT {
 
+    private static final String TABLE_NAME = generateRandomString();
     private static final String KEY = "key";
 
     @Before
@@ -45,7 +46,7 @@ public class AbsFunctionEnd2EndIT extends BaseHBaseManagedTimeIT {
         try {
             conn = DriverManager.getConnection(getUrl());
             String ddl;
-            ddl = "CREATE TABLE testSigned (k VARCHAR NOT NULL PRIMARY KEY, dec DECIMAL, doub DOUBLE, fl FLOAT, inte INTEGER, lon BIGINT, smalli SMALLINT, tinyi TINYINT)";
+            ddl = "CREATE TABLE " + TABLE_NAME + " (k VARCHAR NOT NULL PRIMARY KEY, dec DECIMAL, doub DOUBLE, fl FLOAT, inte INTEGER, lon BIGINT, smalli SMALLINT, tinyi TINYINT)";
             conn.createStatement().execute(ddl);
             conn.commit();
         } finally {
@@ -54,7 +55,7 @@ public class AbsFunctionEnd2EndIT extends BaseHBaseManagedTimeIT {
     }
 
     private void updateSignedTable(Connection conn, double data) throws Exception {
-        PreparedStatement stmt = conn.prepareStatement("UPSERT INTO testSigned VALUES (?, ?, ?, ?, ?, ?, ?, ?)");
+        PreparedStatement stmt = conn.prepareStatement("UPSERT INTO " + TABLE_NAME + " VALUES (?, ?, ?, ?, ?, ?, ?, ?)");
         stmt.setString(1, KEY);
         Double d = Double.valueOf(data);
         stmt.setBigDecimal(2, BigDecimal.valueOf(data));
@@ -70,7 +71,7 @@ public class AbsFunctionEnd2EndIT extends BaseHBaseManagedTimeIT {
 
     private void testSignedNumberSpec(Connection conn, double data) throws Exception {
         updateSignedTable(conn, data);
-        ResultSet rs = conn.createStatement() .executeQuery("SELECT ABS(dec),ABS(doub),ABS(fl),ABS(inte),ABS(lon),ABS(smalli),ABS(tinyi) FROM testSigned");
+        ResultSet rs = conn.createStatement() .executeQuery("SELECT ABS(dec),ABS(doub),ABS(fl),ABS(inte),ABS(lon),ABS(smalli),ABS(tinyi) FROM " + TABLE_NAME);
         assertTrue(rs.next());
         Double d = Double.valueOf(data);
         assertEquals(rs.getBigDecimal(1).compareTo(BigDecimal.valueOf(data).abs()), 0);
@@ -82,7 +83,7 @@ public class AbsFunctionEnd2EndIT extends BaseHBaseManagedTimeIT {
         assertEquals(rs.getByte(7), Math.abs(d.byteValue()));
         assertTrue(!rs.next());
 
-        PreparedStatement stmt = conn.prepareStatement("SELECT k FROM testSigned WHERE ABS(dec)=? AND ABS(doub)=? AND ABS(fl)=? AND ABS(inte)=? AND ABS(lon)=? AND ABS(smalli)=? AND ABS(tinyi)=?");
+        PreparedStatement stmt = conn.prepareStatement("SELECT k FROM " + TABLE_NAME + " WHERE ABS(dec)=? AND ABS(doub)=? AND ABS(fl)=? AND ABS(inte)=? AND ABS(lon)=? AND ABS(smalli)=? AND ABS(tinyi)=?");
         stmt.setBigDecimal(1, BigDecimal.valueOf(data).abs());
         stmt.setDouble(2, Math.abs(d.doubleValue()));
         stmt.setFloat(3, Math.abs(d.floatValue()));

http://git-wip-us.apache.org/repos/asf/phoenix/blob/6d147896/phoenix-core/src/it/java/org/apache/phoenix/end2end/AlterSessionIT.java
----------------------------------------------------------------------
diff --git a/phoenix-core/src/it/java/org/apache/phoenix/end2end/AlterSessionIT.java b/phoenix-core/src/it/java/org/apache/phoenix/end2end/AlterSessionIT.java
index d97d6d4..5ad1f2a 100644
--- a/phoenix-core/src/it/java/org/apache/phoenix/end2end/AlterSessionIT.java
+++ b/phoenix-core/src/it/java/org/apache/phoenix/end2end/AlterSessionIT.java
@@ -22,7 +22,7 @@ import org.apache.phoenix.jdbc.PhoenixConnection;
 import org.apache.phoenix.util.PhoenixRuntime;
 import org.apache.phoenix.util.PropertiesUtil;
 import org.apache.phoenix.util.QueryUtil;
-import org.junit.Before;
+import org.junit.BeforeClass;
 import org.junit.Test;
 
 import java.sql.Connection;
@@ -40,16 +40,18 @@ import static org.junit.Assert.assertTrue;
  * Basic tests for Alter Session Statements
  *
  */
-public class AlterSessionIT extends BaseHBaseManagedTimeIT {
+public class AlterSessionIT extends BaseHBaseManagedTimeTableReuseIT {
 
-    Connection testConn;
+    private static final String TABLE_NAME = generateRandomString();
+    private static Connection testConn;
 
-    @Before
-    public void initTable() throws Exception {
+    @BeforeClass
+    public static void initTable() throws Exception {
         Properties props = PropertiesUtil.deepCopy(TEST_PROPERTIES);
         testConn = DriverManager.getConnection(getUrl(), props);
         assertEquals(Consistency.STRONG, ((PhoenixConnection)testConn).getConsistency());
-        testConn.createStatement().execute("create table AlterSessionIT (col1 varchar primary key)");
+        testConn.createStatement().execute(
+            "create table " + TABLE_NAME + " (col1 varchar primary key)");
         testConn.commit();
     }
 
@@ -58,14 +60,14 @@ public class AlterSessionIT extends BaseHBaseManagedTimeIT {
         try {
             Statement st = testConn.createStatement();
             st.execute("alter session set Consistency = 'timeline'");
-            ResultSet rs = st.executeQuery("explain select * from AlterSessionIT");
+            ResultSet rs = st.executeQuery("explain select * from " + TABLE_NAME);
             assertEquals(Consistency.TIMELINE, ((PhoenixConnection)testConn).getConsistency());
             String queryPlan = QueryUtil.getExplainPlan(rs);
             assertTrue(queryPlan.indexOf("TIMELINE") > 0);
 
             // turn off timeline read consistency
             st.execute("alter session set Consistency = 'strong'");
-            rs = st.executeQuery("explain select * from AlterSessionIT");
+            rs = st.executeQuery("explain select * from " + TABLE_NAME);
             queryPlan = QueryUtil.getExplainPlan(rs);
             assertTrue(queryPlan.indexOf("TIMELINE") < 0);
         } finally {
@@ -81,7 +83,7 @@ public class AlterSessionIT extends BaseHBaseManagedTimeIT {
                     "Consistency=TIMELINE", props);
             assertEquals(Consistency.TIMELINE, ((PhoenixConnection)conn).getConsistency());
             Statement st = conn.createStatement();
-            ResultSet rs = st.executeQuery("explain select * from AlterSessionIT");
+            ResultSet rs = st.executeQuery("explain select * from " + TABLE_NAME);
             String queryPlan = QueryUtil.getExplainPlan(rs);
             assertTrue(queryPlan.indexOf("TIMELINE") > 0);
             conn.close();

http://git-wip-us.apache.org/repos/asf/phoenix/blob/6d147896/phoenix-core/src/it/java/org/apache/phoenix/end2end/ArithmeticQueryIT.java
----------------------------------------------------------------------
diff --git a/phoenix-core/src/it/java/org/apache/phoenix/end2end/ArithmeticQueryIT.java b/phoenix-core/src/it/java/org/apache/phoenix/end2end/ArithmeticQueryIT.java
index f56c965..b7f5f88 100644
--- a/phoenix-core/src/it/java/org/apache/phoenix/end2end/ArithmeticQueryIT.java
+++ b/phoenix-core/src/it/java/org/apache/phoenix/end2end/ArithmeticQueryIT.java
@@ -40,7 +40,7 @@ import com.google.common.primitives.Doubles;
 import com.google.common.primitives.Floats;
 
 
-public class ArithmeticQueryIT extends BaseHBaseManagedTimeIT {
+public class ArithmeticQueryIT extends BaseHBaseManagedTimeTableReuseIT {
 
     @Test
     public void testDecimalUpsertValue() throws Exception {
@@ -48,13 +48,15 @@ public class ArithmeticQueryIT extends BaseHBaseManagedTimeIT {
         Connection conn = DriverManager.getConnection(getUrl(), props);
         conn.setAutoCommit(false);
         try {
-            String ddl = "CREATE TABLE testDecimalArithmetic" + 
+            String testDecimalArithmetic = generateRandomString();
+            String ddl = "CREATE TABLE " + testDecimalArithmetic +
                     "  (pk VARCHAR NOT NULL PRIMARY KEY, " +
                     "col1 DECIMAL(31,0), col2 DECIMAL(5), col3 DECIMAL(5,2), col4 DECIMAL)";
             createTestTable(getUrl(), ddl);
             
             // Test upsert correct values 
-            String query = "UPSERT INTO testDecimalArithmetic(pk, col1, col2, col3, col4) VALUES(?,?,?,?,?)";
+            String query = "UPSERT INTO " + testDecimalArithmetic
+                + "(pk, col1, col2, col3, col4) VALUES(?,?,?,?,?)";
             PreparedStatement stmt = conn.prepareStatement(query);
             stmt.setString(1, "valueOne");
             stmt.setBigDecimal(2, new BigDecimal("123456789123456789"));
@@ -64,7 +66,8 @@ public class ArithmeticQueryIT extends BaseHBaseManagedTimeIT {
             stmt.execute();
             conn.commit();
             
-            query = "SELECT col1, col2, col3, col4 FROM testDecimalArithmetic WHERE pk = 'valueOne'";
+            query = "SELECT col1, col2, col3, col4 FROM " + testDecimalArithmetic
+                + " WHERE pk = 'valueOne'";
             stmt = conn.prepareStatement(query);
             ResultSet rs = stmt.executeQuery();
             assertTrue(rs.next());
@@ -74,7 +77,8 @@ public class ArithmeticQueryIT extends BaseHBaseManagedTimeIT {
             assertEquals(new BigDecimal("12345.6789"), rs.getBigDecimal(4));
             assertFalse(rs.next());
             
-            query = "UPSERT INTO testDecimalArithmetic(pk, col1, col2, col3) VALUES(?,?,?,?)";
+            query =
+                "UPSERT INTO " + testDecimalArithmetic + "(pk, col1, col2, col3) VALUES(?,?,?,?)";
             stmt = conn.prepareStatement(query);
             stmt.setString(1, "valueTwo");
             stmt.setBigDecimal(2, new BigDecimal("1234567890123456789012345678901.12345"));
@@ -83,7 +87,8 @@ public class ArithmeticQueryIT extends BaseHBaseManagedTimeIT {
             stmt.execute();
             conn.commit();
             
-            query = "SELECT col1, col2, col3 FROM testDecimalArithmetic WHERE pk = 'valueTwo'";
+            query =
+                "SELECT col1, col2, col3 FROM " + testDecimalArithmetic + " WHERE pk = 'valueTwo'";
             stmt = conn.prepareStatement(query);
             rs = stmt.executeQuery();
             assertTrue(rs.next());
@@ -94,7 +99,8 @@ public class ArithmeticQueryIT extends BaseHBaseManagedTimeIT {
             
             // Test upsert incorrect values and confirm exceptions would be thrown.
             try {
-                query = "UPSERT INTO testDecimalArithmetic(pk, col1, col2, col3) VALUES(?,?,?,?)";
+                query = "UPSERT INTO " + testDecimalArithmetic
+                    + "(pk, col1, col2, col3) VALUES(?,?,?,?)";
                 stmt = conn.prepareStatement(query);
                 stmt.setString(1, "badValues");
                 // one more than max_precision
@@ -108,7 +114,8 @@ public class ArithmeticQueryIT extends BaseHBaseManagedTimeIT {
                 assertEquals(SQLExceptionCode.DATA_EXCEEDS_MAX_CAPACITY.getErrorCode(),e.getErrorCode());
             }
             try {
-                query = "UPSERT INTO testDecimalArithmetic(pk, col1, col2, col3) VALUES(?,?,?,?)";
+                query = "UPSERT INTO " + testDecimalArithmetic
+                    + "(pk, col1, col2, col3) VALUES(?,?,?,?)";
                 stmt = conn.prepareStatement(query);
                 stmt.setString(1, "badValues");
                 stmt.setBigDecimal(2, new BigDecimal("123456"));
@@ -132,14 +139,16 @@ public class ArithmeticQueryIT extends BaseHBaseManagedTimeIT {
         Connection conn = DriverManager.getConnection(getUrl(), props);
         conn.setAutoCommit(false);
         try {
-            String ddl = "CREATE TABLE source" + 
+            String source = generateRandomString();
+            String ddl = "CREATE TABLE " + source +
                     " (pk VARCHAR NOT NULL PRIMARY KEY, col1 DECIMAL(5,2), col2 DECIMAL(5,1), col3 DECIMAL(5,2), col4 DECIMAL(4,4))";
             createTestTable(getUrl(), ddl);
-            ddl = "CREATE TABLE target" + 
+            String target = generateRandomString();
+            ddl = "CREATE TABLE " + target +
                     " (pk VARCHAR NOT NULL PRIMARY KEY, col1 DECIMAL(5,1), col2 DECIMAL(5,2), col3 DECIMAL(4,4))";
             createTestTable(getUrl(), ddl);
             
-            String query = "UPSERT INTO source(pk, col1) VALUES(?,?)";
+            String query = "UPSERT INTO " + source + "(pk, col1) VALUES(?,?)";
             PreparedStatement stmt = conn.prepareStatement(query);
             stmt.setString(1, "1");
             stmt.setBigDecimal(2, new BigDecimal("100.12"));
@@ -152,11 +161,11 @@ public class ArithmeticQueryIT extends BaseHBaseManagedTimeIT {
             
             // Evaluated on client side.
             // source and target in different tables, values scheme compatible.
-            query = "UPSERT INTO target(pk, col2) SELECT pk, col1 from source";
+            query = "UPSERT INTO " + target + "(pk, col2) SELECT pk, col1 from " + source;
             stmt = conn.prepareStatement(query);
             stmt.execute();
             conn.commit();
-            query = "SELECT col2 FROM target";
+            query = "SELECT col2 FROM " + target;
             stmt = conn.prepareStatement(query);
             ResultSet rs = stmt.executeQuery();
             assertTrue(rs.next());
@@ -165,11 +174,11 @@ public class ArithmeticQueryIT extends BaseHBaseManagedTimeIT {
             assertEquals(new BigDecimal("100.34"), rs.getBigDecimal(1));
             assertFalse(rs.next());
             // source and target in different tables, values requires scale chopping.
-            query = "UPSERT INTO target(pk, col1) SELECT pk, col1 from source";
+            query = "UPSERT INTO " + target + "(pk, col1) SELECT pk, col1 from " + source;
             stmt = conn.prepareStatement(query);
             stmt.execute();
             conn.commit();
-            query = "SELECT col1 FROM target";
+            query = "SELECT col1 FROM " + target;
             stmt = conn.prepareStatement(query);
             rs = stmt.executeQuery();
             assertTrue(rs.next());
@@ -179,7 +188,7 @@ public class ArithmeticQueryIT extends BaseHBaseManagedTimeIT {
             assertFalse(rs.next());
             // source and target in different tables, values scheme incompatible.
             try {
-                query = "UPSERT INTO target(pk, col3) SELECT pk, col1 from source";
+                query = "UPSERT INTO " + target + "(pk, col3) SELECT pk, col1 from " + source;
                 stmt = conn.prepareStatement(query);
                 stmt.execute();
                 conn.commit();
@@ -191,11 +200,11 @@ public class ArithmeticQueryIT extends BaseHBaseManagedTimeIT {
             // Evaluate on server side.
             conn.setAutoCommit(true);
             // source and target in same table, values scheme compatible.
-            query = "UPSERT INTO source(pk, col3) SELECT pk, col1 from source";
+            query = "UPSERT INTO " + source + "(pk, col3) SELECT pk, col1 from " + source;
             stmt = conn.prepareStatement(query);
             stmt.execute();
             conn.commit();
-            query = "SELECT col3 FROM source";
+            query = "SELECT col3 FROM " + source;
             stmt = conn.prepareStatement(query);
             rs = stmt.executeQuery();
             assertTrue(rs.next());
@@ -204,11 +213,11 @@ public class ArithmeticQueryIT extends BaseHBaseManagedTimeIT {
             assertEquals(new BigDecimal("100.34"), rs.getBigDecimal(1));
             assertFalse(rs.next());
             // source and target in same table, values requires scale chopping.
-            query = "UPSERT INTO source(pk, col2) SELECT pk, col1 from source";
+            query = "UPSERT INTO " + source + "(pk, col2) SELECT pk, col1 from " + source;
             stmt = conn.prepareStatement(query);
             stmt.execute();
             conn.commit();
-            query = "SELECT col2 FROM source";
+            query = "SELECT col2 FROM " + source;
             stmt = conn.prepareStatement(query);
             rs = stmt.executeQuery();
             assertTrue(rs.next());
@@ -217,11 +226,11 @@ public class ArithmeticQueryIT extends BaseHBaseManagedTimeIT {
             assertEquals(new BigDecimal("100.3"), rs.getBigDecimal(1));
             assertFalse(rs.next());
             // source and target in same table, values scheme incompatible.
-            query = "UPSERT INTO source(pk, col4) SELECT pk, col1 from source";
+            query = "UPSERT INTO " + source + "(pk, col4) SELECT pk, col1 from " + source;
             stmt = conn.prepareStatement(query);
             stmt.execute();
             conn.commit();
-            query = "SELECT col4 FROM source";
+            query = "SELECT col4 FROM " + source;
             stmt = conn.prepareStatement(query);
             rs = stmt.executeQuery();
             assertTrue(rs.next());
@@ -240,11 +249,13 @@ public class ArithmeticQueryIT extends BaseHBaseManagedTimeIT {
         Connection conn = DriverManager.getConnection(getUrl(), props);
         conn.setAutoCommit(false);
         try {
-            String ddl = "CREATE TABLE testDecimalArithmetic" + 
+            String testDecimalArithmetic = generateRandomString();
+            String ddl = "CREATE TABLE " + testDecimalArithmetic +
                     "  (pk VARCHAR NOT NULL PRIMARY KEY, col1 DECIMAL(31, 11), col2 DECIMAL(31,1), col3 DECIMAL(38,1))";
             createTestTable(getUrl(), ddl);
             
-            String query = "UPSERT INTO testDecimalArithmetic(pk, col1, col2, col3) VALUES(?,?,?,?)";
+            String query =
+                "UPSERT INTO " + testDecimalArithmetic + "(pk, col1, col2, col3) VALUES(?,?,?,?)";
             PreparedStatement stmt = conn.prepareStatement(query);
             stmt.setString(1, "1");
             stmt.setBigDecimal(2, new BigDecimal("99999999999999999999.1"));
@@ -268,14 +279,14 @@ public class ArithmeticQueryIT extends BaseHBaseManagedTimeIT {
             // Averaging
             // result scale should be: max(max(ls, rs), 4).
             // We are not imposing restriction on precisioin.
-            query = "SELECT avg(col1) FROM testDecimalArithmetic";
+            query = "SELECT avg(col1) FROM " + testDecimalArithmetic;
             stmt = conn.prepareStatement(query);
             ResultSet rs = stmt.executeQuery();
             assertTrue(rs.next());
             BigDecimal result = rs.getBigDecimal(1);
             assertEquals(new BigDecimal("33333333333333333333.03333333333"), result);
             
-            query = "SELECT avg(col2) FROM testDecimalArithmetic";
+            query = "SELECT avg(col2) FROM " + testDecimalArithmetic;
             stmt = conn.prepareStatement(query);
             rs = stmt.executeQuery();
             assertTrue(rs.next());
@@ -283,7 +294,7 @@ public class ArithmeticQueryIT extends BaseHBaseManagedTimeIT {
             assertEquals(new BigDecimal("33333333333333333333.0333"), result);
             
             // We cap our decimal to a precision of 38.
-            query = "SELECT avg(col3) FROM testDecimalArithmetic";
+            query = "SELECT avg(col3) FROM " + testDecimalArithmetic;
             stmt = conn.prepareStatement(query);
             rs = stmt.executeQuery();
             assertTrue(rs.next());
@@ -300,14 +311,17 @@ public class ArithmeticQueryIT extends BaseHBaseManagedTimeIT {
         Connection conn = DriverManager.getConnection(getUrl(), props);
         conn.setAutoCommit(false);
         try {
-            String ddl = "CREATE TABLE testRandomFunction (pk VARCHAR NOT NULL PRIMARY KEY)";
+            String testRandomFunction = generateRandomString();
+            String ddl =
+                "CREATE TABLE " + testRandomFunction + " (pk VARCHAR NOT NULL PRIMARY KEY)";
             createTestTable(getUrl(), ddl);
-            conn.createStatement().execute("upsert into testRandomFunction values ('x')");
-            conn.createStatement().execute("upsert into testRandomFunction values ('y')");
-            conn.createStatement().execute("upsert into testRandomFunction values ('z')");
+            conn.createStatement().execute("upsert into " + testRandomFunction + " values ('x')");
+            conn.createStatement().execute("upsert into " + testRandomFunction + " values ('y')");
+            conn.createStatement().execute("upsert into " + testRandomFunction + " values ('z')");
             conn.commit();
 
-            ResultSet rs = conn.createStatement().executeQuery("select rand(), rand(), rand(1), rand(2), rand(1) from testRandomFunction");
+            ResultSet rs = conn.createStatement().executeQuery(
+                "select rand(), rand(), rand(1), rand(2), rand(1) from " + testRandomFunction);
             assertTrue(rs.next());
             double rand0 = rs.getDouble(1);
             double rand1 = rs.getDouble(3);
@@ -337,7 +351,8 @@ public class ArithmeticQueryIT extends BaseHBaseManagedTimeIT {
             assertTrue(rs.getDouble(4) != rs.getDouble(5));
             double rand12 = rs.getDouble(3);
 
-            rs = conn.createStatement().executeQuery("select rand(), rand(), rand(1), rand(2), rand(1) from testRandomFunction");
+            rs = conn.createStatement().executeQuery(
+                "select rand(), rand(), rand(1), rand(2), rand(1) from " + testRandomFunction);
             assertTrue(rs.next());
             assertTrue(rs.getDouble(1) != rs.getDouble(2));
             assertTrue(rs.getDouble(2) != rs.getDouble(3));
@@ -353,40 +368,52 @@ public class ArithmeticQueryIT extends BaseHBaseManagedTimeIT {
             assertTrue(rs.next());
             assertTrue(rand12 == rs.getDouble(3));
 
-            ddl = "CREATE TABLE testRandomFunction1 (pk VARCHAR NOT NULL PRIMARY KEY, v1 UNSIGNED_DOUBLE)";
+            String testRandomFunction1 = generateRandomString();
+            ddl = "CREATE TABLE " + testRandomFunction1
+                + " (pk VARCHAR NOT NULL PRIMARY KEY, v1 UNSIGNED_DOUBLE)";
             createTestTable(getUrl(), ddl);
-            conn.createStatement().execute("upsert into testRandomFunction1 select pk, rand(1) from testRandomFunction");
+            conn.createStatement().execute(
+                "upsert into " + testRandomFunction1 + " select pk, rand(1) from " + testRandomFunction);
             conn.commit();
 
-            rs = conn.createStatement().executeQuery("select count(*) from testRandomFunction1 where v1 = rand(1)");
+            rs = conn.createStatement().executeQuery(
+                "select count(*) from " + testRandomFunction1 + " where v1 = rand(1)");
             assertTrue(rs.next());
             assertEquals(3, rs.getInt(1));
 
-            rs = conn.createStatement().executeQuery("select count(*) from testRandomFunction1 where v1 = rand(2)");
+            rs = conn.createStatement().executeQuery(
+                "select count(*) from " + testRandomFunction1 + " where v1 = rand(2)");
             assertTrue(rs.next());
             assertEquals(0, rs.getInt(1));
 
-            conn.createStatement().execute("delete from testRandomFunction1 where v1 = rand(2)");
+            conn.createStatement().execute(
+                "delete from " + testRandomFunction1 + " where v1 = rand(2)");
             conn.commit();
 
-            rs = conn.createStatement().executeQuery("select count(*) from testRandomFunction1 where v1 = rand(1)");
+            rs = conn.createStatement().executeQuery(
+                "select count(*) from " + testRandomFunction1 + " where v1 = rand(1)");
             assertTrue(rs.next());
             assertEquals(3, rs.getInt(1));
 
             conn.setAutoCommit(true);
-            conn.createStatement().execute("upsert into testRandomFunction1 select pk, rand(2) from testRandomFunction1");
+            conn.createStatement().execute("upsert into " + testRandomFunction1
+                + " select pk, rand(2) from " + testRandomFunction1);
 
-            rs = conn.createStatement().executeQuery("select count(*) from testRandomFunction1 where v1 = rand(1)");
+            rs = conn.createStatement().executeQuery(
+                "select count(*) from " + testRandomFunction1 + " where v1 = rand(1)");
             assertTrue(rs.next());
             assertEquals(0, rs.getInt(1));
 
-            rs = conn.createStatement().executeQuery("select count(*) from testRandomFunction1 where v1 = rand(2)");
+            rs = conn.createStatement().executeQuery(
+                "select count(*) from " + testRandomFunction1 + " where v1 = rand(2)");
             assertTrue(rs.next());
             assertEquals(3, rs.getInt(1));
 
-            conn.createStatement().execute("delete from testRandomFunction1 where v1 = rand(2)");
+            conn.createStatement().execute(
+                "delete from " + testRandomFunction1 + " where v1 = rand(2)");
 
-            rs = conn.createStatement().executeQuery("select count(*) from testRandomFunction1 where v1 = rand(2)");
+            rs = conn.createStatement().executeQuery(
+                "select count(*) from " + testRandomFunction1 + " where v1 = rand(2)");
             assertTrue(rs.next());
             assertEquals(0, rs.getInt(1));
         } finally {
@@ -400,12 +427,14 @@ public class ArithmeticQueryIT extends BaseHBaseManagedTimeIT {
         Connection conn = DriverManager.getConnection(getUrl(), props);
         conn.setAutoCommit(false);
         try {
-            String ddl = "CREATE TABLE testDecimalArithmetic" + 
+            String testDecimalArithmetic = generateRandomString();
+            String ddl = "CREATE TABLE " + testDecimalArithmetic +
                     "  (pk VARCHAR NOT NULL PRIMARY KEY, " +
                     "col1 DECIMAL(38,0), col2 DECIMAL(5, 2), col3 INTEGER, col4 BIGINT, col5 DECIMAL)";
             createTestTable(getUrl(), ddl);
             
-            String query = "UPSERT INTO testDecimalArithmetic(pk, col1, col2, col3, col4, col5) VALUES(?,?,?,?,?,?)";
+            String query = "UPSERT INTO " + testDecimalArithmetic
+                + "(pk, col1, col2, col3, col4, col5) VALUES(?,?,?,?,?,?)";
             PreparedStatement stmt = conn.prepareStatement(query);
             stmt.setString(1, "testValueOne");
             stmt.setBigDecimal(2, new BigDecimal("1234567890123456789012345678901"));
@@ -427,105 +456,105 @@ public class ArithmeticQueryIT extends BaseHBaseManagedTimeIT {
             
             // INT has a default precision and scale of (10, 0)
             // LONG has a default precision and scale of (19, 0)
-            query = "SELECT col1 + col3 FROM testDecimalArithmetic WHERE pk='testValueOne'";
+            query = "SELECT col1 + col3 FROM " + testDecimalArithmetic + " WHERE pk='testValueOne'";
             stmt = conn.prepareStatement(query);
             ResultSet rs = stmt.executeQuery();
             assertTrue(rs.next());
             BigDecimal result = rs.getBigDecimal(1);
             assertEquals(new BigDecimal("1234567890123456789012345678911"), result);
             
-            query = "SELECT col1 + col4 FROM testDecimalArithmetic WHERE pk='testValueOne'";
+            query = "SELECT col1 + col4 FROM " + testDecimalArithmetic + " WHERE pk='testValueOne'";
             stmt = conn.prepareStatement(query);
             rs = stmt.executeQuery();
             assertTrue(rs.next());
             result = rs.getBigDecimal(1);
             assertEquals(new BigDecimal("1234567890123456789012345678911"), result);
             
-            query = "SELECT col2 + col3 FROM testDecimalArithmetic WHERE pk='testValueOne'";
+            query = "SELECT col2 + col3 FROM " + testDecimalArithmetic + " WHERE pk='testValueOne'";
             stmt = conn.prepareStatement(query);
             rs = stmt.executeQuery();
             assertTrue(rs.next());
             result = rs.getBigDecimal(1);
             assertEquals(new BigDecimal("133.45"), result);
             
-            query = "SELECT col2 + col4 FROM testDecimalArithmetic WHERE pk='testValueOne'";
+            query = "SELECT col2 + col4 FROM " + testDecimalArithmetic + " WHERE pk='testValueOne'";
             stmt = conn.prepareStatement(query);
             rs = stmt.executeQuery();
             assertTrue(rs.next());
             result = rs.getBigDecimal(1);
             assertEquals(new BigDecimal("133.45"), result);
             
-            query = "SELECT col5 + col3 FROM testDecimalArithmetic WHERE pk='testValueOne'";
+            query = "SELECT col5 + col3 FROM " + testDecimalArithmetic + " WHERE pk='testValueOne'";
             stmt = conn.prepareStatement(query);
             rs = stmt.executeQuery();
             assertTrue(rs.next());
             result = rs.getBigDecimal(1);
             assertEquals(new BigDecimal("121.111"), result);
             
-            query = "SELECT col5 + col4 FROM testDecimalArithmetic WHERE pk='testValueOne'";
+            query = "SELECT col5 + col4 FROM " + testDecimalArithmetic + " WHERE pk='testValueOne'";
             stmt = conn.prepareStatement(query);
             rs = stmt.executeQuery();
             assertTrue(rs.next());
             result = rs.getBigDecimal(1);
             assertEquals(new BigDecimal("121.111"), result);
             
-            query = "SELECT col1 - col3 FROM testDecimalArithmetic WHERE pk='testValueOne'";
+            query = "SELECT col1 - col3 FROM " + testDecimalArithmetic + " WHERE pk='testValueOne'";
             stmt = conn.prepareStatement(query);
             rs = stmt.executeQuery();
             assertTrue(rs.next());
             result = rs.getBigDecimal(1);
             assertEquals(new BigDecimal("1234567890123456789012345678891"), result);
             
-            query = "SELECT col1 - col4 FROM testDecimalArithmetic WHERE pk='testValueOne'";
+            query = "SELECT col1 - col4 FROM " + testDecimalArithmetic + " WHERE pk='testValueOne'";
             stmt = conn.prepareStatement(query);
             rs = stmt.executeQuery();
             assertTrue(rs.next());
             result = rs.getBigDecimal(1);
             assertEquals(new BigDecimal("1234567890123456789012345678891"), result);
             
-            query = "SELECT col2 - col3 FROM testDecimalArithmetic WHERE pk='testValueOne'";
+            query = "SELECT col2 - col3 FROM " + testDecimalArithmetic + " WHERE pk='testValueOne'";
             stmt = conn.prepareStatement(query);
             rs = stmt.executeQuery();
             assertTrue(rs.next());
             result = rs.getBigDecimal(1);
             assertEquals(new BigDecimal("113.45"), result);
             
-            query = "SELECT col2 - col4 FROM testDecimalArithmetic WHERE pk='testValueOne'";
+            query = "SELECT col2 - col4 FROM " + testDecimalArithmetic + " WHERE pk='testValueOne'";
             stmt = conn.prepareStatement(query);
             rs = stmt.executeQuery();
             assertTrue(rs.next());
             result = rs.getBigDecimal(1);
             assertEquals(new BigDecimal("113.45"), result);
             
-            query = "SELECT col5 - col3 FROM testDecimalArithmetic WHERE pk='testValueOne'";
+            query = "SELECT col5 - col3 FROM " + testDecimalArithmetic + " WHERE pk='testValueOne'";
             stmt = conn.prepareStatement(query);
             rs = stmt.executeQuery();
             assertTrue(rs.next());
             result = rs.getBigDecimal(1);
             assertEquals(new BigDecimal("101.111"), result);
             
-            query = "SELECT col5 - col4 FROM testDecimalArithmetic WHERE pk='testValueOne'";
+            query = "SELECT col5 - col4 FROM " + testDecimalArithmetic + " WHERE pk='testValueOne'";
             stmt = conn.prepareStatement(query);
             rs = stmt.executeQuery();
             assertTrue(rs.next());
             result = rs.getBigDecimal(1);
             assertEquals(new BigDecimal("101.111"), result);
             
-            query = "SELECT col1 * col3 FROM testDecimalArithmetic WHERE pk='testValueOne'";
+            query = "SELECT col1 * col3 FROM " + testDecimalArithmetic + " WHERE pk='testValueOne'";
             stmt = conn.prepareStatement(query);
             rs = stmt.executeQuery();
             assertTrue(rs.next());
             result = rs.getBigDecimal(1);
             assertEquals(new BigDecimal("1.234567890123456789012345678901E+31"), result);
             
-            query = "SELECT col1 * col4 FROM testDecimalArithmetic WHERE pk='testValueOne'";
+            query = "SELECT col1 * col4 FROM " + testDecimalArithmetic + " WHERE pk='testValueOne'";
             stmt = conn.prepareStatement(query);
             rs = stmt.executeQuery();
             assertTrue(rs.next());
             result = rs.getBigDecimal(1);
             assertEquals(new BigDecimal("1.234567890123456789012345678901E+31"), result);
 
-            query = "SELECT col1 * col3 FROM testDecimalArithmetic WHERE pk='testValueOne'";
+            query = "SELECT col1 * col3 FROM " + testDecimalArithmetic + " WHERE pk='testValueOne'";
             stmt = conn.prepareStatement(query);
             rs = stmt.executeQuery();
             assertTrue(rs.next());
@@ -533,7 +562,8 @@ public class ArithmeticQueryIT extends BaseHBaseManagedTimeIT {
             assertEquals(new BigDecimal("1.234567890123456789012345678901E+31"), result);
             
             try {
-            	query = "SELECT col1 * col3 FROM testDecimalArithmetic WHERE pk='testValueTwo'";
+            	query =
+                  "SELECT col1 * col3 FROM " + testDecimalArithmetic + " WHERE pk='testValueTwo'";
             	stmt = conn.prepareStatement(query);
             	rs = stmt.executeQuery();
             	assertTrue(rs.next());
@@ -544,7 +574,8 @@ public class ArithmeticQueryIT extends BaseHBaseManagedTimeIT {
             }
             
             try {
-            	query = "SELECT col1 * col4 FROM testDecimalArithmetic WHERE pk='testValueTwo'";
+            	query =
+                  "SELECT col1 * col4 FROM " + testDecimalArithmetic + " WHERE pk='testValueTwo'";
             	stmt = conn.prepareStatement(query);
             	rs = stmt.executeQuery();
             	assertTrue(rs.next());
@@ -554,21 +585,21 @@ public class ArithmeticQueryIT extends BaseHBaseManagedTimeIT {
                 assertEquals(SQLExceptionCode.DATA_EXCEEDS_MAX_CAPACITY.getErrorCode(),e.getErrorCode());
             }
             
-            query = "SELECT col4 * col5 FROM testDecimalArithmetic WHERE pk='testValueOne'";
+            query = "SELECT col4 * col5 FROM " + testDecimalArithmetic + " WHERE pk='testValueOne'";
             stmt = conn.prepareStatement(query);
             rs = stmt.executeQuery();
             assertTrue(rs.next());
             result = rs.getBigDecimal(1);
             assertEquals(0, result.compareTo(new BigDecimal("1111.11")));
 
-            query = "SELECT col3 * col5 FROM testDecimalArithmetic WHERE pk='testValueOne'";
+            query = "SELECT col3 * col5 FROM " + testDecimalArithmetic + " WHERE pk='testValueOne'";
             stmt = conn.prepareStatement(query);
             rs = stmt.executeQuery();
             assertTrue(rs.next());
             result = rs.getBigDecimal(1);
             assertEquals(0, result.compareTo(new BigDecimal("1111.11")));
             
-            query = "SELECT col2 * col4 FROM testDecimalArithmetic WHERE pk='testValueOne'";
+            query = "SELECT col2 * col4 FROM " + testDecimalArithmetic + " WHERE pk='testValueOne'";
             stmt = conn.prepareStatement(query);
             rs = stmt.executeQuery();
             assertTrue(rs.next());
@@ -576,14 +607,14 @@ public class ArithmeticQueryIT extends BaseHBaseManagedTimeIT {
             assertEquals(new BigDecimal("1234.5"), result);
             
             // Result scale has value of 0
-            query = "SELECT col1 / col3 FROM testDecimalArithmetic WHERE pk='testValueOne'";
+            query = "SELECT col1 / col3 FROM " + testDecimalArithmetic + " WHERE pk='testValueOne'";
             stmt = conn.prepareStatement(query);
             rs = stmt.executeQuery();
             assertTrue(rs.next());
             result = rs.getBigDecimal(1);
             assertEquals(new BigDecimal("1.2345678901234567890123456789E+29"), result);
             
-            query = "SELECT col1 / col4 FROM testDecimalArithmetic WHERE pk='testValueOne'";
+            query = "SELECT col1 / col4 FROM " + testDecimalArithmetic + " WHERE pk='testValueOne'";
             stmt = conn.prepareStatement(query);
             rs = stmt.executeQuery();
             assertTrue(rs.next());
@@ -591,14 +622,14 @@ public class ArithmeticQueryIT extends BaseHBaseManagedTimeIT {
             assertEquals(new BigDecimal("1.2345678901234567890123456789E+29"), result);
             
             // Result scale is 2.
-            query = "SELECT col2 / col3 FROM testDecimalArithmetic WHERE pk='testValueOne'";
+            query = "SELECT col2 / col3 FROM " + testDecimalArithmetic + " WHERE pk='testValueOne'";
             stmt = conn.prepareStatement(query);
             rs = stmt.executeQuery();
             assertTrue(rs.next());
             result = rs.getBigDecimal(1);
             assertEquals(new BigDecimal("12.34"), result);
             
-            query = "SELECT col2 / col4 FROM testDecimalArithmetic WHERE pk='testValueOne'";
+            query = "SELECT col2 / col4 FROM " + testDecimalArithmetic + " WHERE pk='testValueOne'";
             stmt = conn.prepareStatement(query);
             rs = stmt.executeQuery();
             assertTrue(rs.next());
@@ -606,14 +637,14 @@ public class ArithmeticQueryIT extends BaseHBaseManagedTimeIT {
             assertEquals(new BigDecimal("12.34"), result);
             
             // col5 has NO_SCALE, so the result's scale is not expected to be truncated to col5 value's scale of 4
-            query = "SELECT col5 / col3 FROM testDecimalArithmetic WHERE pk='testValueOne'";
+            query = "SELECT col5 / col3 FROM " + testDecimalArithmetic + " WHERE pk='testValueOne'";
             stmt = conn.prepareStatement(query);
             rs = stmt.executeQuery();
             assertTrue(rs.next());
             result = rs.getBigDecimal(1);
             assertEquals(new BigDecimal("11.1111"), result);
             
-            query = "SELECT col5 / col4 FROM testDecimalArithmetic WHERE pk='testValueOne'";
+            query = "SELECT col5 / col4 FROM " + testDecimalArithmetic + " WHERE pk='testValueOne'";
             stmt = conn.prepareStatement(query);
             rs = stmt.executeQuery();
             assertTrue(rs.next());
@@ -691,24 +722,27 @@ public class ArithmeticQueryIT extends BaseHBaseManagedTimeIT {
         }
     }
     
-    private void initIntegerTable(Connection conn) throws SQLException {
-        String ddl = "CREATE TABLE ARITHMETIC_TEST (six INTEGER PRIMARY KEY, four INTEGER, three INTEGER)";
+    private String initIntegerTable(Connection conn) throws SQLException {
+        String arithmetic_test = generateRandomString();
+        String ddl = "CREATE TABLE " + arithmetic_test
+            + " (six INTEGER PRIMARY KEY, four INTEGER, three INTEGER)";
         conn.createStatement().execute(ddl);
-        String dml = "UPSERT INTO ARITHMETIC_TEST VALUES(6, 4, 3)";
+        String dml = "UPSERT INTO " + arithmetic_test + " VALUES(6, 4, 3)";
         conn.createStatement().execute(dml);
-        conn.commit();        
+        conn.commit();
+        return arithmetic_test;
     }
     
     @Test
     public void testOrderOfOperationsAdditionSubtraction() throws Exception {
         Connection conn = DriverManager.getConnection(getUrl());
-        initIntegerTable(conn);
+        String tableName = initIntegerTable(conn);
         ResultSet rs;
         
         // 6 + 4 - 3
         // 10 - 3
         // 7
-        rs = conn.createStatement().executeQuery("SELECT six + four - three FROM ARITHMETIC_TEST");
+        rs = conn.createStatement().executeQuery("SELECT six + four - three FROM " + tableName);
         assertTrue(rs.next());
         assertEquals(7, rs.getLong(1));
         assertFalse(rs.next());
@@ -716,7 +750,7 @@ public class ArithmeticQueryIT extends BaseHBaseManagedTimeIT {
         // 4 - 3 + 6
         // 1 + 6
         // 7
-        rs = conn.createStatement().executeQuery("SELECT four - three + six FROM ARITHMETIC_TEST");
+        rs = conn.createStatement().executeQuery("SELECT four - three + six FROM " + tableName);
         assertTrue(rs.next());
         assertEquals(7, rs.getLong(1));
         assertFalse(rs.next());
@@ -725,13 +759,13 @@ public class ArithmeticQueryIT extends BaseHBaseManagedTimeIT {
     @Test
     public void testOrderOfOperationsAdditionMultiplication() throws Exception {
         Connection conn = DriverManager.getConnection(getUrl());
-        initIntegerTable(conn);
+        String tableName = initIntegerTable(conn);
         ResultSet rs;
         
         // 6 + 4 * 3
         // 6 + 12
         // 18
-        rs = conn.createStatement().executeQuery("SELECT six + four * three FROM ARITHMETIC_TEST");
+        rs = conn.createStatement().executeQuery("SELECT six + four * three FROM " + tableName);
         assertTrue(rs.next());
         assertEquals(18, rs.getLong(1));
         assertFalse(rs.next());
@@ -739,7 +773,7 @@ public class ArithmeticQueryIT extends BaseHBaseManagedTimeIT {
         // 4 * 3 + 6
         // 12 * 6     
         // 18
-        rs = conn.createStatement().executeQuery("SELECT four * three + six FROM ARITHMETIC_TEST");
+        rs = conn.createStatement().executeQuery("SELECT four * three + six FROM " + tableName);
         assertTrue(rs.next());
         assertEquals(18, rs.getLong(1));
         assertFalse(rs.next());
@@ -748,13 +782,13 @@ public class ArithmeticQueryIT extends BaseHBaseManagedTimeIT {
     @Test
     public void testOrderOfOperationsAdditionDivision() throws Exception {
         Connection conn = DriverManager.getConnection(getUrl());
-        initIntegerTable(conn);
+        String tableName = initIntegerTable(conn);
         ResultSet rs;
         
         // 6 + 4 / 3
         // 6 + 1
         // 7
-        rs = conn.createStatement().executeQuery("SELECT six + four / three FROM ARITHMETIC_TEST");
+        rs = conn.createStatement().executeQuery("SELECT six + four / three FROM " + tableName);
         assertTrue(rs.next());
         assertEquals(7, rs.getLong(1));
         assertFalse(rs.next());
@@ -762,7 +796,7 @@ public class ArithmeticQueryIT extends BaseHBaseManagedTimeIT {
         // 4 / 3 + 6
         // 1 + 6     
         // 7
-        rs = conn.createStatement().executeQuery("SELECT four / three + six FROM ARITHMETIC_TEST");
+        rs = conn.createStatement().executeQuery("SELECT four / three + six FROM " + tableName);
         assertTrue(rs.next());
         assertEquals(7, rs.getLong(1));
         assertFalse(rs.next());
@@ -771,13 +805,13 @@ public class ArithmeticQueryIT extends BaseHBaseManagedTimeIT {
     @Test
     public void testOrderOfOperationsAdditionModulus() throws Exception {
         Connection conn = DriverManager.getConnection(getUrl());
-        initIntegerTable(conn);
+        String tableName = initIntegerTable(conn);
         ResultSet rs;
         
         // 6 + 4 % 3
         // 6 + 1
         // 7
-        rs = conn.createStatement().executeQuery("SELECT six + four % three FROM ARITHMETIC_TEST");
+        rs = conn.createStatement().executeQuery("SELECT six + four % three FROM " + tableName);
         assertTrue(rs.next());
         assertEquals(7, rs.getLong(1));
         assertFalse(rs.next());
@@ -785,7 +819,7 @@ public class ArithmeticQueryIT extends BaseHBaseManagedTimeIT {
         // 4 % 3 + 6
         // 1 + 6
         // 7
-        rs = conn.createStatement().executeQuery("SELECT four % three + six FROM ARITHMETIC_TEST");
+        rs = conn.createStatement().executeQuery("SELECT four % three + six FROM " + tableName);
         assertTrue(rs.next());
         assertEquals(7, rs.getLong(1));
         assertFalse(rs.next());
@@ -794,13 +828,13 @@ public class ArithmeticQueryIT extends BaseHBaseManagedTimeIT {
     @Test
     public void testOrderOfOperationsSubtrationMultiplication() throws Exception {
         Connection conn = DriverManager.getConnection(getUrl());
-        initIntegerTable(conn);
+        String tableName = initIntegerTable(conn);
         ResultSet rs;
         
         // 6 - 4 * 3
         // 6 - 12
         // -6
-        rs = conn.createStatement().executeQuery("SELECT six - four * three FROM ARITHMETIC_TEST");
+        rs = conn.createStatement().executeQuery("SELECT six - four * three FROM " + tableName);
         assertTrue(rs.next());
         assertEquals(-6, rs.getLong(1));
         assertFalse(rs.next());
@@ -808,7 +842,7 @@ public class ArithmeticQueryIT extends BaseHBaseManagedTimeIT {
         // 4 * 3 - 6
         // 12 - 6     
         // 6
-        rs = conn.createStatement().executeQuery("SELECT four * three - six FROM ARITHMETIC_TEST");
+        rs = conn.createStatement().executeQuery("SELECT four * three - six FROM " + tableName);
         assertTrue(rs.next());
         assertEquals(6, rs.getLong(1));
         assertFalse(rs.next());
@@ -817,13 +851,13 @@ public class ArithmeticQueryIT extends BaseHBaseManagedTimeIT {
     @Test
     public void testOrderOfOperationsSubtractionDivision() throws Exception {
         Connection conn = DriverManager.getConnection(getUrl());
-        initIntegerTable(conn);
+        String tableName = initIntegerTable(conn);
         ResultSet rs;
         
         // 6 - 4 / 3
         // 6 - 1     (integer division)
         // 5
-        rs = conn.createStatement().executeQuery("SELECT six - four / three FROM ARITHMETIC_TEST");
+        rs = conn.createStatement().executeQuery("SELECT six - four / three FROM " + tableName);
         assertTrue(rs.next());
         assertEquals(5, rs.getLong(1));
         assertFalse(rs.next());
@@ -831,7 +865,7 @@ public class ArithmeticQueryIT extends BaseHBaseManagedTimeIT {
         // 4 / 3 - 6
         // 1 - 6     (integer division)
         // -5
-        rs = conn.createStatement().executeQuery("SELECT four / three - six FROM ARITHMETIC_TEST");
+        rs = conn.createStatement().executeQuery("SELECT four / three - six FROM " + tableName);
         assertTrue(rs.next());
         assertEquals(-5, rs.getLong(1));
         assertFalse(rs.next());
@@ -840,13 +874,13 @@ public class ArithmeticQueryIT extends BaseHBaseManagedTimeIT {
     @Test
     public void testOrderOfOperationsSubtractionModulus() throws Exception {
         Connection conn = DriverManager.getConnection(getUrl());
-        initIntegerTable(conn);
+        String tableName = initIntegerTable(conn);
         ResultSet rs;
         
         // 6 - 4 % 3
         // 6 - 1
         // 5
-        rs = conn.createStatement().executeQuery("SELECT six - four % three FROM ARITHMETIC_TEST");
+        rs = conn.createStatement().executeQuery("SELECT six - four % three FROM " + tableName);
         assertTrue(rs.next());
         assertEquals(5, rs.getLong(1));
         assertFalse(rs.next());
@@ -854,7 +888,7 @@ public class ArithmeticQueryIT extends BaseHBaseManagedTimeIT {
         // 4 % 3 - 6
         // 1 - 6
         // -5
-        rs = conn.createStatement().executeQuery("SELECT four % three - six FROM ARITHMETIC_TEST");
+        rs = conn.createStatement().executeQuery("SELECT four % three - six FROM " + tableName);
         assertTrue(rs.next());
         assertEquals(-5, rs.getLong(1));
         assertFalse(rs.next());
@@ -863,13 +897,13 @@ public class ArithmeticQueryIT extends BaseHBaseManagedTimeIT {
     @Test
     public void testOrderOfOperationsMultiplicationDivision() throws Exception {
         Connection conn = DriverManager.getConnection(getUrl());
-        initIntegerTable(conn);
+        String tableName = initIntegerTable(conn);
         ResultSet rs;
         
         // 6 * 4 / 3
         // 24 / 3
         // 8
-        rs = conn.createStatement().executeQuery("SELECT six * four / three FROM ARITHMETIC_TEST");
+        rs = conn.createStatement().executeQuery("SELECT six * four / three FROM " + tableName);
         assertTrue(rs.next());
         assertEquals(8, rs.getLong(1));
         assertFalse(rs.next());
@@ -877,7 +911,7 @@ public class ArithmeticQueryIT extends BaseHBaseManagedTimeIT {
         // 4 / 3 * 6
         // 1 * 6     (integer division)
         // 6
-        rs = conn.createStatement().executeQuery("SELECT four / three * six FROM ARITHMETIC_TEST");
+        rs = conn.createStatement().executeQuery("SELECT four / three * six FROM " + tableName);
         assertTrue(rs.next());
         assertEquals(6, rs.getLong(1));
         assertFalse(rs.next());
@@ -886,13 +920,13 @@ public class ArithmeticQueryIT extends BaseHBaseManagedTimeIT {
     @Test
     public void testOrderOfOperationsMultiplicationModulus() throws Exception {
         Connection conn = DriverManager.getConnection(getUrl());
-        initIntegerTable(conn);
+        String tableName = initIntegerTable(conn);
         ResultSet rs;
         
         // 6 * 4 % 3
         // 24 % 3
         // 0
-        rs = conn.createStatement().executeQuery("SELECT six * four % three FROM ARITHMETIC_TEST");
+        rs = conn.createStatement().executeQuery("SELECT six * four % three FROM " + tableName);
         assertTrue(rs.next());
         assertEquals(0, rs.getLong(1));
         assertFalse(rs.next());
@@ -900,7 +934,7 @@ public class ArithmeticQueryIT extends BaseHBaseManagedTimeIT {
         // 4 % 3 * 6
         // 1 * 6
         // 6
-        rs = conn.createStatement().executeQuery("SELECT four % three * six FROM ARITHMETIC_TEST");
+        rs = conn.createStatement().executeQuery("SELECT four % three * six FROM " + tableName);
         assertTrue(rs.next());
         assertEquals(6, rs.getLong(1));
         assertFalse(rs.next());
@@ -909,13 +943,13 @@ public class ArithmeticQueryIT extends BaseHBaseManagedTimeIT {
     @Test
     public void testOrderOfOperationsDivisionModulus() throws Exception {
         Connection conn = DriverManager.getConnection(getUrl());
-        initIntegerTable(conn);
+        String tableName = initIntegerTable(conn);
         ResultSet rs;
         
         // 6 / 4 % 3
         // 1 % 3     (integer division)
         // 1
-        rs = conn.createStatement().executeQuery("SELECT six / four % three FROM ARITHMETIC_TEST");
+        rs = conn.createStatement().executeQuery("SELECT six / four % three FROM " + tableName);
         assertTrue(rs.next());
         assertEquals(1, rs.getLong(1));
         assertFalse(rs.next());
@@ -923,7 +957,7 @@ public class ArithmeticQueryIT extends BaseHBaseManagedTimeIT {
         // 4 % 3 / 6
         // 1 / 6
         // 0         (integer division)
-        rs = conn.createStatement().executeQuery("SELECT four % three / six FROM ARITHMETIC_TEST");
+        rs = conn.createStatement().executeQuery("SELECT four % three / six FROM " + tableName);
         assertTrue(rs.next());
         assertEquals(0, rs.getLong(1));
         assertFalse(rs.next());
@@ -932,13 +966,16 @@ public class ArithmeticQueryIT extends BaseHBaseManagedTimeIT {
     @Test
     public void testCastingOnConstantAddInArithmeticEvaluation() throws Exception {
         Connection conn = DriverManager.getConnection(getUrl());
-        String ddl = "CREATE TABLE IF NOT EXISTS test_table (k1 INTEGER NOT NULL, v1 INTEGER CONSTRAINT pk PRIMARY KEY (k1))";
+        String testTable = generateRandomString();
+        String ddl = "CREATE TABLE IF NOT EXISTS " + testTable
+            + " (k1 INTEGER NOT NULL, v1 INTEGER CONSTRAINT pk PRIMARY KEY (k1))";
         conn.createStatement().execute(ddl);
-        String dml = "UPSERT INTO test_table (k1, v1) VALUES (2, 2)";
+        String dml = "UPSERT INTO " + testTable + " (k1, v1) VALUES (2, 2)";
         conn.createStatement().execute(dml);
         conn.commit();
 
-        ResultSet rs = conn.createStatement().executeQuery("SELECT k1 / (v1 + 0.5) FROM test_table");
+        ResultSet rs = conn.createStatement().executeQuery(
+            "SELECT k1 / (v1 + 0.5) FROM " + testTable);
         assertTrue(rs.next());
         double d = rs.getDouble(1);
         assertEquals(0.8, d, 0.01);
@@ -947,13 +984,16 @@ public class ArithmeticQueryIT extends BaseHBaseManagedTimeIT {
     @Test
     public void testCastingOnConstantSubInArithmeticEvaluation() throws Exception {
         Connection conn = DriverManager.getConnection(getUrl());
-        String ddl = "CREATE TABLE IF NOT EXISTS test_table (k1 INTEGER NOT NULL, v1 INTEGER CONSTRAINT pk PRIMARY KEY (k1))";
+        String testTable = generateRandomString();
+        String ddl = "CREATE TABLE IF NOT EXISTS " + testTable
+            + " (k1 INTEGER NOT NULL, v1 INTEGER CONSTRAINT pk PRIMARY KEY (k1))";
         conn.createStatement().execute(ddl);
-        String dml = "UPSERT INTO test_table (k1, v1) VALUES (2, 2)";
+        String dml = "UPSERT INTO " + testTable + " (k1, v1) VALUES (2, 2)";
         conn.createStatement().execute(dml);
         conn.commit();
 
-        ResultSet rs = conn.createStatement().executeQuery("SELECT k1 / (v1 - 0.5) FROM test_table");
+        ResultSet rs = conn.createStatement().executeQuery(
+            "SELECT k1 / (v1 - 0.5) FROM " + testTable);
         assertTrue(rs.next());
         assertEquals(1.333333333, rs.getDouble(1), 0.001);
     }
@@ -961,13 +1001,15 @@ public class ArithmeticQueryIT extends BaseHBaseManagedTimeIT {
     @Test
     public void testFloatingPointUpsert() throws Exception {
         Connection conn = DriverManager.getConnection(getUrl());
-        String ddl = "CREATE TABLE test (id VARCHAR not null primary key, name VARCHAR, lat FLOAT)";
+        String test = generateRandomString();
+        String ddl =
+            "CREATE TABLE " + test + " (id VARCHAR not null primary key, name VARCHAR, lat FLOAT)";
         conn.createStatement().execute(ddl);
-        String dml = "UPSERT INTO test(id,name,lat) VALUES ('testid', 'testname', -1.00)";
+        String dml = "UPSERT INTO " + test + "(id,name,lat) VALUES ('testid', 'testname', -1.00)";
         conn.createStatement().execute(dml);
         conn.commit();
 
-        ResultSet rs = conn.createStatement().executeQuery("SELECT lat FROM test");
+        ResultSet rs = conn.createStatement().executeQuery("SELECT lat FROM " + test);
         assertTrue(rs.next());
         assertEquals(-1.0f, rs.getFloat(1), 0.001);
     }
@@ -975,13 +1017,16 @@ public class ArithmeticQueryIT extends BaseHBaseManagedTimeIT {
     @Test
     public void testFloatingPointMultiplicationUpsert() throws Exception {
         Connection conn = DriverManager.getConnection(getUrl());
-        String ddl = "CREATE TABLE test (id VARCHAR not null primary key, name VARCHAR, lat FLOAT)";
+        String test = generateRandomString();
+        String ddl =
+            "CREATE TABLE " + test + " (id VARCHAR not null primary key, name VARCHAR, lat FLOAT)";
         conn.createStatement().execute(ddl);
-        String dml = "UPSERT INTO test(id,name,lat) VALUES ('testid', 'testname', -1.00 * 1)";
+        String dml =
+            "UPSERT INTO " + test + "(id,name,lat) VALUES ('testid', 'testname', -1.00 * 1)";
         conn.createStatement().execute(dml);
         conn.commit();
 
-        ResultSet rs = conn.createStatement().executeQuery("SELECT lat FROM test");
+        ResultSet rs = conn.createStatement().executeQuery("SELECT lat FROM " + test);
         assertTrue(rs.next());
         assertEquals(-1.0f, rs.getFloat(1), 0.001);
     }
@@ -989,9 +1034,10 @@ public class ArithmeticQueryIT extends BaseHBaseManagedTimeIT {
     @Test
     public void testSystemTableHasDoubleForExponentialNumber() throws Exception {
         Connection conn = DriverManager.getConnection(getUrl());
-        String ddl = "CREATE TABLE test (id VARCHAR not null primary key, num FLOAT)";
+        String test = generateRandomString();
+        String ddl = "CREATE TABLE " + test + " (id VARCHAR not null primary key, num FLOAT)";
         conn.createStatement().execute(ddl);
-        String dml = "UPSERT INTO test(id,num) VALUES ('testid', 1.2E3)";
+        String dml = "UPSERT INTO " + test + "(id,num) VALUES ('testid', 1.2E3)";
         conn.createStatement().execute(dml);
         conn.commit();
 
@@ -1022,8 +1068,10 @@ public class ArithmeticQueryIT extends BaseHBaseManagedTimeIT {
     
     private ResultSet createTableWithValues(String[] values, String valueType) throws SQLException {
     	Connection conn = DriverManager.getConnection(getUrl());
-        StringBuilder ddl = new StringBuilder("CREATE TABLE test (id VARCHAR not null primary key");
-        StringBuilder dmll = new StringBuilder("UPSERT INTO test(id,");
+        String test = generateRandomString();
+        StringBuilder ddl = new StringBuilder(
+            "CREATE TABLE " + test + " (id VARCHAR not null primary key");
+        StringBuilder dmll = new StringBuilder("UPSERT INTO " + test + "(id,");
         StringBuilder dmlr = new StringBuilder(") VALUES ('testid'");
         StringBuilder select = new StringBuilder("SELECT");
         for(int i = 0; i < values.length; i++) {
@@ -1036,7 +1084,7 @@ public class ArithmeticQueryIT extends BaseHBaseManagedTimeIT {
         dmlr.append(")");
         dmll.deleteCharAt(dmll.length()-1);
         select.deleteCharAt(select.length()-1);
-        select.append(" FROM test");
+        select.append(" FROM " + test);
         conn.createStatement().execute(ddl.toString());
         conn.createStatement().execute(dmll.toString() + dmlr.toString());
         conn.commit();

http://git-wip-us.apache.org/repos/asf/phoenix/blob/6d147896/phoenix-core/src/it/java/org/apache/phoenix/end2end/ArrayFillFunctionIT.java
----------------------------------------------------------------------
diff --git a/phoenix-core/src/it/java/org/apache/phoenix/end2end/ArrayFillFunctionIT.java b/phoenix-core/src/it/java/org/apache/phoenix/end2end/ArrayFillFunctionIT.java
index f9ce88d..dd9a64a 100644
--- a/phoenix-core/src/it/java/org/apache/phoenix/end2end/ArrayFillFunctionIT.java
+++ b/phoenix-core/src/it/java/org/apache/phoenix/end2end/ArrayFillFunctionIT.java
@@ -25,14 +25,22 @@ import static org.junit.Assert.assertTrue;
 import java.math.BigDecimal;
 import java.sql.*;
 
+import org.junit.BeforeClass;
 import org.junit.Test;
 
-public class ArrayFillFunctionIT extends BaseHBaseManagedTimeIT {
+public class ArrayFillFunctionIT extends BaseHBaseManagedTimeTableReuseIT {
 
-    private void initTables(Connection conn) throws Exception {
-        String ddl = "CREATE TABLE regions (region_name VARCHAR PRIMARY KEY,length1 INTEGER, length2 INTEGER,date DATE,time TIME,timestamp TIMESTAMP,varchar VARCHAR,integer INTEGER,double DOUBLE,bigint BIGINT,char CHAR(15),double1 DOUBLE,char1 CHAR(17),nullcheck INTEGER,chars2 CHAR(15)[], varchars2 VARCHAR[])";
+    private static final String REGIONS = generateRandomString();
+
+    @BeforeClass
+    public static void initTables() throws Exception {
+        Connection conn = DriverManager.getConnection(getUrl());
+        String ddl = "CREATE TABLE " + REGIONS
+            + " (region_name VARCHAR PRIMARY KEY,length1 INTEGER, length2 INTEGER,date DATE,time TIME,timestamp TIMESTAMP,varchar VARCHAR,integer INTEGER,double DOUBLE,bigint BIGINT,char CHAR(15),double1 DOUBLE,char1 CHAR(17),nullcheck INTEGER,chars2 CHAR(15)[], varchars2 VARCHAR[])";
         conn.createStatement().execute(ddl);
-        String dml = "UPSERT INTO regions(region_name,length1,length2,date,time,timestamp,varchar,integer,double,bigint,char,double1,char1,nullcheck,chars2,varchars2) VALUES('SF Bay Area'," +
+        String dml = "UPSERT INTO " + REGIONS
+            + "(region_name,length1,length2,date,time,timestamp,varchar,integer,double,bigint,char,double1,char1,nullcheck,chars2,varchars2) VALUES('SF Bay Area',"
+            +
                 "0," +
                 "-3," +
                 "to_date('2015-05-20 06:12:14.184')," +
@@ -57,10 +65,10 @@ public class ArrayFillFunctionIT extends BaseHBaseManagedTimeIT {
     @Test
     public void testArrayFillFunctionVarchar() throws Exception {
         Connection conn = DriverManager.getConnection(getUrl());
-        initTables(conn);
 
         ResultSet rs;
-        rs = conn.createStatement().executeQuery("SELECT ARRAY_FILL(varchar,5) FROM regions WHERE region_name = 'SF Bay Area'");
+        rs = conn.createStatement().executeQuery(
+            "SELECT ARRAY_FILL(varchar,5) FROM " + REGIONS + " WHERE region_name = 'SF Bay Area'");
         assertTrue(rs.next());
 
         String[] strings = new String[]{"foo", "foo", "foo", "foo", "foo"};
@@ -74,10 +82,10 @@ public class ArrayFillFunctionIT extends BaseHBaseManagedTimeIT {
     @Test
     public void testArrayFillFunctionInteger() throws Exception {
         Connection conn = DriverManager.getConnection(getUrl());
-        initTables(conn);
 
         ResultSet rs;
-        rs = conn.createStatement().executeQuery("SELECT ARRAY_FILL(integer,4) FROM regions WHERE region_name = 'SF Bay Area'");
+        rs = conn.createStatement().executeQuery(
+            "SELECT ARRAY_FILL(integer,4) FROM " + REGIONS + " WHERE region_name = 'SF Bay Area'");
         assertTrue(rs.next());
 
         Object[] objects = new Object[]{34, 34, 34, 34};
@@ -91,10 +99,11 @@ public class ArrayFillFunctionIT extends BaseHBaseManagedTimeIT {
     @Test
     public void testArrayFillFunctionDouble() throws Exception {
         Connection conn = DriverManager.getConnection(getUrl());
-        initTables(conn);
+        
 
         ResultSet rs;
-        rs = conn.createStatement().executeQuery("SELECT ARRAY_FILL(double,4) FROM regions WHERE region_name = 'SF Bay Area'");
+        rs = conn.createStatement().executeQuery(
+            "SELECT ARRAY_FILL(double,4) FROM " + REGIONS + " WHERE region_name = 'SF Bay Area'");
         assertTrue(rs.next());
 
         Object[] objects = new Object[]{23.45, 23.45, 23.45, 23.45};
@@ -108,10 +117,11 @@ public class ArrayFillFunctionIT extends BaseHBaseManagedTimeIT {
     @Test
     public void testArrayFillFunctionBigint() throws Exception {
         Connection conn = DriverManager.getConnection(getUrl());
-        initTables(conn);
+        
 
         ResultSet rs;
-        rs = conn.createStatement().executeQuery("SELECT ARRAY_FILL(bigint,4) FROM regions WHERE region_name = 'SF Bay Area'");
+        rs = conn.createStatement().executeQuery(
+            "SELECT ARRAY_FILL(bigint,4) FROM " + REGIONS + " WHERE region_name = 'SF Bay Area'");
         assertTrue(rs.next());
 
         Object[] objects = new Object[]{34567l, 34567l, 34567l, 34567l};
@@ -125,10 +135,11 @@ public class ArrayFillFunctionIT extends BaseHBaseManagedTimeIT {
     @Test
     public void testArrayFillFunctionChar() throws Exception {
         Connection conn = DriverManager.getConnection(getUrl());
-        initTables(conn);
+        
 
         ResultSet rs;
-        rs = conn.createStatement().executeQuery("SELECT ARRAY_FILL(char,4) FROM regions WHERE region_name = 'SF Bay Area'");
+        rs = conn.createStatement().executeQuery(
+            "SELECT ARRAY_FILL(char,4) FROM " + REGIONS + " WHERE region_name = 'SF Bay Area'");
         assertTrue(rs.next());
 
         Object[] objects = new Object[]{"foo", "foo", "foo", "foo"};
@@ -141,10 +152,11 @@ public class ArrayFillFunctionIT extends BaseHBaseManagedTimeIT {
     @Test
     public void testArrayFillFunctionVarChar() throws Exception {
         Connection conn = DriverManager.getConnection(getUrl());
-        initTables(conn);
+        
 
         ResultSet rs;
-        rs = conn.createStatement().executeQuery("SELECT ARRAY_FILL(varchar,4) FROM regions WHERE region_name = 'SF Bay Area'");
+        rs = conn.createStatement().executeQuery(
+            "SELECT ARRAY_FILL(varchar,4) FROM " + REGIONS + " WHERE region_name = 'SF Bay Area'");
         assertTrue(rs.next());
 
         Object[] objects = new Object[]{"foo", "foo", "foo", "foo"};
@@ -157,10 +169,11 @@ public class ArrayFillFunctionIT extends BaseHBaseManagedTimeIT {
     @Test
     public void testArrayFillFunctionDate() throws Exception {
         Connection conn = DriverManager.getConnection(getUrl());
-        initTables(conn);
+        
 
         ResultSet rs;
-        rs = conn.createStatement().executeQuery("SELECT ARRAY_FILL(date,3) FROM regions WHERE region_name = 'SF Bay Area'");
+        rs = conn.createStatement().executeQuery(
+            "SELECT ARRAY_FILL(date,3) FROM " + REGIONS + " WHERE region_name = 'SF Bay Area'");
         assertTrue(rs.next());
 
         Object[] objects = new Object[]{new Date(1432102334184l), new Date(1432102334184l), new Date(1432102334184l)};
@@ -173,10 +186,11 @@ public class ArrayFillFunctionIT extends BaseHBaseManagedTimeIT {
     @Test
     public void testArrayFillFunctionTime() throws Exception {
         Connection conn = DriverManager.getConnection(getUrl());
-        initTables(conn);
+        
 
         ResultSet rs;
-        rs = conn.createStatement().executeQuery("SELECT ARRAY_FILL(time,3) FROM regions WHERE region_name = 'SF Bay Area'");
+        rs = conn.createStatement().executeQuery(
+            "SELECT ARRAY_FILL(time,3) FROM " + REGIONS + " WHERE region_name = 'SF Bay Area'");
         assertTrue(rs.next());
 
         Object[] objects = new Object[]{new Time(1432102334184l), new Time(1432102334184l), new Time(1432102334184l)};
@@ -189,10 +203,11 @@ public class ArrayFillFunctionIT extends BaseHBaseManagedTimeIT {
     @Test
     public void testArrayFillFunctionTimestamp() throws Exception {
         Connection conn = DriverManager.getConnection(getUrl());
-        initTables(conn);
+        
 
         ResultSet rs;
-        rs = conn.createStatement().executeQuery("SELECT ARRAY_FILL(timestamp,3) FROM regions WHERE region_name = 'SF Bay Area'");
+        rs = conn.createStatement().executeQuery(
+            "SELECT ARRAY_FILL(timestamp,3) FROM " + REGIONS + " WHERE region_name = 'SF Bay Area'");
         assertTrue(rs.next());
 
         Object[] objects = new Object[]{new Timestamp(1432102334184l), new Timestamp(1432102334184l), new Timestamp(1432102334184l)};
@@ -205,10 +220,12 @@ public class ArrayFillFunctionIT extends BaseHBaseManagedTimeIT {
     @Test(expected = IllegalArgumentException.class)
     public void testArrayFillFunctionInvalidLength1() throws Exception {
         Connection conn = DriverManager.getConnection(getUrl());
-        initTables(conn);
+        
 
         ResultSet rs;
-        rs = conn.createStatement().executeQuery("SELECT ARRAY_FILL(timestamp,length2) FROM regions WHERE region_name = 'SF Bay Area'");
+        rs = conn.createStatement().executeQuery(
+            "SELECT ARRAY_FILL(timestamp,length2) FROM " + REGIONS
+                + " WHERE region_name = 'SF Bay Area'");
         assertTrue(rs.next());
 
         Object[] objects = new Object[]{new Timestamp(1432102334184l), new Timestamp(1432102334184l), new Timestamp(1432102334184l)};
@@ -221,10 +238,12 @@ public class ArrayFillFunctionIT extends BaseHBaseManagedTimeIT {
     @Test(expected = IllegalArgumentException.class)
     public void testArrayFillFunctionInvalidLength2() throws Exception {
         Connection conn = DriverManager.getConnection(getUrl());
-        initTables(conn);
+        
 
         ResultSet rs;
-        rs = conn.createStatement().executeQuery("SELECT ARRAY_FILL(timestamp,length1) FROM regions WHERE region_name = 'SF Bay Area'");
+        rs = conn.createStatement().executeQuery(
+            "SELECT ARRAY_FILL(timestamp,length1) FROM " + REGIONS
+                + " WHERE region_name = 'SF Bay Area'");
         assertTrue(rs.next());
 
         Object[] objects = new Object[]{new Timestamp(1432102334184l), new Timestamp(1432102334184l), new Timestamp(1432102334184l)};
@@ -237,10 +256,12 @@ public class ArrayFillFunctionIT extends BaseHBaseManagedTimeIT {
     @Test
     public void testArrayFillFunctionWithNestedFunctions1() throws Exception {
         Connection conn = DriverManager.getConnection(getUrl());
-        initTables(conn);
+        
 
         ResultSet rs;
-        rs = conn.createStatement().executeQuery("SELECT ARRAY_FILL(ARRAY_ELEM(ARRAY[23,45],1),3) FROM regions WHERE region_name = 'SF Bay Area'");
+        rs = conn.createStatement().executeQuery(
+            "SELECT ARRAY_FILL(ARRAY_ELEM(ARRAY[23,45],1),3) FROM " + REGIONS
+                + " WHERE region_name = 'SF Bay Area'");
         assertTrue(rs.next());
 
         Integer[] integers = new Integer[]{23, 23, 23};
@@ -254,10 +275,12 @@ public class ArrayFillFunctionIT extends BaseHBaseManagedTimeIT {
     @Test
     public void testArrayFillFunctionWithNestedFunctions2() throws Exception {
         Connection conn = DriverManager.getConnection(getUrl());
-        initTables(conn);
+        
 
         ResultSet rs;
-        rs = conn.createStatement().executeQuery("SELECT ARRAY_FILL('hello', ARRAY_LENGTH(ARRAY[34, 45])) FROM regions WHERE region_name = 'SF Bay Area'");
+        rs = conn.createStatement().executeQuery(
+            "SELECT ARRAY_FILL('hello', ARRAY_LENGTH(ARRAY[34, 45])) FROM " + REGIONS
+                + " WHERE region_name = 'SF Bay Area'");
         assertTrue(rs.next());
 
         Object[] objects = new Object[]{"hello", "hello"};
@@ -271,10 +294,12 @@ public class ArrayFillFunctionIT extends BaseHBaseManagedTimeIT {
     @Test
     public void testArrayFillFunctionWithNestedFunctions3() throws Exception {
         Connection conn = DriverManager.getConnection(getUrl());
-        initTables(conn);
+        
 
         ResultSet rs;
-        rs = conn.createStatement().executeQuery("SELECT ARRAY_FILL(3.4, ARRAY_LENGTH(ARRAY[34, 45])) FROM regions WHERE region_name = 'SF Bay Area'");
+        rs = conn.createStatement().executeQuery(
+            "SELECT ARRAY_FILL(3.4, ARRAY_LENGTH(ARRAY[34, 45])) FROM " + REGIONS
+                + " WHERE region_name = 'SF Bay Area'");
         assertTrue(rs.next());
 
         Object[] objects = new Object[]{BigDecimal.valueOf(3.4), BigDecimal.valueOf(3.4)};
@@ -289,15 +314,19 @@ public class ArrayFillFunctionIT extends BaseHBaseManagedTimeIT {
     public void testArrayFillFunctionWithUpsert1() throws Exception {
         Connection conn = DriverManager.getConnection(getUrl());
 
-        String ddl = "CREATE TABLE regions (region_name VARCHAR PRIMARY KEY,varchars VARCHAR[])";
+        String regions = generateRandomString();
+        String ddl =
+            "CREATE TABLE " + regions + " (region_name VARCHAR PRIMARY KEY,varchars VARCHAR[])";
         conn.createStatement().execute(ddl);
 
-        String dml = "UPSERT INTO regions(region_name,varchars) VALUES('SF Bay Area',ARRAY_FILL('hello',3))";
+        String dml = "UPSERT INTO " + regions
+            + "(region_name,varchars) VALUES('SF Bay Area',ARRAY_FILL('hello',3))";
         conn.createStatement().execute(dml);
         conn.commit();
 
         ResultSet rs;
-        rs = conn.createStatement().executeQuery("SELECT varchars FROM regions WHERE region_name = 'SF Bay Area'");
+        rs = conn.createStatement().executeQuery(
+            "SELECT varchars FROM " + regions + " WHERE region_name = 'SF Bay Area'");
         assertTrue(rs.next());
 
         String[] strings = new String[]{"hello", "hello", "hello"};
@@ -312,15 +341,19 @@ public class ArrayFillFunctionIT extends BaseHBaseManagedTimeIT {
     public void testArrayFillFunctionWithUpsert2() throws Exception {
         Connection conn = DriverManager.getConnection(getUrl());
 
-        String ddl = "CREATE TABLE regions (region_name VARCHAR PRIMARY KEY,integers INTEGER[])";
+        String regions = generateRandomString();
+        String ddl =
+            "CREATE TABLE " + regions + " (region_name VARCHAR PRIMARY KEY,integers INTEGER[])";
         conn.createStatement().execute(ddl);
 
-        String dml = "UPSERT INTO regions(region_name,integers) VALUES('SF Bay Area',ARRAY_FILL(3456,3))";
+        String dml = "UPSERT INTO " + regions
+            + "(region_name,integers) VALUES('SF Bay Area',ARRAY_FILL(3456,3))";
         conn.createStatement().execute(dml);
         conn.commit();
 
         ResultSet rs;
-        rs = conn.createStatement().executeQuery("SELECT integers FROM regions WHERE region_name = 'SF Bay Area'");
+        rs = conn.createStatement().executeQuery(
+            "SELECT integers FROM " + regions + " WHERE region_name = 'SF Bay Area'");
         assertTrue(rs.next());
 
         Integer[] integers = new Integer[]{3456, 3456, 3456};
@@ -335,15 +368,19 @@ public class ArrayFillFunctionIT extends BaseHBaseManagedTimeIT {
     public void testArrayFillFunctionWithUpsert3() throws Exception {
         Connection conn = DriverManager.getConnection(getUrl());
 
-        String ddl = "CREATE TABLE regions (region_name VARCHAR PRIMARY KEY,doubles DOUBLE[])";
+        String regions = generateRandomString();
+        String ddl =
+            "CREATE TABLE " + regions + " (region_name VARCHAR PRIMARY KEY,doubles DOUBLE[])";
         conn.createStatement().execute(ddl);
 
-        String dml = "UPSERT INTO regions(region_name,doubles) VALUES('SF Bay Area',ARRAY_FILL(2.5,3))";
+        String dml = "UPSERT INTO " + regions
+            + "(region_name,doubles) VALUES('SF Bay Area',ARRAY_FILL(2.5,3))";
         conn.createStatement().execute(dml);
         conn.commit();
 
         ResultSet rs;
-        rs = conn.createStatement().executeQuery("SELECT doubles FROM regions WHERE region_name = 'SF Bay Area'");
+        rs = conn.createStatement().executeQuery(
+            "SELECT doubles FROM " + regions + " WHERE region_name = 'SF Bay Area'");
         assertTrue(rs.next());
 
         Double[] doubles = new Double[]{2.5, 2.5, 2.5};
@@ -400,25 +437,34 @@ public class ArrayFillFunctionIT extends BaseHBaseManagedTimeIT {
     public void testArrayFillFunctionWithUpsertSelect2() throws Exception {
         Connection conn = DriverManager.getConnection(getUrl());
 
-        String ddl = "CREATE TABLE source (region_name VARCHAR PRIMARY KEY,varchars VARCHAR[])";
+        String source = generateRandomString();
+        String ddl =
+            "CREATE TABLE " + source + " (region_name VARCHAR PRIMARY KEY,varchars VARCHAR[])";
         conn.createStatement().execute(ddl);
 
-        ddl = "CREATE TABLE target (region_name VARCHAR PRIMARY KEY,varchars VARCHAR[],varchars2 VARCHAR[])";
+        String target = generateRandomString();
+        ddl = "CREATE TABLE " + target
+            + " (region_name VARCHAR PRIMARY KEY,varchars VARCHAR[],varchars2 VARCHAR[])";
         conn.createStatement().execute(ddl);
 
-        String dml = "UPSERT INTO source(region_name,varchars) VALUES('SF Bay Area',ARRAY_FILL('foo',3))";
+        String dml = "UPSERT INTO " + source
+            + "(region_name,varchars) VALUES('SF Bay Area',ARRAY_FILL('foo',3))";
         conn.createStatement().execute(dml);
 
-        dml = "UPSERT INTO source(region_name,varchars) VALUES('SF Bay Area2',ARRAY_FILL('hello',3))";
+        dml = "UPSERT INTO " + source
+            + "(region_name,varchars) VALUES('SF Bay Area2',ARRAY_FILL('hello',3))";
         conn.createStatement().execute(dml);
         conn.commit();
 
-        dml = "UPSERT INTO target(region_name, varchars, varchars2) SELECT region_name, varchars,ARRAY_FILL(':-)',5) FROM source";
+        dml =
+            "UPSERT INTO " + target
+                + "(region_name, varchars, varchars2) SELECT region_name, varchars,ARRAY_FILL(':-)',5) FROM "
+                + source;
         conn.createStatement().execute(dml);
         conn.commit();
 
         ResultSet rs;
-        rs = conn.createStatement().executeQuery("SELECT varchars, varchars2 FROM target");
+        rs = conn.createStatement().executeQuery("SELECT varchars, varchars2 FROM " + target);
         assertTrue(rs.next());
 
         String[] strings = new String[]{"foo", "foo", "foo"};
@@ -441,10 +487,11 @@ public class ArrayFillFunctionIT extends BaseHBaseManagedTimeIT {
     @Test
     public void testArrayFillFunctionInWhere1() throws Exception {
         Connection conn = DriverManager.getConnection(getUrl());
-        initTables(conn);
+        
 
         ResultSet rs;
-        rs = conn.createStatement().executeQuery("SELECT region_name FROM regions WHERE ARRAY[12, 12, 12, 12]=ARRAY_FILL(12,4)");
+        rs = conn.createStatement().executeQuery(
+            "SELECT region_name FROM " + REGIONS + " WHERE ARRAY[12, 12, 12, 12]=ARRAY_FILL(12,4)");
         assertTrue(rs.next());
 
         assertEquals("SF Bay Area", rs.getString(1));
@@ -454,10 +501,11 @@ public class ArrayFillFunctionIT extends BaseHBaseManagedTimeIT {
     @Test
     public void testArrayFillFunctionInWhere2() throws Exception {
         Connection conn = DriverManager.getConnection(getUrl());
-        initTables(conn);
+        
 
         ResultSet rs;
-        rs = conn.createStatement().executeQuery("SELECT region_name FROM regions WHERE varchar=ANY(ARRAY_FILL('foo',3))");
+        rs = conn.createStatement().executeQuery(
+            "SELECT region_name FROM " + REGIONS + " WHERE varchar=ANY(ARRAY_FILL('foo',3))");
         assertTrue(rs.next());
 
         assertEquals("SF Bay Area", rs.getString(1));
@@ -467,10 +515,11 @@ public class ArrayFillFunctionIT extends BaseHBaseManagedTimeIT {
     @Test
     public void testArrayFillFunctionInWhere3() throws Exception {
         Connection conn = DriverManager.getConnection(getUrl());
-        initTables(conn);
+        
 
         ResultSet rs;
-        rs = conn.createStatement().executeQuery("SELECT region_name FROM regions WHERE ARRAY['2345', '2345', '2345', '2345']=ARRAY_FILL('2345', 4)");
+        rs = conn.createStatement().executeQuery("SELECT region_name FROM " + REGIONS
+            + " WHERE ARRAY['2345', '2345', '2345', '2345']=ARRAY_FILL('2345', 4)");
         assertTrue(rs.next());
 
         assertEquals("SF Bay Area", rs.getString(1));
@@ -480,10 +529,11 @@ public class ArrayFillFunctionIT extends BaseHBaseManagedTimeIT {
     @Test
     public void testArrayFillFunctionInWhere4() throws Exception {
         Connection conn = DriverManager.getConnection(getUrl());
-        initTables(conn);
+        
 
         ResultSet rs;
-        rs = conn.createStatement().executeQuery("SELECT region_name FROM regions WHERE ARRAY[23.45, 23.45, 23.45]=ARRAY_FILL(23.45, 3)");
+        rs = conn.createStatement().executeQuery("SELECT region_name FROM " + REGIONS
+            + " WHERE ARRAY[23.45, 23.45, 23.45]=ARRAY_FILL(23.45, 3)");
         assertTrue(rs.next());
 
         assertEquals("SF Bay Area", rs.getString(1));
@@ -493,10 +543,11 @@ public class ArrayFillFunctionIT extends BaseHBaseManagedTimeIT {
     @Test
     public void testArrayFillFunctionInWhere5() throws Exception {
         Connection conn = DriverManager.getConnection(getUrl());
-        initTables(conn);
+        
 
         ResultSet rs;
-        rs = conn.createStatement().executeQuery("SELECT region_name FROM regions WHERE ARRAY['foo','foo','foo','foo','foo']=ARRAY_FILL(varchar,5)");
+        rs = conn.createStatement().executeQuery("SELECT region_name FROM " + REGIONS
+            + " WHERE ARRAY['foo','foo','foo','foo','foo']=ARRAY_FILL(varchar,5)");
         assertTrue(rs.next());
 
         assertEquals("SF Bay Area", rs.getString(1));
@@ -506,10 +557,11 @@ public class ArrayFillFunctionIT extends BaseHBaseManagedTimeIT {
     @Test
     public void testArrayFillFunctionInWhere6() throws Exception {
         Connection conn = DriverManager.getConnection(getUrl());
-        initTables(conn);
+        
 
         ResultSet rs;
-        rs = conn.createStatement().executeQuery("SELECT region_name FROM regions WHERE varchars2=ARRAY_FILL('hello',3)");
+        rs = conn.createStatement().executeQuery(
+            "SELECT region_name FROM " + REGIONS + " WHERE varchars2=ARRAY_FILL('hello',3)");
         assertTrue(rs.next());
 
         assertEquals("SF Bay Area", rs.getString(1));
@@ -519,10 +571,11 @@ public class ArrayFillFunctionIT extends BaseHBaseManagedTimeIT {
     @Test
     public void testArrayFillFunctionInWhere7() throws Exception {
         Connection conn = DriverManager.getConnection(getUrl());
-        initTables(conn);
+        
 
         ResultSet rs;
-        rs = conn.createStatement().executeQuery("SELECT region_name FROM regions WHERE ARRAY[2,2,2,2]=ARRAY_FILL(2,4)");
+        rs = conn.createStatement().executeQuery(
+            "SELECT region_name FROM " + REGIONS + " WHERE ARRAY[2,2,2,2]=ARRAY_FILL(2,4)");
         assertTrue(rs.next());
 
         assertEquals("SF Bay Area", rs.getString(1));


[2/6] phoenix git commit: PHOENIX-2822 Tests that extend BaseHBaseManagedTimeIT are very slow(Rahul Gidwani)

Posted by sa...@apache.org.
http://git-wip-us.apache.org/repos/asf/phoenix/blob/6d147896/phoenix-core/src/it/java/org/apache/phoenix/end2end/SortOrderIT.java
----------------------------------------------------------------------
diff --git a/phoenix-core/src/it/java/org/apache/phoenix/end2end/SortOrderIT.java b/phoenix-core/src/it/java/org/apache/phoenix/end2end/SortOrderIT.java
index b906ae2..4357272 100644
--- a/phoenix-core/src/it/java/org/apache/phoenix/end2end/SortOrderIT.java
+++ b/phoenix-core/src/it/java/org/apache/phoenix/end2end/SortOrderIT.java
@@ -54,180 +54,217 @@ import com.google.common.collect.Lists;
  */
 
 
-public class SortOrderIT extends BaseHBaseManagedTimeIT {
+public class SortOrderIT extends BaseHBaseManagedTimeTableReuseIT {
     
-    private static final String TABLE = "DescColumnSortOrderTest";
-
     @Test
     public void noOrder() throws Exception {
-        String ddl = "CREATE TABLE " + TABLE + " (pk VARCHAR NOT NULL PRIMARY KEY)";
-        runQueryTest(ddl, "pk", new Object[][]{{"a"}, {"b"}, {"c"}}, new Object[][]{{"a"}, {"b"}, {"c"}});
+        String table = generateRandomString();
+        String ddl = "CREATE table " + table + " (pk VARCHAR NOT NULL PRIMARY KEY)";
+        runQueryTest(ddl, "pk", new Object[][]{{"a"}, {"b"}, {"c"}}, new Object[][]{{"a"}, {"b"}, {"c"}},
+            table);
     }                                                           
 
     @Test
     public void noOrderCompositePK() throws Exception {
-        String ddl = "CREATE TABLE " + TABLE + " (oid CHAR(2) NOT NULL, code INTEGER NOT NULL constraint pk primary key (oid, code))";
+        String table = generateRandomString();
+        String ddl = "CREATE table " + table + " (oid CHAR(2) NOT NULL, code INTEGER NOT NULL constraint pk primary key (oid, code))";
         Object[][] rows = new Object[][]{{"o1", 1}, {"o2", 2}, {"o3", 3}};
-        runQueryTest(ddl, upsert("oid", "code"), rows, rows);
+        runQueryTest(ddl, upsert("oid", "code"), rows, rows, table);
     }
     
     @Test
     public void ascOrderInlinePK() throws Exception {
-        String ddl = "CREATE TABLE " + TABLE + " (pk VARCHAR NOT NULL PRIMARY KEY ASC)";
-        runQueryTest(ddl, "pk", new Object[][]{{"a"}, {"b"}, {"c"}}, new Object[][]{{"a"}, {"b"}, {"c"}});
+        String table = generateRandomString();
+        String ddl = "CREATE table " + table + " (pk VARCHAR NOT NULL PRIMARY KEY ASC)";
+        runQueryTest(ddl, "pk", new Object[][]{{"a"}, {"b"}, {"c"}}, new Object[][]{{"a"}, {"b"}, {"c"}},
+            table);
     }
     
     @Test
     public void ascOrderCompositePK() throws Exception {
-        String ddl = "CREATE TABLE " + TABLE + " (oid CHAR(2) NOT NULL, code INTEGER NOT NULL constraint pk primary key (oid ASC, code DESC))";
+        String table = generateRandomString();
+        String ddl = "CREATE table " + table + " (oid CHAR(2) NOT NULL, code INTEGER NOT NULL constraint pk primary key (oid ASC, code DESC))";
         Object[][] insertedRows = new Object[][]{{"o1", 1}, {"o1", 2}, {"o1", 3}};
         Object[][] expectedRows = new Object[][]{{"o1", 3}, {"o1", 2}, {"o1", 1}};
-        runQueryTest(ddl, upsert("oid", "code"), insertedRows, expectedRows);        
+        runQueryTest(ddl, upsert("oid", "code"), insertedRows, expectedRows, table);
     }
 
     @Test
     public void descOrderInlinePK() throws Exception {
+        String table = generateRandomString();
         for (String type : new String[]{"CHAR(2)", "VARCHAR"}) {
-            String ddl = "CREATE TABLE " + TABLE + " (pk ${type} NOT NULL PRIMARY KEY DESC)".replace("${type}", type);
-            runQueryTest(ddl, "pk", new Object[][]{{"aa"}, {"bb"}, {"cc"}}, new Object[][]{{"cc"}, {"bb"}, {"aa"}});
+            String ddl = "CREATE table " + table + " (pk ${type} NOT NULL PRIMARY KEY DESC)".replace("${type}", type);
+            runQueryTest(ddl, "pk", new Object[][]{{"aa"}, {"bb"}, {"cc"}}, new Object[][]{{"cc"}, {"bb"}, {"aa"}},
+                table);
         }
     }
     
     @Test
     public void descOrderCompositePK1() throws Exception {
-        String ddl = "CREATE TABLE " + TABLE + " (oid CHAR(2) NOT NULL, code INTEGER NOT NULL constraint pk primary key (oid DESC, code))";
+        String table = generateRandomString();
+        String ddl = "CREATE table " + table + " (oid CHAR(2) NOT NULL, code INTEGER NOT NULL constraint pk primary key (oid DESC, code))";
         Object[][] insertedRows = new Object[][]{{"o1", 1}, {"o2", 2}, {"o3", 3}};
         Object[][] expectedRows = new Object[][]{{"o3", 3}, {"o2", 2}, {"o1", 1}};
-        runQueryTest(ddl, upsert("oid", "code"), insertedRows, expectedRows);        
+        runQueryTest(ddl, upsert("oid", "code"), insertedRows, expectedRows, table);
     }
     
     @Test
     public void descOrderCompositePK2() throws Exception {
-        String ddl = "CREATE TABLE " + TABLE + " (oid CHAR(2) NOT NULL, code INTEGER NOT NULL constraint pk primary key (oid DESC, code DESC))";
+        String table = generateRandomString();
+        String ddl = "CREATE table " + table + " (oid CHAR(2) NOT NULL, code INTEGER NOT NULL constraint pk primary key (oid DESC, code DESC))";
         Object[][] insertedRows = new Object[][]{{"o1", 1}, {"o1", 2}, {"o1", 3}};
         Object[][] expectedRows = new Object[][]{{"o1", 3}, {"o1", 2}, {"o1", 1}};
-        runQueryTest(ddl, upsert("oid", "code"), insertedRows, expectedRows);        
+        runQueryTest(ddl, upsert("oid", "code"), insertedRows, expectedRows, table);
     }    
 
     @Test
     public void equalityDescInlinePK() throws Exception {
-        String ddl = "CREATE TABLE " + TABLE + " (pk VARCHAR NOT NULL PRIMARY KEY DESC)";
-        runQueryTest(ddl, upsert("pk"), new Object[][]{{"a"}, {"b"}, {"c"}}, new Object[][]{{"b"}}, new WhereCondition("pk", "=", "'b'"));
+        String table = generateRandomString();
+        String ddl = "CREATE table " + table + " (pk VARCHAR NOT NULL PRIMARY KEY DESC)";
+        runQueryTest(ddl, upsert("pk"), new Object[][]{{"a"}, {"b"}, {"c"}}, new Object[][]{{"b"}}, new WhereCondition("pk", "=", "'b'"),
+            table);
     }
     
     @Test
     public void equalityDescCompositePK1() throws Exception {
-        String ddl = "CREATE TABLE " + TABLE + " (oid CHAR(2) NOT NULL, code INTEGER NOT NULL constraint pk primary key (oid DESC, code DESC))";
+        String table = generateRandomString();
+        String ddl = "CREATE table " + table + " (oid CHAR(2) NOT NULL, code INTEGER NOT NULL constraint pk primary key (oid DESC, code DESC))";
         Object[][] insertedRows = new Object[][]{{"o1", 1}, {"o2", 2}, {"o3", 3}};
-        runQueryTest(ddl, upsert("oid", "code"), insertedRows, new Object[][]{{"o2", 2}}, new WhereCondition("oid", "=", "'o2'"));        
+        runQueryTest(ddl, upsert("oid", "code"), insertedRows, new Object[][]{{"o2", 2}}, new WhereCondition("oid", "=", "'o2'"),
+            table);
     }
     
     @Test
     public void equalityDescCompositePK2() throws Exception {
-        String ddl = "CREATE TABLE " + TABLE + " (oid CHAR(2) NOT NULL, code INTEGER NOT NULL constraint pk primary key (oid DESC, code DESC))";
+        String table = generateRandomString();
+        String ddl = "CREATE table " + table + " (oid CHAR(2) NOT NULL, code INTEGER NOT NULL constraint pk primary key (oid DESC, code DESC))";
         Object[][] insertedRows = new Object[][]{{"o1", 1}, {"o1", 2}, {"o1", 3}};
-        runQueryTest(ddl, upsert("oid", "code"), insertedRows, new Object[][]{{"o1", 2}}, new WhereCondition("code", "=", "2"));        
+        runQueryTest(ddl, upsert("oid", "code"), insertedRows, new Object[][]{{"o1", 2}}, new WhereCondition("code", "=", "2"),
+            table);
     }
     
     @Test
     public void inDescCompositePK1() throws Exception {
-        String ddl = "CREATE TABLE " + TABLE + " (oid CHAR(2) NOT NULL, code INTEGER NOT NULL constraint pk primary key (oid DESC, code DESC))";
+        String table = generateRandomString();
+        String ddl = "CREATE table " + table + " (oid CHAR(2) NOT NULL, code INTEGER NOT NULL constraint pk primary key (oid DESC, code DESC))";
         Object[][] insertedRows = new Object[][]{{"o1", 1}, {"o1", 2}, {"o1", 3}};
-        runQueryTest(ddl, upsert("oid", "code"), insertedRows, new Object[][]{{"o1", 2}}, new WhereCondition("code", "IN", "(2)"));        
+        runQueryTest(ddl, upsert("oid", "code"), insertedRows, new Object[][]{{"o1", 2}}, new WhereCondition("code", "IN", "(2)"),
+            table);
     }
     
     @Test
     public void inDescCompositePK2() throws Exception {
-        String ddl = "CREATE TABLE " + TABLE + " (oid CHAR(2) NOT NULL, code INTEGER NOT NULL constraint pk primary key (oid DESC, code DESC))";
+        String table = generateRandomString();
+        String ddl = "CREATE table " + table + " (oid CHAR(2) NOT NULL, code INTEGER NOT NULL constraint pk primary key (oid DESC, code DESC))";
         Object[][] insertedRows = new Object[][]{{"o1", 1}, {"o2", 2}, {"o3", 3}};
-        runQueryTest(ddl, upsert("oid", "code"), insertedRows, new Object[][]{{"o2", 2}}, new WhereCondition("oid", "IN", "('o2')"));        
+        runQueryTest(ddl, upsert("oid", "code"), insertedRows, new Object[][]{{"o2", 2}}, new WhereCondition("oid", "IN", "('o2')"),
+            table);
     }
     
     @Test
     public void likeDescCompositePK1() throws Exception {
-        String ddl = "CREATE TABLE " + TABLE + " (oid CHAR(2) NOT NULL, code INTEGER NOT NULL constraint pk primary key (oid DESC, code DESC))";
+        String table = generateRandomString();
+        String ddl = "CREATE table " + table + " (oid CHAR(2) NOT NULL, code INTEGER NOT NULL constraint pk primary key (oid DESC, code DESC))";
         Object[][] insertedRows = new Object[][]{{"a1", 1}, {"b2", 2}, {"c3", 3}};
-        runQueryTest(ddl, upsert("oid", "code"), insertedRows, new Object[][]{{"b2", 2}}, new WhereCondition("oid", "LIKE", "('b%')"));        
+        runQueryTest(ddl, upsert("oid", "code"), insertedRows, new Object[][]{{"b2", 2}}, new WhereCondition("oid", "LIKE", "('b%')"),
+            table);
     }
     
     @Test
     public void likeDescCompositePK2() throws Exception {
-        String ddl = "CREATE TABLE " + TABLE + " (oid CHAR(2) NOT NULL, code CHAR(2) NOT NULL constraint pk primary key (oid DESC, code DESC))";
+        String table = generateRandomString();
+        String ddl = "CREATE table " + table + " (oid CHAR(2) NOT NULL, code CHAR(2) NOT NULL constraint pk primary key (oid DESC, code DESC))";
         Object[][] insertedRows = new Object[][]{{"a1", "11"}, {"b2", "22"}, {"c3", "33"}};
-        runQueryTest(ddl, upsert("oid", "code"), insertedRows, new Object[][]{{"b2", "22"}}, new WhereCondition("code", "LIKE", "('2%')"));        
+        runQueryTest(ddl, upsert("oid", "code"), insertedRows, new Object[][]{{"b2", "22"}}, new WhereCondition("code", "LIKE", "('2%')"),
+            table);
     }
     
     @Test
     public void greaterThanDescCompositePK3() throws Exception {
-        String ddl = "CREATE TABLE " + TABLE + " (oid CHAR(2) NOT NULL, code INTEGER NOT NULL constraint pk primary key (oid DESC, code DESC))";
+        String table = generateRandomString();
+        String ddl = "CREATE table " + table + " (oid CHAR(2) NOT NULL, code INTEGER NOT NULL constraint pk primary key (oid DESC, code DESC))";
         Object[][] insertedRows = new Object[][]{{"o1", 1}, {"o1", 2}, {"o1", 3}};
         Object[][] expectedRows = new Object[][]{{"o1", 2}, {"o1", 1}};
-        runQueryTest(ddl, upsert("oid", "code"), insertedRows, expectedRows, new WhereCondition("code", "<", "3"));        
+        runQueryTest(ddl, upsert("oid", "code"), insertedRows, expectedRows, new WhereCondition("code", "<", "3"),
+            table);
     }
     
     @Test
     public void substrDescCompositePK1() throws Exception {
-        String ddl = "CREATE TABLE " + TABLE + " (oid CHAR(3) NOT NULL, code INTEGER NOT NULL constraint pk primary key (oid DESC, code ASC))";
+        String table = generateRandomString();
+        String ddl = "CREATE table " + table + " (oid CHAR(3) NOT NULL, code INTEGER NOT NULL constraint pk primary key (oid DESC, code ASC))";
         Object[][] insertedRows = new Object[][]{{"ao1", 1}, {"bo2", 2}, {"co3", 3}};
         Object[][] expectedRows = new Object[][]{{"co3", 3}, {"bo2", 2}};
-        runQueryTest(ddl, upsert("oid", "code"), insertedRows, expectedRows, new WhereCondition("SUBSTR(oid, 3, 1)", ">", "'1'"));
+        runQueryTest(ddl, upsert("oid", "code"), insertedRows, expectedRows, new WhereCondition("SUBSTR(oid, 3, 1)", ">", "'1'"),
+            table);
     }
         
     @Test
     public void substrDescCompositePK2() throws Exception {
-        String ddl = "CREATE TABLE " + TABLE + " (oid CHAR(4) NOT NULL, code INTEGER NOT NULL constraint pk primary key (oid DESC, code ASC))";
+        String table = generateRandomString();
+        String ddl = "CREATE table " + table + " (oid CHAR(4) NOT NULL, code INTEGER NOT NULL constraint pk primary key (oid DESC, code ASC))";
         Object[][] insertedRows = new Object[][]{{"aaaa", 1}, {"bbbb", 2}, {"cccd", 3}};
         Object[][] expectedRows = new Object[][]{{"cccd", 3}};
-        runQueryTest(ddl, upsert("oid", "code"), insertedRows, expectedRows, new WhereCondition("SUBSTR(oid, 4, 1)", "=", "'d'"));
+        runQueryTest(ddl, upsert("oid", "code"), insertedRows, expectedRows, new WhereCondition("SUBSTR(oid, 4, 1)", "=", "'d'"),
+            table);
     }    
     
     @Test
     public void substrFixedLengthDescPK1() throws Exception {
-        String ddl = "CREATE TABLE " + TABLE + " (oid CHAR(3) PRIMARY KEY DESC)";
+        String table = generateRandomString();
+        String ddl = "CREATE table " + table + " (oid CHAR(3) PRIMARY KEY DESC)";
         Object[][] insertedRows = new Object[][]{{"a"}, {"ab"}};
         Object[][] expectedRows = new Object[][]{{"ab"}, {"a"} };
-        runQueryTest(ddl, upsert("oid"), insertedRows, expectedRows, new WhereCondition("SUBSTR(oid, 1, 1)", "=", "'a'"));
+        runQueryTest(ddl, upsert("oid"), insertedRows, expectedRows, new WhereCondition("SUBSTR(oid, 1, 1)", "=", "'a'"),
+            table);
     }
         
     @Test
     public void substrVarLengthDescPK1() throws Exception {
-        String ddl = "CREATE TABLE " + TABLE + " (oid VARCHAR PRIMARY KEY DESC)";
+        String table = generateRandomString();
+        String ddl = "CREATE table " + table + " (oid VARCHAR PRIMARY KEY DESC)";
         Object[][] insertedRows = new Object[][]{{"a"}, {"ab"}};
         Object[][] expectedRows = new Object[][]{{"ab"}, {"a"} };
-        runQueryTest(ddl, upsert("oid"), insertedRows, expectedRows, new WhereCondition("SUBSTR(oid, 1, 1)", "=", "'a'"));
+        runQueryTest(ddl, upsert("oid"), insertedRows, expectedRows, new WhereCondition("SUBSTR(oid, 1, 1)", "=", "'a'"),
+            table);
     }
         
     @Test
     public void likeVarLengthDescPK1() throws Exception {
-        String ddl = "CREATE TABLE " + TABLE + " (oid VARCHAR PRIMARY KEY DESC)";
+        String table = generateRandomString();
+        String ddl = "CREATE table " + table + " (oid VARCHAR PRIMARY KEY DESC)";
         Object[][] insertedRows = new Object[][]{{"a"}, {"ab"}};
         Object[][] expectedRows = new Object[][]{{"ab"}, {"a"} };
-        runQueryTest(ddl, upsert("oid"), insertedRows, expectedRows, new WhereCondition("oid", "like", "'a%'"));
+        runQueryTest(ddl, upsert("oid"), insertedRows, expectedRows, new WhereCondition("oid", "like", "'a%'"),
+            table);
     }
         
     @Test
     public void likeFixedLengthDescPK1() throws Exception {
-        String ddl = "CREATE TABLE " + TABLE + " (oid CHAR(3) PRIMARY KEY DESC)";
+        String table = generateRandomString();
+        String ddl = "CREATE table " + table + " (oid CHAR(3) PRIMARY KEY DESC)";
         Object[][] insertedRows = new Object[][]{{"a"}, {"ab"}};
         Object[][] expectedRows = new Object[][]{{"ab"}, {"a"} };
-        runQueryTest(ddl, upsert("oid"), insertedRows, expectedRows, new WhereCondition("oid", "like", "'a%'"));
+        runQueryTest(ddl, upsert("oid"), insertedRows, expectedRows, new WhereCondition("oid", "like", "'a%'"),
+            table);
     }
         
     @Test
     public void decimalRangeDescPK1() throws Exception {
-        String ddl = "CREATE TABLE " + TABLE + " (oid DECIMAL PRIMARY KEY DESC)";
+        String table = generateRandomString();
+        String ddl = "CREATE table " + table + " (oid DECIMAL PRIMARY KEY DESC)";
         Connection conn = DriverManager.getConnection(getUrl());
         conn.createStatement().execute(ddl);
-        conn.createStatement().execute("UPSERT INTO " + TABLE + " VALUES(4.99)");
-        conn.createStatement().execute("UPSERT INTO " + TABLE + " VALUES(4.0)");
-        conn.createStatement().execute("UPSERT INTO " + TABLE + " VALUES(5.0)");
-        conn.createStatement().execute("UPSERT INTO " + TABLE + " VALUES(5.001)");
-        conn.createStatement().execute("UPSERT INTO " + TABLE + " VALUES(5.999)");
-        conn.createStatement().execute("UPSERT INTO " + TABLE + " VALUES(6.0)");
-        conn.createStatement().execute("UPSERT INTO " + TABLE + " VALUES(6.001)");
+        conn.createStatement().execute("UPSERT INTO " + table + " VALUES(4.99)");
+        conn.createStatement().execute("UPSERT INTO " + table + " VALUES(4.0)");
+        conn.createStatement().execute("UPSERT INTO " + table + " VALUES(5.0)");
+        conn.createStatement().execute("UPSERT INTO " + table + " VALUES(5.001)");
+        conn.createStatement().execute("UPSERT INTO " + table + " VALUES(5.999)");
+        conn.createStatement().execute("UPSERT INTO " + table + " VALUES(6.0)");
+        conn.createStatement().execute("UPSERT INTO " + table + " VALUES(6.001)");
         conn.commit();
         
-        String query = "SELECT * FROM " + TABLE + " WHERE oid >= 5.0 AND oid < 6.0";
+        String query = "SELECT * FROM " + table + " WHERE oid >= 5.0 AND oid < 6.0";
         ResultSet rs = conn.createStatement().executeQuery(query);
         assertTrue(rs.next());
         assertTrue(new BigDecimal("5.999").compareTo(rs.getBigDecimal(1)) == 0);
@@ -240,193 +277,225 @@ public class SortOrderIT extends BaseHBaseManagedTimeIT {
         
     @Test
     public void lTrimDescCompositePK() throws Exception {
-        String ddl = "CREATE TABLE " + TABLE + " (oid VARCHAR NOT NULL, code INTEGER NOT NULL constraint pk primary key (oid DESC, code DESC))";
+        String table = generateRandomString();
+        String ddl = "CREATE table " + table + " (oid VARCHAR NOT NULL, code INTEGER NOT NULL constraint pk primary key (oid DESC, code DESC))";
         Object[][] insertedRows = new Object[][]{{" o1 ", 1}, {"  o2", 2}, {"  o3", 3}};
         Object[][] expectedRows = new Object[][]{{"  o2", 2}};
-        runQueryTest(ddl, upsert("oid", "code"), insertedRows, expectedRows, new WhereCondition("LTRIM(oid)", "=", "'o2'"));
+        runQueryTest(ddl, upsert("oid", "code"), insertedRows, expectedRows, new WhereCondition("LTRIM(oid)", "=", "'o2'"),
+            table);
     }
     
     @Test
     public void lPadDescCompositePK() throws Exception {
-        String ddl = "CREATE TABLE " + TABLE + " (oid VARCHAR NOT NULL, code INTEGER NOT NULL constraint pk primary key (oid DESC, code DESC))";
+        String table = generateRandomString();
+        String ddl = "CREATE table " + table + " (oid VARCHAR NOT NULL, code INTEGER NOT NULL constraint pk primary key (oid DESC, code DESC))";
         Object[][] insertedRows = new Object[][]{{"aaaa", 1}, {"bbbb", 2}, {"cccc", 3}};
         Object[][] expectedRows = new Object[][]{{"bbbb", 2}};
-        runQueryTest(ddl, upsert("oid", "code"), insertedRows, expectedRows, new WhereCondition("LPAD(oid, 8, '123')", "=", "'1231bbbb'"));
+        runQueryTest(ddl, upsert("oid", "code"), insertedRows, expectedRows, new WhereCondition("LPAD(oid, 8, '123')", "=", "'1231bbbb'"),
+            table);
     }
 
     @Test
     public void countDescCompositePK() throws Exception {
-        String ddl = "CREATE TABLE " + TABLE + " (oid CHAR(2) NOT NULL, code INTEGER NOT NULL constraint pk primary key (oid DESC, code ASC))";
+        String table = generateRandomString();
+        String ddl = "CREATE table " + table + " (oid CHAR(2) NOT NULL, code INTEGER NOT NULL constraint pk primary key (oid DESC, code ASC))";
         Object[][] insertedRows = new Object[][]{{"o1", 1}, {"o2", 2}, {"o3", 3}};
         Object[][] expectedRows = new Object[][]{{3l}};
-        runQueryTest(ddl, upsert("oid", "code"), select("COUNT(oid)"), insertedRows, expectedRows);
+        runQueryTest(ddl, upsert("oid", "code"), select("COUNT(oid)"), insertedRows, expectedRows,
+            table);
     }
     
     @Test
     public void sumDescCompositePK() throws Exception {
-        String ddl = "CREATE TABLE " + TABLE + " (n1 INTEGER NOT NULL, n2 DECIMAL(10, 2) NOT NULL, n3 BIGINT NOT NULL " + 
+        String table = generateRandomString();
+        String ddl = "CREATE table " + table + " (n1 INTEGER NOT NULL, n2 DECIMAL(10, 2) NOT NULL, n3 BIGINT NOT NULL " +
             "constraint pk primary key (n1 DESC, n2 DESC, n3 DESC))";
         Object[][] insertedRows = new Object[][]{{10, bdec(10.2), 21l}, {20, bdec(20.2), 32l}, {30, bdec(30.2), 43l}};
         Object[][] expectedRows = new Object[][]{{60l, bdec(60.6), 96l}};
-        runQueryTest(ddl, upsert("n1", "n2", "n3"), select("SUM(n1), SUM(n2), SUM(n3)"), insertedRows, expectedRows);
+        runQueryTest(ddl, upsert("n1", "n2", "n3"), select("SUM(n1), SUM(n2), SUM(n3)"), insertedRows, expectedRows,
+            table);
     }    
     
     @Test
     public void avgDescCompositePK() throws Exception {
-        String ddl = "CREATE TABLE " + TABLE + " (n1 INTEGER NOT NULL, n2 DECIMAL(10, 2) NOT NULL, n3 BIGINT NOT NULL " + 
+        String table = generateRandomString();
+        String ddl = "CREATE table " + table + " (n1 INTEGER NOT NULL, n2 DECIMAL(10, 2) NOT NULL, n3 BIGINT NOT NULL " +
             "constraint pk primary key (n1 DESC, n2 DESC, n3 DESC))";
         Object[][] insertedRows = new Object[][]{{10, bdec(10.2), 21l}, {20, bdec(20.2), 32l}, {30, bdec(30.2), 43l}};
         Object[][] expectedRows = new Object[][]{{new BigDecimal(bint(2), -1), bdec(20.2), BigDecimal.valueOf(32)}};
-        runQueryTest(ddl, upsert("n1", "n2", "n3"), select("AVG(n1), AVG(n2), AVG(n3)"), insertedRows, expectedRows);
+        runQueryTest(ddl, upsert("n1", "n2", "n3"), select("AVG(n1), AVG(n2), AVG(n3)"), insertedRows, expectedRows,
+            table);
     }
     
     @Test
     public void minDescCompositePK() throws Exception {
-        String ddl = "CREATE TABLE " + TABLE + " (n1 INTEGER NOT NULL, n2 DECIMAL(10, 2) NOT NULL, n3 BIGINT NOT NULL " + 
+        String table = generateRandomString();
+        String ddl = "CREATE table " + table + " (n1 INTEGER NOT NULL, n2 DECIMAL(10, 2) NOT NULL, n3 BIGINT NOT NULL " +
             "constraint pk primary key (n1 DESC, n2 DESC, n3 DESC))";
         Object[][] insertedRows = new Object[][]{{10, bdec(10.2), 21l}, {20, bdec(20.2), 32l}, {30, bdec(30.2), 43l}};
         Object[][] expectedRows = new Object[][]{{10, bdec(10.2), 21l}};
-        runQueryTest(ddl, upsert("n1", "n2", "n3"), select("MIN(n1), MIN(n2), MIN(n3)"), insertedRows, expectedRows);
+        runQueryTest(ddl, upsert("n1", "n2", "n3"), select("MIN(n1), MIN(n2), MIN(n3)"), insertedRows, expectedRows,
+            table);
     }
     
     @Test
     public void maxDescCompositePK() throws Exception {
-        String ddl = "CREATE TABLE " + TABLE + " (n1 INTEGER NOT NULL, n2 DECIMAL(10, 2) NOT NULL, n3 BIGINT NOT NULL " + 
+        String table = generateRandomString();
+        String ddl = "CREATE table " + table + " (n1 INTEGER NOT NULL, n2 DECIMAL(10, 2) NOT NULL, n3 BIGINT NOT NULL " +
             "constraint pk primary key (n1 DESC, n2 DESC, n3 DESC))";
         Object[][] insertedRows = new Object[][]{{10, bdec(10.2), 21l}, {20, bdec(20.2), 32l}, {30, bdec(30.2), 43l}};
         Object[][] expectedRows = new Object[][]{{30, bdec(30.2), 43l}};
-        runQueryTest(ddl, upsert("n1", "n2", "n3"), select("MAX(n1), MAX(n2), MAX(n3)"), insertedRows, expectedRows);
+        runQueryTest(ddl, upsert("n1", "n2", "n3"), select("MAX(n1), MAX(n2), MAX(n3)"), insertedRows, expectedRows,
+            table);
     }
     
     @Test
     public void havingSumDescCompositePK() throws Exception {
-        String ddl = "CREATE TABLE " + TABLE + " (name CHAR(1) NOT NULL, code INTEGER NOT NULL " + 
+        String table = generateRandomString();
+        String ddl = "CREATE table " + table + " (name CHAR(1) NOT NULL, code INTEGER NOT NULL " +
             "constraint pk primary key (name DESC, code DESC))";
         Object[][] insertedRows = new Object[][]{{"a", 10}, {"a", 20}, {"b", 100}}; 
         Object[][] expectedRows = new Object[][]{{"a", 30l}};
         runQueryTest(ddl, upsert("name", "code"), select("name", "SUM(code)"), insertedRows, expectedRows, 
-            new HavingCondition("name", "SUM(code) = 30"));
+            new HavingCondition("name", "SUM(code) = 30"), table);
     }
     
     @Test
     public void queryDescDateWithExplicitOrderBy() throws Exception {
-        String ddl = "CREATE TABLE " + TABLE + " (c1 CHAR(1) NOT NULL, c2 CHAR(1) NOT NULL, d1 DATE NOT NULL, c3 CHAR(1) NOT NULL " + 
+        String table = generateRandomString();
+        String ddl = "CREATE table " + table + " (c1 CHAR(1) NOT NULL, c2 CHAR(1) NOT NULL, d1 DATE NOT NULL, c3 CHAR(1) NOT NULL " +
             "constraint pk primary key (c1, c2, d1 DESC, c3))";
         Object[] row1 = {"1", "2", date(10, 11, 2001), "3"};
         Object[] row2 = {"1", "2", date(10, 11, 2003), "3"};
         Object[][] insertedRows = new Object[][]{row1, row2};
         runQueryTest(ddl, upsert("c1", "c2", "d1", "c3"), select("c1, c2, d1", "c3"), insertedRows, new Object[][]{row2, row1},
-            null, null, new OrderBy("d1", OrderBy.Direction.DESC));
+            null, null, new OrderBy("d1", OrderBy.Direction.DESC), table);
     }    
     
     @Test
     public void additionOnDescCompositePK() throws Exception {
-        String ddl = "CREATE TABLE " + TABLE + " (n1 INTEGER NOT NULL, n2 DECIMAL(10, 2) NOT NULL, n3 BIGINT NOT NULL, d1 DATE NOT NULL " + 
+        String table = generateRandomString();
+        String ddl = "CREATE table " + table + " (n1 INTEGER NOT NULL, n2 DECIMAL(10, 2) NOT NULL, n3 BIGINT NOT NULL, d1 DATE NOT NULL " +
             "constraint pk primary key (n1 DESC, n2 DESC, n3 DESC, d1 DESC))";
         Object[][] insertedRows = new Object[][]{
             {10, bdec(10.2), 21l, date(1, 10, 2001)}, {20, bdec(20.2), 32l, date(2, 6, 2001)}, {30, bdec(30.2), 43l, date(3, 1, 2001)}};
         Object[][] expectedRows = new Object[][]{
             {31l, bdec(32.2), 46l, date(3, 5, 2001)}, {21l, bdec(22.2), 35l, date(2, 10, 2001)}, {11l, bdec(12.2), 24l, date(1, 14, 2001)}};
-        runQueryTest(ddl, upsert("n1", "n2", "n3", "d1"), select("n1+1, n2+2, n3+3", "d1+4"), insertedRows, expectedRows);
+        runQueryTest(ddl, upsert("n1", "n2", "n3", "d1"), select("n1+1, n2+2, n3+3", "d1+4"), insertedRows, expectedRows,
+            table);
     }
     
     @Test
     public void subtractionOnDescCompositePK() throws Exception {
-        String ddl = "CREATE TABLE " + TABLE + " (n1 INTEGER NOT NULL, n2 DECIMAL(10, 2) NOT NULL, n3 BIGINT NOT NULL, d1 DATE NOT NULL " + 
+        String table = generateRandomString();
+        String ddl = "CREATE table " + table + " (n1 INTEGER NOT NULL, n2 DECIMAL(10, 2) NOT NULL, n3 BIGINT NOT NULL, d1 DATE NOT NULL " +
             "constraint pk primary key (n1 DESC, n2 DESC, n3 DESC, d1 DESC))";
         Object[][] insertedRows = new Object[][]{
             {10, bdec(10.2), 21l, date(1, 10, 2001)}, {20, bdec(20.2), 32l, date(2, 6, 2001)}, {30, bdec(30.2), 43l, date(3, 10, 2001)}};
         Object[][] expectedRows = new Object[][]{
             {29l, bdec(28.2), 40l, date(3, 6, 2001)}, {19l, bdec(18.2), 29l, date(2, 2, 2001)}, {9l, bdec(8.2), 18l, date(1, 6, 2001)}};
-        runQueryTest(ddl, upsert("n1", "n2", "n3", "d1"), select("n1-1, n2-2, n3-3", "d1-4"), insertedRows, expectedRows);
+        runQueryTest(ddl, upsert("n1", "n2", "n3", "d1"), select("n1-1, n2-2, n3-3", "d1-4"), insertedRows, expectedRows,
+            table);
     }
     
     @Test
     public void lessThanLeadingDescCompositePK() throws Exception {
-        String ddl = "CREATE TABLE " + TABLE + " (id INTEGER NOT NULL, date DATE NOT NULL constraint pk primary key (id DESC, date))";
+        String table = generateRandomString();
+        String ddl = "CREATE table " + table + " (id INTEGER NOT NULL, date DATE NOT NULL constraint pk primary key (id DESC, date))";
         Object[][] insertedRows = new Object[][]{{1, date(1, 1, 2012)}, {3, date(1, 1, 2013)}, {2, date(1, 1, 2011)}};
         Object[][] expectedRows = new Object[][]{{1, date(1, 1, 2012)}};
-        runQueryTest(ddl, upsert("id", "date"), insertedRows, expectedRows, new WhereCondition("id", "<", "2"));
+        runQueryTest(ddl, upsert("id", "date"), insertedRows, expectedRows, new WhereCondition("id", "<", "2"),
+            table);
     }
     
     @Test
     public void lessThanTrailingDescCompositePK() throws Exception {
-        String ddl = "CREATE TABLE " + TABLE + " (id INTEGER NOT NULL, date DATE NOT NULL constraint pk primary key (id DESC, date))";
+        String table = generateRandomString();
+        String ddl = "CREATE table " + table + " (id INTEGER NOT NULL, date DATE NOT NULL constraint pk primary key (id DESC, date))";
         Object[][] insertedRows = new Object[][]{{1, date(1, 1, 2002)}, {3, date(1, 1, 2003)}, {2, date(1, 1, 2001)}};
         Object[][] expectedRows = new Object[][]{{2, date(1, 1, 2001)}};
-        runQueryTest(ddl, upsert("id", "date"), insertedRows, expectedRows, new WhereCondition("date", "<", "TO_DATE('02-02-2001','mm-dd-yyyy')"));
+        runQueryTest(ddl, upsert("id", "date"), insertedRows, expectedRows, new WhereCondition("date", "<", "TO_DATE('02-02-2001','mm-dd-yyyy')"),
+            table);
     }
     
     @Test
     public void descVarLengthPK() throws Exception {
-        String ddl = "CREATE TABLE " + TABLE + " (id VARCHAR PRIMARY KEY DESC)";
+        String table = generateRandomString();
+        String ddl = "CREATE table " + table + " (id VARCHAR PRIMARY KEY DESC)";
         Object[][] insertedRows = new Object[][]{{"a"}, {"ab"}, {"abc"}};
         Object[][] expectedRows = new Object[][]{{"abc"}, {"ab"}, {"a"}};
         runQueryTest(ddl, upsert("id"), select("id"), insertedRows, expectedRows,
-                null, null, new OrderBy("id", OrderBy.Direction.DESC));
+                null, null, new OrderBy("id", OrderBy.Direction.DESC), table);
     }
     
     @Test
     public void descVarLengthAscPKGT() throws Exception {
-        String ddl = "CREATE TABLE " + TABLE + " (k1 INTEGER NOT NULL, k2 VARCHAR, CONSTRAINT pk PRIMARY KEY (k1, k2))";
+        String table = generateRandomString();
+        String ddl = "CREATE table " + table + " (k1 INTEGER NOT NULL, k2 VARCHAR, CONSTRAINT pk PRIMARY KEY (k1, k2))";
         Object[][] insertedRows = new Object[][]{{0, null}, {1, "a"}, {2, "b"}, {3, "ba"}, {4, "baa"}, {5, "c"}, {6, "d"}};
         Object[][] expectedRows = new Object[][]{{3}, {4}, {5}, {6}};
         runQueryTest(ddl, upsert("k1", "k2"), select("k1"), insertedRows, expectedRows,
-                new WhereCondition("k2", ">", "'b'"), null, null);
+                new WhereCondition("k2", ">", "'b'"), null, null, table);
     }
         
     @Test
     public void descVarLengthDescPKGT() throws Exception {
-        String ddl = "CREATE TABLE " + TABLE + " (k1 INTEGER NOT NULL, k2 VARCHAR, CONSTRAINT pk PRIMARY KEY (k1, k2 desc))";
+        String table = generateRandomString();
+        String ddl = "CREATE table " + table + " (k1 INTEGER NOT NULL, k2 VARCHAR, CONSTRAINT pk PRIMARY KEY (k1, k2 desc))";
         Object[][] insertedRows = new Object[][]{{0, null}, {1, "a"}, {2, "b"}, {3, "ba"}, {4, "baa"}, {5, "c"}, {6, "d"}};
         Object[][] expectedRows = new Object[][]{{3}, {4}, {5}, {6}};
         runQueryTest(ddl, upsert("k1", "k2"), select("k1"), insertedRows, expectedRows,
-                new WhereCondition("k2", ">", "'b'"), null, null);
+                new WhereCondition("k2", ">", "'b'"), null, null, table);
     }
         
     @Test
     public void descVarLengthDescPKLTE() throws Exception {
-        String ddl = "CREATE TABLE " + TABLE + " (k1 INTEGER NOT NULL, k2 VARCHAR, CONSTRAINT pk PRIMARY KEY (k1, k2 desc))";
+        String table = generateRandomString();
+        String ddl = "CREATE table " + table + " (k1 INTEGER NOT NULL, k2 VARCHAR, CONSTRAINT pk PRIMARY KEY (k1, k2 desc))";
         Object[][] insertedRows = new Object[][]{{0, null}, {1, "a"}, {2, "b"}, {3, "ba"}, {4, "bb"}, {5, "bc"}, {6, "bba"}, {7, "c"}};
         Object[][] expectedRows = new Object[][]{{1}, {2}, {3}, {4}};
         runQueryTest(ddl, upsert("k1", "k2"), select("k1"), insertedRows, expectedRows,
-                new WhereCondition("k2", "<=", "'bb'"), null, null);
+                new WhereCondition("k2", "<=", "'bb'"), null, null, table);
     }
         
     @Test
     public void descVarLengthAscPKLTE() throws Exception {
-        String ddl = "CREATE TABLE " + TABLE + " (k1 INTEGER NOT NULL, k2 VARCHAR, CONSTRAINT pk PRIMARY KEY (k1, k2))";
+        String table = generateRandomString();
+        String ddl = "CREATE table " + table + " (k1 INTEGER NOT NULL, k2 VARCHAR, CONSTRAINT pk PRIMARY KEY (k1, k2))";
         Object[][] insertedRows = new Object[][]{{0, null}, {1, "a"}, {2, "b"}, {3, "ba"}, {4, "bb"}, {5, "bc"}, {6, "bba"}, {7, "c"}};
         Object[][] expectedRows = new Object[][]{{1}, {2}, {3}, {4}};
         runQueryTest(ddl, upsert("k1", "k2"), select("k1"), insertedRows, expectedRows,
-                new WhereCondition("k2", "<=", "'bb'"), null, null);
+                new WhereCondition("k2", "<=", "'bb'"), null, null, table);
     }
         
     @Test
     public void varLengthAscLT() throws Exception {
-        String ddl = "CREATE TABLE " + TABLE + " (k1 VARCHAR NOT NULL, k2 VARCHAR, CONSTRAINT pk PRIMARY KEY (k1, k2))";
+        String table = generateRandomString();
+        String ddl = "CREATE table " + table + " (k1 VARCHAR NOT NULL, k2 VARCHAR, CONSTRAINT pk PRIMARY KEY (k1, k2))";
         Object[][] insertedRows = new Object[][]{{"a", ""}, {"b",""}, {"b","a"}};
         Object[][] expectedRows = new Object[][]{{"a"}};
         runQueryTest(ddl, upsert("k1", "k2"), select("k1"), insertedRows, expectedRows,
-                new WhereCondition("k1", "<", "'b'"), null, null);
+                new WhereCondition("k1", "<", "'b'"), null, null, table);
     }
         
     @Test
     public void varLengthDescLT() throws Exception {
-        String ddl = "CREATE TABLE " + TABLE + " (k1 VARCHAR NOT NULL, k2 VARCHAR, CONSTRAINT pk PRIMARY KEY (k1 desc, k2))";
+        String table = generateRandomString();
+        String ddl = "CREATE table " + table + " (k1 VARCHAR NOT NULL, k2 VARCHAR, CONSTRAINT pk PRIMARY KEY (k1 desc, k2))";
         Object[][] insertedRows = new Object[][]{{"a", ""}, {"b",""}, {"b","a"}};
         Object[][] expectedRows = new Object[][]{{"a"}};
         runQueryTest(ddl, upsert("k1", "k2"), select("k1"), insertedRows, expectedRows,
-                new WhereCondition("k1", "<", "'b'"), null, null);
+                new WhereCondition("k1", "<", "'b'"), null, null, table);
     }
         
     @Test
     public void varLengthDescGT() throws Exception {
-        String ddl = "CREATE TABLE " + TABLE + " (k1 VARCHAR NOT NULL, k2 VARCHAR, CONSTRAINT pk PRIMARY KEY (k1 desc, k2))";
+        String table = generateRandomString();
+        String ddl = "CREATE table " + table + " (k1 VARCHAR NOT NULL, k2 VARCHAR, CONSTRAINT pk PRIMARY KEY (k1 desc, k2))";
         Object[][] insertedRows = new Object[][]{{"a", ""}, {"b",""}, {"b","a"}, {"ba","a"}};
         Object[][] expectedRows = new Object[][]{{"ba"}};
         runQueryTest(ddl, upsert("k1", "k2"), select("k1"), insertedRows, expectedRows,
-                new WhereCondition("k1", ">", "'b'"), null, null);
+                new WhereCondition("k1", ">", "'b'"), null, null, table);
     }
         
    @Test
@@ -489,35 +558,37 @@ public class SortOrderIT extends BaseHBaseManagedTimeIT {
         }
     }
 
-    private void runQueryTest(String ddl, String columnName, Object[][] rows, Object[][] expectedRows) throws Exception {
-        runQueryTest(ddl, new String[]{columnName}, rows, expectedRows, null);
+    private void runQueryTest(String ddl, String columnName, Object[][] rows,
+        Object[][] expectedRows, String table) throws Exception {
+        runQueryTest(ddl, new String[]{columnName}, rows, expectedRows, null, table);
     }
     
-    private void runQueryTest(String ddl, String[] columnNames, Object[][] rows, Object[][] expectedRows) throws Exception {
-        runQueryTest(ddl, columnNames, rows, expectedRows, null);
+    private void runQueryTest(String ddl, String[] columnNames, Object[][] rows,
+        Object[][] expectedRows, String table) throws Exception {
+        runQueryTest(ddl, columnNames, rows, expectedRows, null, table);
     }
     
-    private void runQueryTest(String ddl, String[] columnNames, Object[][] rows, Object[][] expectedRows, WhereCondition condition) throws Exception {
-        runQueryTest(ddl, columnNames, columnNames, rows, expectedRows, condition, null, null);
+    private void runQueryTest(String ddl, String[] columnNames, Object[][] rows, Object[][] expectedRows, WhereCondition condition,
+        String table) throws Exception {
+        runQueryTest(ddl, columnNames, columnNames, rows, expectedRows, condition, null, null,
+            table);
     }
     
-    private void runQueryTest(String ddl, String[] columnNames, String[] projections, Object[][] rows, Object[][] expectedRows) throws Exception {
-        runQueryTest(ddl, columnNames, projections, rows, expectedRows, null, null, null);
+    private void runQueryTest(String ddl, String[] columnNames, String[] projections, Object[][] rows, Object[][] expectedRows,
+        String table) throws Exception {
+        runQueryTest(ddl, columnNames, projections, rows, expectedRows, null, null, null, table);
     }
     
-    private void runQueryTest(String ddl, String[] columnNames, String[] projections, Object[][] rows, Object[][] expectedRows, HavingCondition havingCondition) throws Exception {
-        runQueryTest(ddl, columnNames, projections, rows, expectedRows, null, havingCondition, null);
+    private void runQueryTest(String ddl, String[] columnNames, String[] projections, Object[][] rows, Object[][] expectedRows, HavingCondition havingCondition,
+        String table) throws Exception {
+        runQueryTest(ddl, columnNames, projections, rows, expectedRows, null, havingCondition, null,
+            table);
     }
     
 
-    private void runQueryTest(
-        String ddl, 
-        String[] columnNames, 
-        String[] projections, 
-        Object[][] rows, Object[][] expectedRows, 
-        WhereCondition whereCondition, 
-        HavingCondition havingCondition,
-        OrderBy orderBy) 
+    private void runQueryTest(String ddl, String[] columnNames, String[] projections, Object[][] rows, Object[][] expectedRows,
+        WhereCondition whereCondition, HavingCondition havingCondition, OrderBy orderBy,
+        String table)
         throws Exception 
     {
         Properties props = PropertiesUtil.deepCopy(TEST_PROPERTIES);
@@ -531,7 +602,7 @@ public class SortOrderIT extends BaseHBaseManagedTimeIT {
 
             String columns = appendColumns(columnNames);
             String placeholders = appendPlaceholders(columnNames);
-            String dml = "UPSERT INTO " + TABLE + " (" + columns + ") VALUES(" + placeholders +")";
+            String dml = "UPSERT INTO " + table + " (" + columns + ") VALUES(" + placeholders +")";
             PreparedStatement stmt = conn.prepareStatement(dml);
 
             for (int row = 0; row < rows.length; row++) {
@@ -543,7 +614,7 @@ public class SortOrderIT extends BaseHBaseManagedTimeIT {
             }
             conn.commit();
             
-            String selectClause = "SELECT " + appendColumns(projections) + " FROM " + TABLE;
+            String selectClause = "SELECT " + appendColumns(projections) + " FROM " + table;
             
             for (WhereCondition whereConditionClause : new WhereCondition[]{whereCondition, WhereCondition.reverse(whereCondition)}) {
                 String query = WhereCondition.appendWhere(whereConditionClause, selectClause);

http://git-wip-us.apache.org/repos/asf/phoenix/blob/6d147896/phoenix-core/src/it/java/org/apache/phoenix/end2end/StatementHintsIT.java
----------------------------------------------------------------------
diff --git a/phoenix-core/src/it/java/org/apache/phoenix/end2end/StatementHintsIT.java b/phoenix-core/src/it/java/org/apache/phoenix/end2end/StatementHintsIT.java
index 70246f9..887a30e 100644
--- a/phoenix-core/src/it/java/org/apache/phoenix/end2end/StatementHintsIT.java
+++ b/phoenix-core/src/it/java/org/apache/phoenix/end2end/StatementHintsIT.java
@@ -37,7 +37,9 @@ import org.junit.Test;
  */
 
 
-public class StatementHintsIT extends BaseHBaseManagedTimeIT {
+public class StatementHintsIT extends BaseHBaseManagedTimeTableReuseIT {
+
+    private static final String TABLE_NAME = generateRandomString();
 
     private static void initTableValues() throws Exception {
         Properties props = PropertiesUtil.deepCopy(TEST_PROPERTIES);
@@ -45,7 +47,7 @@ public class StatementHintsIT extends BaseHBaseManagedTimeIT {
         conn.setAutoCommit(false);
         
         try {
-            String ddl = "CREATE TABLE test_table" +
+            String ddl = "CREATE TABLE " + TABLE_NAME  +
                     "   (a_integer integer not null, \n" +
                     "    a_string varchar not null, \n" +
                     "    a_id char(3) not null,\n" +
@@ -56,7 +58,7 @@ public class StatementHintsIT extends BaseHBaseManagedTimeIT {
             String query;
             PreparedStatement stmt;
             
-            query = "UPSERT INTO test_table"
+            query = "UPSERT INTO " + TABLE_NAME
                     + "(a_integer, a_string, a_id, b_string) "
                     + "VALUES(?,?,?,?)";
             stmt = conn.prepareStatement(query);
@@ -108,7 +110,7 @@ public class StatementHintsIT extends BaseHBaseManagedTimeIT {
         Connection conn = DriverManager.getConnection(getUrl(), props);
         try {
             initTableValues();
-            String query = "SELECT /*+ RANGE_SCAN */ * FROM test_table WHERE a_integer IN (1, 2, 3, 4)";
+            String query = "SELECT /*+ RANGE_SCAN */ * FROM " + TABLE_NAME + " WHERE a_integer IN (1, 2, 3, 4)";
             PreparedStatement stmt = conn.prepareStatement(query);
             ResultSet rs = stmt.executeQuery();
             
@@ -145,7 +147,7 @@ public class StatementHintsIT extends BaseHBaseManagedTimeIT {
         try {
             initTableValues();
             // second slot on the 
-            String query = "SELECT /*+ SKIP_SCAN */ * FROM test_table WHERE a_string = 'abc'";
+            String query = "SELECT /*+ SKIP_SCAN */ * FROM " + TABLE_NAME + " WHERE a_string = 'abc'";
             PreparedStatement stmt = conn.prepareStatement(query);
             ResultSet rs = stmt.executeQuery();
             

http://git-wip-us.apache.org/repos/asf/phoenix/blob/6d147896/phoenix-core/src/it/java/org/apache/phoenix/end2end/StoreNullsIT.java
----------------------------------------------------------------------
diff --git a/phoenix-core/src/it/java/org/apache/phoenix/end2end/StoreNullsIT.java b/phoenix-core/src/it/java/org/apache/phoenix/end2end/StoreNullsIT.java
index 8efeefc..cbce02e 100644
--- a/phoenix-core/src/it/java/org/apache/phoenix/end2end/StoreNullsIT.java
+++ b/phoenix-core/src/it/java/org/apache/phoenix/end2end/StoreNullsIT.java
@@ -35,6 +35,7 @@ import org.apache.phoenix.util.PhoenixRuntime;
 import org.apache.phoenix.util.SchemaUtil;
 import org.junit.After;
 import org.junit.Before;
+import org.junit.BeforeClass;
 import org.junit.Test;
 
 import java.io.IOException;
@@ -57,24 +58,26 @@ import static org.junit.Assert.assertTrue;
  * functionality allows having row-level versioning (similar to how KEEP_DELETED_CELLS works), but
  * also allows permanently deleting a row.
  */
-public class StoreNullsIT extends BaseHBaseManagedTimeIT {
+public class StoreNullsIT extends BaseHBaseManagedTimeTableReuseIT {
 
     private static final Log LOG = LogFactory.getLog(StoreNullsIT.class);
+    private static final String WITH_NULLS = generateRandomString();
+    private static final String WITHOUT_NULLS = generateRandomString();
 
-    private Connection conn;
-    private Statement stmt;
+    private static Connection conn;
+    private static Statement stmt;
 
-    @Before
-    public void setUp() throws SQLException {
+    @BeforeClass
+    public static void setUp() throws SQLException {
         conn = DriverManager.getConnection(getUrl());
         conn.setAutoCommit(true);
 
         stmt = conn.createStatement();
-        stmt.execute("CREATE TABLE with_nulls (" +
+        stmt.execute("CREATE TABLE " + WITH_NULLS + " (" +
                         "id SMALLINT NOT NULL PRIMARY KEY, " +
                         "name VARCHAR) " +
                 "STORE_NULLS = true, VERSIONS = 1000, KEEP_DELETED_CELLS = false");
-        stmt.execute("CREATE TABLE without_nulls (" +
+        stmt.execute("CREATE TABLE " + WITHOUT_NULLS + " (" +
                         "id SMALLINT NOT NULL PRIMARY KEY, " +
                         "name VARCHAR) " +
                 "VERSIONS = 1000, KEEP_DELETED_CELLS = false");
@@ -88,19 +91,19 @@ public class StoreNullsIT extends BaseHBaseManagedTimeIT {
 
     @Test
     public void testQueryingHistory() throws SQLException, InterruptedException, IOException {
-        stmt.executeUpdate("UPSERT INTO with_nulls VALUES (1, 'v1')");
-        stmt.executeUpdate("UPSERT INTO without_nulls VALUES (1, 'v1')");
+        stmt.executeUpdate("UPSERT INTO " + WITH_NULLS + " VALUES (1, 'v1')");
+        stmt.executeUpdate("UPSERT INTO " + WITHOUT_NULLS + " VALUES (1, 'v1')");
 
         Thread.sleep(10L);
         long afterFirstInsert = System.currentTimeMillis();
         Thread.sleep(10L);
 
-        stmt.executeUpdate("UPSERT INTO with_nulls VALUES (1, null)");
-        stmt.executeUpdate("UPSERT INTO without_nulls VALUES (1, null)");
+        stmt.executeUpdate("UPSERT INTO " + WITH_NULLS + " VALUES (1, null)");
+        stmt.executeUpdate("UPSERT INTO " + WITHOUT_NULLS + " VALUES (1, null)");
         Thread.sleep(10L);
 
-        doMajorCompaction("with_nulls");
-        doMajorCompaction("without_nulls");
+        doMajorCompaction(WITH_NULLS);
+        doMajorCompaction(WITHOUT_NULLS);
 
         Properties historicalProps = new Properties();
         historicalProps.setProperty(PhoenixRuntime.CURRENT_SCN_ATTRIB,
@@ -108,13 +111,14 @@ public class StoreNullsIT extends BaseHBaseManagedTimeIT {
         Connection historicalConn = DriverManager.getConnection(getUrl(), historicalProps);
         Statement historicalStmt = historicalConn.createStatement();
 
-        ResultSet rs = historicalStmt.executeQuery("SELECT name FROM with_nulls WHERE id = 1");
+        ResultSet rs = historicalStmt.executeQuery(
+            "SELECT name FROM " + WITH_NULLS + " WHERE id = 1");
         assertTrue(rs.next());
         assertEquals("v1", rs.getString(1));
         rs.close();
 
         // The single null wipes out all history for a field if STORE_NULLS is not enabled
-        rs = historicalStmt.executeQuery("SELECT name FROM without_nulls WHERE id = 1");
+        rs = historicalStmt.executeQuery("SELECT name FROM " + WITHOUT_NULLS + " WHERE id = 1");
         assertTrue(rs.next());
         assertNull(rs.getString(1));
         rs.close();
@@ -126,19 +130,19 @@ public class StoreNullsIT extends BaseHBaseManagedTimeIT {
     // Row deletes should work in the same way regardless of what STORE_NULLS is set to
     @Test
     public void testDeletes() throws SQLException, InterruptedException, IOException {
-        stmt.executeUpdate("UPSERT INTO with_nulls VALUES (1, 'v1')");
-        stmt.executeUpdate("UPSERT INTO without_nulls VALUES (1, 'v1')");
+        stmt.executeUpdate("UPSERT INTO " + WITH_NULLS + " VALUES (1, 'v1')");
+        stmt.executeUpdate("UPSERT INTO " + WITHOUT_NULLS + " VALUES (1, 'v1')");
 
         Thread.sleep(10L);
         long afterFirstInsert = System.currentTimeMillis();
         Thread.sleep(10L);
 
-        stmt.executeUpdate("DELETE FROM with_nulls WHERE id = 1");
-        stmt.executeUpdate("DELETE FROM without_nulls WHERE id = 1");
+        stmt.executeUpdate("DELETE FROM " + WITH_NULLS + " WHERE id = 1");
+        stmt.executeUpdate("DELETE FROM " + WITHOUT_NULLS + " WHERE id = 1");
         Thread.sleep(10L);
 
-        doMajorCompaction("with_nulls");
-        doMajorCompaction("without_nulls");
+        doMajorCompaction(WITH_NULLS);
+        doMajorCompaction(WITHOUT_NULLS);
 
         Properties historicalProps = new Properties();
         historicalProps.setProperty(PhoenixRuntime.CURRENT_SCN_ATTRIB,
@@ -148,11 +152,12 @@ public class StoreNullsIT extends BaseHBaseManagedTimeIT {
 
         // The row should be completely gone for both tables now
 
-        ResultSet rs = historicalStmt.executeQuery("SELECT name FROM with_nulls WHERE id = 1");
+        ResultSet rs = historicalStmt.executeQuery(
+            "SELECT name FROM " + WITH_NULLS + " WHERE id = 1");
         assertFalse(rs.next());
         rs.close();
 
-        rs = historicalStmt.executeQuery("SELECT name FROM without_nulls WHERE id = 1");
+        rs = historicalStmt.executeQuery("SELECT name FROM " + WITHOUT_NULLS + " WHERE id = 1");
         assertFalse(rs.next());
         rs.close();
     }

http://git-wip-us.apache.org/repos/asf/phoenix/blob/6d147896/phoenix-core/src/it/java/org/apache/phoenix/end2end/StringToArrayFunctionIT.java
----------------------------------------------------------------------
diff --git a/phoenix-core/src/it/java/org/apache/phoenix/end2end/StringToArrayFunctionIT.java b/phoenix-core/src/it/java/org/apache/phoenix/end2end/StringToArrayFunctionIT.java
index 6e6ac9f..d341646 100644
--- a/phoenix-core/src/it/java/org/apache/phoenix/end2end/StringToArrayFunctionIT.java
+++ b/phoenix-core/src/it/java/org/apache/phoenix/end2end/StringToArrayFunctionIT.java
@@ -25,14 +25,22 @@ import java.sql.*;
 
 import org.apache.phoenix.schema.types.PVarchar;
 import org.apache.phoenix.schema.types.PhoenixArray;
+import org.junit.BeforeClass;
 import org.junit.Test;
 
-public class StringToArrayFunctionIT extends BaseHBaseManagedTimeIT {
+public class StringToArrayFunctionIT extends BaseHBaseManagedTimeTableReuseIT {
 
-    private void initTables(Connection conn) throws Exception {
-        String ddl = "CREATE TABLE regions (region_name VARCHAR PRIMARY KEY, string1 VARCHAR, string2 CHAR(50), delimiter1 VARCHAR, delimiter2 CHAR(20), nullstring1 VARCHAR, nullstring2 CHAR(20))";
+    private static final String TABLE_NAME = generateRandomString();
+
+    @BeforeClass
+    public static void initTables() throws Exception {
+        Connection conn = DriverManager.getConnection(getUrl());
+        String ddl = "CREATE TABLE " + TABLE_NAME
+            + " (region_name VARCHAR PRIMARY KEY, string1 VARCHAR, string2 CHAR(50), delimiter1 VARCHAR, delimiter2 CHAR(20), nullstring1 VARCHAR, nullstring2 CHAR(20))";
         conn.createStatement().execute(ddl);
-        String dml = "UPSERT INTO regions(region_name, string1, string2, delimiter1, delimiter2, nullstring1, nullstring2) VALUES('SF Bay Area'," +
+        String dml = "UPSERT INTO " + TABLE_NAME
+            + "(region_name, string1, string2, delimiter1, delimiter2, nullstring1, nullstring2) VALUES('SF Bay Area',"
+            +
                 "'a,b,c,d'," +
                 "'1.2.3.4'," +
                 "','," +
@@ -48,10 +56,11 @@ public class StringToArrayFunctionIT extends BaseHBaseManagedTimeIT {
     @Test
     public void testStringToArrayFunction1() throws Exception {
         Connection conn = DriverManager.getConnection(getUrl());
-        initTables(conn);
 
         ResultSet rs;
-        rs = conn.createStatement().executeQuery("SELECT STRING_TO_ARRAY(string1, delimiter1) FROM regions WHERE region_name = 'SF Bay Area'");
+        rs = conn.createStatement().executeQuery(
+            "SELECT STRING_TO_ARRAY(string1, delimiter1) FROM " + TABLE_NAME
+                + " WHERE region_name = 'SF Bay Area'");
         assertTrue(rs.next());
 
         PhoenixArray expected = new PhoenixArray(PVarchar.INSTANCE, new Object[]{"a", "b", "c", "d"});
@@ -63,10 +72,11 @@ public class StringToArrayFunctionIT extends BaseHBaseManagedTimeIT {
     @Test
     public void testStringToArrayFunction2() throws Exception {
         Connection conn = DriverManager.getConnection(getUrl());
-        initTables(conn);
 
         ResultSet rs;
-        rs = conn.createStatement().executeQuery("SELECT STRING_TO_ARRAY(string1, delimiter1, nullstring1) FROM regions WHERE region_name = 'SF Bay Area'");
+        rs = conn.createStatement().executeQuery(
+            "SELECT STRING_TO_ARRAY(string1, delimiter1, nullstring1) FROM " + TABLE_NAME
+                + " WHERE region_name = 'SF Bay Area'");
         assertTrue(rs.next());
 
         PhoenixArray expected = new PhoenixArray(PVarchar.INSTANCE, new Object[]{"a", "b", null, "d"});
@@ -78,10 +88,11 @@ public class StringToArrayFunctionIT extends BaseHBaseManagedTimeIT {
     @Test
     public void testStringToArrayFunction3() throws Exception {
         Connection conn = DriverManager.getConnection(getUrl());
-        initTables(conn);
 
         ResultSet rs;
-        rs = conn.createStatement().executeQuery("SELECT STRING_TO_ARRAY(string1, delimiter1, 'a') FROM regions WHERE region_name = 'SF Bay Area'");
+        rs = conn.createStatement().executeQuery(
+            "SELECT STRING_TO_ARRAY(string1, delimiter1, 'a') FROM " + TABLE_NAME
+                + " WHERE region_name = 'SF Bay Area'");
         assertTrue(rs.next());
 
         PhoenixArray expected = new PhoenixArray(PVarchar.INSTANCE, new Object[]{null, "b", "c", "d"});
@@ -93,10 +104,11 @@ public class StringToArrayFunctionIT extends BaseHBaseManagedTimeIT {
     @Test
     public void testStringToArrayFunction4() throws Exception {
         Connection conn = DriverManager.getConnection(getUrl());
-        initTables(conn);
 
         ResultSet rs;
-        rs = conn.createStatement().executeQuery("SELECT STRING_TO_ARRAY(string1, delimiter1, 'd') FROM regions WHERE region_name = 'SF Bay Area'");
+        rs = conn.createStatement().executeQuery(
+            "SELECT STRING_TO_ARRAY(string1, delimiter1, 'd') FROM " + TABLE_NAME
+                + " WHERE region_name = 'SF Bay Area'");
         assertTrue(rs.next());
 
         PhoenixArray expected = new PhoenixArray(PVarchar.INSTANCE, new Object[]{"a", "b", "c", null});
@@ -108,10 +120,11 @@ public class StringToArrayFunctionIT extends BaseHBaseManagedTimeIT {
     @Test
     public void testStringToArrayFunction5() throws Exception {
         Connection conn = DriverManager.getConnection(getUrl());
-        initTables(conn);
 
         ResultSet rs;
-        rs = conn.createStatement().executeQuery("SELECT STRING_TO_ARRAY(string2, delimiter2) FROM regions WHERE region_name = 'SF Bay Area'");
+        rs = conn.createStatement().executeQuery(
+            "SELECT STRING_TO_ARRAY(string2, delimiter2) FROM " + TABLE_NAME
+                + " WHERE region_name = 'SF Bay Area'");
         assertTrue(rs.next());
 
         PhoenixArray expected = new PhoenixArray(PVarchar.INSTANCE, new Object[]{"1", "2", "3", "4"});
@@ -123,10 +136,11 @@ public class StringToArrayFunctionIT extends BaseHBaseManagedTimeIT {
     @Test
     public void testStringToArrayFunction6() throws Exception {
         Connection conn = DriverManager.getConnection(getUrl());
-        initTables(conn);
 
         ResultSet rs;
-        rs = conn.createStatement().executeQuery("SELECT STRING_TO_ARRAY(string2, delimiter2, nullstring2) FROM regions WHERE region_name = 'SF Bay Area'");
+        rs = conn.createStatement().executeQuery(
+            "SELECT STRING_TO_ARRAY(string2, delimiter2, nullstring2) FROM " + TABLE_NAME
+                + " WHERE region_name = 'SF Bay Area'");
         assertTrue(rs.next());
 
         PhoenixArray expected = new PhoenixArray(PVarchar.INSTANCE, new Object[]{"1", "2", null, "4"});
@@ -138,10 +152,11 @@ public class StringToArrayFunctionIT extends BaseHBaseManagedTimeIT {
     @Test
     public void testStringToArrayFunction7() throws Exception {
         Connection conn = DriverManager.getConnection(getUrl());
-        initTables(conn);
 
         ResultSet rs;
-        rs = conn.createStatement().executeQuery("SELECT STRING_TO_ARRAY(string2, delimiter2, '1') FROM regions WHERE region_name = 'SF Bay Area'");
+        rs = conn.createStatement().executeQuery(
+            "SELECT STRING_TO_ARRAY(string2, delimiter2, '1') FROM " + TABLE_NAME
+                + " WHERE region_name = 'SF Bay Area'");
         assertTrue(rs.next());
 
         PhoenixArray expected = new PhoenixArray(PVarchar.INSTANCE, new Object[]{null, "2", "3", "4"});
@@ -153,10 +168,11 @@ public class StringToArrayFunctionIT extends BaseHBaseManagedTimeIT {
     @Test
     public void testStringToArrayFunction8() throws Exception {
         Connection conn = DriverManager.getConnection(getUrl());
-        initTables(conn);
 
         ResultSet rs;
-        rs = conn.createStatement().executeQuery("SELECT STRING_TO_ARRAY(string2, delimiter2, '4') FROM regions WHERE region_name = 'SF Bay Area'");
+        rs = conn.createStatement().executeQuery(
+            "SELECT STRING_TO_ARRAY(string2, delimiter2, '4') FROM " + TABLE_NAME
+                + " WHERE region_name = 'SF Bay Area'");
         assertTrue(rs.next());
 
         PhoenixArray expected = new PhoenixArray(PVarchar.INSTANCE, new Object[]{"1", "2", "3", null});
@@ -168,10 +184,11 @@ public class StringToArrayFunctionIT extends BaseHBaseManagedTimeIT {
     @Test
     public void testStringToArrayFunction9() throws Exception {
         Connection conn = DriverManager.getConnection(getUrl());
-        initTables(conn);
 
         ResultSet rs;
-        rs = conn.createStatement().executeQuery("SELECT STRING_TO_ARRAY(region_name, ' ', '4') FROM regions WHERE region_name = 'SF Bay Area'");
+        rs = conn.createStatement().executeQuery(
+            "SELECT STRING_TO_ARRAY(region_name, ' ', '4') FROM " + TABLE_NAME
+                + " WHERE region_name = 'SF Bay Area'");
         assertTrue(rs.next());
 
         PhoenixArray expected = new PhoenixArray(PVarchar.INSTANCE, new Object[]{"SF", "Bay", "Area"});
@@ -183,10 +200,11 @@ public class StringToArrayFunctionIT extends BaseHBaseManagedTimeIT {
     @Test
     public void testStringToArrayFunction10() throws Exception {
         Connection conn = DriverManager.getConnection(getUrl());
-        initTables(conn);
 
         ResultSet rs;
-        rs = conn.createStatement().executeQuery("SELECT STRING_TO_ARRAY('hello,hello,hello', delimiter1) FROM regions WHERE region_name = 'SF Bay Area'");
+        rs = conn.createStatement().executeQuery(
+            "SELECT STRING_TO_ARRAY('hello,hello,hello', delimiter1) FROM " + TABLE_NAME
+                + " WHERE region_name = 'SF Bay Area'");
         assertTrue(rs.next());
 
         PhoenixArray expected = new PhoenixArray(PVarchar.INSTANCE, new Object[]{"hello", "hello", "hello"});
@@ -198,10 +216,11 @@ public class StringToArrayFunctionIT extends BaseHBaseManagedTimeIT {
     @Test
     public void testStringToArrayFunction11() throws Exception {
         Connection conn = DriverManager.getConnection(getUrl());
-        initTables(conn);
 
         ResultSet rs;
-        rs = conn.createStatement().executeQuery("SELECT STRING_TO_ARRAY('a,hello,hello,hello,b', ',', 'hello') FROM regions WHERE region_name = 'SF Bay Area'");
+        rs = conn.createStatement().executeQuery(
+            "SELECT STRING_TO_ARRAY('a,hello,hello,hello,b', ',', 'hello') FROM " + TABLE_NAME
+                + " WHERE region_name = 'SF Bay Area'");
         assertTrue(rs.next());
 
         PhoenixArray expected = new PhoenixArray(PVarchar.INSTANCE, new Object[]{"a", null, null, null, "b"});
@@ -213,10 +232,11 @@ public class StringToArrayFunctionIT extends BaseHBaseManagedTimeIT {
     @Test
     public void testStringToArrayFunction12() throws Exception {
         Connection conn = DriverManager.getConnection(getUrl());
-        initTables(conn);
 
         ResultSet rs;
-        rs = conn.createStatement().executeQuery("SELECT STRING_TO_ARRAY('b.a.b', delimiter2, 'b') FROM regions WHERE region_name = 'SF Bay Area'");
+        rs = conn.createStatement().executeQuery(
+            "SELECT STRING_TO_ARRAY('b.a.b', delimiter2, 'b') FROM " + TABLE_NAME
+                + " WHERE region_name = 'SF Bay Area'");
         assertTrue(rs.next());
 
         PhoenixArray expected = new PhoenixArray(PVarchar.INSTANCE, new Object[]{null, "a", null});
@@ -228,10 +248,11 @@ public class StringToArrayFunctionIT extends BaseHBaseManagedTimeIT {
     @Test
     public void testStringToArrayFunctionWithNestedFunctions1() throws Exception {
         Connection conn = DriverManager.getConnection(getUrl());
-        initTables(conn);
 
         ResultSet rs;
-        rs = conn.createStatement().executeQuery("SELECT ARRAY_LENGTH(STRING_TO_ARRAY('a, b, c', ', ')) FROM regions WHERE region_name = 'SF Bay Area'");
+        rs = conn.createStatement().executeQuery(
+            "SELECT ARRAY_LENGTH(STRING_TO_ARRAY('a, b, c', ', ')) FROM " + TABLE_NAME
+                + " WHERE region_name = 'SF Bay Area'");
         assertTrue(rs.next());
 
         assertEquals(3, rs.getInt(1));
@@ -241,10 +262,11 @@ public class StringToArrayFunctionIT extends BaseHBaseManagedTimeIT {
     @Test
     public void testStringToArrayFunctionWithNestedFunctions2() throws Exception {
         Connection conn = DriverManager.getConnection(getUrl());
-        initTables(conn);
 
         ResultSet rs;
-        rs = conn.createStatement().executeQuery("SELECT STRING_TO_ARRAY(ARRAY_TO_STRING(ARRAY['a', 'b', 'c'], delimiter2), delimiter2, 'b') FROM regions WHERE region_name = 'SF Bay Area'");
+        rs = conn.createStatement().executeQuery(
+            "SELECT STRING_TO_ARRAY(ARRAY_TO_STRING(ARRAY['a', 'b', 'c'], delimiter2), delimiter2, 'b') FROM "
+                + TABLE_NAME + " WHERE region_name = 'SF Bay Area'");
         assertTrue(rs.next());
 
         PhoenixArray expected = new PhoenixArray(PVarchar.INSTANCE, new Object[]{"a", null, "c"});
@@ -256,10 +278,11 @@ public class StringToArrayFunctionIT extends BaseHBaseManagedTimeIT {
     @Test
     public void testStringToArrayFunctionWithNestedFunctions3() throws Exception {
         Connection conn = DriverManager.getConnection(getUrl());
-        initTables(conn);
 
         ResultSet rs;
-        rs = conn.createStatement().executeQuery("SELECT STRING_TO_ARRAY(ARRAY_TO_STRING(ARRAY['a', 'b', 'c'], delimiter2), ARRAY_ELEM(ARRAY[',', '.'], 2), 'b') FROM regions WHERE region_name = 'SF Bay Area'");
+        rs = conn.createStatement().executeQuery(
+            "SELECT STRING_TO_ARRAY(ARRAY_TO_STRING(ARRAY['a', 'b', 'c'], delimiter2), ARRAY_ELEM(ARRAY[',', '.'], 2), 'b') FROM "
+                + TABLE_NAME + " WHERE region_name = 'SF Bay Area'");
         assertTrue(rs.next());
 
         PhoenixArray expected = new PhoenixArray(PVarchar.INSTANCE, new Object[]{"a", null, "c"});
@@ -272,15 +295,19 @@ public class StringToArrayFunctionIT extends BaseHBaseManagedTimeIT {
     public void testStringToArrayFunctionWithUpsert1() throws Exception {
         Connection conn = DriverManager.getConnection(getUrl());
 
-        String ddl = "CREATE TABLE regions (region_name VARCHAR PRIMARY KEY,varchars VARCHAR[])";
+        String tableName = generateRandomString();
+        String ddl =
+            "CREATE TABLE " + tableName + " (region_name VARCHAR PRIMARY KEY,varchars VARCHAR[])";
         conn.createStatement().execute(ddl);
 
-        String dml = "UPSERT INTO regions(region_name,varchars) VALUES('SF Bay Area', STRING_TO_ARRAY('hello, world, :-)', ', '))";
+        String dml = "UPSERT INTO " + tableName
+            + "(region_name,varchars) VALUES('SF Bay Area', STRING_TO_ARRAY('hello, world, :-)', ', '))";
         conn.createStatement().execute(dml);
         conn.commit();
 
         ResultSet rs;
-        rs = conn.createStatement().executeQuery("SELECT varchars FROM regions WHERE region_name = 'SF Bay Area'");
+        rs = conn.createStatement().executeQuery(
+            "SELECT varchars FROM " + tableName + " WHERE region_name = 'SF Bay Area'");
         assertTrue(rs.next());
 
         PhoenixArray expected = new PhoenixArray(PVarchar.INSTANCE, new Object[]{"hello", "world", ":-)"});
@@ -293,15 +320,19 @@ public class StringToArrayFunctionIT extends BaseHBaseManagedTimeIT {
     public void testStringToArrayFunctionWithUpsert2() throws Exception {
         Connection conn = DriverManager.getConnection(getUrl());
 
-        String ddl = "CREATE TABLE regions (region_name VARCHAR PRIMARY KEY,varchars VARCHAR[])";
+        String tableName = generateRandomString();
+        String ddl =
+            "CREATE TABLE " + tableName + " (region_name VARCHAR PRIMARY KEY,varchars VARCHAR[])";
         conn.createStatement().execute(ddl);
 
-        String dml = "UPSERT INTO regions(region_name,varchars) VALUES('SF Bay Area', STRING_TO_ARRAY('a, b, -, c', ', ', '-'))";
+        String dml = "UPSERT INTO " + tableName
+            + "(region_name,varchars) VALUES('SF Bay Area', STRING_TO_ARRAY('a, b, -, c', ', ', '-'))";
         conn.createStatement().execute(dml);
         conn.commit();
 
         ResultSet rs;
-        rs = conn.createStatement().executeQuery("SELECT varchars FROM regions WHERE region_name = 'SF Bay Area'");
+        rs = conn.createStatement().executeQuery(
+            "SELECT varchars FROM " + tableName + " WHERE region_name = 'SF Bay Area'");
         assertTrue(rs.next());
 
         PhoenixArray expected = new PhoenixArray(PVarchar.INSTANCE, new Object[]{"a", "b", null, "c"});
@@ -314,25 +345,32 @@ public class StringToArrayFunctionIT extends BaseHBaseManagedTimeIT {
     public void testStringToArrayFunctionWithUpsertSelect1() throws Exception {
         Connection conn = DriverManager.getConnection(getUrl());
 
-        String ddl = "CREATE TABLE source (region_name VARCHAR PRIMARY KEY, varchar VARCHAR)";
+        String table1 = generateRandomString();
+        String ddl =
+            "CREATE TABLE " + table1 + " (region_name VARCHAR PRIMARY KEY, varchar VARCHAR)";
         conn.createStatement().execute(ddl);
 
-        ddl = "CREATE TABLE target (region_name VARCHAR PRIMARY KEY, varchars VARCHAR[])";
+        String table2 = generateRandomString();
+        ddl = "CREATE TABLE " + table2 + " (region_name VARCHAR PRIMARY KEY, varchars VARCHAR[])";
         conn.createStatement().execute(ddl);
 
-        String dml = "UPSERT INTO source(region_name, varchar) VALUES('SF Bay Area', 'a,b,c,d')";
+        String dml =
+            "UPSERT INTO " + table1 + "(region_name, varchar) VALUES('SF Bay Area', 'a,b,c,d')";
         conn.createStatement().execute(dml);
 
-        dml = "UPSERT INTO source(region_name, varchar) VALUES('SF Bay Area2', '1,2,3,4')";
+        dml = "UPSERT INTO " + table1 + "(region_name, varchar) VALUES('SF Bay Area2', '1,2,3,4')";
         conn.createStatement().execute(dml);
         conn.commit();
 
-        dml = "UPSERT INTO target(region_name, varchars) SELECT region_name, STRING_TO_ARRAY(varchar, ',') FROM source";
+        dml =
+            "UPSERT INTO " + table2
+                + "(region_name, varchars) SELECT region_name, STRING_TO_ARRAY(varchar, ',') FROM "
+                + table1;
         conn.createStatement().execute(dml);
         conn.commit();
 
         ResultSet rs;
-        rs = conn.createStatement().executeQuery("SELECT varchars FROM target");
+        rs = conn.createStatement().executeQuery("SELECT varchars FROM " + table2);
         assertTrue(rs.next());
 
         PhoenixArray expected = new PhoenixArray(PVarchar.INSTANCE, new Object[]{"a", "b", "c", "d"});
@@ -350,25 +388,35 @@ public class StringToArrayFunctionIT extends BaseHBaseManagedTimeIT {
     public void testStringToArrayFunctionWithUpsertSelect2() throws Exception {
         Connection conn = DriverManager.getConnection(getUrl());
 
-        String ddl = "CREATE TABLE source (region_name VARCHAR PRIMARY KEY, varchar VARCHAR)";
+        String sourceTable = generateRandomString();
+
+        String ddl =
+            "CREATE TABLE " + sourceTable + " (region_name VARCHAR PRIMARY KEY, varchar VARCHAR)";
         conn.createStatement().execute(ddl);
 
-        ddl = "CREATE TABLE target (region_name VARCHAR PRIMARY KEY, varchars VARCHAR[])";
+        String targetTable = generateRandomString();
+        ddl = "CREATE TABLE " + targetTable
+            + " (region_name VARCHAR PRIMARY KEY, varchars VARCHAR[])";
         conn.createStatement().execute(ddl);
 
-        String dml = "UPSERT INTO source(region_name, varchar) VALUES('SF Bay Area', 'a,b,-,c,d')";
+        String dml = "UPSERT INTO " + sourceTable
+            + "(region_name, varchar) VALUES('SF Bay Area', 'a,b,-,c,d')";
         conn.createStatement().execute(dml);
 
-        dml = "UPSERT INTO source(region_name, varchar) VALUES('SF Bay Area2', '1,2,-,3,4')";
+        dml = "UPSERT INTO " + sourceTable
+            + "(region_name, varchar) VALUES('SF Bay Area2', '1,2,-,3,4')";
         conn.createStatement().execute(dml);
         conn.commit();
 
-        dml = "UPSERT INTO target(region_name, varchars) SELECT region_name, STRING_TO_ARRAY(varchar, ',', '-') FROM source";
+        dml =
+            "UPSERT INTO " + targetTable
+                + "(region_name, varchars) SELECT region_name, STRING_TO_ARRAY(varchar, ',', '-') FROM "
+                + sourceTable;
         conn.createStatement().execute(dml);
         conn.commit();
 
         ResultSet rs;
-        rs = conn.createStatement().executeQuery("SELECT varchars FROM target");
+        rs = conn.createStatement().executeQuery("SELECT varchars FROM " + targetTable);
         assertTrue(rs.next());
 
         PhoenixArray expected = new PhoenixArray(PVarchar.INSTANCE, new Object[]{"a", "b", null, "c", "d"});
@@ -385,10 +433,10 @@ public class StringToArrayFunctionIT extends BaseHBaseManagedTimeIT {
     @Test
     public void testStringToArrayFunctionInWhere1() throws Exception {
         Connection conn = DriverManager.getConnection(getUrl());
-        initTables(conn);
 
         ResultSet rs;
-        rs = conn.createStatement().executeQuery("SELECT region_name FROM regions WHERE ARRAY['a', 'b', 'c', 'd']=STRING_TO_ARRAY(string1, delimiter1)");
+        rs = conn.createStatement().executeQuery("SELECT region_name FROM " + TABLE_NAME
+            + " WHERE ARRAY['a', 'b', 'c', 'd']=STRING_TO_ARRAY(string1, delimiter1)");
         assertTrue(rs.next());
 
         assertEquals("SF Bay Area", rs.getString(1));
@@ -398,10 +446,10 @@ public class StringToArrayFunctionIT extends BaseHBaseManagedTimeIT {
     @Test
     public void testStringToArrayFunctionInWhere2() throws Exception {
         Connection conn = DriverManager.getConnection(getUrl());
-        initTables(conn);
 
         ResultSet rs;
-        rs = conn.createStatement().executeQuery("SELECT region_name FROM regions WHERE 'a'=ANY(STRING_TO_ARRAY(string1, delimiter1))");
+        rs = conn.createStatement().executeQuery("SELECT region_name FROM " + TABLE_NAME
+            + " WHERE 'a'=ANY(STRING_TO_ARRAY(string1, delimiter1))");
         assertTrue(rs.next());
 
         assertEquals("SF Bay Area", rs.getString(1));
@@ -411,10 +459,10 @@ public class StringToArrayFunctionIT extends BaseHBaseManagedTimeIT {
     @Test
     public void testStringToArrayFunctionInWhere3() throws Exception {
         Connection conn = DriverManager.getConnection(getUrl());
-        initTables(conn);
 
         ResultSet rs;
-        rs = conn.createStatement().executeQuery("SELECT region_name FROM regions WHERE 'a'=ALL(STRING_TO_ARRAY('a,a,a,', delimiter1))");
+        rs = conn.createStatement().executeQuery("SELECT region_name FROM " + TABLE_NAME
+            + " WHERE 'a'=ALL(STRING_TO_ARRAY('a,a,a,', delimiter1))");
         assertTrue(rs.next());
 
         assertEquals("SF Bay Area", rs.getString(1));

http://git-wip-us.apache.org/repos/asf/phoenix/blob/6d147896/phoenix-core/src/it/java/org/apache/phoenix/end2end/TimezoneOffsetFunctionIT.java
----------------------------------------------------------------------
diff --git a/phoenix-core/src/it/java/org/apache/phoenix/end2end/TimezoneOffsetFunctionIT.java b/phoenix-core/src/it/java/org/apache/phoenix/end2end/TimezoneOffsetFunctionIT.java
index 324c494..e899eb2 100644
--- a/phoenix-core/src/it/java/org/apache/phoenix/end2end/TimezoneOffsetFunctionIT.java
+++ b/phoenix-core/src/it/java/org/apache/phoenix/end2end/TimezoneOffsetFunctionIT.java
@@ -34,22 +34,25 @@ import org.apache.phoenix.exception.SQLExceptionCode;
 import org.junit.Test;
 
 
-public class TimezoneOffsetFunctionIT extends BaseHBaseManagedTimeIT {
+public class TimezoneOffsetFunctionIT extends BaseHBaseManagedTimeTableReuseIT {
 
 	@Test
 	public void testTimezoneOffset() throws Exception {
 		Connection conn = DriverManager.getConnection(getUrl());
-		String ddl = "CREATE TABLE IF NOT EXISTS TIMEZONE_OFFSET_TEST"
+		String timezone_offset_test = generateRandomString();
+		String ddl = "CREATE TABLE IF NOT EXISTS " + timezone_offset_test
 				+ " (k1 INTEGER NOT NULL, dates DATE CONSTRAINT pk PRIMARY KEY (k1))";
 		conn.createStatement().execute(ddl);
-		String dml = "UPSERT INTO TIMEZONE_OFFSET_TEST (k1, dates) VALUES (1, TO_DATE('2014-02-02 00:00:00'))";
+		String dml = "UPSERT INTO " + timezone_offset_test
+				+ " (k1, dates) VALUES (1, TO_DATE('2014-02-02 00:00:00'))";
 		conn.createStatement().execute(dml);
-		dml = "UPSERT INTO TIMEZONE_OFFSET_TEST (k1, dates) VALUES (2, TO_DATE('2014-06-02 00:00:00'))";
+		dml = "UPSERT INTO " + timezone_offset_test
+				+ " (k1, dates) VALUES (2, TO_DATE('2014-06-02 00:00:00'))";
 		conn.createStatement().execute(dml);
 		conn.commit();
 
 		ResultSet rs = conn.createStatement().executeQuery(
-				"SELECT k1, dates, TIMEZONE_OFFSET('Indian/Cocos', dates) FROM TIMEZONE_OFFSET_TEST");
+				"SELECT k1, dates, TIMEZONE_OFFSET('Indian/Cocos', dates) FROM " + timezone_offset_test);
 
 		assertTrue(rs.next());
 		assertEquals(390, rs.getInt(3));
@@ -61,16 +64,19 @@ public class TimezoneOffsetFunctionIT extends BaseHBaseManagedTimeIT {
 	@Test
 	public void testUnknownTimezone() throws Exception {
 		Connection conn = DriverManager.getConnection(getUrl());
-		String ddl = "CREATE TABLE IF NOT EXISTS TIMEZONE_OFFSET_TEST"
+		String timezone_offset_test = generateRandomString();
+		String ddl = "CREATE TABLE IF NOT EXISTS " + timezone_offset_test
 				+ " (k1 INTEGER NOT NULL, dates DATE CONSTRAINT pk PRIMARY KEY (k1))";
 		conn.createStatement().execute(ddl);
-		String dml = "UPSERT INTO TIMEZONE_OFFSET_TEST (k1, dates) VALUES (1, TO_DATE('2014-02-02 00:00:00'))";
+		String dml = "UPSERT INTO " + timezone_offset_test
+				+ " (k1, dates) VALUES (1, TO_DATE('2014-02-02 00:00:00'))";
 		conn.createStatement().execute(dml);
 		conn.commit();
 
 		try {
 			ResultSet rs = conn.createStatement().executeQuery(
-					"SELECT k1, dates, TIMEZONE_OFFSET('Unknown_Timezone', dates) FROM TIMEZONE_OFFSET_TEST");
+					"SELECT k1, dates, TIMEZONE_OFFSET('Unknown_Timezone', dates) FROM "
+							+ timezone_offset_test);
 
 			rs.next();
 			assertEquals(0, rs.getInt(3));
@@ -83,18 +89,21 @@ public class TimezoneOffsetFunctionIT extends BaseHBaseManagedTimeIT {
 	@Test
 	public void testInRowKeyDSTTimezoneDesc() throws Exception {
 		Connection conn = DriverManager.getConnection(getUrl());
-		String ddl = "CREATE TABLE IF NOT EXISTS TIMEZONE_OFFSET_TEST "
+		String timezone_offset_test = generateRandomString();
+		String ddl = "CREATE TABLE IF NOT EXISTS " + timezone_offset_test + " "
 				+ "(k1 INTEGER NOT NULL, dates DATE NOT NULL CONSTRAINT pk PRIMARY KEY (k1, dates DESC))";
 		conn.createStatement().execute(ddl);
-		String dml = "UPSERT INTO TIMEZONE_OFFSET_TEST (k1, dates) VALUES (1, TO_DATE('2014-02-02 00:00:00'))";
+		String dml = "UPSERT INTO " + timezone_offset_test
+				+ " (k1, dates) VALUES (1, TO_DATE('2014-02-02 00:00:00'))";
 		conn.createStatement().execute(dml);
-		dml = "UPSERT INTO TIMEZONE_OFFSET_TEST (k1, dates) VALUES (2, TO_DATE('2014-06-02 00:00:00'))";
+		dml = "UPSERT INTO " + timezone_offset_test
+				+ " (k1, dates) VALUES (2, TO_DATE('2014-06-02 00:00:00'))";
 		conn.createStatement().execute(dml);
 		conn.commit();
 
 		ResultSet rs = conn.createStatement().executeQuery(
 				"SELECT k1, dates, TIMEZONE_OFFSET('Europe/Prague', dates)"
-				+ "FROM TIMEZONE_OFFSET_TEST ORDER BY k1 ASC");
+				+ "FROM " + timezone_offset_test + " ORDER BY k1 ASC");
 
 		assertTrue(rs.next());
 		assertEquals(60, rs.getInt(3));
@@ -105,16 +114,17 @@ public class TimezoneOffsetFunctionIT extends BaseHBaseManagedTimeIT {
 	@Test
 	public void testBothParametersNull() throws Exception {
 		Connection conn = DriverManager.getConnection(getUrl());
-		String ddl = "CREATE TABLE IF NOT EXISTS TIMEZONE_OFFSET_TEST "
+		String timezone_offset_test = generateRandomString();
+		String ddl = "CREATE TABLE IF NOT EXISTS " + timezone_offset_test + " "
 				+ "(k1 INTEGER NOT NULL, dates DATE, v1 VARCHAR CONSTRAINT pk PRIMARY KEY (k1))";
 		conn.createStatement().execute(ddl);
-		String dml = "UPSERT INTO TIMEZONE_OFFSET_TEST (k1, dates, v1) VALUES (2, null, null)";
+		String dml = "UPSERT INTO " + timezone_offset_test + " (k1, dates, v1) VALUES (2, null, null)";
 		conn.createStatement().execute(dml);
 		conn.commit();
 
 		ResultSet rs = conn.createStatement().executeQuery(
 				"SELECT k1, dates, TIMEZONE_OFFSET(v1, dates)"
-				+ "FROM TIMEZONE_OFFSET_TEST ORDER BY k1 ASC");
+				+ "FROM " + timezone_offset_test + " ORDER BY k1 ASC");
 
 		assertTrue(rs.next());
 		rs.getInt(3);
@@ -124,16 +134,18 @@ public class TimezoneOffsetFunctionIT extends BaseHBaseManagedTimeIT {
 	@Test
 	public void timezoneParameterNull() throws Exception {
 		Connection conn = DriverManager.getConnection(getUrl());
-		String ddl = "CREATE TABLE IF NOT EXISTS TIMEZONE_OFFSET_TEST "
+		String timezone_offset_test = generateRandomString();
+		String ddl = "CREATE TABLE IF NOT EXISTS " + timezone_offset_test + " "
 				+ "(k1 INTEGER NOT NULL, dates DATE, v1 VARCHAR CONSTRAINT pk PRIMARY KEY (k1))";
 		conn.createStatement().execute(ddl);
-		String dml = "UPSERT INTO TIMEZONE_OFFSET_TEST (k1, dates, v1) VALUES (2, TO_DATE('2014-06-02 00:00:00'), null)";
+		String dml = "UPSERT INTO " + timezone_offset_test
+				+ " (k1, dates, v1) VALUES (2, TO_DATE('2014-06-02 00:00:00'), null)";
 		conn.createStatement().execute(dml);
 		conn.commit();
 
 		ResultSet rs = conn.createStatement().executeQuery(
 				"SELECT k1, dates, TIMEZONE_OFFSET(v1, dates)"
-				+ "FROM TIMEZONE_OFFSET_TEST ORDER BY k1 ASC");
+				+ "FROM " + timezone_offset_test + " ORDER BY k1 ASC");
 
 		assertTrue(rs.next());
 		rs.getInt(3);
@@ -143,16 +155,18 @@ public class TimezoneOffsetFunctionIT extends BaseHBaseManagedTimeIT {
 	@Test
 	public void dateParameterNull() throws Exception {
 		Connection conn = DriverManager.getConnection(getUrl());
-		String ddl = "CREATE TABLE IF NOT EXISTS TIMEZONE_OFFSET_TEST "
+		String timezone_offset_test = generateRandomString();
+		String ddl = "CREATE TABLE IF NOT EXISTS " + timezone_offset_test + " "
 				+ "(k1 INTEGER NOT NULL, dates DATE, v1 VARCHAR CONSTRAINT pk PRIMARY KEY (k1))";
 		conn.createStatement().execute(ddl);
-		String dml = "UPSERT INTO TIMEZONE_OFFSET_TEST (k1, dates, v1) VALUES (2, null, 'Asia/Aden')";
+		String dml =
+				"UPSERT INTO " + timezone_offset_test + " (k1, dates, v1) VALUES (2, null, 'Asia/Aden')";
 		conn.createStatement().execute(dml);
 		conn.commit();
 
 		ResultSet rs = conn.createStatement().executeQuery(
 				"SELECT k1, dates, TIMEZONE_OFFSET(v1, dates)"
-				+ "FROM TIMEZONE_OFFSET_TEST ORDER BY k1 ASC");
+				+ "FROM " + timezone_offset_test + " ORDER BY k1 ASC");
 
 		assertTrue(rs.next());
 		rs.getInt(3);
@@ -162,9 +176,10 @@ public class TimezoneOffsetFunctionIT extends BaseHBaseManagedTimeIT {
 	@Test
 	public void testInsertingRetrivingTimestamp() throws Exception {
 	    Connection conn = DriverManager.getConnection(getUrl());
-        String ddl = "CREATE TABLE T (K INTEGER NOT NULL PRIMARY KEY, V TIMESTAMP)";
+		String t = generateRandomString();
+		String ddl = "CREATE TABLE " + t + " (K INTEGER NOT NULL PRIMARY KEY, V TIMESTAMP)";
         conn.createStatement().execute(ddl);
-        String dml = "UPSERT INTO T VALUES (?, ?)";
+        String dml = "UPSERT INTO " + t + " VALUES (?, ?)";
         PreparedStatement stmt = conn.prepareStatement(dml);
         stmt.setInt(1, 1);
         Calendar cal = Calendar.getInstance();
@@ -173,7 +188,7 @@ public class TimezoneOffsetFunctionIT extends BaseHBaseManagedTimeIT {
         stmt.setTimestamp(2, new Timestamp(time), cal);
         stmt.executeUpdate();
         conn.commit();
-        String query = "SELECT V FROM T";
+        String query = "SELECT V FROM " + t;
         ResultSet rs = conn.createStatement().executeQuery(query);
         rs.next();
         assertEquals(new Timestamp(time), rs.getTimestamp(1));

http://git-wip-us.apache.org/repos/asf/phoenix/blob/6d147896/phoenix-core/src/it/java/org/apache/phoenix/end2end/UpsertSelectAutoCommitIT.java
----------------------------------------------------------------------
diff --git a/phoenix-core/src/it/java/org/apache/phoenix/end2end/UpsertSelectAutoCommitIT.java b/phoenix-core/src/it/java/org/apache/phoenix/end2end/UpsertSelectAutoCommitIT.java
index 4b4f215..a0b3939 100644
--- a/phoenix-core/src/it/java/org/apache/phoenix/end2end/UpsertSelectAutoCommitIT.java
+++ b/phoenix-core/src/it/java/org/apache/phoenix/end2end/UpsertSelectAutoCommitIT.java
@@ -37,7 +37,7 @@ import org.apache.phoenix.util.PropertiesUtil;
 import org.junit.Test;
 
 
-public class UpsertSelectAutoCommitIT extends BaseHBaseManagedTimeIT {
+public class UpsertSelectAutoCommitIT extends BaseHBaseManagedTimeTableReuseIT {
 
     public UpsertSelectAutoCommitIT() {
     }
@@ -47,14 +47,17 @@ public class UpsertSelectAutoCommitIT extends BaseHBaseManagedTimeIT {
         Properties props = PropertiesUtil.deepCopy(TEST_PROPERTIES);
         Connection conn = DriverManager.getConnection(getUrl(), props);
         conn.setAutoCommit(true);
-        conn.createStatement().execute("CREATE TABLE atable (ORGANIZATION_ID CHAR(15) NOT NULL, ENTITY_ID CHAR(15) NOT NULL, A_STRING VARCHAR\n" +
+        String atable = generateRandomString();
+        conn.createStatement().execute("CREATE TABLE " + atable
+            + " (ORGANIZATION_ID CHAR(15) NOT NULL, ENTITY_ID CHAR(15) NOT NULL, A_STRING VARCHAR\n"
+            +
         "CONSTRAINT pk PRIMARY KEY (organization_id, entity_id))");
         
         String tenantId = getOrganizationId();
        // Insert all rows at ts
         PreparedStatement stmt = conn.prepareStatement(
-                "upsert into " +
-                "ATABLE(" +
+                "upsert into " + atable +
+                "(" +
                 "    ORGANIZATION_ID, " +
                 "    ENTITY_ID, " +
                 "    A_STRING " +
@@ -65,7 +68,7 @@ public class UpsertSelectAutoCommitIT extends BaseHBaseManagedTimeIT {
         stmt.setString(3, A_VALUE);
         stmt.execute();
         
-        String query = "SELECT entity_id, a_string FROM ATABLE";
+        String query = "SELECT entity_id, a_string FROM " + atable;
         PreparedStatement statement = conn.prepareStatement(query);
         ResultSet rs = statement.executeQuery();
         
@@ -73,12 +76,15 @@ public class UpsertSelectAutoCommitIT extends BaseHBaseManagedTimeIT {
         assertEquals(ROW1, rs.getString(1));
         assertEquals(A_VALUE, rs.getString(2));
         assertFalse(rs.next());
-        
-        conn.createStatement().execute("CREATE TABLE atable2 (ORGANIZATION_ID CHAR(15) NOT NULL, ENTITY_ID CHAR(15) NOT NULL, A_STRING VARCHAR\n" +
+
+        String atable2 = generateRandomString();
+        conn.createStatement().execute("CREATE TABLE " + atable2
+            + " (ORGANIZATION_ID CHAR(15) NOT NULL, ENTITY_ID CHAR(15) NOT NULL, A_STRING VARCHAR\n"
+            +
         "CONSTRAINT pk PRIMARY KEY (organization_id, entity_id DESC))");
         
-        conn.createStatement().execute("UPSERT INTO atable2 SELECT * FROM ATABLE");
-        query = "SELECT entity_id, a_string FROM ATABLE2";
+        conn.createStatement().execute("UPSERT INTO " + atable2 + " SELECT * FROM " + atable);
+        query = "SELECT entity_id, a_string FROM " + atable2;
         statement = conn.prepareStatement(query);
         rs = statement.executeQuery();
         
@@ -92,14 +98,17 @@ public class UpsertSelectAutoCommitIT extends BaseHBaseManagedTimeIT {
     @Test
     public void testDynamicUpsertSelect() throws Exception {
         Connection conn = DriverManager.getConnection(getUrl());
-        String cursorDDL = " CREATE TABLE IF NOT EXISTS CURSOR (ORGANIZATION_ID VARCHAR(15) NOT NULL, \n"
+        String tableName = generateRandomString();
+        String cursorDDL = " CREATE TABLE IF NOT EXISTS " + tableName
+            + " (ORGANIZATION_ID VARCHAR(15) NOT NULL, \n"
                 + "QUERY_ID VARCHAR(15) NOT NULL, \n"
                 + "CURSOR_ORDER UNSIGNED_LONG NOT NULL, \n"
                 + "CONSTRAINT API_HBASE_CURSOR_STORAGE_PK PRIMARY KEY (ORGANIZATION_ID, QUERY_ID, CURSOR_ORDER))\n"
                 + "SALT_BUCKETS = 4";
         conn.createStatement().execute(cursorDDL);
-        
-        String dataTableDDL = "CREATE TABLE IF NOT EXISTS PLINYTEST" +
+
+        String tableName2 = generateRandomString();
+        String dataTableDDL = "CREATE TABLE IF NOT EXISTS " + tableName2 +
                 "(" +
                 "ORGANIZATION_ID CHAR(15) NOT NULL, " +
                 "PLINY_ID CHAR(15) NOT NULL, " +
@@ -115,7 +124,7 @@ public class UpsertSelectAutoCommitIT extends BaseHBaseManagedTimeIT {
         
         conn.createStatement().execute(dataTableDDL);
         PreparedStatement stmt = null;
-        String upsert = "UPSERT INTO PLINYTEST VALUES (?, ?, ?, ?)";
+        String upsert = "UPSERT INTO " + tableName2 + " VALUES (?, ?, ?, ?)";
         stmt = conn.prepareStatement(upsert);
         stmt.setString(1, getOrganizationId());
         stmt.setString(2, "aaaaaaaaaaaaaaa");
@@ -124,7 +133,10 @@ public class UpsertSelectAutoCommitIT extends BaseHBaseManagedTimeIT {
         stmt.executeUpdate();
         conn.commit();
         
-        String upsertSelect = "UPSERT INTO CURSOR (ORGANIZATION_ID, QUERY_ID, CURSOR_ORDER, PLINY_ID CHAR(15),CREATED_DATE DATE) SELECT ?, ?, ?, PLINY_ID, CREATED_DATE FROM PLINYTEST WHERE ORGANIZATION_ID = ?";
+        String upsertSelect = "UPSERT INTO " + tableName
+            +
+            " (ORGANIZATION_ID, QUERY_ID, CURSOR_ORDER, PLINY_ID CHAR(15),CREATED_DATE DATE) SELECT ?, ?, ?, PLINY_ID, CREATED_DATE FROM "
+                + tableName2 + " WHERE ORGANIZATION_ID = ?";
         stmt = conn.prepareStatement(upsertSelect);
         String orgId = getOrganizationId();
         stmt.setString(1, orgId);
@@ -146,12 +158,16 @@ public class UpsertSelectAutoCommitIT extends BaseHBaseManagedTimeIT {
         Connection conn = DriverManager.getConnection(getUrl(), props);
         conn.setAutoCommit(true);
         conn.createStatement().execute("CREATE SEQUENCE keys");
-        conn.createStatement().execute("CREATE TABLE foo (pk INTEGER PRIMARY KEY, val INTEGER)");
+        String tableName = generateRandomString();
+        conn.createStatement().execute(
+            "CREATE TABLE " + tableName + " (pk INTEGER PRIMARY KEY, val INTEGER)");
 
-        conn.createStatement().execute("UPSERT INTO foo VALUES (NEXT VALUE FOR keys,1)");
+        conn.createStatement().execute(
+            "UPSERT INTO " + tableName + " VALUES (NEXT VALUE FOR keys,1)");
         for (int i=0; i<6; i++) {
             Statement stmt = conn.createStatement();
-            int upsertCount = stmt.executeUpdate("UPSERT INTO foo SELECT NEXT VALUE FOR keys, val FROM foo");
+            int upsertCount = stmt.executeUpdate(
+                "UPSERT INTO " + tableName + " SELECT NEXT VALUE FOR keys, val FROM " + tableName);
             assertEquals((int)Math.pow(2, i), upsertCount);
         }
         conn.close();


[3/6] phoenix git commit: PHOENIX-2822 Tests that extend BaseHBaseManagedTimeIT are very slow(Rahul Gidwani)

Posted by sa...@apache.org.
http://git-wip-us.apache.org/repos/asf/phoenix/blob/6d147896/phoenix-core/src/it/java/org/apache/phoenix/end2end/QueryMoreIT.java
----------------------------------------------------------------------
diff --git a/phoenix-core/src/it/java/org/apache/phoenix/end2end/QueryMoreIT.java b/phoenix-core/src/it/java/org/apache/phoenix/end2end/QueryMoreIT.java
index 8f2bc73..c4e4665 100644
--- a/phoenix-core/src/it/java/org/apache/phoenix/end2end/QueryMoreIT.java
+++ b/phoenix-core/src/it/java/org/apache/phoenix/end2end/QueryMoreIT.java
@@ -44,7 +44,7 @@ import org.junit.Test;
 import com.google.common.collect.Lists;
 
 
-public class QueryMoreIT extends BaseHBaseManagedTimeIT {
+public class QueryMoreIT extends BaseHBaseManagedTimeTableReuseIT {
     
     private String dataTableName;
     //queryAgainstTenantSpecificView = true, dataTableSalted = true 
@@ -74,8 +74,9 @@ public class QueryMoreIT extends BaseHBaseManagedTimeIT {
     private void testQueryMore(boolean queryAgainstTenantSpecificView, boolean dataTableSalted) throws Exception {
         String[] tenantIds = new String[] {"00Dxxxxxtenant1", "00Dxxxxxtenant2", "00Dxxxxxtenant3"};
         int numRowsPerTenant = 10;
-        String cursorTableName = "CURSOR_TABLE";
-        this.dataTableName = "BASE_HISTORY_TABLE" + (dataTableSalted ? "_SALTED" : "");
+        String cursorTableName = generateRandomString();
+        String base_history_table = generateRandomString();
+        this.dataTableName = base_history_table + (dataTableSalted ? "_SALTED" : "");
         String cursorTableDDL = "CREATE TABLE IF NOT EXISTS " + 
                 cursorTableName +  " (\n" +  
                 "TENANT_ID VARCHAR(15) NOT NULL\n," +  
@@ -109,7 +110,8 @@ public class QueryMoreIT extends BaseHBaseManagedTimeIT {
         String cursorQueryId = "00TcursrqueryId";
         String tableOrViewName = queryAgainstTenantSpecificView ? ("HISTORY_TABLE_" + tenantId) : dataTableName;
         
-        assertEquals(numRowsPerTenant, upsertSelectRecordsInCursorTableForTenant(tableOrViewName, queryAgainstTenantSpecificView, tenantId, cursorQueryId));
+        assertEquals(numRowsPerTenant, upsertSelectRecordsInCursorTableForTenant(tableOrViewName, queryAgainstTenantSpecificView, tenantId, cursorQueryId,
+            cursorTableName));
         
         /*// assert that the data inserted in cursor table matches the data in the data table for tenantId.
         String selectDataTable = "SELECT TENANT_ID, PARENT_ID, CREATED_DATE, ENTITY_HISTORY_ID FROM BASE_HISTORY_TABLE WHERE TENANT_ID = ? ";
@@ -142,7 +144,8 @@ public class QueryMoreIT extends BaseHBaseManagedTimeIT {
         int numRecordsThatShouldBeRetrieved = numRowsPerTenant/2; // we will test for two rounds of query more.
         
         // get first batch of cursor ids out of the cursor table.
-        String[] cursorIds = getRecordsOutofCursorTable(tableOrViewName, queryAgainstTenantSpecificView, tenantId, cursorQueryId, startOrder, endOrder);
+        String[] cursorIds = getRecordsOutofCursorTable(tableOrViewName, queryAgainstTenantSpecificView, tenantId, cursorQueryId, startOrder, endOrder,
+            cursorTableName);
         assertEquals(numRecordsThatShouldBeRetrieved, cursorIds.length);
         // now query and fetch first batch of records.
         List<String> historyIds = doQueryMore(queryAgainstTenantSpecificView, tenantId, tableOrViewName, cursorIds);
@@ -150,7 +153,8 @@ public class QueryMoreIT extends BaseHBaseManagedTimeIT {
         assertEquals(historyIdsPerTenant.get(tenantId).subList(startOrder, endOrder), historyIds);
         
         // get the next batch of cursor ids out of the cursor table.
-        cursorIds = getRecordsOutofCursorTable(tableOrViewName, queryAgainstTenantSpecificView, tenantId, cursorQueryId, startOrder + numRecordsThatShouldBeRetrieved, endOrder + numRecordsThatShouldBeRetrieved);
+        cursorIds = getRecordsOutofCursorTable(tableOrViewName, queryAgainstTenantSpecificView, tenantId, cursorQueryId, startOrder + numRecordsThatShouldBeRetrieved, endOrder + numRecordsThatShouldBeRetrieved,
+            cursorTableName);
         assertEquals(numRecordsThatShouldBeRetrieved, cursorIds.length);
         // now query and fetch the next batch of records.
         historyIds = doQueryMore(queryAgainstTenantSpecificView, tenantId, tableOrViewName, cursorIds);
@@ -158,7 +162,8 @@ public class QueryMoreIT extends BaseHBaseManagedTimeIT {
         assertEquals(historyIdsPerTenant.get(tenantId).subList(startOrder + numRecordsThatShouldBeRetrieved, endOrder+ numRecordsThatShouldBeRetrieved), historyIds);
         
          // get the next batch of cursor ids out of the cursor table.
-        cursorIds = getRecordsOutofCursorTable(tableOrViewName, queryAgainstTenantSpecificView, tenantId, cursorQueryId, startOrder + 2 * numRecordsThatShouldBeRetrieved, endOrder + 2 * numRecordsThatShouldBeRetrieved);
+        cursorIds = getRecordsOutofCursorTable(tableOrViewName, queryAgainstTenantSpecificView, tenantId, cursorQueryId, startOrder + 2 * numRecordsThatShouldBeRetrieved, endOrder + 2 * numRecordsThatShouldBeRetrieved,
+            cursorTableName);
         // assert that there are no more cursorids left for this tenant.
         assertEquals(0, cursorIds.length);
     }
@@ -193,7 +198,8 @@ public class QueryMoreIT extends BaseHBaseManagedTimeIT {
         }
     }
     
-    private int upsertSelectRecordsInCursorTableForTenant(String tableOrViewName, boolean queryAgainstTenantView, String tenantId, String cursorQueryId) throws Exception {
+    private int upsertSelectRecordsInCursorTableForTenant(String tableOrViewName, boolean queryAgainstTenantView, String tenantId, String cursorQueryId,
+        final String cursorTable) throws Exception {
         String sequenceName = "\"" + tenantId + "_SEQ\"";
         Connection conn = queryAgainstTenantView ? getTenantSpecificConnection(tenantId) : DriverManager.getConnection(getUrl());
         
@@ -207,7 +213,7 @@ public class QueryMoreIT extends BaseHBaseManagedTimeIT {
             String tenantIdFilter = queryAgainstTenantView ? "" : " WHERE TENANT_ID = ? ";
             
             // Using dynamic columns, we can use the same cursor table for storing primary keys for all the tables.  
-            String upsertSelectDML = "UPSERT INTO CURSOR_TABLE " +
+            String upsertSelectDML = "UPSERT INTO " + cursorTable + " " +
                                      "(TENANT_ID, QUERY_ID, CURSOR_ORDER, PARENT_ID CHAR(15), CREATED_DATE DATE, ENTITY_HISTORY_ID CHAR(15)) " + 
                                      "SELECT ?, ?, NEXT VALUE FOR " + sequenceName + ", PARENT_ID, CREATED_DATE, ENTITY_HISTORY_ID " +
                                      " FROM " + tableOrViewName + tenantIdFilter;
@@ -240,13 +246,14 @@ public class QueryMoreIT extends BaseHBaseManagedTimeIT {
         return tenantViewName;
     }
     
-    private String[] getRecordsOutofCursorTable(String tableOrViewName, boolean queryAgainstTenantSpecificView, String tenantId, String cursorQueryId, int startOrder, int endOrder) throws Exception {
+    private String[] getRecordsOutofCursorTable(String tableOrViewName, boolean queryAgainstTenantSpecificView, String tenantId, String cursorQueryId,
+        int startOrder, int endOrder, final String cursorTable) throws Exception {
         Connection conn = DriverManager.getConnection(getUrl());
         List<String> pkIds = new ArrayList<String>();
         String cols = queryAgainstTenantSpecificView ? "PARENT_ID, CREATED_DATE, ENTITY_HISTORY_ID" : "TENANT_ID, PARENT_ID, CREATED_DATE, ENTITY_HISTORY_ID";
         String dynCols = queryAgainstTenantSpecificView ? "(PARENT_ID CHAR(15), CREATED_DATE DATE, ENTITY_HISTORY_ID CHAR(15))" : "(TENANT_ID CHAR(15), PARENT_ID CHAR(15), CREATED_DATE DATE, ENTITY_HISTORY_ID CHAR(15))";
         String selectCursorSql = "SELECT " + cols + " " +
-                "FROM CURSOR_TABLE \n" +
+            "FROM " + cursorTable + " \n" +
                  dynCols +   " \n" + 
                 "WHERE TENANT_ID = ? AND \n" +  
                 "QUERY_ID = ? AND \n" + 
@@ -335,7 +342,7 @@ public class QueryMoreIT extends BaseHBaseManagedTimeIT {
     @SuppressWarnings("deprecation")
     @Test
     public void testNullBigDecimalWithScale() throws Exception {
-        final String table = "NULLBIGDECIMAL";
+        final String table = generateRandomString();
         final Connection conn = DriverManager.getConnection(getUrl());
         conn.setAutoCommit(true);
         try (Statement stmt = conn.createStatement()) {

http://git-wip-us.apache.org/repos/asf/phoenix/blob/6d147896/phoenix-core/src/it/java/org/apache/phoenix/end2end/RTrimFunctionIT.java
----------------------------------------------------------------------
diff --git a/phoenix-core/src/it/java/org/apache/phoenix/end2end/RTrimFunctionIT.java b/phoenix-core/src/it/java/org/apache/phoenix/end2end/RTrimFunctionIT.java
index 2caca2b..f691dd0 100644
--- a/phoenix-core/src/it/java/org/apache/phoenix/end2end/RTrimFunctionIT.java
+++ b/phoenix-core/src/it/java/org/apache/phoenix/end2end/RTrimFunctionIT.java
@@ -33,7 +33,7 @@ import org.apache.phoenix.util.QueryUtil;
 import org.junit.Test;
 
 
-public class RTrimFunctionIT extends BaseHBaseManagedTimeIT {
+public class RTrimFunctionIT extends BaseHBaseManagedTimeTableReuseIT {
     
     @Test
     public void testWithFixedLengthAscPK() throws Exception {
@@ -48,23 +48,25 @@ public class RTrimFunctionIT extends BaseHBaseManagedTimeIT {
     private void testWithFixedLengthPK(SortOrder sortOrder, List<Object> expectedResults) throws Exception {
         Properties props = PropertiesUtil.deepCopy(TEST_PROPERTIES);
         Connection conn = DriverManager.getConnection(getUrl(), props);
-        conn.createStatement().execute("CREATE TABLE rtrim_test ( k VARCHAR PRIMARY KEY " + (sortOrder == SortOrder.DESC ? "DESC" : "") + ")");
+        String tableName = generateRandomString();
+        conn.createStatement().execute(
+            "CREATE TABLE " + tableName + " ( k VARCHAR PRIMARY KEY " + (sortOrder == SortOrder.DESC ? "DESC" : "") + ")");
 
-        conn.createStatement().execute("upsert into rtrim_test (k) values ('a')");
-        conn.createStatement().execute("upsert into rtrim_test (k) values ('b')");
-        conn.createStatement().execute("upsert into rtrim_test (k) values ('b ')");
-        conn.createStatement().execute("upsert into rtrim_test (k) values ('b  ')");
-        conn.createStatement().execute("upsert into rtrim_test (k) values ('b  a')");
-        conn.createStatement().execute("upsert into rtrim_test (k) values (' b  ')");
-        conn.createStatement().execute("upsert into rtrim_test (k) values ('c')");
+        conn.createStatement().execute("upsert into " + tableName + " (k) values ('a')");
+        conn.createStatement().execute("upsert into " + tableName + " (k) values ('b')");
+        conn.createStatement().execute("upsert into " + tableName + " (k) values ('b ')");
+        conn.createStatement().execute("upsert into " + tableName + " (k) values ('b  ')");
+        conn.createStatement().execute("upsert into " + tableName + " (k) values ('b  a')");
+        conn.createStatement().execute("upsert into " + tableName + " (k) values (' b  ')");
+        conn.createStatement().execute("upsert into " + tableName + " (k) values ('c')");
         conn.commit();
 
-        String query = "select k from rtrim_test WHERE rtrim(k)='b'";
+        String query = "select k from " + tableName + " WHERE rtrim(k)='b'";
         ResultSet rs = conn.createStatement().executeQuery(query);
         assertValueEqualsResultSet(rs, expectedResults);
         
         rs = conn.createStatement().executeQuery("explain " + query);
-        assertTrue(QueryUtil.getExplainPlan(rs).contains("RANGE SCAN OVER RTRIM_TEST"));
+        assertTrue(QueryUtil.getExplainPlan(rs).contains("RANGE SCAN OVER " + tableName));
         
         conn.close();
     }

http://git-wip-us.apache.org/repos/asf/phoenix/blob/6d147896/phoenix-core/src/it/java/org/apache/phoenix/end2end/ReadOnlyIT.java
----------------------------------------------------------------------
diff --git a/phoenix-core/src/it/java/org/apache/phoenix/end2end/ReadOnlyIT.java b/phoenix-core/src/it/java/org/apache/phoenix/end2end/ReadOnlyIT.java
index bcc4ee8..0b86af0 100644
--- a/phoenix-core/src/it/java/org/apache/phoenix/end2end/ReadOnlyIT.java
+++ b/phoenix-core/src/it/java/org/apache/phoenix/end2end/ReadOnlyIT.java
@@ -32,19 +32,20 @@ import org.apache.phoenix.util.PropertiesUtil;
 import org.junit.Test;
 
 
-public class ReadOnlyIT extends BaseHBaseManagedTimeIT {
+public class ReadOnlyIT extends BaseHBaseManagedTimeTableReuseIT {
 
     @Test
     public void testConnectionReadOnly() throws Exception {
         
         Properties props = PropertiesUtil.deepCopy(TEST_PROPERTIES);
         Connection conn = DriverManager.getConnection(getUrl(), props);
-        String ddl = "CREATE TABLE test_table " +
+      String testTable = generateRandomString();
+      String ddl = "CREATE TABLE " + testTable + " " +
                         "  (r varchar not null, col1 integer" +
                         "  CONSTRAINT pk PRIMARY KEY (r))\n"; 
         createTestTable(getUrl(), ddl);
 
-        String query = "UPSERT INTO test_table(r, col1) VALUES('row1', 777)";
+        String query = "UPSERT INTO " + testTable + "(r, col1) VALUES('row1', 777)";
         PreparedStatement statement = conn.prepareStatement(query);
         statement.executeUpdate();
         conn.commit();
@@ -52,7 +53,7 @@ public class ReadOnlyIT extends BaseHBaseManagedTimeIT {
 	try{    
 		conn.setReadOnly(true);
                 assertTrue(conn.isReadOnly());
-		ddl = "CREATE TABLE test_table2 " +
+		ddl = "CREATE TABLE " + testTable + "2 " +
 				"  (r varchar not null, col1 integer" +
 				"  CONSTRAINT pk PRIMARY KEY (r))\n";
 		statement = conn.prepareStatement(ddl);
@@ -63,8 +64,8 @@ public class ReadOnlyIT extends BaseHBaseManagedTimeIT {
               assertTrue(e.getMessage(), e.getMessage().contains("ERROR 518 (25502): Mutations are not permitted for a read-only connection."));
         }
 	  
-	try {  
-                query = "UPSERT INTO test_table(r, col1) VALUES('row1', 888)";
+	try {
+                query = "UPSERT INTO " + testTable + "(r, col1) VALUES('row1', 888)";
                 statement = conn.prepareStatement(query);
                 statement.executeUpdate();
                 conn.commit();
@@ -75,14 +76,14 @@ public class ReadOnlyIT extends BaseHBaseManagedTimeIT {
 
 	conn.setReadOnly(false);
         assertFalse(conn.isReadOnly());
-        ddl = "ALTER TABLE test_table ADD col2 VARCHAR";
+        ddl = "ALTER TABLE " + testTable + " ADD col2 VARCHAR";
 	statement = conn.prepareStatement(ddl);
         statement.executeUpdate();
 	conn.commit();
 
         try {   
 		conn.setReadOnly(true);
-                ddl = "ALTER TABLE test_table ADD col3 VARCHAR";
+                ddl = "ALTER TABLE " + testTable + " ADD col3 VARCHAR";
 		statement = conn.prepareStatement(ddl);
         	statement.executeUpdate();
                 fail();

http://git-wip-us.apache.org/repos/asf/phoenix/blob/6d147896/phoenix-core/src/it/java/org/apache/phoenix/end2end/RegexpSplitFunctionIT.java
----------------------------------------------------------------------
diff --git a/phoenix-core/src/it/java/org/apache/phoenix/end2end/RegexpSplitFunctionIT.java b/phoenix-core/src/it/java/org/apache/phoenix/end2end/RegexpSplitFunctionIT.java
index 5170089..50b7a80 100644
--- a/phoenix-core/src/it/java/org/apache/phoenix/end2end/RegexpSplitFunctionIT.java
+++ b/phoenix-core/src/it/java/org/apache/phoenix/end2end/RegexpSplitFunctionIT.java
@@ -31,23 +31,32 @@ import java.sql.ResultSet;
 import java.sql.SQLException;
 import java.sql.Types;
 
+import org.junit.Before;
+import org.junit.BeforeClass;
 import org.junit.Test;
 
 
-public class RegexpSplitFunctionIT extends BaseHBaseManagedTimeIT {
+public class RegexpSplitFunctionIT extends BaseHBaseManagedTimeTableReuseIT {
+
+    private static final String SPLIT_TEST = generateRandomString();
+
+    @BeforeClass
+    public static void setup() throws Exception {
+        Connection conn = DriverManager.getConnection(getUrl());
+        String ddl = "CREATE TABLE " + SPLIT_TEST + " (" +
+            "ID INTEGER NOT NULL PRIMARY KEY," +
+            "VAL VARCHAR," +
+            "SEP VARCHAR," +
+            "ARR VARCHAR ARRAY)";
+        conn.createStatement().execute(ddl);
+    }
 
     private void initTable(Connection conn, String val) throws SQLException {
         initTable(conn, val, ",");
     }
 
     private void initTable(Connection conn, String val, String separator) throws SQLException {
-        String ddl = "CREATE TABLE SPLIT_TEST (" +
-                "ID INTEGER NOT NULL PRIMARY KEY," +
-                "VAL VARCHAR," +
-                "SEP VARCHAR," +
-                "ARR VARCHAR ARRAY)";
-        conn.createStatement().execute(ddl);
-        String dml = "UPSERT INTO SPLIT_TEST (ID, SEP, VAL) VALUES (?, ?, ?)";
+        String dml = "UPSERT INTO " + SPLIT_TEST + " (ID, SEP, VAL) VALUES (?, ?, ?)";
         PreparedStatement stmt = conn.prepareStatement(dml);
         stmt.setInt(1, 1);
         if (separator == null) {
@@ -70,7 +79,7 @@ public class RegexpSplitFunctionIT extends BaseHBaseManagedTimeIT {
         initTable(conn, "ONE,TWO,THREE");
 
         ResultSet rs = conn.createStatement().executeQuery(
-                "SELECT REGEXP_SPLIT(VAL, ',')[1] FROM SPLIT_TEST");
+            "SELECT REGEXP_SPLIT(VAL, ',')[1] FROM " + SPLIT_TEST);
         assertTrue(rs.next());
         assertEquals("ONE", rs.getString(1));
         assertFalse(rs.next());
@@ -82,7 +91,7 @@ public class RegexpSplitFunctionIT extends BaseHBaseManagedTimeIT {
         initTable(conn, "ONE,TWO,THREE");
 
         ResultSet rs = conn.createStatement().executeQuery(
-                "SELECT ID FROM SPLIT_TEST WHERE (REGEXP_SPLIT(VAL, ','))[1] = 'ONE'");
+            "SELECT ID FROM " + SPLIT_TEST + " WHERE (REGEXP_SPLIT(VAL, ','))[1] = 'ONE'");
         assertTrue(rs.next());
         assertEquals(1, rs.getInt(1));
         assertFalse(rs.next());
@@ -93,11 +102,12 @@ public class RegexpSplitFunctionIT extends BaseHBaseManagedTimeIT {
         Connection conn = DriverManager.getConnection(getUrl());
         initTable(conn, "ONE,TWO,THREE");
 
-        conn.createStatement().executeUpdate("UPSERT INTO SPLIT_TEST (ID, ARR) SELECT ID, " +
-                "REGEXP_SPLIT(VAL, ',') FROM SPLIT_TEST");
+        conn.createStatement().executeUpdate(
+            "UPSERT INTO " + SPLIT_TEST + " (ID, ARR) SELECT ID, " + "REGEXP_SPLIT(VAL, ',') FROM "
+                + SPLIT_TEST);
         conn.commit();
 
-        ResultSet rs = conn.createStatement().executeQuery("SELECT ARR FROM SPLIT_TEST");
+        ResultSet rs = conn.createStatement().executeQuery("SELECT ARR FROM " + SPLIT_TEST);
         assertTrue(rs.next());
         Array array = rs.getArray(1);
         String[] values = (String[]) array.getArray();
@@ -110,7 +120,7 @@ public class RegexpSplitFunctionIT extends BaseHBaseManagedTimeIT {
         initTable(conn, "ONE:TWO:THREE");
 
         ResultSet rs = conn.createStatement().executeQuery(
-                "SELECT REGEXP_SPLIT(VAL, ':') FROM SPLIT_TEST");
+            "SELECT REGEXP_SPLIT(VAL, ':') FROM " + SPLIT_TEST);
         assertTrue(rs.next());
         Array array = rs.getArray(1);
         String[] values = (String[]) array.getArray();
@@ -123,7 +133,7 @@ public class RegexpSplitFunctionIT extends BaseHBaseManagedTimeIT {
         initTable(conn, "ONE,TWO,THREE");
 
         ResultSet rs = conn.createStatement().executeQuery(
-                "SELECT REGEXP_SPLIT(VAL, SEP) FROM SPLIT_TEST");
+            "SELECT REGEXP_SPLIT(VAL, SEP) FROM " + SPLIT_TEST);
         assertTrue(rs.next());
         Array array = rs.getArray(1);
         String[] values = (String[]) array.getArray();
@@ -136,7 +146,7 @@ public class RegexpSplitFunctionIT extends BaseHBaseManagedTimeIT {
         initTable(conn, "CANNOT BE SPLIT");
 
         ResultSet rs = conn.createStatement().executeQuery(
-                "SELECT REGEXP_SPLIT(VAL, ',') FROM SPLIT_TEST");
+            "SELECT REGEXP_SPLIT(VAL, ',') FROM " + SPLIT_TEST);
         assertTrue(rs.next());
         Array array = rs.getArray(1);
         String[] values = (String[]) array.getArray();
@@ -149,7 +159,7 @@ public class RegexpSplitFunctionIT extends BaseHBaseManagedTimeIT {
         initTable(conn, "ONE!:TWO:::!THREE::!:FOUR");
 
         ResultSet rs = conn.createStatement().executeQuery(
-                "SELECT REGEXP_SPLIT(VAL, '[:!]+') FROM SPLIT_TEST");
+            "SELECT REGEXP_SPLIT(VAL, '[:!]+') FROM " + SPLIT_TEST);
         assertTrue(rs.next());
         Array array = rs.getArray(1);
         String[] values = (String[]) array.getArray();
@@ -162,7 +172,7 @@ public class RegexpSplitFunctionIT extends BaseHBaseManagedTimeIT {
         initTable(conn, "ONE|TWO|THREE");
 
         ResultSet rs = conn.createStatement().executeQuery(
-                "SELECT REGEXP_SPLIT(VAL, '\\\\|') FROM SPLIT_TEST");
+            "SELECT REGEXP_SPLIT(VAL, '\\\\|') FROM " + SPLIT_TEST);
         assertTrue(rs.next());
         Array array = rs.getArray(1);
         String[] values = (String[]) array.getArray();
@@ -175,7 +185,7 @@ public class RegexpSplitFunctionIT extends BaseHBaseManagedTimeIT {
         initTable(conn, null);
 
         ResultSet rs = conn.createStatement().executeQuery(
-                "SELECT REGEXP_SPLIT(VAL, ',') FROM SPLIT_TEST");
+            "SELECT REGEXP_SPLIT(VAL, ',') FROM " + SPLIT_TEST);
         assertTrue(rs.next());
         assertNull(rs.getString(1));
         assertFalse(rs.next());
@@ -187,7 +197,7 @@ public class RegexpSplitFunctionIT extends BaseHBaseManagedTimeIT {
         initTable(conn, "ONE,TWO,THREE");
 
         ResultSet rs = conn.createStatement().executeQuery(
-                "SELECT REGEXP_SPLIT(VAL, NULL) FROM SPLIT_TEST");
+            "SELECT REGEXP_SPLIT(VAL, NULL) FROM " + SPLIT_TEST);
         assertTrue(rs.next());
         assertNull(rs.getString(1));
         assertFalse(rs.next());
@@ -199,7 +209,7 @@ public class RegexpSplitFunctionIT extends BaseHBaseManagedTimeIT {
         initTable(conn, "ONE,TWO,THREE", null);
 
         ResultSet rs = conn.createStatement().executeQuery(
-                "SELECT REGEXP_SPLIT(VAL, SEP) FROM SPLIT_TEST");
+            "SELECT REGEXP_SPLIT(VAL, SEP) FROM " + SPLIT_TEST);
         assertTrue(rs.next());
         assertNull(rs.getString(1));
         assertFalse(rs.next());

http://git-wip-us.apache.org/repos/asf/phoenix/blob/6d147896/phoenix-core/src/it/java/org/apache/phoenix/end2end/ReverseFunctionIT.java
----------------------------------------------------------------------
diff --git a/phoenix-core/src/it/java/org/apache/phoenix/end2end/ReverseFunctionIT.java b/phoenix-core/src/it/java/org/apache/phoenix/end2end/ReverseFunctionIT.java
index f384d3a..3a1f8c2 100644
--- a/phoenix-core/src/it/java/org/apache/phoenix/end2end/ReverseFunctionIT.java
+++ b/phoenix-core/src/it/java/org/apache/phoenix/end2end/ReverseFunctionIT.java
@@ -30,28 +30,32 @@ import java.sql.ResultSet;
 import org.junit.Test;
 
 
-public class ReverseFunctionIT extends BaseHBaseManagedTimeIT {
-    private void initTable(Connection conn, String sortOrder, String s) throws Exception {
-        String ddl = "CREATE TABLE REVERSE_TEST (pk VARCHAR NOT NULL PRIMARY KEY " + sortOrder + ", kv VARCHAR)";
+public class ReverseFunctionIT extends BaseHBaseManagedTimeTableReuseIT {
+
+    private String initTable(Connection conn, String sortOrder, String s) throws Exception {
+        String reverseTest =  generateRandomString();
+        String ddl = "CREATE TABLE " + reverseTest + " (pk VARCHAR NOT NULL PRIMARY KEY " + sortOrder + ", kv VARCHAR)";
         conn.createStatement().execute(ddl);
-        String dml = "UPSERT INTO REVERSE_TEST VALUES(?)";
+        String dml = "UPSERT INTO " + reverseTest + " VALUES(?)";
         PreparedStatement stmt = conn.prepareStatement(dml);
         stmt.setString(1, s);
         stmt.execute();
-        conn.commit();        
+        conn.commit();
+        return reverseTest;
     }
     
-    private void testReverse(Connection conn, String s) throws Exception {
+    private void testReverse(Connection conn, String s, String tableName) throws Exception {
         StringBuilder buf = new StringBuilder(s);
         String reverse = buf.reverse().toString();
         
         ResultSet rs;
-        rs = conn.createStatement().executeQuery("SELECT reverse(pk) FROM REVERSE_TEST");
+        rs = conn.createStatement().executeQuery("SELECT reverse(pk) FROM " + tableName);
         assertTrue(rs.next());
         assertEquals(reverse, rs.getString(1));
         assertFalse(rs.next());
         
-        PreparedStatement stmt = conn.prepareStatement("SELECT pk FROM REVERSE_TEST WHERE pk=reverse(?)");
+        PreparedStatement stmt = conn.prepareStatement(
+            "SELECT pk FROM " + tableName + " WHERE pk=reverse(?)");
         stmt.setString(1, reverse);
         rs = stmt.executeQuery();
         assertTrue(rs.next());
@@ -63,16 +67,16 @@ public class ReverseFunctionIT extends BaseHBaseManagedTimeIT {
     public void testSingleByteReverseAscending() throws Exception {
         Connection conn = DriverManager.getConnection(getUrl());
         String s = "abc";
-        initTable(conn, "ASC", s);
-        testReverse(conn, s);
+        String tableName = initTable(conn, "ASC", s);
+        testReverse(conn, s, tableName);
     }                                                           
 
     @Test
     public void testMultiByteReverseAscending() throws Exception {
         Connection conn = DriverManager.getConnection(getUrl());
         String s = "ɚɦɰɸ";
-        initTable(conn, "DESC", s);
-        testReverse(conn, s);
+        String tableName = initTable(conn, "DESC", s);
+        testReverse(conn, s, tableName);
     }                                                           
 
     
@@ -80,26 +84,26 @@ public class ReverseFunctionIT extends BaseHBaseManagedTimeIT {
     public void testSingleByteReverseDecending() throws Exception {
         Connection conn = DriverManager.getConnection(getUrl());
         String s = "abc";
-        initTable(conn, "DESC", s);
-        testReverse(conn, s);
+        String tableName = initTable(conn, "DESC", s);
+        testReverse(conn, s, tableName);
     }                                                           
 
     @Test
     public void testMultiByteReverseDecending() throws Exception {
         Connection conn = DriverManager.getConnection(getUrl());
         String s = "ɚɦɰɸ";
-        initTable(conn, "ASC", s);
-        testReverse(conn, s);
+        String tableName = initTable(conn, "ASC", s);
+        testReverse(conn, s, tableName);
     }
     
     @Test
     public void testNullReverse() throws Exception {
         Connection conn = DriverManager.getConnection(getUrl());
         String s = "abc";
-        initTable(conn, "ASC", s);
-        
+        String tableName = initTable(conn, "ASC", s);
+
         ResultSet rs;
-        rs = conn.createStatement().executeQuery("SELECT reverse(kv) FROM REVERSE_TEST");
+        rs = conn.createStatement().executeQuery("SELECT reverse(kv) FROM " + tableName);
         assertTrue(rs.next());
         assertNull(rs.getString(1));
         assertFalse(rs.next());

http://git-wip-us.apache.org/repos/asf/phoenix/blob/6d147896/phoenix-core/src/it/java/org/apache/phoenix/end2end/RoundFloorCeilFunctionsEnd2EndIT.java
----------------------------------------------------------------------
diff --git a/phoenix-core/src/it/java/org/apache/phoenix/end2end/RoundFloorCeilFunctionsEnd2EndIT.java b/phoenix-core/src/it/java/org/apache/phoenix/end2end/RoundFloorCeilFunctionsEnd2EndIT.java
index 753d592..c365934 100644
--- a/phoenix-core/src/it/java/org/apache/phoenix/end2end/RoundFloorCeilFunctionsEnd2EndIT.java
+++ b/phoenix-core/src/it/java/org/apache/phoenix/end2end/RoundFloorCeilFunctionsEnd2EndIT.java
@@ -55,9 +55,10 @@ import com.google.common.primitives.Floats;
  */
 
 
-public class RoundFloorCeilFunctionsEnd2EndIT extends BaseHBaseManagedTimeIT {
-    
-    private static long millisPart = 660;
+public class RoundFloorCeilFunctionsEnd2EndIT extends BaseHBaseManagedTimeTableReuseIT {
+
+  private static final String TABLE_NAME = generateRandomString();
+  private static long millisPart = 660;
     private static int nanosPart = 500100;
     private static BigDecimal decimalUpserted = BigDecimal.valueOf(1.264);
     private static double doubleUpserted = 1.264d;
@@ -72,7 +73,8 @@ public class RoundFloorCeilFunctionsEnd2EndIT extends BaseHBaseManagedTimeIT {
         PreparedStatement stmt = null;
         try {
             conn = DriverManager.getConnection(getUrl());
-            String ddl = "CREATE TABLE IF NOT EXISTS t1 (s VARCHAR NOT NULL PRIMARY KEY, dt DATE, t TIME, ts TIMESTAMP, dec DECIMAL, doub DOUBLE, undoub UNSIGNED_DOUBLE, fl FLOAT, unfl UNSIGNED_FLOAT)";
+            String ddl = "CREATE TABLE IF NOT EXISTS " + TABLE_NAME
+                + " (s VARCHAR NOT NULL PRIMARY KEY, dt DATE, t TIME, ts TIMESTAMP, dec DECIMAL, doub DOUBLE, undoub UNSIGNED_DOUBLE, fl FLOAT, unfl UNSIGNED_FLOAT)";
             conn.createStatement().execute(ddl);
             
             Date dateUpserted = DateUtil.parseDate("2012-01-01 14:25:28");
@@ -82,7 +84,8 @@ public class RoundFloorCeilFunctionsEnd2EndIT extends BaseHBaseManagedTimeIT {
             Time timeUpserted = new Time(millis);
             Timestamp tsUpserted = DateUtil.getTimestamp(millis, nanosPart);
             
-            stmt =  conn.prepareStatement("UPSERT INTO t1 VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)");
+            stmt =  conn.prepareStatement(
+                "UPSERT INTO " + TABLE_NAME + " VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)");
             stmt.setString(1, testString);
             stmt.setDate(2, dateUpserted);
             stmt.setTime(3, timeUpserted);
@@ -103,7 +106,7 @@ public class RoundFloorCeilFunctionsEnd2EndIT extends BaseHBaseManagedTimeIT {
     public void testRoundingUpDate() throws Exception {
         Connection conn = DriverManager.getConnection(getUrl());
         ResultSet rs = conn.createStatement().executeQuery("SELECT ROUND(dt, 'day'), ROUND(dt, 'hour', 1), ROUND(dt, 'minute', 1), ROUND(dt, 'second', 1), "
-                + " ROUND(dt,'week'), ROUND(dt,'month') , ROUND(dt,'year') FROM t1");
+                + " ROUND(dt,'week'), ROUND(dt,'month') , ROUND(dt,'year') FROM " + TABLE_NAME);
         assertTrue(rs.next());
         Date expectedDate = DateUtil.parseDate("2012-01-02 00:00:00");
         assertEquals(expectedDate, rs.getDate(1));
@@ -124,7 +127,8 @@ public class RoundFloorCeilFunctionsEnd2EndIT extends BaseHBaseManagedTimeIT {
     @Test
     public void testRoundingUpDateInWhere() throws Exception {
         Connection conn = DriverManager.getConnection(getUrl());
-        ResultSet rs = conn.createStatement().executeQuery("SELECT * FROM t1 WHERE ROUND(dt, 'day') = to_date('2012-01-02 00:00:00')");
+        ResultSet rs = conn.createStatement().executeQuery("SELECT * FROM " + TABLE_NAME
+            + " WHERE ROUND(dt, 'day') = to_date('2012-01-02 00:00:00')");
         assertTrue(rs.next());
     }
     
@@ -132,7 +136,7 @@ public class RoundFloorCeilFunctionsEnd2EndIT extends BaseHBaseManagedTimeIT {
     public void testFloorDate() throws Exception {
         Connection conn = DriverManager.getConnection(getUrl());
         ResultSet rs = conn.createStatement().executeQuery("SELECT FLOOR(dt, 'day', 1), FLOOR(dt, 'hour', 1), FLOOR(dt, 'minute', 1), FLOOR(dt, 'second', 1),"
-                + " FLOOR(dt,'week'), FLOOR(dt,'month'), FLOOR(dt,'year') FROM t1");
+                + " FLOOR(dt,'week'), FLOOR(dt,'month'), FLOOR(dt,'year') FROM " + TABLE_NAME);
         assertTrue(rs.next());
         Date expectedDate = DateUtil.parseDate("2012-01-01 00:00:00");
         assertEquals(expectedDate, rs.getDate(1));
@@ -153,7 +157,8 @@ public class RoundFloorCeilFunctionsEnd2EndIT extends BaseHBaseManagedTimeIT {
     @Test
     public void testFloorDateInWhere() throws Exception {
         Connection conn = DriverManager.getConnection(getUrl());
-        ResultSet rs = conn.createStatement().executeQuery("SELECT * FROM t1 WHERE FLOOR(dt, 'hour') = to_date('2012-01-01 14:00:00')");
+        ResultSet rs = conn.createStatement().executeQuery("SELECT * FROM " + TABLE_NAME
+            + " WHERE FLOOR(dt, 'hour') = to_date('2012-01-01 14:00:00')");
         assertTrue(rs.next());
     }
     
@@ -161,7 +166,7 @@ public class RoundFloorCeilFunctionsEnd2EndIT extends BaseHBaseManagedTimeIT {
     public void testCeilDate() throws Exception {
         Connection conn = DriverManager.getConnection(getUrl());
         ResultSet rs = conn.createStatement().executeQuery("SELECT CEIL(dt, 'day', 1), CEIL(dt, 'hour', 1), CEIL(dt, 'minute', 1), CEIL(dt, 'second', 1), "
-                + " CEIL(dt,'week') , CEIL(dt,'month') , CEIL(dt,'year')  FROM t1");
+                + " CEIL(dt,'week') , CEIL(dt,'month') , CEIL(dt,'year')  FROM " + TABLE_NAME);
         assertTrue(rs.next());
         //Date upserted is 2012-01-01 14:25:28.660. So we will end up bumping up in every case.
         Date expectedDate = DateUtil.parseDate("2012-01-02 00:00:00");
@@ -184,14 +189,17 @@ public class RoundFloorCeilFunctionsEnd2EndIT extends BaseHBaseManagedTimeIT {
     @Test
     public void testCeilDateInWhere() throws Exception {
         Connection conn = DriverManager.getConnection(getUrl());
-        ResultSet rs = conn.createStatement().executeQuery("SELECT * FROM t1 WHERE CEIL(dt, 'second') = to_date('2012-01-01 14:25:29')");
+        ResultSet rs = conn.createStatement().executeQuery("SELECT * FROM " + TABLE_NAME
+            + " WHERE CEIL(dt, 'second') = to_date('2012-01-01 14:25:29')");
         assertTrue(rs.next());
     }
     
     @Test
     public void testRoundingUpTimestamp() throws Exception {
         Connection conn = DriverManager.getConnection(getUrl());
-        ResultSet rs = conn.createStatement().executeQuery("SELECT ROUND(ts, 'day'), ROUND(ts, 'hour', 1), ROUND(ts, 'minute', 1), ROUND(ts, 'second', 1), ROUND(ts, 'millisecond', 1) FROM t1");
+        ResultSet rs = conn.createStatement().executeQuery(
+            "SELECT ROUND(ts, 'day'), ROUND(ts, 'hour', 1), ROUND(ts, 'minute', 1), ROUND(ts, 'second', 1), ROUND(ts, 'millisecond', 1) FROM "
+                + TABLE_NAME);
         assertTrue(rs.next());
         Timestamp expectedTimestamp;
         expectedTimestamp = new Timestamp(DateUtil.parseDate("2012-01-02 00:00:00").getTime());
@@ -212,7 +220,8 @@ public class RoundFloorCeilFunctionsEnd2EndIT extends BaseHBaseManagedTimeIT {
     @Test
     public void testRoundingUpTimestampInWhere() throws Exception {
         Connection conn = DriverManager.getConnection(getUrl());
-        ResultSet rs = conn.createStatement().executeQuery("SELECT * FROM t1 WHERE ROUND(ts, 'second') = to_date('2012-01-01 14:25:29')");
+        ResultSet rs = conn.createStatement().executeQuery("SELECT * FROM " + TABLE_NAME
+            + " WHERE ROUND(ts, 'second') = to_date('2012-01-01 14:25:29')");
         assertTrue(rs.next());
     }
     
@@ -220,7 +229,8 @@ public class RoundFloorCeilFunctionsEnd2EndIT extends BaseHBaseManagedTimeIT {
     public void testFloorTimestamp() throws Exception {
         Connection conn = DriverManager.getConnection(getUrl());
         ResultSet rs = conn.createStatement().executeQuery("SELECT FLOOR(ts, 'day'), FLOOR(ts, 'hour', 1), FLOOR(ts, 'minute', 1), FLOOR(ts, 'second', 1), "
-                + " FLOOR(ts, 'millisecond', 1) , FLOOR(ts,'week') , FLOOR(ts,'month') FROM t1");
+                + " FLOOR(ts, 'millisecond', 1) , FLOOR(ts,'week') , FLOOR(ts,'month') FROM "
+            + TABLE_NAME);
         assertTrue(rs.next());
         Timestamp expectedTimestamp;
         expectedTimestamp = new Timestamp(DateUtil.parseDate("2012-01-01 00:00:00").getTime());
@@ -244,14 +254,16 @@ public class RoundFloorCeilFunctionsEnd2EndIT extends BaseHBaseManagedTimeIT {
     @Test
     public void testFloorTimestampInWhere() throws Exception {
         Connection conn = DriverManager.getConnection(getUrl());
-        ResultSet rs = conn.createStatement().executeQuery("SELECT * FROM t1 WHERE FLOOR(ts, 'second') = to_date('2012-01-01 14:25:28')");
+        ResultSet rs = conn.createStatement().executeQuery("SELECT * FROM " + TABLE_NAME
+            + " WHERE FLOOR(ts, 'second') = to_date('2012-01-01 14:25:28')");
         assertTrue(rs.next());
     }
     
     @Test
     public void testWeekFloorTimestampInWhere() throws Exception {
         Connection conn = DriverManager.getConnection(getUrl());
-        ResultSet rs = conn.createStatement().executeQuery("SELECT * FROM t1 WHERE FLOOR(ts, 'week') = to_date('2011-12-26 00:00:00')");
+        ResultSet rs = conn.createStatement().executeQuery("SELECT * FROM " + TABLE_NAME
+            + " WHERE FLOOR(ts, 'week') = to_date('2011-12-26 00:00:00')");
         assertTrue(rs.next());
     }
     
@@ -259,7 +271,7 @@ public class RoundFloorCeilFunctionsEnd2EndIT extends BaseHBaseManagedTimeIT {
     public void testCeilTimestamp() throws Exception {
         Connection conn = DriverManager.getConnection(getUrl());
         ResultSet rs = conn.createStatement().executeQuery("SELECT CEIL(ts, 'day'), CEIL(ts, 'hour', 1), CEIL(ts, 'minute', 1), CEIL(ts, 'second', 1), CEIL(ts, 'millisecond', 1),"
-                + " CEIL(ts,'week'), CEIL(ts,'month') , CEIL(ts,'year') FROM t1");
+                + " CEIL(ts,'week'), CEIL(ts,'month') , CEIL(ts,'year') FROM " + TABLE_NAME);
         assertTrue(rs.next());
         Timestamp expectedTimestamp;
         expectedTimestamp = new Timestamp(DateUtil.parseDate("2012-01-02 00:00:00").getTime());
@@ -286,7 +298,8 @@ public class RoundFloorCeilFunctionsEnd2EndIT extends BaseHBaseManagedTimeIT {
     @Test
     public void testCeilTimestampInWhere() throws Exception {
         Connection conn = DriverManager.getConnection(getUrl());
-        ResultSet rs = conn.createStatement().executeQuery("SELECT * FROM t1 WHERE CEIL(ts, 'second') = to_date('2012-01-01 14:25:29')");
+        ResultSet rs = conn.createStatement().executeQuery("SELECT * FROM " + TABLE_NAME
+            + " WHERE CEIL(ts, 'second') = to_date('2012-01-01 14:25:29')");
         assertTrue(rs.next());
     }
     
@@ -294,7 +307,7 @@ public class RoundFloorCeilFunctionsEnd2EndIT extends BaseHBaseManagedTimeIT {
     public void testRoundingUpTime() throws Exception {
         Connection conn = DriverManager.getConnection(getUrl());
         ResultSet rs = conn.createStatement().executeQuery("SELECT ROUND(t, 'day', 1), ROUND(t, 'hour', 1), ROUND(t, 'minute', 1), ROUND(t, 'second', 1),"
-                + " ROUND(t,'week') , ROUND(t,'month') , ROUND(t,'year') FROM t1");
+                + " ROUND(t,'week') , ROUND(t,'month') , ROUND(t,'year') FROM " + TABLE_NAME);
         assertTrue(rs.next());
         Time expectedTime = new Time(DateUtil.parseDate("2012-01-02 00:00:00").getTime());
         assertEquals(expectedTime, rs.getTime(1));
@@ -316,7 +329,7 @@ public class RoundFloorCeilFunctionsEnd2EndIT extends BaseHBaseManagedTimeIT {
     public void testFloorTime() throws Exception {
         Connection conn = DriverManager.getConnection(getUrl());
         ResultSet rs = conn.createStatement().executeQuery("SELECT FLOOR(t, 'day', 1), FLOOR(t, 'hour', 1), FLOOR(t, 'minute', 1), FLOOR(t, 'second', 1), "
-                + " FLOOR(t, 'week'),  FLOOR(t, 'month'), FLOOR(t, 'year') FROM t1");
+                + " FLOOR(t, 'week'),  FLOOR(t, 'month'), FLOOR(t, 'year') FROM " + TABLE_NAME);
         assertTrue(rs.next());
         Time expectedTime = new Time(DateUtil.parseDate("2012-01-01 00:00:00").getTime());
         assertEquals(expectedTime, rs.getTime(1));
@@ -338,7 +351,7 @@ public class RoundFloorCeilFunctionsEnd2EndIT extends BaseHBaseManagedTimeIT {
     public void testCeilTime() throws Exception {
         Connection conn = DriverManager.getConnection(getUrl());
         ResultSet rs = conn.createStatement().executeQuery("SELECT CEIL(t, 'day', 1), CEIL(t, 'hour', 1), CEIL(t, 'minute', 1), CEIL(t, 'second', 1),"
-                + " CEIL(t,'week') , CEIL(t,'month') , CEIL(t,'year') FROM t1");
+                + " CEIL(t,'week') , CEIL(t,'month') , CEIL(t,'year') FROM " + TABLE_NAME);
         assertTrue(rs.next());
         Time expectedTime = new Time(DateUtil.parseDate("2012-01-02 00:00:00").getTime());
         assertEquals(expectedTime, rs.getTime(1));
@@ -359,7 +372,8 @@ public class RoundFloorCeilFunctionsEnd2EndIT extends BaseHBaseManagedTimeIT {
     @Test
     public void testRoundingUpDecimal() throws Exception {
         Connection conn = DriverManager.getConnection(getUrl());
-        ResultSet rs = conn.createStatement().executeQuery("SELECT ROUND(dec), ROUND(dec, 1), ROUND(dec, 2), ROUND(dec, 3) FROM t1");
+        ResultSet rs = conn.createStatement().executeQuery(
+            "SELECT ROUND(dec), ROUND(dec, 1), ROUND(dec, 2), ROUND(dec, 3) FROM " + TABLE_NAME);
         assertTrue(rs.next());
         BigDecimal expectedBd = BigDecimal.valueOf(1);
         assertEquals(expectedBd, rs.getBigDecimal(1));
@@ -374,14 +388,16 @@ public class RoundFloorCeilFunctionsEnd2EndIT extends BaseHBaseManagedTimeIT {
     @Test
     public void testRoundingUpDecimalInWhere() throws Exception {
         Connection conn = DriverManager.getConnection(getUrl());
-        ResultSet rs = conn.createStatement().executeQuery("SELECT * FROM t1 WHERE ROUND(dec, 2) = 1.26");
+        ResultSet rs = conn.createStatement().executeQuery(
+            "SELECT * FROM " + TABLE_NAME + " WHERE ROUND(dec, 2) = 1.26");
         assertTrue(rs.next());
     }
     
     @Test
     public void testFloorDecimal() throws Exception {
         Connection conn = DriverManager.getConnection(getUrl());
-        ResultSet rs = conn.createStatement().executeQuery("SELECT FLOOR(dec), FLOOR(dec, 1), FLOOR(dec, 2), FLOOR(dec, 3) FROM t1");
+        ResultSet rs = conn.createStatement().executeQuery(
+            "SELECT FLOOR(dec), FLOOR(dec, 1), FLOOR(dec, 2), FLOOR(dec, 3) FROM " + TABLE_NAME);
         assertTrue(rs.next());
         BigDecimal expectedBd = BigDecimal.valueOf(1);
         assertEquals(expectedBd, rs.getBigDecimal(1));
@@ -396,14 +412,16 @@ public class RoundFloorCeilFunctionsEnd2EndIT extends BaseHBaseManagedTimeIT {
     @Test
     public void testFloorDecimalInWhere() throws Exception {
         Connection conn = DriverManager.getConnection(getUrl());
-        ResultSet rs = conn.createStatement().executeQuery("SELECT * FROM t1 WHERE FLOOR(dec, 2) = 1.26");
+        ResultSet rs = conn.createStatement().executeQuery(
+            "SELECT * FROM " + TABLE_NAME + " WHERE FLOOR(dec, 2) = 1.26");
         assertTrue(rs.next());
     }
     
     @Test
     public void testCeilDecimal() throws Exception {
         Connection conn = DriverManager.getConnection(getUrl());
-        ResultSet rs = conn.createStatement().executeQuery("SELECT CEIL(dec), CEIL(dec, 1), CEIL(dec, 2), CEIL(dec, 3) FROM t1");
+        ResultSet rs = conn.createStatement().executeQuery(
+            "SELECT CEIL(dec), CEIL(dec, 1), CEIL(dec, 2), CEIL(dec, 3) FROM " + TABLE_NAME);
         assertTrue(rs.next());
         BigDecimal expectedBd = BigDecimal.valueOf(2);
         assertEquals(expectedBd, rs.getBigDecimal(1));
@@ -418,13 +436,15 @@ public class RoundFloorCeilFunctionsEnd2EndIT extends BaseHBaseManagedTimeIT {
     @Test
     public void testCeilDecimalInWhere() throws Exception {
         Connection conn = DriverManager.getConnection(getUrl());
-        ResultSet rs = conn.createStatement().executeQuery("SELECT * FROM t1 WHERE CEIL(dec, 2) = 1.27");
+        ResultSet rs = conn.createStatement().executeQuery(
+            "SELECT * FROM " + TABLE_NAME + " WHERE CEIL(dec, 2) = 1.27");
         assertTrue(rs.next());
     }
     @Test
 	public void testRoundingUpDouble() throws Exception {
 		Connection conn = DriverManager.getConnection(getUrl());
-		ResultSet rs = conn.createStatement().executeQuery("SELECT ROUND(doub), ROUND(doub, 1), ROUND(doub, 2), ROUND(doub, 3) FROM t1");
+		ResultSet rs = conn.createStatement().executeQuery(
+        "SELECT ROUND(doub), ROUND(doub, 1), ROUND(doub, 2), ROUND(doub, 3) FROM " + TABLE_NAME);
 		assertTrue(rs.next());
 		assertEquals(0, Doubles.compare(1, rs.getDouble(1)));
 		assertEquals(0, Doubles.compare(1.3, rs.getDouble(2)));
@@ -435,14 +455,16 @@ public class RoundFloorCeilFunctionsEnd2EndIT extends BaseHBaseManagedTimeIT {
 	@Test
 	public void testRoundingUpDoubleInWhere() throws Exception {
 		Connection conn = DriverManager.getConnection(getUrl());
-		ResultSet rs = conn.createStatement().executeQuery("SELECT * FROM t1 WHERE ROUND(dec, 2) = 1.26");
+		ResultSet rs = conn.createStatement().executeQuery(
+        "SELECT * FROM " + TABLE_NAME + " WHERE ROUND(dec, 2) = 1.26");
 		assertTrue(rs.next());
 	}
 
 	@Test
 	public void testCeilDouble() throws Exception {
 		Connection conn = DriverManager.getConnection(getUrl());
-		ResultSet rs = conn.createStatement().executeQuery("SELECT CEIL(doub), CEIL(doub, 1), CEIL(doub, 2), CEIL(doub, 3) FROM t1");
+		ResultSet rs = conn.createStatement().executeQuery(
+        "SELECT CEIL(doub), CEIL(doub, 1), CEIL(doub, 2), CEIL(doub, 3) FROM " + TABLE_NAME);
 		assertTrue(rs.next());
 		assertEquals(0, Doubles.compare(2, rs.getDouble(1)));
 		assertEquals(0, Doubles.compare(1.3, rs.getDouble(2)));
@@ -453,14 +475,16 @@ public class RoundFloorCeilFunctionsEnd2EndIT extends BaseHBaseManagedTimeIT {
 	@Test
 	public void testCeilDoubleInWhere() throws Exception {
 		Connection conn = DriverManager.getConnection(getUrl());
-		ResultSet rs = conn.createStatement().executeQuery("SELECT * FROM t1 WHERE CEIL(doub, 2) = 1.27");
+		ResultSet rs = conn.createStatement().executeQuery(
+        "SELECT * FROM " + TABLE_NAME + " WHERE CEIL(doub, 2) = 1.27");
 		assertTrue(rs.next());
 	}
 
 	@Test
 	public void testFloorDouble() throws Exception {
 		Connection conn = DriverManager.getConnection(getUrl());
-		ResultSet rs = conn.createStatement().executeQuery("SELECT FLOOR(doub), FLOOR(doub, 1), FLOOR(doub, 2), FLOOR(doub, 3) FROM t1");
+		ResultSet rs = conn.createStatement().executeQuery(
+        "SELECT FLOOR(doub), FLOOR(doub, 1), FLOOR(doub, 2), FLOOR(doub, 3) FROM " + TABLE_NAME);
 		assertTrue(rs.next());
 		assertEquals(0, Doubles.compare(1, rs.getDouble(1)));
 		assertEquals(0, Doubles.compare(1.2, rs.getDouble(2)));
@@ -471,14 +495,16 @@ public class RoundFloorCeilFunctionsEnd2EndIT extends BaseHBaseManagedTimeIT {
 	@Test
 	public void testFloorDoubleInWhere() throws Exception {
 		Connection conn = DriverManager.getConnection(getUrl());
-		ResultSet rs = conn.createStatement().executeQuery("SELECT * FROM t1 WHERE FLOOR(doub, 2) = 1.26");
+		ResultSet rs = conn.createStatement().executeQuery(
+        "SELECT * FROM " + TABLE_NAME + " WHERE FLOOR(doub, 2) = 1.26");
 		assertTrue(rs.next());
 	}
 	
 	@Test
 	public void testRoundFloat() throws Exception {
 		Connection conn = DriverManager.getConnection(getUrl());
-		ResultSet rs = conn.createStatement().executeQuery("SELECT ROUND(fl), ROUND(fl, 1), ROUND(fl, 2), ROUND(fl, 3) FROM t1");
+		ResultSet rs = conn.createStatement().executeQuery(
+        "SELECT ROUND(fl), ROUND(fl, 1), ROUND(fl, 2), ROUND(fl, 3) FROM " + TABLE_NAME);
 		assertTrue(rs.next());
 		assertEquals(0, Floats.compare(1, rs.getFloat(1)));
 		assertEquals(0, Floats.compare(1.3f, rs.getFloat(2)));
@@ -489,7 +515,8 @@ public class RoundFloorCeilFunctionsEnd2EndIT extends BaseHBaseManagedTimeIT {
 	@Test
 	public void testRoundUnsignedFloat() throws Exception {
 		Connection conn = DriverManager.getConnection(getUrl());
-		ResultSet rs = conn.createStatement().executeQuery("SELECT ROUND(unfl), ROUND(unfl, 1), ROUND(unfl, 2), ROUND(unfl, 3) FROM t1");
+		ResultSet rs = conn.createStatement().executeQuery(
+        "SELECT ROUND(unfl), ROUND(unfl, 1), ROUND(unfl, 2), ROUND(unfl, 3) FROM " + TABLE_NAME);
 		assertTrue(rs.next());
 		assertEquals(0, Floats.compare(1, rs.getFloat(1)));
 		assertEquals(0, Floats.compare(1.3f, rs.getFloat(2)));
@@ -500,7 +527,9 @@ public class RoundFloorCeilFunctionsEnd2EndIT extends BaseHBaseManagedTimeIT {
 	@Test
 	public void testRoundUnsignedDouble() throws Exception {
 		Connection conn = DriverManager.getConnection(getUrl());
-		ResultSet rs = conn.createStatement().executeQuery("SELECT ROUND(undoub), ROUND(undoub, 1), ROUND(undoub, 2), ROUND(undoub, 3) FROM t1");
+		ResultSet rs = conn.createStatement().executeQuery(
+        "SELECT ROUND(undoub), ROUND(undoub, 1), ROUND(undoub, 2), ROUND(undoub, 3) FROM "
+            + TABLE_NAME);
 		assertTrue(rs.next());
 		assertEquals(0, Floats.compare(1, rs.getFloat(1)));
 		assertEquals(0, Floats.compare(1.3f, rs.getFloat(2)));

http://git-wip-us.apache.org/repos/asf/phoenix/blob/6d147896/phoenix-core/src/it/java/org/apache/phoenix/end2end/ServerExceptionIT.java
----------------------------------------------------------------------
diff --git a/phoenix-core/src/it/java/org/apache/phoenix/end2end/ServerExceptionIT.java b/phoenix-core/src/it/java/org/apache/phoenix/end2end/ServerExceptionIT.java
index 5c8679d..e4f3c1d 100644
--- a/phoenix-core/src/it/java/org/apache/phoenix/end2end/ServerExceptionIT.java
+++ b/phoenix-core/src/it/java/org/apache/phoenix/end2end/ServerExceptionIT.java
@@ -32,7 +32,7 @@ import org.apache.phoenix.util.PropertiesUtil;
 import org.junit.Test;
 
 
-public class ServerExceptionIT extends BaseHBaseManagedTimeIT {
+public class ServerExceptionIT extends BaseHBaseManagedTimeTableReuseIT {
 
     @Test
     public void testServerExceptionBackToClient() throws Exception {
@@ -40,11 +40,12 @@ public class ServerExceptionIT extends BaseHBaseManagedTimeIT {
         Connection conn = DriverManager.getConnection(getUrl(), props);
         conn.setAutoCommit(false);
         try {
-            String ddl = "CREATE TABLE IF NOT EXISTS t1(pk VARCHAR NOT NULL PRIMARY KEY, " +
+            String t1 = generateRandomString();
+            String ddl = "CREATE TABLE IF NOT EXISTS " + t1 + "(pk VARCHAR NOT NULL PRIMARY KEY, " +
                     "col1 INTEGER, col2 INTEGER)";
             createTestTable(getUrl(), ddl);
             
-            String query = "UPSERT INTO t1 VALUES(?,?,?)";
+            String query = "UPSERT INTO " + t1 + " VALUES(?,?,?)";
             PreparedStatement stmt = conn.prepareStatement(query);
             stmt.setString(1, "1");
             stmt.setInt(2, 1);
@@ -52,7 +53,7 @@ public class ServerExceptionIT extends BaseHBaseManagedTimeIT {
             stmt.execute();
             conn.commit();
             
-            query = "SELECT * FROM t1 where col1/col2 > 0";
+            query = "SELECT * FROM " + t1 + " where col1/col2 > 0";
             stmt = conn.prepareStatement(query);
             ResultSet rs = stmt.executeQuery();
             rs.next();

http://git-wip-us.apache.org/repos/asf/phoenix/blob/6d147896/phoenix-core/src/it/java/org/apache/phoenix/end2end/SignFunctionEnd2EndIT.java
----------------------------------------------------------------------
diff --git a/phoenix-core/src/it/java/org/apache/phoenix/end2end/SignFunctionEnd2EndIT.java b/phoenix-core/src/it/java/org/apache/phoenix/end2end/SignFunctionEnd2EndIT.java
index 6634d23..5c86955 100644
--- a/phoenix-core/src/it/java/org/apache/phoenix/end2end/SignFunctionEnd2EndIT.java
+++ b/phoenix-core/src/it/java/org/apache/phoenix/end2end/SignFunctionEnd2EndIT.java
@@ -29,26 +29,31 @@ import java.sql.ResultSet;
 
 import org.apache.phoenix.expression.function.SignFunction;
 import org.junit.Before;
+import org.junit.BeforeClass;
 import org.junit.Test;
 
 /**
  * End to end tests for {@link SignFunction}
  * @since 4.0.0
  */
-public class SignFunctionEnd2EndIT extends BaseHBaseManagedTimeIT {
+public class SignFunctionEnd2EndIT extends BaseHBaseManagedTimeTableReuseIT {
 
     private static final String KEY = "key";
+    private static final String TEST_SIGNED = generateRandomString();
+    private static final String TEST_UNSIGNED = generateRandomString();
 
-    @Before
-    public void initTable() throws Exception {
+    @BeforeClass
+    public static void initTable() throws Exception {
         Connection conn = null;
         PreparedStatement stmt = null;
         try {
             conn = DriverManager.getConnection(getUrl());
             String ddl;
-            ddl = "CREATE TABLE testSigned (k VARCHAR NOT NULL PRIMARY KEY, dec DECIMAL, doub DOUBLE, fl FLOAT, inte INTEGER, lon BIGINT, smalli SMALLINT, tinyi TINYINT)";
+            ddl = "CREATE TABLE " + TEST_SIGNED
+                + " (k VARCHAR NOT NULL PRIMARY KEY, dec DECIMAL, doub DOUBLE, fl FLOAT, inte INTEGER, lon BIGINT, smalli SMALLINT, tinyi TINYINT)";
             conn.createStatement().execute(ddl);
-            ddl = "CREATE TABLE testUnsigned (k VARCHAR NOT NULL PRIMARY KEY, doub UNSIGNED_DOUBLE, fl UNSIGNED_FLOAT, inte UNSIGNED_INT, lon UNSIGNED_LONG, smalli UNSIGNED_SMALLINT, tinyi UNSIGNED_TINYINT)";
+            ddl = "CREATE TABLE " + TEST_UNSIGNED
+                + " (k VARCHAR NOT NULL PRIMARY KEY, doub UNSIGNED_DOUBLE, fl UNSIGNED_FLOAT, inte UNSIGNED_INT, lon UNSIGNED_LONG, smalli UNSIGNED_SMALLINT, tinyi UNSIGNED_TINYINT)";
             conn.createStatement().execute(ddl);
             conn.commit();
         } finally {
@@ -57,7 +62,8 @@ public class SignFunctionEnd2EndIT extends BaseHBaseManagedTimeIT {
     }
 
     private void updateSignedTable(Connection conn, double data) throws Exception {
-        PreparedStatement stmt = conn.prepareStatement("UPSERT INTO testSigned VALUES (?, ?, ?, ?, ?, ?, ?, ?)");
+        PreparedStatement stmt = conn.prepareStatement(
+            "UPSERT INTO " + TEST_SIGNED + " VALUES (?, ?, ?, ?, ?, ?, ?, ?)");
         stmt.setString(1, KEY);
         Double d = Double.valueOf(data);
         stmt.setBigDecimal(2, BigDecimal.valueOf(data));
@@ -72,7 +78,8 @@ public class SignFunctionEnd2EndIT extends BaseHBaseManagedTimeIT {
     }
 
     private void updateUnsignedTable(Connection conn, double data) throws Exception {
-        PreparedStatement stmt = conn.prepareStatement("UPSERT INTO testUnsigned VALUES (?, ?, ?, ?, ?, ?, ?)");
+        PreparedStatement stmt = conn.prepareStatement(
+            "UPSERT INTO " + TEST_UNSIGNED + " VALUES (?, ?, ?, ?, ?, ?, ?)");
         stmt.setString(1, KEY);
         Double d = Double.valueOf(data);
         stmt.setDouble(2, d.doubleValue());
@@ -87,14 +94,17 @@ public class SignFunctionEnd2EndIT extends BaseHBaseManagedTimeIT {
 
     private void testSignedNumberSpec(Connection conn, double data, int expected) throws Exception {
         updateSignedTable(conn, data);
-        ResultSet rs = conn.createStatement().executeQuery("SELECT SIGN(dec),SIGN(doub),SIGN(fl),SIGN(inte),SIGN(lon),SIGN(smalli),SIGN(tinyi) FROM testSigned");
+        ResultSet rs = conn.createStatement().executeQuery(
+            "SELECT SIGN(dec),SIGN(doub),SIGN(fl),SIGN(inte),SIGN(lon),SIGN(smalli),SIGN(tinyi) FROM "
+                + TEST_SIGNED);
         assertTrue(rs.next());
         for (int i = 1; i <= 7; ++i) {
             assertEquals(rs.getInt(i), expected);
         }
         assertTrue(!rs.next());
 
-        PreparedStatement stmt = conn.prepareStatement("SELECT k FROM testSigned WHERE SIGN(dec)=? AND SIGN(doub)=? AND SIGN(fl)=? AND SIGN(inte)=? AND SIGN(lon)=? AND SIGN(smalli)=? AND SIGN(tinyi)=?");
+        PreparedStatement stmt = conn.prepareStatement("SELECT k FROM " + TEST_SIGNED
+            + " WHERE SIGN(dec)=? AND SIGN(doub)=? AND SIGN(fl)=? AND SIGN(inte)=? AND SIGN(lon)=? AND SIGN(smalli)=? AND SIGN(tinyi)=?");
         for (int i = 1; i <= 7; ++i)
             stmt.setInt(i, expected);
         rs = stmt.executeQuery();
@@ -105,14 +115,17 @@ public class SignFunctionEnd2EndIT extends BaseHBaseManagedTimeIT {
 
     private void testUnsignedNumberSpec(Connection conn, double data, int expected) throws Exception {
         updateUnsignedTable(conn, data);
-        ResultSet rs = conn.createStatement().executeQuery("SELECT SIGN(doub),SIGN(fl),SIGN(inte),SIGN(lon),SIGN(smalli),SIGN(tinyi) FROM testUnsigned");
+        ResultSet rs = conn.createStatement().executeQuery(
+            "SELECT SIGN(doub),SIGN(fl),SIGN(inte),SIGN(lon),SIGN(smalli),SIGN(tinyi) FROM "
+                + TEST_UNSIGNED);
         assertTrue(rs.next());
         for (int i = 1; i <= 6; ++i) {
             assertEquals(rs.getInt(i), expected);
         }
         assertTrue(!rs.next());
 
-        PreparedStatement stmt = conn.prepareStatement("SELECT k FROM testUnsigned WHERE SIGN(doub)=? AND SIGN(fl)=? AND SIGN(inte)=? AND SIGN(lon)=? AND SIGN(smalli)=? AND SIGN(tinyi)=?");
+        PreparedStatement stmt = conn.prepareStatement("SELECT k FROM " + TEST_UNSIGNED
+            + " WHERE SIGN(doub)=? AND SIGN(fl)=? AND SIGN(inte)=? AND SIGN(lon)=? AND SIGN(smalli)=? AND SIGN(tinyi)=?");
         for (int i = 1; i <= 6; ++i)
             stmt.setInt(i, expected);
         rs = stmt.executeQuery();


[5/6] phoenix git commit: PHOENIX-2822 Tests that extend BaseHBaseManagedTimeIT are very slow(Rahul Gidwani)

Posted by sa...@apache.org.
http://git-wip-us.apache.org/repos/asf/phoenix/blob/6d147896/phoenix-core/src/it/java/org/apache/phoenix/end2end/ArrayToStringFunctionIT.java
----------------------------------------------------------------------
diff --git a/phoenix-core/src/it/java/org/apache/phoenix/end2end/ArrayToStringFunctionIT.java b/phoenix-core/src/it/java/org/apache/phoenix/end2end/ArrayToStringFunctionIT.java
index 3b3f1d5..0439033 100644
--- a/phoenix-core/src/it/java/org/apache/phoenix/end2end/ArrayToStringFunctionIT.java
+++ b/phoenix-core/src/it/java/org/apache/phoenix/end2end/ArrayToStringFunctionIT.java
@@ -23,13 +23,22 @@ import static org.junit.Assert.assertTrue;
 
 import java.sql.*;
 
+import org.junit.BeforeClass;
 import org.junit.Test;
 
-public class ArrayToStringFunctionIT extends BaseHBaseManagedTimeIT {
-    private void initTables(Connection conn) throws Exception {
-        String ddl = "CREATE TABLE regions (region_name VARCHAR PRIMARY KEY,varchars VARCHAR[],integers INTEGER[],doubles DOUBLE[],bigints BIGINT[],chars CHAR(15)[],double1 DOUBLE,varchar1 VARCHAR,nullcheck INTEGER,chars2 CHAR(15)[])";
+public class ArrayToStringFunctionIT extends BaseHBaseManagedTimeTableReuseIT {
+    private static final String REGIONS = generateRandomString();
+    private static Connection conn = null;
+
+    @BeforeClass
+    public static void initTables() throws Exception {
+        conn = DriverManager.getConnection(getUrl());
+        String ddl = "CREATE TABLE " + REGIONS
+            + " (region_name VARCHAR PRIMARY KEY,varchars VARCHAR[],integers INTEGER[],doubles DOUBLE[],bigints BIGINT[],chars CHAR(15)[],double1 DOUBLE,varchar1 VARCHAR,nullcheck INTEGER,chars2 CHAR(15)[])";
         conn.createStatement().execute(ddl);
-        String dml = "UPSERT INTO regions(region_name,varchars,integers,doubles,bigints,chars,double1,varchar1,nullcheck,chars2) VALUES('SF Bay Area'," +
+        String dml = "UPSERT INTO " + REGIONS
+            + "(region_name,varchars,integers,doubles,bigints,chars,double1,varchar1,nullcheck,chars2) VALUES('SF Bay Area',"
+            +
                 "ARRAY['2345','46345','23234']," +
                 "ARRAY[2345,46345,23234,456]," +
                 "ARRAY[23.45,46.345,23.234,45.6,5.78]," +
@@ -47,11 +56,10 @@ public class ArrayToStringFunctionIT extends BaseHBaseManagedTimeIT {
 
     @Test
     public void testArrayToStringFunctionVarchar1() throws Exception {
-        Connection conn = DriverManager.getConnection(getUrl());
-        initTables(conn);
-
         ResultSet rs;
-        rs = conn.createStatement().executeQuery("SELECT ARRAY_TO_STRING(varchars, ',','*') FROM regions WHERE region_name = 'SF Bay Area'");
+        rs = conn.createStatement().executeQuery(
+            "SELECT ARRAY_TO_STRING(varchars, ',','*') FROM " + REGIONS
+                + " WHERE region_name = 'SF Bay Area'");
         assertTrue(rs.next());
 
         String expected = "2345,46345,23234";
@@ -62,11 +70,10 @@ public class ArrayToStringFunctionIT extends BaseHBaseManagedTimeIT {
 
     @Test
     public void testArrayToStringFunctionVarchar2() throws Exception {
-        Connection conn = DriverManager.getConnection(getUrl());
-        initTables(conn);
-
         ResultSet rs;
-        rs = conn.createStatement().executeQuery("SELECT ARRAY_TO_STRING(varchars, ',') FROM regions WHERE region_name = 'SF Bay Area'");
+        rs = conn.createStatement().executeQuery(
+            "SELECT ARRAY_TO_STRING(varchars, ',') FROM " + REGIONS
+                + " WHERE region_name = 'SF Bay Area'");
         assertTrue(rs.next());
 
         String expected = "2345,46345,23234";
@@ -77,11 +84,10 @@ public class ArrayToStringFunctionIT extends BaseHBaseManagedTimeIT {
 
     @Test
     public void testArrayToStringFunctionVarchar3() throws Exception {
-        Connection conn = DriverManager.getConnection(getUrl());
-        initTables(conn);
-
         ResultSet rs;
-        rs = conn.createStatement().executeQuery("SELECT ARRAY_TO_STRING(ARRAY['hello', 'hello'], ',') FROM regions WHERE region_name = 'SF Bay Area'");
+        rs = conn.createStatement().executeQuery(
+            "SELECT ARRAY_TO_STRING(ARRAY['hello', 'hello'], ',') FROM " + REGIONS
+                + " WHERE region_name = 'SF Bay Area'");
         assertTrue(rs.next());
 
         String expected = "hello,hello";
@@ -92,11 +98,10 @@ public class ArrayToStringFunctionIT extends BaseHBaseManagedTimeIT {
 
     @Test
     public void testArrayToStringFunctionInt() throws Exception {
-        Connection conn = DriverManager.getConnection(getUrl());
-        initTables(conn);
-
         ResultSet rs;
-        rs = conn.createStatement().executeQuery("SELECT ARRAY_TO_STRING(integers, ',') FROM regions WHERE region_name = 'SF Bay Area'");
+        rs = conn.createStatement().executeQuery(
+            "SELECT ARRAY_TO_STRING(integers, ',') FROM " + REGIONS
+                + " WHERE region_name = 'SF Bay Area'");
         assertTrue(rs.next());
 
         String expected = "2345,46345,23234,456";
@@ -107,11 +112,10 @@ public class ArrayToStringFunctionIT extends BaseHBaseManagedTimeIT {
 
     @Test
     public void testArrayToStringFunctionDouble1() throws Exception {
-        Connection conn = DriverManager.getConnection(getUrl());
-        initTables(conn);
-
         ResultSet rs;
-        rs = conn.createStatement().executeQuery("SELECT ARRAY_TO_STRING(doubles, ', ') FROM regions WHERE region_name = 'SF Bay Area'");
+        rs = conn.createStatement().executeQuery(
+            "SELECT ARRAY_TO_STRING(doubles, ', ') FROM " + REGIONS
+                + " WHERE region_name = 'SF Bay Area'");
         assertTrue(rs.next());
 
         String expected = "23.45, 46.345, 23.234, 45.6, 5.78";
@@ -122,11 +126,10 @@ public class ArrayToStringFunctionIT extends BaseHBaseManagedTimeIT {
 
     @Test
     public void testArrayToStringFunctionDouble2() throws Exception {
-        Connection conn = DriverManager.getConnection(getUrl());
-        initTables(conn);
-
         ResultSet rs;
-        rs = conn.createStatement().executeQuery("SELECT ARRAY_TO_STRING(ARRAY[2.3, 4.5], ', ') FROM regions WHERE region_name = 'SF Bay Area'");
+        rs = conn.createStatement().executeQuery(
+            "SELECT ARRAY_TO_STRING(ARRAY[2.3, 4.5], ', ') FROM " + REGIONS
+                + " WHERE region_name = 'SF Bay Area'");
         assertTrue(rs.next());
 
         String expected = "2.3, 4.5";
@@ -137,11 +140,10 @@ public class ArrayToStringFunctionIT extends BaseHBaseManagedTimeIT {
 
     @Test
     public void testArrayToStringFunctionBigint() throws Exception {
-        Connection conn = DriverManager.getConnection(getUrl());
-        initTables(conn);
-
         ResultSet rs;
-        rs = conn.createStatement().executeQuery("SELECT ARRAY_TO_STRING(bigints, ', ') FROM regions WHERE region_name = 'SF Bay Area'");
+        rs = conn.createStatement().executeQuery(
+            "SELECT ARRAY_TO_STRING(bigints, ', ') FROM " + REGIONS
+                + " WHERE region_name = 'SF Bay Area'");
         assertTrue(rs.next());
 
         String expected = "12, 34, 56, 78, 910";
@@ -152,11 +154,10 @@ public class ArrayToStringFunctionIT extends BaseHBaseManagedTimeIT {
 
     @Test
     public void testArrayToStringFunctionChar1() throws Exception {
-        Connection conn = DriverManager.getConnection(getUrl());
-        initTables(conn);
-
         ResultSet rs;
-        rs = conn.createStatement().executeQuery("SELECT ARRAY_TO_STRING(chars, ', ') FROM regions WHERE region_name = 'SF Bay Area'");
+        rs = conn.createStatement().executeQuery(
+            "SELECT ARRAY_TO_STRING(chars, ', ') FROM " + REGIONS
+                + " WHERE region_name = 'SF Bay Area'");
         assertTrue(rs.next());
 
         String expected = "a   , bbbb, c   , ddd , e   ";
@@ -167,11 +168,10 @@ public class ArrayToStringFunctionIT extends BaseHBaseManagedTimeIT {
 
     @Test
     public void testArrayToStringFunctionChar2() throws Exception {
-        Connection conn = DriverManager.getConnection(getUrl());
-        initTables(conn);
-
         ResultSet rs;
-        rs = conn.createStatement().executeQuery("SELECT ARRAY_TO_STRING(chars2, ', ') FROM regions WHERE region_name = 'SF Bay Area'");
+        rs = conn.createStatement().executeQuery(
+            "SELECT ARRAY_TO_STRING(chars2, ', ') FROM " + REGIONS
+                + " WHERE region_name = 'SF Bay Area'");
         assertTrue(rs.next());
 
         String expected = "a   , bbbb, c   , ddd , e   , foo ";
@@ -182,11 +182,10 @@ public class ArrayToStringFunctionIT extends BaseHBaseManagedTimeIT {
 
     @Test
     public void testArrayToStringFunctionChar3() throws Exception {
-        Connection conn = DriverManager.getConnection(getUrl());
-        initTables(conn);
-
         ResultSet rs;
-        rs = conn.createStatement().executeQuery("SELECT ARRAY_TO_STRING(chars2, varchar1) FROM regions WHERE region_name = 'SF Bay Area'");
+        rs = conn.createStatement().executeQuery(
+            "SELECT ARRAY_TO_STRING(chars2, varchar1) FROM " + REGIONS
+                + " WHERE region_name = 'SF Bay Area'");
         assertTrue(rs.next());
 
         String expected = "a   , bbbb, c   , ddd , e   , foo ";
@@ -197,11 +196,10 @@ public class ArrayToStringFunctionIT extends BaseHBaseManagedTimeIT {
 
     @Test
     public void testArrayToStringFunctionWithNestedFunctions1() throws Exception {
-        Connection conn = DriverManager.getConnection(getUrl());
-        initTables(conn);
-
         ResultSet rs;
-        rs = conn.createStatement().executeQuery("SELECT ARRAY_TO_STRING(ARRAY[integers[1],integers[1]], ', ') FROM regions WHERE region_name = 'SF Bay Area'");
+        rs = conn.createStatement().executeQuery(
+            "SELECT ARRAY_TO_STRING(ARRAY[integers[1],integers[1]], ', ') FROM " + REGIONS
+                + " WHERE region_name = 'SF Bay Area'");
         assertTrue(rs.next());
 
         String expected = "2345, 2345";
@@ -212,11 +210,10 @@ public class ArrayToStringFunctionIT extends BaseHBaseManagedTimeIT {
 
     @Test
     public void testArrayToStringFunctionWithNestedFunctions2() throws Exception {
-        Connection conn = DriverManager.getConnection(getUrl());
-        initTables(conn);
-
         ResultSet rs;
-        rs = conn.createStatement().executeQuery("SELECT ARRAY_TO_STRING(ARRAY[ARRAY_ELEM(ARRAY[2,4],1),ARRAY_ELEM(ARRAY[2,4],2)], ', ') FROM regions WHERE region_name = 'SF Bay Area'");
+        rs = conn.createStatement().executeQuery(
+            "SELECT ARRAY_TO_STRING(ARRAY[ARRAY_ELEM(ARRAY[2,4],1),ARRAY_ELEM(ARRAY[2,4],2)], ', ') FROM "
+                + REGIONS + " WHERE region_name = 'SF Bay Area'");
         assertTrue(rs.next());
 
         String expected = "2, 4";
@@ -227,11 +224,10 @@ public class ArrayToStringFunctionIT extends BaseHBaseManagedTimeIT {
 
     @Test
     public void testArrayToStringFunctionWithNestedFunctions3() throws Exception {
-        Connection conn = DriverManager.getConnection(getUrl());
-        initTables(conn);
-
         ResultSet rs;
-        rs = conn.createStatement().executeQuery("SELECT ARRAY_TO_STRING(ARRAY[ARRAY_ELEM(doubles, 1), ARRAY_ELEM(doubles, 1)], ', ') FROM regions WHERE region_name = 'SF Bay Area'");
+        rs = conn.createStatement().executeQuery(
+            "SELECT ARRAY_TO_STRING(ARRAY[ARRAY_ELEM(doubles, 1), ARRAY_ELEM(doubles, 1)], ', ') FROM "
+                + REGIONS + " WHERE region_name = 'SF Bay Area'");
         assertTrue(rs.next());
 
         String expected = "23.45, 23.45";
@@ -242,11 +238,10 @@ public class ArrayToStringFunctionIT extends BaseHBaseManagedTimeIT {
 
     @Test
     public void testArrayToStringFunctionWithNestedFunctions4() throws Exception {
-        Connection conn = DriverManager.getConnection(getUrl());
-        initTables(conn);
-
         ResultSet rs;
-        rs = conn.createStatement().executeQuery("SELECT ARRAY_ELEM(ARRAY_APPEND(ARRAY['abc','bcd'], ARRAY_TO_STRING(ARRAY['a','b'], 'c')), 3) FROM regions WHERE region_name = 'SF Bay Area'");
+        rs = conn.createStatement().executeQuery(
+            "SELECT ARRAY_ELEM(ARRAY_APPEND(ARRAY['abc','bcd'], ARRAY_TO_STRING(ARRAY['a','b'], 'c')), 3) FROM "
+                + REGIONS + " WHERE region_name = 'SF Bay Area'");
         assertTrue(rs.next());
 
         String expected = "acb";
@@ -257,17 +252,19 @@ public class ArrayToStringFunctionIT extends BaseHBaseManagedTimeIT {
 
     @Test
     public void testArrayToStringFunctionWithUpsert1() throws Exception {
-        Connection conn = DriverManager.getConnection(getUrl());
-
-        String ddl = "CREATE TABLE regions (region_name VARCHAR PRIMARY KEY,varchar VARCHAR)";
+        String table = generateRandomString();
+        String ddl =
+            "CREATE TABLE " + table + " (region_name VARCHAR PRIMARY KEY,varchar VARCHAR)";
         conn.createStatement().execute(ddl);
 
-        String dml = "UPSERT INTO regions(region_name,varchar) VALUES('SF Bay Area',ARRAY_TO_STRING(ARRAY['hello','world'],','))";
+        String dml = "UPSERT INTO " + table
+            + "(region_name,varchar) VALUES('SF Bay Area',ARRAY_TO_STRING(ARRAY['hello','world'],','))";
         conn.createStatement().execute(dml);
         conn.commit();
 
         ResultSet rs;
-        rs = conn.createStatement().executeQuery("SELECT varchar FROM regions WHERE region_name = 'SF Bay Area'");
+        rs = conn.createStatement().executeQuery(
+            "SELECT varchar FROM " + table + " WHERE region_name = 'SF Bay Area'");
         assertTrue(rs.next());
 
         String expected = "hello,world";
@@ -278,17 +275,19 @@ public class ArrayToStringFunctionIT extends BaseHBaseManagedTimeIT {
 
     @Test
     public void testArrayToStringFunctionWithUpsert2() throws Exception {
-        Connection conn = DriverManager.getConnection(getUrl());
-
-        String ddl = "CREATE TABLE regions (region_name VARCHAR PRIMARY KEY,varchar VARCHAR)";
+        String tableName = generateRandomString();
+        String ddl =
+            "CREATE TABLE " + tableName + " (region_name VARCHAR PRIMARY KEY,varchar VARCHAR)";
         conn.createStatement().execute(ddl);
 
-        String dml = "UPSERT INTO regions(region_name,varchar) VALUES('SF Bay Area',ARRAY_TO_STRING(ARRAY[3, 4, 5],', '))";
+        String dml = "UPSERT INTO " + tableName
+            + "(region_name,varchar) VALUES('SF Bay Area',ARRAY_TO_STRING(ARRAY[3, 4, 5],', '))";
         conn.createStatement().execute(dml);
         conn.commit();
 
         ResultSet rs;
-        rs = conn.createStatement().executeQuery("SELECT varchar FROM regions WHERE region_name = 'SF Bay Area'");
+        rs = conn.createStatement().executeQuery(
+            "SELECT varchar FROM " + tableName + " WHERE region_name = 'SF Bay Area'");
         assertTrue(rs.next());
 
         String expected = "3, 4, 5";
@@ -299,17 +298,19 @@ public class ArrayToStringFunctionIT extends BaseHBaseManagedTimeIT {
 
     @Test
     public void testArrayToStringFunctionWithUpsert3() throws Exception {
-        Connection conn = DriverManager.getConnection(getUrl());
-
-        String ddl = "CREATE TABLE regions (region_name VARCHAR PRIMARY KEY,varchar VARCHAR)";
+        String tableName = generateRandomString();
+        String ddl =
+            "CREATE TABLE " + tableName + " (region_name VARCHAR PRIMARY KEY,varchar VARCHAR)";
         conn.createStatement().execute(ddl);
 
-        String dml = "UPSERT INTO regions(region_name,varchar) VALUES('SF Bay Area',ARRAY_TO_STRING(ARRAY[3.1, 4.2, 5.5],', '))";
+        String dml = "UPSERT INTO " + tableName
+            + "(region_name,varchar) VALUES('SF Bay Area',ARRAY_TO_STRING(ARRAY[3.1, 4.2, 5.5],', '))";
         conn.createStatement().execute(dml);
         conn.commit();
 
         ResultSet rs;
-        rs = conn.createStatement().executeQuery("SELECT varchar FROM regions WHERE region_name = 'SF Bay Area'");
+        rs = conn.createStatement().executeQuery(
+            "SELECT varchar FROM " + tableName + " WHERE region_name = 'SF Bay Area'");
         assertTrue(rs.next());
 
         String expected = "3.1, 4.2, 5.5";
@@ -320,17 +321,19 @@ public class ArrayToStringFunctionIT extends BaseHBaseManagedTimeIT {
 
     @Test
     public void testArrayToStringFunctionWithUpsert4() throws Exception {
-        Connection conn = DriverManager.getConnection(getUrl());
-
-        String ddl = "CREATE TABLE regions (region_name VARCHAR PRIMARY KEY,varchar VARCHAR)";
+        String tableName = generateRandomString();
+        String ddl =
+            "CREATE TABLE " + tableName + " (region_name VARCHAR PRIMARY KEY,varchar VARCHAR)";
         conn.createStatement().execute(ddl);
 
-        String dml = "UPSERT INTO regions(region_name,varchar) VALUES('SF Bay Area',ARRAY_TO_STRING(ARRAY[true, false, true],', '))";
+        String dml = "UPSERT INTO " + tableName
+            + "(region_name,varchar) VALUES('SF Bay Area',ARRAY_TO_STRING(ARRAY[true, false, true],', '))";
         conn.createStatement().execute(dml);
         conn.commit();
 
         ResultSet rs;
-        rs = conn.createStatement().executeQuery("SELECT varchar FROM regions WHERE region_name = 'SF Bay Area'");
+        rs = conn.createStatement().executeQuery(
+            "SELECT varchar FROM " + tableName + " WHERE region_name = 'SF Bay Area'");
         assertTrue(rs.next());
 
         String expected = "true, false, true";
@@ -341,27 +344,33 @@ public class ArrayToStringFunctionIT extends BaseHBaseManagedTimeIT {
 
     @Test
     public void testArrayToStringFunctionWithUpsertSelect1() throws Exception {
-        Connection conn = DriverManager.getConnection(getUrl());
-
-        String ddl = "CREATE TABLE source (region_name VARCHAR PRIMARY KEY,doubles DOUBLE[])";
+        String source = generateRandomString();
+        String ddl =
+            "CREATE TABLE " + source + " (region_name VARCHAR PRIMARY KEY,doubles DOUBLE[])";
         conn.createStatement().execute(ddl);
 
-        ddl = "CREATE TABLE target (region_name VARCHAR PRIMARY KEY,varchar VARCHAR)";
+        String target = generateRandomString();
+        ddl = "CREATE TABLE " + target + " (region_name VARCHAR PRIMARY KEY,varchar VARCHAR)";
         conn.createStatement().execute(ddl);
 
-        String dml = "UPSERT INTO source(region_name,doubles) VALUES('SF Bay Area', ARRAY[5.67, 7.87])";
+        String dml = "UPSERT INTO " + source
+            + "(region_name,doubles) VALUES('SF Bay Area', ARRAY[5.67, 7.87])";
         conn.createStatement().execute(dml);
 
-        dml = "UPSERT INTO source(region_name,doubles) VALUES('SF Bay Area2', ARRAY[9.2, 3.4])";
+        dml = "UPSERT INTO " + source
+            + "(region_name,doubles) VALUES('SF Bay Area2', ARRAY[9.2, 3.4])";
         conn.createStatement().execute(dml);
         conn.commit();
 
-        dml = "UPSERT INTO target(region_name, varchar) SELECT region_name, ARRAY_TO_STRING(doubles, ', ') FROM source";
+        dml =
+            "UPSERT INTO " + target
+                + "(region_name, varchar) SELECT region_name, ARRAY_TO_STRING(doubles, ', ') FROM "
+                + source;
         conn.createStatement().execute(dml);
         conn.commit();
 
         ResultSet rs;
-        rs = conn.createStatement().executeQuery("SELECT varchar FROM target");
+        rs = conn.createStatement().executeQuery("SELECT varchar FROM " + target);
         assertTrue(rs.next());
 
         String expected = "5.67, 7.87";
@@ -375,27 +384,33 @@ public class ArrayToStringFunctionIT extends BaseHBaseManagedTimeIT {
 
     @Test
     public void testArrayToStringFunctionWithUpsertSelect2() throws Exception {
-        Connection conn = DriverManager.getConnection(getUrl());
-
-        String ddl = "CREATE TABLE source (region_name VARCHAR PRIMARY KEY,varchars VARCHAR[])";
+        String source = generateRandomString();
+        String ddl =
+            "CREATE TABLE " + source + " (region_name VARCHAR PRIMARY KEY,varchars VARCHAR[])";
         conn.createStatement().execute(ddl);
 
-        ddl = "CREATE TABLE target (region_name VARCHAR PRIMARY KEY,varchar VARCHAR)";
+        String target = generateRandomString();
+        ddl = "CREATE TABLE " + target + " (region_name VARCHAR PRIMARY KEY,varchar VARCHAR)";
         conn.createStatement().execute(ddl);
 
-        String dml = "UPSERT INTO source(region_name,varchars) VALUES('SF Bay Area', ARRAY['hello', '-)'])";
+        String dml = "UPSERT INTO " + source
+            + "(region_name,varchars) VALUES('SF Bay Area', ARRAY['hello', '-)'])";
         conn.createStatement().execute(dml);
 
-        dml = "UPSERT INTO source(region_name,varchars) VALUES('SF Bay Area2', ARRAY['hello', '-('])";
+        dml = "UPSERT INTO " + source
+            + "(region_name,varchars) VALUES('SF Bay Area2', ARRAY['hello', '-('])";
         conn.createStatement().execute(dml);
         conn.commit();
 
-        dml = "UPSERT INTO target(region_name, varchar) SELECT region_name, ARRAY_TO_STRING(varchars, ':') FROM source";
+        dml =
+            "UPSERT INTO " + target
+                + "(region_name, varchar) SELECT region_name, ARRAY_TO_STRING(varchars, ':') FROM "
+                + source;
         conn.createStatement().execute(dml);
         conn.commit();
 
         ResultSet rs;
-        rs = conn.createStatement().executeQuery("SELECT varchar FROM target");
+        rs = conn.createStatement().executeQuery("SELECT varchar FROM " + target);
         assertTrue(rs.next());
 
         String expected = "hello:-)";
@@ -409,27 +424,33 @@ public class ArrayToStringFunctionIT extends BaseHBaseManagedTimeIT {
 
     @Test
     public void testArrayToStringFunctionWithUpsertSelect3() throws Exception {
-        Connection conn = DriverManager.getConnection(getUrl());
-
-        String ddl = "CREATE TABLE source (region_name VARCHAR PRIMARY KEY,booleans BOOLEAN[])";
+        String source = generateRandomString();
+        String ddl =
+            "CREATE TABLE " + source + " (region_name VARCHAR PRIMARY KEY,booleans BOOLEAN[])";
         conn.createStatement().execute(ddl);
 
-        ddl = "CREATE TABLE target (region_name VARCHAR PRIMARY KEY,varchar VARCHAR)";
+        String target = generateRandomString();
+        ddl = "CREATE TABLE " + target + " (region_name VARCHAR PRIMARY KEY,varchar VARCHAR)";
         conn.createStatement().execute(ddl);
 
-        String dml = "UPSERT INTO source(region_name, booleans) VALUES('SF Bay Area', ARRAY[true, true])";
+        String dml = "UPSERT INTO " + source
+            + "(region_name, booleans) VALUES('SF Bay Area', ARRAY[true, true])";
         conn.createStatement().execute(dml);
 
-        dml = "UPSERT INTO source(region_name, booleans) VALUES('SF Bay Area2', ARRAY[false, false])";
+        dml = "UPSERT INTO " + source
+            + "(region_name, booleans) VALUES('SF Bay Area2', ARRAY[false, false])";
         conn.createStatement().execute(dml);
         conn.commit();
 
-        dml = "UPSERT INTO target(region_name, varchar) SELECT region_name, ARRAY_TO_STRING(booleans, ', ') FROM source";
+        dml =
+            "UPSERT INTO " + target
+                + "(region_name, varchar) SELECT region_name, ARRAY_TO_STRING(booleans, ', ') FROM "
+                + source;
         conn.createStatement().execute(dml);
         conn.commit();
 
         ResultSet rs;
-        rs = conn.createStatement().executeQuery("SELECT varchar FROM target");
+        rs = conn.createStatement().executeQuery("SELECT varchar FROM " + target);
         assertTrue(rs.next());
 
         String expected = "true, true";
@@ -443,11 +464,9 @@ public class ArrayToStringFunctionIT extends BaseHBaseManagedTimeIT {
 
     @Test
     public void testArrayToStringFunctionInWhere1() throws Exception {
-        Connection conn = DriverManager.getConnection(getUrl());
-        initTables(conn);
-
         ResultSet rs;
-        rs = conn.createStatement().executeQuery("SELECT region_name FROM regions WHERE '2345,46345,23234,456' = ARRAY_TO_STRING(integers,',')");
+        rs = conn.createStatement().executeQuery("SELECT region_name FROM " + REGIONS
+            + " WHERE '2345,46345,23234,456' = ARRAY_TO_STRING(integers,',')");
         assertTrue(rs.next());
 
         assertEquals("SF Bay Area", rs.getString(1));
@@ -456,11 +475,9 @@ public class ArrayToStringFunctionIT extends BaseHBaseManagedTimeIT {
 
     @Test
     public void testArrayToStringFunctionInWhere2() throws Exception {
-        Connection conn = DriverManager.getConnection(getUrl());
-        initTables(conn);
-
         ResultSet rs;
-        rs = conn.createStatement().executeQuery("SELECT region_name FROM regions WHERE 'a,b,c' = ARRAY_TO_STRING(ARRAY['a', 'b', 'c'], ',')");
+        rs = conn.createStatement().executeQuery("SELECT region_name FROM " + REGIONS
+            + " WHERE 'a,b,c' = ARRAY_TO_STRING(ARRAY['a', 'b', 'c'], ',')");
         assertTrue(rs.next());
 
         assertEquals("SF Bay Area", rs.getString(1));
@@ -469,11 +486,9 @@ public class ArrayToStringFunctionIT extends BaseHBaseManagedTimeIT {
 
     @Test
     public void testArrayToStringFunctionInWhere3() throws Exception {
-        Connection conn = DriverManager.getConnection(getUrl());
-        initTables(conn);
-
         ResultSet rs;
-        rs = conn.createStatement().executeQuery("SELECT region_name FROM regions WHERE '1.1,2.2,3.3' = ARRAY_TO_STRING(ARRAY[1.1, 2.2, 3.3], ',')");
+        rs = conn.createStatement().executeQuery("SELECT region_name FROM " + REGIONS
+            + " WHERE '1.1,2.2,3.3' = ARRAY_TO_STRING(ARRAY[1.1, 2.2, 3.3], ',')");
         assertTrue(rs.next());
 
         assertEquals("SF Bay Area", rs.getString(1));
@@ -482,11 +497,9 @@ public class ArrayToStringFunctionIT extends BaseHBaseManagedTimeIT {
 
     @Test
     public void testArrayToStringFunctionInWhere4() throws Exception {
-        Connection conn = DriverManager.getConnection(getUrl());
-        initTables(conn);
-
         ResultSet rs;
-        rs = conn.createStatement().executeQuery("SELECT region_name FROM regions WHERE 'true,true,true' = ARRAY_TO_STRING(ARRAY[true, true, true], ',')");
+        rs = conn.createStatement().executeQuery("SELECT region_name FROM " + REGIONS
+            + " WHERE 'true,true,true' = ARRAY_TO_STRING(ARRAY[true, true, true], ',')");
         assertTrue(rs.next());
 
         assertEquals("SF Bay Area", rs.getString(1));
@@ -495,11 +508,10 @@ public class ArrayToStringFunctionIT extends BaseHBaseManagedTimeIT {
 
     @Test
     public void testArrayToStringFunctionInWhere5() throws Exception {
-        Connection conn = DriverManager.getConnection(getUrl());
-        initTables(conn);
 
         ResultSet rs;
-        rs = conn.createStatement().executeQuery("SELECT region_name FROM regions WHERE 'a, bbbb, c, ddd, e' = ARRAY_TO_STRING(ARRAY['a', 'bbbb', 'c' , 'ddd', 'e'], ', ')");
+        rs = conn.createStatement().executeQuery("SELECT region_name FROM " + REGIONS
+            + " WHERE 'a, bbbb, c, ddd, e' = ARRAY_TO_STRING(ARRAY['a', 'bbbb', 'c' , 'ddd', 'e'], ', ')");
         assertTrue(rs.next());
 
         assertEquals("SF Bay Area", rs.getString(1));
@@ -508,11 +520,9 @@ public class ArrayToStringFunctionIT extends BaseHBaseManagedTimeIT {
 
     @Test
     public void testArrayToStringFunctionInWhere6() throws Exception {
-        Connection conn = DriverManager.getConnection(getUrl());
-        initTables(conn);
-
         ResultSet rs;
-        rs = conn.createStatement().executeQuery("SELECT region_name FROM regions WHERE ARRAY_TO_STRING(ARRAY[1,2,3], varchar1) = '1, 2, 3'");
+        rs = conn.createStatement().executeQuery("SELECT region_name FROM " + REGIONS
+            + " WHERE ARRAY_TO_STRING(ARRAY[1,2,3], varchar1) = '1, 2, 3'");
         assertTrue(rs.next());
 
         assertEquals("SF Bay Area", rs.getString(1));
@@ -521,11 +531,9 @@ public class ArrayToStringFunctionIT extends BaseHBaseManagedTimeIT {
 
     @Test
     public void testArrayToStringFunctionInWhere7() throws Exception {
-        Connection conn = DriverManager.getConnection(getUrl());
-        initTables(conn);
-
         ResultSet rs;
-        rs = conn.createStatement().executeQuery("SELECT region_name FROM regions WHERE ARRAY_TO_STRING(varchars, varchar1) = '2345, 46345, 23234'");
+        rs = conn.createStatement().executeQuery("SELECT region_name FROM " + REGIONS
+            + " WHERE ARRAY_TO_STRING(varchars, varchar1) = '2345, 46345, 23234'");
         assertTrue(rs.next());
 
         assertEquals("SF Bay Area", rs.getString(1));
@@ -534,11 +542,10 @@ public class ArrayToStringFunctionIT extends BaseHBaseManagedTimeIT {
 
     @Test
     public void testArrayToStringFunctionWithNulls1() throws Exception {
-        Connection conn = DriverManager.getConnection(getUrl());
-        initTables(conn);
-
         ResultSet rs;
-        rs = conn.createStatement().executeQuery("SELECT ARRAY_TO_STRING(ARRAY['a', NULL, 'b'], ', ','*') FROM regions WHERE region_name = 'SF Bay Area'");
+        rs = conn.createStatement().executeQuery(
+            "SELECT ARRAY_TO_STRING(ARRAY['a', NULL, 'b'], ', ','*') FROM " + REGIONS
+                + " WHERE region_name = 'SF Bay Area'");
         assertTrue(rs.next());
 
         String expected = "a, *, b";
@@ -549,11 +556,10 @@ public class ArrayToStringFunctionIT extends BaseHBaseManagedTimeIT {
 
     @Test
     public void testArrayToStringFunctionWithNulls2() throws Exception {
-        Connection conn = DriverManager.getConnection(getUrl());
-        initTables(conn);
-
         ResultSet rs;
-        rs = conn.createStatement().executeQuery("SELECT ARRAY_TO_STRING(ARRAY['a', NULL, 'b'], ', ') FROM regions WHERE region_name = 'SF Bay Area'");
+        rs = conn.createStatement().executeQuery(
+            "SELECT ARRAY_TO_STRING(ARRAY['a', NULL, 'b'], ', ') FROM " + REGIONS
+                + " WHERE region_name = 'SF Bay Area'");
         assertTrue(rs.next());
 
         String expected = "a, b";
@@ -564,11 +570,10 @@ public class ArrayToStringFunctionIT extends BaseHBaseManagedTimeIT {
 
     @Test
     public void testArrayToStringFunctionWithNulls3() throws Exception {
-        Connection conn = DriverManager.getConnection(getUrl());
-        initTables(conn);
-
         ResultSet rs;
-        rs = conn.createStatement().executeQuery("SELECT ARRAY_TO_STRING(ARRAY[NULL, 'a', 'b'], ', ', '*') FROM regions WHERE region_name = 'SF Bay Area'");
+        rs = conn.createStatement().executeQuery(
+            "SELECT ARRAY_TO_STRING(ARRAY[NULL, 'a', 'b'], ', ', '*') FROM " + REGIONS
+                + " WHERE region_name = 'SF Bay Area'");
         assertTrue(rs.next());
 
         String expected = "*, a, b";
@@ -579,11 +584,10 @@ public class ArrayToStringFunctionIT extends BaseHBaseManagedTimeIT {
 
     @Test
     public void testArrayToStringFunctionWithNulls4() throws Exception {
-        Connection conn = DriverManager.getConnection(getUrl());
-        initTables(conn);
-
         ResultSet rs;
-        rs = conn.createStatement().executeQuery("SELECT ARRAY_TO_STRING(ARRAY[NULL, 'a', 'b'], ', ') FROM regions WHERE region_name = 'SF Bay Area'");
+        rs = conn.createStatement().executeQuery(
+            "SELECT ARRAY_TO_STRING(ARRAY[NULL, 'a', 'b'], ', ') FROM " + REGIONS
+                + " WHERE region_name = 'SF Bay Area'");
         assertTrue(rs.next());
 
         String expected = "a, b";
@@ -594,11 +598,10 @@ public class ArrayToStringFunctionIT extends BaseHBaseManagedTimeIT {
 
     @Test
     public void testArrayToStringFunctionWithNulls5() throws Exception {
-        Connection conn = DriverManager.getConnection(getUrl());
-        initTables(conn);
-
         ResultSet rs;
-        rs = conn.createStatement().executeQuery("SELECT ARRAY_TO_STRING(ARRAY['a', 'b', NULL], ', ', '*') FROM regions WHERE region_name = 'SF Bay Area'");
+        rs = conn.createStatement().executeQuery(
+            "SELECT ARRAY_TO_STRING(ARRAY['a', 'b', NULL], ', ', '*') FROM " + REGIONS
+                + " WHERE region_name = 'SF Bay Area'");
         assertTrue(rs.next());
 
         String expected = "a, b, *";
@@ -609,11 +612,10 @@ public class ArrayToStringFunctionIT extends BaseHBaseManagedTimeIT {
 
     @Test
     public void testArrayToStringFunctionWithNulls6() throws Exception {
-        Connection conn = DriverManager.getConnection(getUrl());
-        initTables(conn);
-
         ResultSet rs;
-        rs = conn.createStatement().executeQuery("SELECT ARRAY_TO_STRING(ARRAY['a', 'b', NULL], ', ') FROM regions WHERE region_name = 'SF Bay Area'");
+        rs = conn.createStatement().executeQuery(
+            "SELECT ARRAY_TO_STRING(ARRAY['a', 'b', NULL], ', ') FROM " + REGIONS
+                + " WHERE region_name = 'SF Bay Area'");
         assertTrue(rs.next());
 
         String expected = "a, b";
@@ -624,11 +626,10 @@ public class ArrayToStringFunctionIT extends BaseHBaseManagedTimeIT {
 
     @Test
     public void testArrayToStringFunctionWithNulls7() throws Exception {
-        Connection conn = DriverManager.getConnection(getUrl());
-        initTables(conn);
-
         ResultSet rs;
-        rs = conn.createStatement().executeQuery("SELECT ARRAY_TO_STRING(ARRAY[NULL, NULL, 'a', 'b', NULL, 'c', 'd', NULL, 'e', NULL, NULL], ', ', '*') FROM regions WHERE region_name = 'SF Bay Area'");
+        rs = conn.createStatement().executeQuery(
+            "SELECT ARRAY_TO_STRING(ARRAY[NULL, NULL, 'a', 'b', NULL, 'c', 'd', NULL, 'e', NULL, NULL], ', ', '*') FROM "
+                + REGIONS + " WHERE region_name = 'SF Bay Area'");
         assertTrue(rs.next());
 
         String expected = "*, *, a, b, *, c, d, *, e, *, *";
@@ -639,11 +640,10 @@ public class ArrayToStringFunctionIT extends BaseHBaseManagedTimeIT {
 
     @Test
     public void testArrayToStringFunctionWithNulls8() throws Exception {
-        Connection conn = DriverManager.getConnection(getUrl());
-        initTables(conn);
-
         ResultSet rs;
-        rs = conn.createStatement().executeQuery("SELECT ARRAY_TO_STRING(ARRAY[NULL, NULL, 'a', 'b', NULL, 'c', 'd', NULL, 'e', NULL, NULL], ', ') FROM regions WHERE region_name = 'SF Bay Area'");
+        rs = conn.createStatement().executeQuery(
+            "SELECT ARRAY_TO_STRING(ARRAY[NULL, NULL, 'a', 'b', NULL, 'c', 'd', NULL, 'e', NULL, NULL], ', ') FROM "
+                + REGIONS + " WHERE region_name = 'SF Bay Area'");
         assertTrue(rs.next());
 
         String expected = "a, b, c, d, e";

http://git-wip-us.apache.org/repos/asf/phoenix/blob/6d147896/phoenix-core/src/it/java/org/apache/phoenix/end2end/ArraysWithNullsIT.java
----------------------------------------------------------------------
diff --git a/phoenix-core/src/it/java/org/apache/phoenix/end2end/ArraysWithNullsIT.java b/phoenix-core/src/it/java/org/apache/phoenix/end2end/ArraysWithNullsIT.java
index e95a386..5444e7f 100644
--- a/phoenix-core/src/it/java/org/apache/phoenix/end2end/ArraysWithNullsIT.java
+++ b/phoenix-core/src/it/java/org/apache/phoenix/end2end/ArraysWithNullsIT.java
@@ -26,18 +26,21 @@ import org.apache.phoenix.schema.types.PTimestamp;
 import org.apache.phoenix.schema.types.PhoenixArray;
 import org.junit.Test;
 
-public class ArraysWithNullsIT extends BaseHBaseManagedTimeIT {
+public class ArraysWithNullsIT extends BaseHBaseManagedTimeTableReuseIT {
 
     @Test
     public void testArrayUpsertIntWithNulls() throws Exception {
         Connection conn = DriverManager.getConnection(getUrl());
-        conn.createStatement().execute("CREATE TABLE t1 ( k VARCHAR PRIMARY KEY, a INTEGER[])");
+        String t1 = generateRandomString();
+        conn.createStatement().execute(
+            "CREATE TABLE " + t1 + " ( k VARCHAR PRIMARY KEY, a INTEGER[])");
 
-        PreparedStatement stmt = conn.prepareStatement("UPSERT INTO t1 VALUES('a',ARRAY[null,3,null])");
+        PreparedStatement stmt = conn.prepareStatement(
+            "UPSERT INTO " + t1 + " VALUES('a',ARRAY[null,3,null])");
         stmt.execute();
         conn.commit();
 
-        ResultSet rs = conn.createStatement().executeQuery("Select a from t1 where k = 'a'");
+        ResultSet rs = conn.createStatement().executeQuery("Select a from " + t1 + " where k = 'a'");
         rs.next();
         Array array = conn.createArrayOf("INTEGER",new Object[]{null,3,null});
 
@@ -51,13 +54,16 @@ public class ArraysWithNullsIT extends BaseHBaseManagedTimeIT {
     @Test
     public void testArrayUpsertVarcharWithNulls() throws Exception {
         Connection conn = DriverManager.getConnection(getUrl());
-        conn.createStatement().execute("CREATE TABLE t2 ( k VARCHAR PRIMARY KEY, a VARCHAR[])");
+        String t2 = generateRandomString();
+        conn.createStatement().execute(
+            "CREATE TABLE " + t2 + " ( k VARCHAR PRIMARY KEY, a VARCHAR[])");
 
-        PreparedStatement stmt = conn.prepareStatement("UPSERT INTO t2 VALUES('a',ARRAY['10',null])");
+        PreparedStatement stmt = conn.prepareStatement(
+            "UPSERT INTO " + t2 + " VALUES('a',ARRAY['10',null])");
         stmt.execute();
         conn.commit();
 
-        ResultSet rs = conn.createStatement().executeQuery("Select a from t2 where k = 'a'");
+        ResultSet rs = conn.createStatement().executeQuery("Select a from " + t2 + " where k = 'a'");
         rs.next();
         Array array = conn.createArrayOf("VARCHAR",new Object[]{"10",null});
 
@@ -69,13 +75,16 @@ public class ArraysWithNullsIT extends BaseHBaseManagedTimeIT {
     @Test
     public void testArrayUpsertBigIntWithNulls() throws Exception {
         Connection conn = DriverManager.getConnection(getUrl());
-        conn.createStatement().execute("CREATE TABLE t3 ( k VARCHAR PRIMARY KEY, a BIGINT[])");
+        String t3 = generateRandomString();
+        conn.createStatement().execute(
+            "CREATE TABLE " + t3 + " ( k VARCHAR PRIMARY KEY, a BIGINT[])");
 
-        PreparedStatement stmt = conn.prepareStatement("UPSERT INTO t3 VALUES('a',ARRAY[2,null,32335,4])");
+        PreparedStatement stmt = conn.prepareStatement(
+            "UPSERT INTO " + t3 + " VALUES('a',ARRAY[2,null,32335,4])");
         stmt.execute();
         conn.commit();
 
-        ResultSet rs = conn.createStatement().executeQuery("Select a from t3 where k = 'a'");
+        ResultSet rs = conn.createStatement().executeQuery("Select a from " + t3 + " where k = 'a'");
         rs.next();
         Array array = conn.createArrayOf("BIGINT",new Object[]{(long)2,null,(long)32335,(long)4});
 
@@ -87,13 +96,16 @@ public class ArraysWithNullsIT extends BaseHBaseManagedTimeIT {
     @Test
     public void testArrayUpsertFloatWithNulls() throws Exception {
         Connection conn = DriverManager.getConnection(getUrl());
-        conn.createStatement().execute("CREATE TABLE t4 ( k VARCHAR PRIMARY KEY, a FLOAT[])");
+        String t4 = generateRandomString();
+        conn.createStatement().execute(
+            "CREATE TABLE " + t4 + " ( k VARCHAR PRIMARY KEY, a FLOAT[])");
 
-        PreparedStatement stmt = conn.prepareStatement("UPSERT INTO t4 VALUES('a',ARRAY[1.1,2.2,null,3.4])");
+        PreparedStatement stmt = conn.prepareStatement(
+            "UPSERT INTO " + t4 + " VALUES('a',ARRAY[1.1,2.2,null,3.4])");
         stmt.execute();
         conn.commit();
 
-        ResultSet rs = conn.createStatement().executeQuery("Select a from t4 where k = 'a'");
+        ResultSet rs = conn.createStatement().executeQuery("Select a from " + t4 + " where k = 'a'");
         rs.next();
         Array array = conn.createArrayOf("FLOAT",new Object[]{(float)1.1,(float)2.2,null,(float)3.4});
 
@@ -105,13 +117,16 @@ public class ArraysWithNullsIT extends BaseHBaseManagedTimeIT {
     @Test
     public void testArrayUpsertSmallIntWithNulls() throws Exception {
         Connection conn = DriverManager.getConnection(getUrl());
-        conn.createStatement().execute("CREATE TABLE t5 ( k VARCHAR PRIMARY KEY, a SMALLINT[])");
+        String t5 = generateRandomString();
+        conn.createStatement().execute(
+            "CREATE TABLE " + t5 + " ( k VARCHAR PRIMARY KEY, a SMALLINT[])");
 
-        PreparedStatement stmt = conn.prepareStatement("UPSERT INTO t5 VALUES('a',ARRAY[123,456,null,456])");
+        PreparedStatement stmt = conn.prepareStatement(
+            "UPSERT INTO " + t5 + " VALUES('a',ARRAY[123,456,null,456])");
         stmt.execute();
         conn.commit();
 
-        ResultSet rs = conn.createStatement().executeQuery("Select a from t5 where k = 'a'");
+        ResultSet rs = conn.createStatement().executeQuery("Select a from " + t5 + " where k = 'a'");
         rs.next();
         Array array = conn.createArrayOf("SMALLINT",new Object[]{(short)123,(short)456,null,(short)456});
 
@@ -123,13 +138,16 @@ public class ArraysWithNullsIT extends BaseHBaseManagedTimeIT {
     @Test
     public void testArrayUpsertTinyIntWithNulls() throws Exception {
         Connection conn = DriverManager.getConnection(getUrl());
-        conn.createStatement().execute("CREATE TABLE t6 ( k VARCHAR PRIMARY KEY, a TINYINT[])");
+        String t6 = generateRandomString();
+        conn.createStatement().execute(
+            "CREATE TABLE " + t6 + " ( k VARCHAR PRIMARY KEY, a TINYINT[])");
 
-        PreparedStatement stmt = conn.prepareStatement("UPSERT INTO t6 VALUES('a',ARRAY[123,45,null,45])");
+        PreparedStatement stmt = conn.prepareStatement(
+            "UPSERT INTO " + t6 + " VALUES('a',ARRAY[123,45,null,45])");
         stmt.execute();
         conn.commit();
 
-        ResultSet rs = conn.createStatement().executeQuery("Select a from t6 where k = 'a'");
+        ResultSet rs = conn.createStatement().executeQuery("Select a from " + t6 + " where k = 'a'");
         rs.next();
         Array array = conn.createArrayOf("TINYINT",new Object[]{(byte)123,(byte)45,null,(byte)45});
 
@@ -141,13 +159,16 @@ public class ArraysWithNullsIT extends BaseHBaseManagedTimeIT {
     @Test
     public void testArrayUpsertBooleanWithNulls() throws Exception {
         Connection conn = DriverManager.getConnection(getUrl());
-        conn.createStatement().execute("CREATE TABLE t7 ( k VARCHAR PRIMARY KEY, a BOOLEAN[])");
+        String t7 = generateRandomString();
+        conn.createStatement().execute(
+            "CREATE TABLE " + t7 + " ( k VARCHAR PRIMARY KEY, a BOOLEAN[])");
 
-        PreparedStatement stmt = conn.prepareStatement("UPSERT INTO t7 VALUES('a',ARRAY[true,false,null,true])");
+        PreparedStatement stmt = conn.prepareStatement(
+            "UPSERT INTO " + t7 + " VALUES('a',ARRAY[true,false,null,true])");
         stmt.execute();
         conn.commit();
 
-        ResultSet rs = conn.createStatement().executeQuery("Select a from t7 where k = 'a'");
+        ResultSet rs = conn.createStatement().executeQuery("Select a from " + t7 + " where k = 'a'");
         rs.next();
         Array array = conn.createArrayOf("BOOLEAN",new Object[]{true,false,null,true});
 
@@ -159,13 +180,16 @@ public class ArraysWithNullsIT extends BaseHBaseManagedTimeIT {
     @Test
     public void testArrayUpsertDoubleWithNulls() throws Exception {
         Connection conn = DriverManager.getConnection(getUrl());
-        conn.createStatement().execute("CREATE TABLE t8 ( k VARCHAR PRIMARY KEY, a DOUBLE[])");
+        String t8 = generateRandomString();
+        conn.createStatement().execute(
+            "CREATE TABLE " + t8 + " ( k VARCHAR PRIMARY KEY, a DOUBLE[])");
 
-        PreparedStatement stmt = conn.prepareStatement("UPSERT INTO t8 VALUES('a',ARRAY[1.2,2.3,null,3.4])");
+        PreparedStatement stmt = conn.prepareStatement(
+            "UPSERT INTO " + t8 + " VALUES('a',ARRAY[1.2,2.3,null,3.4])");
         stmt.execute();
         conn.commit();
 
-        ResultSet rs = conn.createStatement().executeQuery("Select a from t8 where k = 'a'");
+        ResultSet rs = conn.createStatement().executeQuery("Select a from " + t8 + " where k = 'a'");
         rs.next();
         Array array = conn.createArrayOf("DOUBLE",new Object[]{1.2,2.3,null,3.4});
 
@@ -177,12 +201,14 @@ public class ArraysWithNullsIT extends BaseHBaseManagedTimeIT {
     @Test
     public void testArrayUpsertDateWithNulls1() throws Exception {
         Connection conn = DriverManager.getConnection(getUrl());
-        conn.createStatement().execute("CREATE TABLE t9 ( k VARCHAR PRIMARY KEY, a DATE[])");
-        PreparedStatement stmt = conn.prepareStatement("UPSERT INTO t9 VALUES('a',ARRAY[TO_DATE('2015-05-20 06:12:14.184'),null,TO_DATE('2015-05-20 06:12:14.184'),null])");
+        String t9 = generateRandomString();
+        conn.createStatement().execute("CREATE TABLE " + t9 + " ( k VARCHAR PRIMARY KEY, a DATE[])");
+        PreparedStatement stmt = conn.prepareStatement("UPSERT INTO " + t9
+            + " VALUES('a',ARRAY[TO_DATE('2015-05-20 06:12:14.184'),null,TO_DATE('2015-05-20 06:12:14.184'),null])");
         stmt.execute();
         conn.commit();
 
-        ResultSet rs = conn.createStatement().executeQuery("Select a from t9 where k = 'a'");
+        ResultSet rs = conn.createStatement().executeQuery("Select a from " + t9 + " where k = 'a'");
         rs.next();
         Array array = conn.createArrayOf("DATE",new Date[]{new Date(1432102334184l),new Date(0l),new Date(1432102334184l),new Date(0l)});
 
@@ -193,12 +219,16 @@ public class ArraysWithNullsIT extends BaseHBaseManagedTimeIT {
     @Test
     public void testArrayUpsertDateWithNulls2() throws Exception {
         Connection conn = DriverManager.getConnection(getUrl());
-        conn.createStatement().execute("CREATE TABLE t10 ( k VARCHAR PRIMARY KEY, a DATE[])");
-        PreparedStatement stmt = conn.prepareStatement("UPSERT INTO t10 VALUES('a',ARRAY[TO_DATE('1970-01-01 00:00:00.000'), TO_DATE('2015-05-20 06:12:14.184'),TO_DATE('2015-05-20 06:12:14.184')])");
+        String t10 = generateRandomString();
+        conn.createStatement().execute(
+            "CREATE TABLE " + t10 + " ( k VARCHAR PRIMARY KEY, a DATE[])");
+        PreparedStatement stmt = conn.prepareStatement("UPSERT INTO " + t10
+            + " VALUES('a',ARRAY[TO_DATE('1970-01-01 00:00:00.000'), TO_DATE('2015-05-20 06:12:14.184'),TO_DATE('2015-05-20 06:12:14.184')])");
         stmt.execute();
         conn.commit();
 
-        ResultSet rs = conn.createStatement().executeQuery("Select a from t10 where k = 'a'");
+        ResultSet rs = conn.createStatement().executeQuery(
+            "Select a from " + t10 + " where k = 'a'");
         rs.next();
         Array array = conn.createArrayOf("DATE",new Date[]{new Date(0l), new Date(1432102334184l), new Date(1432102334184l)});
 
@@ -209,12 +239,16 @@ public class ArraysWithNullsIT extends BaseHBaseManagedTimeIT {
     @Test
     public void testArrayUpsertTimeWithNulls1() throws Exception {
         Connection conn = DriverManager.getConnection(getUrl());
-        conn.createStatement().execute("CREATE TABLE t11 ( k VARCHAR PRIMARY KEY, a TIME[])");
-        PreparedStatement stmt = conn.prepareStatement("UPSERT INTO t11 VALUES('a',ARRAY[TO_TIME('2015-05-20 06:12:14.184'),null,TO_TIME('2015-05-20 06:12:14.184'),null])");
+        String t11 = generateRandomString();
+        conn.createStatement().execute(
+            "CREATE TABLE " + t11 + " ( k VARCHAR PRIMARY KEY, a TIME[])");
+        PreparedStatement stmt = conn.prepareStatement("UPSERT INTO " + t11
+            + " VALUES('a',ARRAY[TO_TIME('2015-05-20 06:12:14.184'),null,TO_TIME('2015-05-20 06:12:14.184'),null])");
         stmt.execute();
         conn.commit();
 
-        ResultSet rs = conn.createStatement().executeQuery("Select a from t11 where k = 'a'");
+        ResultSet rs = conn.createStatement().executeQuery(
+            "Select a from " + t11 + " where k = 'a'");
         rs.next();
         Array array = conn.createArrayOf("TIME",new Time[]{new Time(1432102334184l),new Time(0l),new Time(1432102334184l),new Time(0l)});
 
@@ -225,12 +259,16 @@ public class ArraysWithNullsIT extends BaseHBaseManagedTimeIT {
     @Test
     public void testArrayUpsertTimeWithNulls2() throws Exception {
         Connection conn = DriverManager.getConnection(getUrl());
-        conn.createStatement().execute("CREATE TABLE t12 ( k VARCHAR PRIMARY KEY, a TIME[])");
-        PreparedStatement stmt = conn.prepareStatement("UPSERT INTO t12 VALUES('a',ARRAY[TO_TIME('1970-01-01 00:00:00.000'), TO_TIME('2015-05-20 06:12:14.184'),null,TO_TIME('2015-05-20 06:12:14.184'),null])");
+        String t12 = generateRandomString();
+        conn.createStatement().execute(
+            "CREATE TABLE " + t12 + " ( k VARCHAR PRIMARY KEY, a TIME[])");
+        PreparedStatement stmt = conn.prepareStatement("UPSERT INTO " + t12
+            + " VALUES('a',ARRAY[TO_TIME('1970-01-01 00:00:00.000'), TO_TIME('2015-05-20 06:12:14.184'),null,TO_TIME('2015-05-20 06:12:14.184'),null])");
         stmt.execute();
         conn.commit();
 
-        ResultSet rs = conn.createStatement().executeQuery("Select a from t12 where k = 'a'");
+        ResultSet rs = conn.createStatement().executeQuery(
+            "Select a from " + t12 + " where k = 'a'");
         rs.next();
         Array array = conn.createArrayOf("TIME",new Time[]{new Time(0l),new Time(1432102334184l),new Time(0l),new Time(1432102334184l),new Time(0l)});
 
@@ -241,12 +279,16 @@ public class ArraysWithNullsIT extends BaseHBaseManagedTimeIT {
     @Test
     public void testArrayUpsertTimeStampWithNulls1() throws Exception {
         Connection conn = DriverManager.getConnection(getUrl());
-        conn.createStatement().execute("CREATE TABLE t13 ( k VARCHAR PRIMARY KEY, a TIMESTAMP[])");
-        PreparedStatement stmt = conn.prepareStatement("UPSERT INTO t13 VALUES('a',ARRAY[TO_TIMESTAMP('2015-05-20 06:12:14.184'),null,TO_TIMESTAMP('2015-05-20 06:12:14.184'),TO_TIMESTAMP('1970-01-01 00:00:00.000')])");
+        String t13 = generateRandomString();
+        conn.createStatement().execute(
+            "CREATE TABLE " + t13 + " ( k VARCHAR PRIMARY KEY, a TIMESTAMP[])");
+        PreparedStatement stmt = conn.prepareStatement("UPSERT INTO " + t13
+            + " VALUES('a',ARRAY[TO_TIMESTAMP('2015-05-20 06:12:14.184'),null,TO_TIMESTAMP('2015-05-20 06:12:14.184'),TO_TIMESTAMP('1970-01-01 00:00:00.000')])");
         stmt.execute();
         conn.commit();
 
-        ResultSet rs = conn.createStatement().executeQuery("Select a from t13 where k = 'a'");
+        ResultSet rs = conn.createStatement().executeQuery(
+            "Select a from " + t13 + " where k = 'a'");
         rs.next();
 
         assertEquals(rs.getArray(1),conn.createArrayOf("TIMESTAMP",new Timestamp[]{new Timestamp(1432102334184l),new Timestamp(0l),new Timestamp(1432102334184l),new Timestamp(0l)}));
@@ -256,12 +298,16 @@ public class ArraysWithNullsIT extends BaseHBaseManagedTimeIT {
     @Test
     public void testArrayUpsertTimeStampWithNulls2() throws Exception {
         Connection conn = DriverManager.getConnection(getUrl());
-        conn.createStatement().execute("CREATE TABLE t14 ( k VARCHAR PRIMARY KEY, a TIMESTAMP[])");
-        PreparedStatement stmt = conn.prepareStatement("UPSERT INTO t14 VALUES('a',ARRAY[TO_TIMESTAMP('1970-01-01 00:00:00.000'),TO_TIMESTAMP('2015-05-20 06:12:14.184'),TO_TIMESTAMP('1970-01-01 00:00:00.000'),TO_TIMESTAMP('2015-05-20 06:12:14.184'),TO_TIMESTAMP('1970-01-01 00:00:00.000')])");
+        String t14 = generateRandomString();
+        conn.createStatement().execute(
+            "CREATE TABLE " + t14 + " ( k VARCHAR PRIMARY KEY, a TIMESTAMP[])");
+        PreparedStatement stmt = conn.prepareStatement("UPSERT INTO " + t14
+            + " VALUES('a',ARRAY[TO_TIMESTAMP('1970-01-01 00:00:00.000'),TO_TIMESTAMP('2015-05-20 06:12:14.184'),TO_TIMESTAMP('1970-01-01 00:00:00.000'),TO_TIMESTAMP('2015-05-20 06:12:14.184'),TO_TIMESTAMP('1970-01-01 00:00:00.000')])");
         stmt.execute();
         conn.commit();
 
-        ResultSet rs = conn.createStatement().executeQuery("Select a from t14 where k = 'a'");
+        ResultSet rs = conn.createStatement().executeQuery(
+            "Select a from " + t14 + " where k = 'a'");
         rs.next();
 
         assertEquals(rs.getArray(1),conn.createArrayOf("TIMESTAMP",new Timestamp[]{new Timestamp(0l),new Timestamp(1432102334184l),new Timestamp(0l),new Timestamp(1432102334184l),new Timestamp(0l)}));
@@ -271,12 +317,16 @@ public class ArraysWithNullsIT extends BaseHBaseManagedTimeIT {
     @Test
     public void testArrayUpsertCharWithNulls1() throws Exception {
         Connection conn = DriverManager.getConnection(getUrl());
-        conn.createStatement().execute("CREATE TABLE t15 ( k VARCHAR PRIMARY KEY, a CHAR(15)[])");
-        PreparedStatement stmt = conn.prepareStatement("UPSERT INTO t15 VALUES('a',ARRAY['foo',null,'fo','foo'])");
+        String t15 = generateRandomString();
+        conn.createStatement().execute(
+            "CREATE TABLE " + t15 + " ( k VARCHAR PRIMARY KEY, a CHAR(15)[])");
+        PreparedStatement stmt = conn.prepareStatement(
+            "UPSERT INTO " + t15 + " VALUES('a',ARRAY['foo',null,'fo','foo'])");
         stmt.execute();
         conn.commit();
 
-        ResultSet rs = conn.createStatement().executeQuery("Select a from t15 where k = 'a'");
+        ResultSet rs = conn.createStatement().executeQuery(
+            "Select a from " + t15 + " where k = 'a'");
         rs.next();
 
         assertEquals(rs.getArray(1),conn.createArrayOf("CHAR",new String[]{"foo","","fo","foo"}));
@@ -286,12 +336,16 @@ public class ArraysWithNullsIT extends BaseHBaseManagedTimeIT {
     @Test
     public void testArrayUpsertCharWithNulls2() throws Exception {
         Connection conn = DriverManager.getConnection(getUrl());
-        conn.createStatement().execute("CREATE TABLE t16 ( k VARCHAR PRIMARY KEY, a CHAR(15)[])");
-        PreparedStatement stmt = conn.prepareStatement("UPSERT INTO t16 VALUES('a',ARRAY[null,'foo',null,'fo','foo'])");
+        String t16 = generateRandomString();
+        conn.createStatement().execute(
+            "CREATE TABLE " + t16 + " ( k VARCHAR PRIMARY KEY, a CHAR(15)[])");
+        PreparedStatement stmt = conn.prepareStatement(
+            "UPSERT INTO " + t16 + " VALUES('a',ARRAY[null,'foo',null,'fo','foo'])");
         stmt.execute();
         conn.commit();
 
-        ResultSet rs = conn.createStatement().executeQuery("Select a from t16 where k = 'a'");
+        ResultSet rs = conn.createStatement().executeQuery(
+            "Select a from " + t16 + " where k = 'a'");
         rs.next();
 
         assertEquals(rs.getArray(1),conn.createArrayOf("CHAR",new String[]{"","foo","","fo","foo"}));

http://git-wip-us.apache.org/repos/asf/phoenix/blob/6d147896/phoenix-core/src/it/java/org/apache/phoenix/end2end/AutoCommitIT.java
----------------------------------------------------------------------
diff --git a/phoenix-core/src/it/java/org/apache/phoenix/end2end/AutoCommitIT.java b/phoenix-core/src/it/java/org/apache/phoenix/end2end/AutoCommitIT.java
index 469f2de..3797884 100644
--- a/phoenix-core/src/it/java/org/apache/phoenix/end2end/AutoCommitIT.java
+++ b/phoenix-core/src/it/java/org/apache/phoenix/end2end/AutoCommitIT.java
@@ -32,7 +32,7 @@ import org.apache.phoenix.util.PropertiesUtil;
 import org.junit.Test;
 
 
-public class AutoCommitIT extends BaseHBaseManagedTimeIT {
+public class AutoCommitIT extends BaseHBaseManagedTimeTableReuseIT {
 
     @Test
     public void testMutationJoin() throws Exception {
@@ -40,42 +40,43 @@ public class AutoCommitIT extends BaseHBaseManagedTimeIT {
         Properties props = PropertiesUtil.deepCopy(TEST_PROPERTIES);
         Connection conn = DriverManager.getConnection(getUrl(), props);
         conn.setAutoCommit(true);
-        
-        String ddl = "CREATE TABLE test_table " +
+
+            String testTable = generateRandomString();
+            String ddl = "CREATE TABLE " + testTable + " " +
                 "  (r varchar not null, col1 integer" +
                 "  CONSTRAINT pk PRIMARY KEY (r))\n";
         createTestTable(getUrl(), ddl);
         
-        String query = "UPSERT INTO test_table(r, col1) VALUES('row1', 1)";
+        String query = "UPSERT INTO " + testTable + "(r, col1) VALUES('row1', 1)";
         PreparedStatement statement = conn.prepareStatement(query);
         statement.executeUpdate();
         conn.commit();
         
         conn.setAutoCommit(false);
-        query = "UPSERT INTO test_table(r, col1) VALUES('row1', 2)";
+        query = "UPSERT INTO " + testTable + "(r, col1) VALUES('row1', 2)";
         statement = conn.prepareStatement(query);
         statement.executeUpdate();
         
-        query = "DELETE FROM test_table WHERE r='row1'";
+        query = "DELETE FROM " + testTable + " WHERE r='row1'";
         statement = conn.prepareStatement(query);
         statement.executeUpdate();
         conn.commit();
         
-        query = "SELECT * FROM test_table";
+        query = "SELECT * FROM " + testTable;
         statement = conn.prepareStatement(query);
         ResultSet rs = statement.executeQuery();
         assertFalse(rs.next());
 
-        query = "DELETE FROM test_table WHERE r='row1'";
+        query = "DELETE FROM " + testTable + " WHERE r='row1'";
         statement = conn.prepareStatement(query);
         statement.executeUpdate();
 
-        query = "UPSERT INTO test_table(r, col1) VALUES('row1', 3)";
+        query = "UPSERT INTO " + testTable + "(r, col1) VALUES('row1', 3)";
         statement = conn.prepareStatement(query);
         statement.executeUpdate();
         conn.commit();
         
-        query = "SELECT * FROM test_table";
+        query = "SELECT * FROM " + testTable;
         statement = conn.prepareStatement(query);
         rs = statement.executeQuery();
         assertTrue(rs.next());

http://git-wip-us.apache.org/repos/asf/phoenix/blob/6d147896/phoenix-core/src/it/java/org/apache/phoenix/end2end/BaseHBaseManagedTimeIT.java
----------------------------------------------------------------------
diff --git a/phoenix-core/src/it/java/org/apache/phoenix/end2end/BaseHBaseManagedTimeIT.java b/phoenix-core/src/it/java/org/apache/phoenix/end2end/BaseHBaseManagedTimeIT.java
index 679f29d..3a811a8 100644
--- a/phoenix-core/src/it/java/org/apache/phoenix/end2end/BaseHBaseManagedTimeIT.java
+++ b/phoenix-core/src/it/java/org/apache/phoenix/end2end/BaseHBaseManagedTimeIT.java
@@ -34,7 +34,10 @@ import org.junit.experimental.categories.Category;
  * to set timestamps, because we create/destroy the Phoenix tables
  * between tests and only allow a table time stamp to increase.
  * Without this separation table deletion/creation would fail.
- * 
+ *
+ * Try and use (@link BaseHBaseManagedTimeTableReuseIT) and only
+ * extend this class if really necessary.  It is very slow as
+ * we have to delete tables which takes up to 10 seconds per test case.
  * All tests extending this class use the mini cluster that is
  * different from the mini cluster used by test classes extending 
  * {@link BaseClientManagedTimeIT}.

http://git-wip-us.apache.org/repos/asf/phoenix/blob/6d147896/phoenix-core/src/it/java/org/apache/phoenix/end2end/BaseHBaseManagedTimeTableReuseIT.java
----------------------------------------------------------------------
diff --git a/phoenix-core/src/it/java/org/apache/phoenix/end2end/BaseHBaseManagedTimeTableReuseIT.java b/phoenix-core/src/it/java/org/apache/phoenix/end2end/BaseHBaseManagedTimeTableReuseIT.java
new file mode 100644
index 0000000..8d9fff9
--- /dev/null
+++ b/phoenix-core/src/it/java/org/apache/phoenix/end2end/BaseHBaseManagedTimeTableReuseIT.java
@@ -0,0 +1,56 @@
+package org.apache.phoenix.end2end;
+
+import org.apache.hadoop.conf.Configuration;
+import org.apache.phoenix.query.BaseTest;
+import org.apache.phoenix.util.ReadOnlyProps;
+import org.junit.After;
+import org.junit.AfterClass;
+import org.junit.BeforeClass;
+import org.junit.experimental.categories.Category;
+
+import javax.annotation.concurrent.NotThreadSafe;
+import java.util.concurrent.locks.Lock;
+import java.util.concurrent.locks.ReentrantLock;
+
+/**
+ * Base class for tests that let HBase set timestamps.
+ * We need to separate these from tests that rely on clients
+ * to set timestamps, because we create/destroy the Phoenix tables
+ * between tests and only allow a table time stamp to increase.
+ * Without this separation table deletion/creation would fail.
+ *
+ * All tests extending this class use the mini cluster that is
+ * shared by all classes extending this class
+ *
+ * Remember to use BaseTest.generateRandomString() to generate table
+ * names for your tests otherwise there might be naming collisions between
+ * other tests.
+ * {@link BaseClientManagedTimeIT}.
+ *
+ * @since 0.1
+ */
+@NotThreadSafe
+@Category(HBaseManagedTimeTest.class)
+public class BaseHBaseManagedTimeTableReuseIT extends BaseTest {
+
+  protected static Configuration getTestClusterConfig() {
+    // don't want callers to modify config.
+    return new Configuration(config);
+  }
+
+  @BeforeClass
+  public static void doSetup() throws Exception {
+    setUpTestDriver(ReadOnlyProps.EMPTY_PROPS);
+  }
+
+  @AfterClass
+  public static void doTeardown() throws Exception {
+    // no teardown since we are creating unique table names
+  }
+
+  @After
+  public void cleanUpAfterTest() throws Exception {
+    // no cleanup since we are using unique table names
+  }
+
+}

http://git-wip-us.apache.org/repos/asf/phoenix/blob/6d147896/phoenix-core/src/it/java/org/apache/phoenix/end2end/CbrtFunctionEnd2EndIT.java
----------------------------------------------------------------------
diff --git a/phoenix-core/src/it/java/org/apache/phoenix/end2end/CbrtFunctionEnd2EndIT.java b/phoenix-core/src/it/java/org/apache/phoenix/end2end/CbrtFunctionEnd2EndIT.java
index a632104..25fc43f 100644
--- a/phoenix-core/src/it/java/org/apache/phoenix/end2end/CbrtFunctionEnd2EndIT.java
+++ b/phoenix-core/src/it/java/org/apache/phoenix/end2end/CbrtFunctionEnd2EndIT.java
@@ -28,26 +28,31 @@ import java.sql.ResultSet;
 
 import org.apache.phoenix.expression.function.CbrtFunction;
 import org.junit.Before;
+import org.junit.BeforeClass;
 import org.junit.Test;
 
 /**
  * End to end tests for {@link CbrtFunction}
  */
-public class CbrtFunctionEnd2EndIT extends BaseHBaseManagedTimeIT {
+public class CbrtFunctionEnd2EndIT extends BaseHBaseManagedTimeTableReuseIT {
 
     private static final String KEY = "key";
     private static final double ZERO = 1e-8;
+    private static final String TEST_SIGNED = generateRandomString();
+    private static final String TEST_UNSIGNED = generateRandomString();
 
-    @Before
-    public void initTable() throws Exception {
+    @BeforeClass
+    public static void initTable() throws Exception {
         Connection conn = null;
         PreparedStatement stmt = null;
         try {
             conn = DriverManager.getConnection(getUrl());
             String ddl;
-            ddl = "CREATE TABLE testSigned (k VARCHAR NOT NULL PRIMARY KEY, doub DOUBLE, fl FLOAT, inte INTEGER, lon BIGINT, smalli SMALLINT, tinyi TINYINT)";
+            ddl = "CREATE TABLE " + TEST_SIGNED
+                + " (k VARCHAR NOT NULL PRIMARY KEY, doub DOUBLE, fl FLOAT, inte INTEGER, lon BIGINT, smalli SMALLINT, tinyi TINYINT)";
             conn.createStatement().execute(ddl);
-            ddl = "CREATE TABLE testUnsigned (k VARCHAR NOT NULL PRIMARY KEY, doub UNSIGNED_DOUBLE, fl UNSIGNED_FLOAT, inte UNSIGNED_INT, lon UNSIGNED_LONG, smalli UNSIGNED_SMALLINT, tinyi UNSIGNED_TINYINT)";
+            ddl = "CREATE TABLE " + TEST_UNSIGNED
+                + " (k VARCHAR NOT NULL PRIMARY KEY, doub UNSIGNED_DOUBLE, fl UNSIGNED_FLOAT, inte UNSIGNED_INT, lon UNSIGNED_LONG, smalli UNSIGNED_SMALLINT, tinyi UNSIGNED_TINYINT)";
             conn.createStatement().execute(ddl);
             conn.commit();
         } finally {
@@ -56,7 +61,8 @@ public class CbrtFunctionEnd2EndIT extends BaseHBaseManagedTimeIT {
     }
 
     private void updateSignedTable(Connection conn, double data) throws Exception {
-        PreparedStatement stmt = conn.prepareStatement("UPSERT INTO testSigned VALUES (?, ?, ?, ?, ?, ?, ?)");
+        PreparedStatement stmt = conn.prepareStatement(
+            "UPSERT INTO " + TEST_SIGNED + " VALUES (?, ?, ?, ?, ?, ?, ?)");
         stmt.setString(1, KEY);
         Double d = Double.valueOf(data);
         stmt.setDouble(2, d.doubleValue());
@@ -70,7 +76,8 @@ public class CbrtFunctionEnd2EndIT extends BaseHBaseManagedTimeIT {
     }
 
     private void updateUnsignedTable(Connection conn, double data) throws Exception {
-        PreparedStatement stmt = conn.prepareStatement("UPSERT INTO testUnsigned VALUES (?, ?, ?, ?, ?, ?, ?)");
+        PreparedStatement stmt = conn.prepareStatement(
+            "UPSERT INTO " + TEST_UNSIGNED + " VALUES (?, ?, ?, ?, ?, ?, ?)");
         stmt.setString(1, KEY);
         Double d = Double.valueOf(data);
         stmt.setDouble(2, d.doubleValue());
@@ -85,7 +92,9 @@ public class CbrtFunctionEnd2EndIT extends BaseHBaseManagedTimeIT {
 
     private void testSignedNumberSpec(Connection conn, double data) throws Exception {
         updateSignedTable(conn, data);
-        ResultSet rs = conn.createStatement().executeQuery("SELECT CBRT(doub),CBRT(fl),CBRT(inte),CBRT(lon),CBRT(smalli),CBRT(tinyi) FROM testSigned");
+        ResultSet rs = conn.createStatement().executeQuery(
+            "SELECT CBRT(doub),CBRT(fl),CBRT(inte),CBRT(lon),CBRT(smalli),CBRT(tinyi) FROM "
+                + TEST_SIGNED);
         assertTrue(rs.next());
         Double d = Double.valueOf(data);
         assertTrue(Math.abs(rs.getDouble(1) - Math.cbrt(d.doubleValue())) < ZERO);
@@ -95,7 +104,8 @@ public class CbrtFunctionEnd2EndIT extends BaseHBaseManagedTimeIT {
         assertTrue(Math.abs(rs.getDouble(5) - Math.cbrt(d.shortValue())) < ZERO);
         assertTrue(Math.abs(rs.getDouble(6) - Math.cbrt(d.byteValue())) < ZERO);
         assertTrue(!rs.next());
-        PreparedStatement stmt = conn.prepareStatement("SELECT k FROM testSigned WHERE CBRT(doub)>0 AND CBRT(fl)>0 AND CBRT(inte)>0 AND CBRT(lon)>0 AND CBRT(smalli)>0 AND CBRT(tinyi)>0");
+        PreparedStatement stmt = conn.prepareStatement("SELECT k FROM " + TEST_SIGNED
+            + " WHERE CBRT(doub)>0 AND CBRT(fl)>0 AND CBRT(inte)>0 AND CBRT(lon)>0 AND CBRT(smalli)>0 AND CBRT(tinyi)>0");
         rs = stmt.executeQuery();
         if (data > 0) {
             assertTrue(rs.next());
@@ -106,7 +116,9 @@ public class CbrtFunctionEnd2EndIT extends BaseHBaseManagedTimeIT {
 
     private void testUnsignedNumberSpec(Connection conn, double data) throws Exception {
         updateUnsignedTable(conn, data);
-        ResultSet rs = conn.createStatement().executeQuery("SELECT CBRT(doub),CBRT(fl),CBRT(inte),CBRT(lon),CBRT(smalli),CBRT(tinyi) FROM testUnsigned");
+        ResultSet rs = conn.createStatement().executeQuery(
+            "SELECT CBRT(doub),CBRT(fl),CBRT(inte),CBRT(lon),CBRT(smalli),CBRT(tinyi) FROM "
+                + TEST_UNSIGNED);
         assertTrue(rs.next());
         Double d = Double.valueOf(data);
         assertTrue(Math.abs(rs.getDouble(1) - Math.cbrt(d.doubleValue())) < ZERO);
@@ -116,7 +128,8 @@ public class CbrtFunctionEnd2EndIT extends BaseHBaseManagedTimeIT {
         assertTrue(Math.abs(rs.getDouble(5) - Math.cbrt(d.shortValue())) < ZERO);
         assertTrue(Math.abs(rs.getDouble(6) - Math.cbrt(d.byteValue())) < ZERO);
         assertTrue(!rs.next());
-        PreparedStatement stmt = conn.prepareStatement("SELECT k FROM testUnsigned WHERE CBRT(doub)>0 AND CBRT(fl)>0 AND CBRT(inte)>0 AND CBRT(lon)>0 AND CBRT(smalli)>0 AND CBRT(tinyi)>0");
+        PreparedStatement stmt = conn.prepareStatement("SELECT k FROM " + TEST_UNSIGNED
+            + " WHERE CBRT(doub)>0 AND CBRT(fl)>0 AND CBRT(inte)>0 AND CBRT(lon)>0 AND CBRT(smalli)>0 AND CBRT(tinyi)>0");
         rs = stmt.executeQuery();
         if (data > 0) {
             assertTrue(rs.next());

http://git-wip-us.apache.org/repos/asf/phoenix/blob/6d147896/phoenix-core/src/it/java/org/apache/phoenix/end2end/ConvertTimezoneFunctionIT.java
----------------------------------------------------------------------
diff --git a/phoenix-core/src/it/java/org/apache/phoenix/end2end/ConvertTimezoneFunctionIT.java b/phoenix-core/src/it/java/org/apache/phoenix/end2end/ConvertTimezoneFunctionIT.java
index f415dc6..6f09c45 100644
--- a/phoenix-core/src/it/java/org/apache/phoenix/end2end/ConvertTimezoneFunctionIT.java
+++ b/phoenix-core/src/it/java/org/apache/phoenix/end2end/ConvertTimezoneFunctionIT.java
@@ -34,19 +34,23 @@ import org.junit.Test;
  *
  */
 
-public class ConvertTimezoneFunctionIT extends BaseHBaseManagedTimeIT {
+public class ConvertTimezoneFunctionIT extends BaseHBaseManagedTimeTableReuseIT {
 
     @Test
     public void testConvertTimezoneEurope() throws Exception {
         Connection conn = DriverManager.getConnection(getUrl());
-        String ddl = "CREATE TABLE IF NOT EXISTS TIMEZONE_OFFSET_TEST (k1 INTEGER NOT NULL, dates DATE CONSTRAINT pk PRIMARY KEY (k1))";
+        String timezone_offset_test = generateRandomString();
+        String ddl = "CREATE TABLE IF NOT EXISTS " + timezone_offset_test
+            + " (k1 INTEGER NOT NULL, dates DATE CONSTRAINT pk PRIMARY KEY (k1))";
         conn.createStatement().execute(ddl);
-        String dml = "UPSERT INTO TIMEZONE_OFFSET_TEST (k1, dates) VALUES (1, TO_DATE('2014-03-01 00:00:00'))";
+        String dml = "UPSERT INTO " + timezone_offset_test
+            + " (k1, dates) VALUES (1, TO_DATE('2014-03-01 00:00:00'))";
         conn.createStatement().execute(dml);
         conn.commit();
 
         ResultSet rs = conn.createStatement().executeQuery(
-                "SELECT k1, dates, CONVERT_TZ(dates, 'UTC', 'Europe/Prague') FROM TIMEZONE_OFFSET_TEST");
+            "SELECT k1, dates, CONVERT_TZ(dates, 'UTC', 'Europe/Prague') FROM "
+                + timezone_offset_test);
 
         assertTrue(rs.next());
         assertEquals(1393635600000L, rs.getDate(3).getTime()); //Sat, 01 Mar 2014 01:00:00
@@ -55,14 +59,18 @@ public class ConvertTimezoneFunctionIT extends BaseHBaseManagedTimeIT {
     @Test
     public void testConvertTimezoneAmerica() throws Exception {
         Connection conn = DriverManager.getConnection(getUrl());
-        String ddl = "CREATE TABLE IF NOT EXISTS TIMEZONE_OFFSET_TEST (k1 INTEGER NOT NULL, dates DATE CONSTRAINT pk PRIMARY KEY (k1))";
+        String timezone_offset_test = generateRandomString();
+        String ddl = "CREATE TABLE IF NOT EXISTS " + timezone_offset_test
+            + " (k1 INTEGER NOT NULL, dates DATE CONSTRAINT pk PRIMARY KEY (k1))";
         conn.createStatement().execute(ddl);
-        String dml = "UPSERT INTO TIMEZONE_OFFSET_TEST (k1, dates) VALUES (1, TO_DATE('2014-03-01 00:00:00'))";
+        String dml = "UPSERT INTO " + timezone_offset_test
+            + " (k1, dates) VALUES (1, TO_DATE('2014-03-01 00:00:00'))";
         conn.createStatement().execute(dml);
         conn.commit();
 
         ResultSet rs = conn.createStatement().executeQuery(
-                "SELECT k1, dates, CONVERT_TZ(dates, 'UTC', 'America/Adak') FROM TIMEZONE_OFFSET_TEST");
+            "SELECT k1, dates, CONVERT_TZ(dates, 'UTC', 'America/Adak') FROM "
+                + timezone_offset_test);
 
         assertTrue(rs.next());
         assertEquals(1393596000000L, rs.getDate(3).getTime()); //Fri, 28 Feb 2014 14:00:00
@@ -71,14 +79,17 @@ public class ConvertTimezoneFunctionIT extends BaseHBaseManagedTimeIT {
     @Test
     public void nullInDateParameter() throws Exception {
         Connection conn = DriverManager.getConnection(getUrl());
-        String ddl = "CREATE TABLE IF NOT EXISTS TIMEZONE_OFFSET_TEST (k1 INTEGER NOT NULL, dates DATE CONSTRAINT pk PRIMARY KEY (k1))";
+        String timezone_offset_test = generateRandomString();
+        String ddl = "CREATE TABLE IF NOT EXISTS " + timezone_offset_test
+            + " (k1 INTEGER NOT NULL, dates DATE CONSTRAINT pk PRIMARY KEY (k1))";
         conn.createStatement().execute(ddl);
-        String dml = "UPSERT INTO TIMEZONE_OFFSET_TEST (k1) VALUES (1)";
+        String dml = "UPSERT INTO " + timezone_offset_test + " (k1) VALUES (1)";
         conn.createStatement().execute(dml);
         conn.commit();
 
         ResultSet rs = conn.createStatement().executeQuery(
-                "SELECT k1, dates, CONVERT_TZ(dates, 'UTC', 'America/Adak') FROM TIMEZONE_OFFSET_TEST");
+            "SELECT k1, dates, CONVERT_TZ(dates, 'UTC', 'America/Adak') FROM "
+                + timezone_offset_test);
 
         assertTrue(rs.next());
         rs.getDate(3);
@@ -88,14 +99,17 @@ public class ConvertTimezoneFunctionIT extends BaseHBaseManagedTimeIT {
     @Test
     public void nullInFirstTimezoneParameter() throws Exception {
         Connection conn = DriverManager.getConnection(getUrl());
-        String ddl = "CREATE TABLE IF NOT EXISTS TIMEZONE_OFFSET_TEST (k1 INTEGER NOT NULL, dates DATE, tz VARCHAR, CONSTRAINT pk PRIMARY KEY (k1))";
+        String timezone_offset_test = generateRandomString();
+        String ddl = "CREATE TABLE IF NOT EXISTS " + timezone_offset_test
+            + " (k1 INTEGER NOT NULL, dates DATE, tz VARCHAR, CONSTRAINT pk PRIMARY KEY (k1))";
         conn.createStatement().execute(ddl);
-        String dml = "UPSERT INTO TIMEZONE_OFFSET_TEST (k1, dates) VALUES (1, TO_DATE('2014-03-01 00:00:00'))";
+        String dml = "UPSERT INTO " + timezone_offset_test
+            + " (k1, dates) VALUES (1, TO_DATE('2014-03-01 00:00:00'))";
         conn.createStatement().execute(dml);
         conn.commit();
 
         ResultSet rs = conn.createStatement().executeQuery(
-                "SELECT k1, dates, CONVERT_TZ(dates, tz, 'America/Adak') FROM TIMEZONE_OFFSET_TEST");
+            "SELECT k1, dates, CONVERT_TZ(dates, tz, 'America/Adak') FROM " + timezone_offset_test);
 
         assertTrue(rs.next());
         rs.getDate(3);
@@ -105,14 +119,17 @@ public class ConvertTimezoneFunctionIT extends BaseHBaseManagedTimeIT {
     @Test
     public void nullInSecondTimezoneParameter() throws Exception {
         Connection conn = DriverManager.getConnection(getUrl());
-        String ddl = "CREATE TABLE IF NOT EXISTS TIMEZONE_OFFSET_TEST (k1 INTEGER NOT NULL, dates DATE, tz VARCHAR, CONSTRAINT pk PRIMARY KEY (k1))";
+        String timezone_offset_test = generateRandomString();
+        String ddl = "CREATE TABLE IF NOT EXISTS " + timezone_offset_test
+            + " (k1 INTEGER NOT NULL, dates DATE, tz VARCHAR, CONSTRAINT pk PRIMARY KEY (k1))";
         conn.createStatement().execute(ddl);
-        String dml = "UPSERT INTO TIMEZONE_OFFSET_TEST (k1, dates) VALUES (1, TO_DATE('2014-03-01 00:00:00'))";
+        String dml = "UPSERT INTO " + timezone_offset_test
+            + " (k1, dates) VALUES (1, TO_DATE('2014-03-01 00:00:00'))";
         conn.createStatement().execute(dml);
         conn.commit();
 
         ResultSet rs = conn.createStatement().executeQuery(
-                "SELECT k1, dates, CONVERT_TZ(dates, 'America/Adak', tz) FROM TIMEZONE_OFFSET_TEST");
+            "SELECT k1, dates, CONVERT_TZ(dates, 'America/Adak', tz) FROM " + timezone_offset_test);
 
         assertTrue(rs.next());
         rs.getDate(3);
@@ -122,15 +139,19 @@ public class ConvertTimezoneFunctionIT extends BaseHBaseManagedTimeIT {
     @Test
     public void unknownTimezone() throws Exception {
         Connection conn = DriverManager.getConnection(getUrl());
-        String ddl = "CREATE TABLE IF NOT EXISTS TIMEZONE_OFFSET_TEST (k1 INTEGER NOT NULL, dates DATE CONSTRAINT pk PRIMARY KEY (k1))";
+        String timezone_offset_test = generateRandomString();
+        String ddl = "CREATE TABLE IF NOT EXISTS " + timezone_offset_test
+            + " (k1 INTEGER NOT NULL, dates DATE CONSTRAINT pk PRIMARY KEY (k1))";
         conn.createStatement().execute(ddl);
-        String dml = "UPSERT INTO TIMEZONE_OFFSET_TEST (k1, dates) VALUES (1, TO_DATE('2014-03-01 00:00:00'))";
+        String dml = "UPSERT INTO " + timezone_offset_test
+            + " (k1, dates) VALUES (1, TO_DATE('2014-03-01 00:00:00'))";
         conn.createStatement().execute(dml);
         conn.commit();
 
         try {
             ResultSet rs = conn.createStatement().executeQuery(
-                    "SELECT k1, dates, CONVERT_TZ(dates, 'UNKNOWN_TIMEZONE', 'America/Adak') FROM TIMEZONE_OFFSET_TEST");
+                "SELECT k1, dates, CONVERT_TZ(dates, 'UNKNOWN_TIMEZONE', 'America/Adak') FROM "
+                    + timezone_offset_test);
 
             rs.next();
             rs.getDate(3).getTime();
@@ -143,15 +164,19 @@ public class ConvertTimezoneFunctionIT extends BaseHBaseManagedTimeIT {
 	@Test
 	public void testConvertMultipleRecords() throws Exception {
 		Connection conn = DriverManager.getConnection(getUrl());
-		String ddl = "CREATE TABLE IF NOT EXISTS TIMEZONE_OFFSET_TEST (k1 INTEGER NOT NULL, dates DATE CONSTRAINT pk PRIMARY KEY (k1))";
+      String timezone_offset_test = generateRandomString();
+      String ddl = "CREATE TABLE IF NOT EXISTS " + timezone_offset_test
+          + " (k1 INTEGER NOT NULL, dates DATE CONSTRAINT pk PRIMARY KEY (k1))";
 		Statement stmt = conn.createStatement();
 		stmt.execute(ddl);
-		stmt.execute("UPSERT INTO TIMEZONE_OFFSET_TEST (k1, dates) VALUES (1, TO_DATE('2014-03-01 00:00:00'))");
-		stmt.execute("UPSERT INTO TIMEZONE_OFFSET_TEST (k1, dates) VALUES (2, TO_DATE('2014-03-01 00:00:00'))");
+		stmt.execute("UPSERT INTO " + timezone_offset_test
+        + " (k1, dates) VALUES (1, TO_DATE('2014-03-01 00:00:00'))");
+		stmt.execute("UPSERT INTO " + timezone_offset_test
+        + " (k1, dates) VALUES (2, TO_DATE('2014-03-01 00:00:00'))");
 		conn.commit();
 
 		ResultSet rs = stmt.executeQuery(
-				"SELECT k1, dates, CONVERT_TZ(dates, 'UTC', 'America/Adak') FROM TIMEZONE_OFFSET_TEST");
+        "SELECT k1, dates, CONVERT_TZ(dates, 'UTC', 'America/Adak') FROM " + timezone_offset_test);
 
 		assertTrue(rs.next());
 		assertEquals(1393596000000L, rs.getDate(3).getTime()); //Fri, 28 Feb 2014 14:00:00

http://git-wip-us.apache.org/repos/asf/phoenix/blob/6d147896/phoenix-core/src/it/java/org/apache/phoenix/end2end/DecodeFunctionIT.java
----------------------------------------------------------------------
diff --git a/phoenix-core/src/it/java/org/apache/phoenix/end2end/DecodeFunctionIT.java b/phoenix-core/src/it/java/org/apache/phoenix/end2end/DecodeFunctionIT.java
index 93205a7..041649b 100644
--- a/phoenix-core/src/it/java/org/apache/phoenix/end2end/DecodeFunctionIT.java
+++ b/phoenix-core/src/it/java/org/apache/phoenix/end2end/DecodeFunctionIT.java
@@ -35,16 +35,19 @@ import org.apache.phoenix.schema.types.PUnsignedLong;
 import org.junit.Test;
 
 
-public class DecodeFunctionIT extends BaseHBaseManagedTimeIT {
+public class DecodeFunctionIT extends BaseHBaseManagedTimeTableReuseIT {
 
 	@Test
 	public void shouldPass() throws Exception {
 		Connection conn = DriverManager.getConnection(getUrl());
 
-		String ddl = "CREATE TABLE test_table ( some_column BINARY(12) NOT NULL CONSTRAINT PK PRIMARY KEY (some_column))";
+		String testTable = generateRandomString();
+		String ddl = "CREATE TABLE " + testTable
+				+ " ( some_column BINARY(12) NOT NULL CONSTRAINT PK PRIMARY KEY (some_column))";
 
 		conn.createStatement().execute(ddl);
-		PreparedStatement ps = conn.prepareStatement("UPSERT INTO test_table (some_column) VALUES (?)");
+		PreparedStatement ps = conn.prepareStatement(
+				"UPSERT INTO " + testTable + " (some_column) VALUES (?)");
 
 		byte[] kk = Bytes.add(PUnsignedLong.INSTANCE.toBytes(2232594215l), PInteger.INSTANCE.toBytes(-8));
 		ps.setBytes(1, kk);
@@ -52,7 +55,8 @@ public class DecodeFunctionIT extends BaseHBaseManagedTimeIT {
 		ps.execute();
 		conn.commit();
 
-		ResultSet rs = conn.createStatement().executeQuery("SELECT * FROM test_table WHERE some_column = DECODE('000000008512af277ffffff8', 'hex')");
+		ResultSet rs = conn.createStatement().executeQuery("SELECT * FROM " + testTable
+				+ " WHERE some_column = DECODE('000000008512af277ffffff8', 'hex')");
 		assertTrue(rs.next());
 	}
 
@@ -60,10 +64,13 @@ public class DecodeFunctionIT extends BaseHBaseManagedTimeIT {
 	public void upperCaseHexEncoding() throws Exception {
 		Connection conn = DriverManager.getConnection(getUrl());
 
-		String ddl = "CREATE TABLE test_table ( some_column BINARY(12) NOT NULL CONSTRAINT PK PRIMARY KEY (some_column))";
+		String testTable = generateRandomString();
+		String ddl = "CREATE TABLE " + testTable
+				+ " ( some_column BINARY(12) NOT NULL CONSTRAINT PK PRIMARY KEY (some_column))";
 
 		conn.createStatement().execute(ddl);
-		PreparedStatement ps = conn.prepareStatement("UPSERT INTO test_table (some_column) VALUES (?)");
+		PreparedStatement ps = conn.prepareStatement(
+				"UPSERT INTO " + testTable + " (some_column) VALUES (?)");
 
 		byte[] kk = Bytes.add(PUnsignedLong.INSTANCE.toBytes(2232594215l), PInteger.INSTANCE.toBytes(-8));
 		ps.setBytes(1, kk);
@@ -71,19 +78,23 @@ public class DecodeFunctionIT extends BaseHBaseManagedTimeIT {
 		ps.execute();
 		conn.commit();
 
-		ResultSet rs = conn.createStatement().executeQuery("SELECT * FROM test_table WHERE some_column = DECODE('000000008512af277ffffff8', 'HEX')");
+		ResultSet rs = conn.createStatement().executeQuery("SELECT * FROM " + testTable
+				+ " WHERE some_column = DECODE('000000008512af277ffffff8', 'HEX')");
 		assertTrue(rs.next());
 	}
 
 	@Test
 	public void invalidCharacters() throws Exception {
 		Connection conn = DriverManager.getConnection(getUrl());
-		String ddl = "CREATE TABLE test_table ( some_column BINARY(12) NOT NULL CONSTRAINT PK PRIMARY KEY (some_column))";
+		String testTable = generateRandomString();
+		String ddl = "CREATE TABLE " + testTable
+				+ " ( some_column BINARY(12) NOT NULL CONSTRAINT PK PRIMARY KEY (some_column))";
 
 		conn.createStatement().execute(ddl);
 
 		try {
-			conn.createStatement().executeQuery("SELECT * FROM test_table WHERE some_column = DECODE('zzxxuuyyzzxxuuyy', 'hex')");
+			conn.createStatement().executeQuery(
+					"SELECT * FROM " + testTable + " WHERE some_column = DECODE('zzxxuuyyzzxxuuyy', 'hex')");
 	        fail();
 		} catch (SQLException e) {
 			assertEquals(SQLExceptionCode.ILLEGAL_DATA.getErrorCode(), e.getErrorCode());
@@ -93,12 +104,15 @@ public class DecodeFunctionIT extends BaseHBaseManagedTimeIT {
 	@Test
 	public void invalidLength() throws Exception {
 		Connection conn = DriverManager.getConnection(getUrl());
-		String ddl = "CREATE TABLE test_table ( some_column BINARY(12) NOT NULL CONSTRAINT PK PRIMARY KEY (some_column))";
+		String testTable = generateRandomString();
+		String ddl = "CREATE TABLE " + testTable
+				+ " ( some_column BINARY(12) NOT NULL CONSTRAINT PK PRIMARY KEY (some_column))";
 
 		conn.createStatement().execute(ddl);
 
 		try {
-			conn.createStatement().executeQuery("SELECT * FROM test_table WHERE some_column = DECODE('8', 'hex')");
+			conn.createStatement().executeQuery(
+					"SELECT * FROM " + testTable + " WHERE some_column = DECODE('8', 'hex')");
             fail();
         } catch (SQLException e) {
             assertEquals(SQLExceptionCode.ILLEGAL_DATA.getErrorCode(), e.getErrorCode());
@@ -108,23 +122,28 @@ public class DecodeFunctionIT extends BaseHBaseManagedTimeIT {
 	@Test
 	public void nullEncoding() throws Exception {
 		Connection conn = DriverManager.getConnection(getUrl());
-		String ddl = "CREATE TABLE test_table ( some_column BINARY(12) NOT NULL CONSTRAINT PK PRIMARY KEY (some_column))";
+		String testTable = generateRandomString();
+		String ddl = "CREATE TABLE " + testTable
+				+ " ( some_column BINARY(12) NOT NULL CONSTRAINT PK PRIMARY KEY (some_column))";
 
 		conn.createStatement().execute(ddl);
 
-		ResultSet rs = conn.createStatement().executeQuery("SELECT * FROM test_table WHERE some_column = DECODE('8', NULL)");
+		ResultSet rs = conn.createStatement().executeQuery(
+				"SELECT * FROM " + testTable + " WHERE some_column = DECODE('8', NULL)");
 		assertFalse(rs.next());
 	}
 
 	@Test
 	public void invalidEncoding() throws Exception {
 		Connection conn = DriverManager.getConnection(getUrl());
-		String ddl = "CREATE TABLE test_table ( some_column BINARY(12) NOT NULL CONSTRAINT PK PRIMARY KEY (some_column))";
+		String testTable = generateRandomString();
+		String ddl = "CREATE TABLE " + testTable
+				+ " ( some_column BINARY(12) NOT NULL CONSTRAINT PK PRIMARY KEY (some_column))";
 
 		conn.createStatement().execute(ddl);
 
 		try {
-			conn.createStatement().executeQuery("SELECT * FROM test_table WHERE some_column = DECODE('8', 'someNonexistFormat')");
+			conn.createStatement().executeQuery("SELECT * FROM "+ testTable + " WHERE some_column = DECODE('8', 'someNonexistFormat')");
             fail();
         } catch (SQLException e) {
             assertEquals(SQLExceptionCode.TYPE_MISMATCH.getErrorCode(), e.getErrorCode());


[4/6] phoenix git commit: PHOENIX-2822 Tests that extend BaseHBaseManagedTimeIT are very slow(Rahul Gidwani)

Posted by sa...@apache.org.
http://git-wip-us.apache.org/repos/asf/phoenix/blob/6d147896/phoenix-core/src/it/java/org/apache/phoenix/end2end/DynamicFamilyIT.java
----------------------------------------------------------------------
diff --git a/phoenix-core/src/it/java/org/apache/phoenix/end2end/DynamicFamilyIT.java b/phoenix-core/src/it/java/org/apache/phoenix/end2end/DynamicFamilyIT.java
index 370cfab..52e2a64 100644
--- a/phoenix-core/src/it/java/org/apache/phoenix/end2end/DynamicFamilyIT.java
+++ b/phoenix-core/src/it/java/org/apache/phoenix/end2end/DynamicFamilyIT.java
@@ -62,8 +62,8 @@ import org.junit.Test;
         value="RV_RETURN_VALUE_IGNORED", 
         justification="Designed to ignore.")
 
-public class DynamicFamilyIT extends BaseHBaseManagedTimeIT {
-    private static final String WEB_STATS = "WEB_STATS";
+public class DynamicFamilyIT extends BaseHBaseManagedTimeTableReuseIT {
+    private static final String WEB_STATS = generateRandomString();
     private static final String WEB_STATS_SCHEMA_NAME = "";
     private static final byte[] A_CF = Bytes.toBytes(SchemaUtil.normalizeIdentifier("A"));
     private static final byte[] B_CF = Bytes.toBytes(SchemaUtil.normalizeIdentifier("B"));
@@ -176,7 +176,7 @@ public class DynamicFamilyIT extends BaseHBaseManagedTimeIT {
      */
     // FIXME @Test
     public void testGetAllDynColsInFamily() throws Exception {
-        String query = "SELECT A.* FROM WEB_STATS WHERE entry='entry1'";
+        String query = "SELECT A.* FROM " + WEB_STATS + " WHERE entry='entry1'";
         String url = getUrl() + ";";
         Properties props = PropertiesUtil.deepCopy(TEST_PROPERTIES);
         Connection conn = DriverManager.getConnection(url, props);
@@ -204,7 +204,7 @@ public class DynamicFamilyIT extends BaseHBaseManagedTimeIT {
      */
     // FIXME @Test
     public void testGetAllDynCols() throws Exception {
-        String query = "SELECT * FROM WEB_STATS WHERE entry='entry1'";
+        String query = "SELECT * FROM " + WEB_STATS + "WHERE entry='entry1'";
         String url = getUrl() + ";";
         Properties props = PropertiesUtil.deepCopy(TEST_PROPERTIES);
         Connection conn = DriverManager.getConnection(url, props);
@@ -229,7 +229,7 @@ public class DynamicFamilyIT extends BaseHBaseManagedTimeIT {
      */
     @Test
     public void testGetCaseInsensitiveDynCol() throws Exception {
-        String query = "SELECT B.* FROM WEB_STATS(" + 
+        String query = "SELECT B.* FROM "+ WEB_STATS+ "(" +
                 "B." + LAST_LOGIN_TIME_PREFIX + USER_ID2 + " TIME," + 
                 "B." + LAST_LOGIN_TIME_PREFIX + USER_ID3 + " TIME) WHERE entry='entry2'";
         String url = getUrl() + ";";
@@ -254,7 +254,7 @@ public class DynamicFamilyIT extends BaseHBaseManagedTimeIT {
      */
     // FIXME @Test
     public void testGetCaseSensitiveDynCol() throws Exception {
-        String query = "SELECT B.* FROM WEB_STATS(" + 
+        String query = "SELECT B.* FROM "+WEB_STATS +"(" +
                 "B.\"" + LAST_LOGIN_TIME_PREFIX + USER_ID2 + "\"" + " TIME," + 
                 "B.\"" + LAST_LOGIN_TIME_PREFIX + USER_ID3 + "\"" + " TIME) WHERE entry='entry2'";
         String url = getUrl() + ";";
@@ -281,7 +281,7 @@ public class DynamicFamilyIT extends BaseHBaseManagedTimeIT {
      */
     // FIXME @Test
     public void testProjectStaticAndDynamic() throws Exception {
-        String query = "SELECT ENTRY, A.DUMMY, B.DUMMY, A.*,B.* FROM WEB_STATS WHERE entry='entry3'";
+        String query = "SELECT ENTRY, A.DUMMY, B.DUMMY, A.*,B.* FROM "+ WEB_STATS +" WHERE entry='entry3'";
         String url = getUrl() + ";";
         Properties props = PropertiesUtil.deepCopy(TEST_PROPERTIES);
         Connection conn = DriverManager.getConnection(url, props);
@@ -308,7 +308,7 @@ public class DynamicFamilyIT extends BaseHBaseManagedTimeIT {
 
     @Test(expected = ColumnFamilyNotFoundException.class)
     public void testDynamicFamilyException() throws Exception {
-        String query = "SELECT C.* FROM WEB_STATS";
+        String query = "SELECT C.* FROM " + WEB_STATS;
         String url = getUrl() + ";";
         Properties props = PropertiesUtil.deepCopy(TEST_PROPERTIES);
         Connection conn = DriverManager.getConnection(url, props);
@@ -322,7 +322,7 @@ public class DynamicFamilyIT extends BaseHBaseManagedTimeIT {
 
     @Test(expected = PhoenixParserException.class)
     public void testDynamicFamilyFunctionException() throws Exception {
-        String query = "SELECT count(C.*) FROM WEB_STATS";
+        String query = "SELECT count(C.*) FROM " + WEB_STATS;
         String url = getUrl() + ";";
         Properties props = PropertiesUtil.deepCopy(TEST_PROPERTIES);
         Connection conn = DriverManager.getConnection(url, props);
@@ -339,21 +339,24 @@ public class DynamicFamilyIT extends BaseHBaseManagedTimeIT {
         ResultSet rs;
         Connection conn = DriverManager.getConnection(getUrl());
         conn.setAutoCommit(true);
-        conn.createStatement().execute("CREATE TABLE TESTTABLE (Id VARCHAR NOT NULL PRIMARY KEY, COLFAM1.A VARCHAR, COLFAM1.B VARCHAR, COLFAM2.A VARCHAR )");
-        conn.createStatement().execute("UPSERT INTO TESTTABLE (Id, COLFAM1.A, COLFAM1.B, COLFAM2.A) values ('row-2', '100', '200', '300')");
-        rs = conn.createStatement().executeQuery("SELECT COLFAM1.A,COLFAM1.B FROM TESTTABLE");
+        String tableName = generateRandomString();
+        conn.createStatement().execute("CREATE TABLE " + tableName
+            + " (Id VARCHAR NOT NULL PRIMARY KEY, COLFAM1.A VARCHAR, COLFAM1.B VARCHAR, COLFAM2.A VARCHAR )");
+        conn.createStatement().execute("UPSERT INTO " + tableName
+            + " (Id, COLFAM1.A, COLFAM1.B, COLFAM2.A) values ('row-2', '100', '200', '300')");
+        rs = conn.createStatement().executeQuery("SELECT COLFAM1.A,COLFAM1.B FROM " + tableName);
         assertTrue(rs.next());
         assertEquals("100",rs.getString(1));
         assertEquals("200",rs.getString(2));
         assertFalse(rs.next());
 
-        rs = conn.createStatement().executeQuery("SELECT COLFAM1.* FROM TESTTABLE");
+        rs = conn.createStatement().executeQuery("SELECT COLFAM1.* FROM " + tableName);
         assertTrue(rs.next());
         assertEquals("100",rs.getString(1));
         assertEquals("200",rs.getString(2));
         assertFalse(rs.next());
 
-        rs = conn.createStatement().executeQuery("SELECT COLFAM1.*,COLFAM1.A FROM TESTTABLE");
+        rs = conn.createStatement().executeQuery("SELECT COLFAM1.*,COLFAM1.A FROM " + tableName);
         assertTrue(rs.next());
         assertEquals("100",rs.getString(1));
         assertEquals("200",rs.getString(2));

http://git-wip-us.apache.org/repos/asf/phoenix/blob/6d147896/phoenix-core/src/it/java/org/apache/phoenix/end2end/FirstValueFunctionIT.java
----------------------------------------------------------------------
diff --git a/phoenix-core/src/it/java/org/apache/phoenix/end2end/FirstValueFunctionIT.java b/phoenix-core/src/it/java/org/apache/phoenix/end2end/FirstValueFunctionIT.java
index 6c080d3..7978291 100644
--- a/phoenix-core/src/it/java/org/apache/phoenix/end2end/FirstValueFunctionIT.java
+++ b/phoenix-core/src/it/java/org/apache/phoenix/end2end/FirstValueFunctionIT.java
@@ -27,26 +27,33 @@ import java.sql.ResultSet;
 
 import org.junit.Test;
 
-public class FirstValueFunctionIT extends BaseHBaseManagedTimeIT {
+public class FirstValueFunctionIT extends BaseHBaseManagedTimeTableReuseIT {
 
     @Test
     public void signedLongAsBigInt() throws Exception {
         Connection conn = DriverManager.getConnection(getUrl());
 
-        String ddl = "CREATE TABLE IF NOT EXISTS first_value_table "
+        String tableName = generateRandomString();
+        String ddl = "CREATE TABLE IF NOT EXISTS " + tableName + " "
                 + "(id INTEGER NOT NULL PRIMARY KEY, page_id UNSIGNED_LONG,"
                 + " date BIGINT, \"value\" BIGINT)";
         conn.createStatement().execute(ddl);
 
-        conn.createStatement().execute("UPSERT INTO first_value_table (id, page_id, date, \"value\") VALUES (1, 8, 1, 3)");
-        conn.createStatement().execute("UPSERT INTO first_value_table (id, page_id, date, \"value\") VALUES (2, 8, 2, 7)");
-        conn.createStatement().execute("UPSERT INTO first_value_table (id, page_id, date, \"value\") VALUES (3, 8, 3, 9)");
-        conn.createStatement().execute("UPSERT INTO first_value_table (id, page_id, date, \"value\") VALUES (5, 8, 5, 158)");
-        conn.createStatement().execute("UPSERT INTO first_value_table (id, page_id, date, \"value\") VALUES (4, 8, 4, 5)");
+        conn.createStatement().execute(
+            "UPSERT INTO " + tableName + " (id, page_id, date, \"value\") VALUES (1, 8, 1, 3)");
+        conn.createStatement().execute(
+            "UPSERT INTO " + tableName + " (id, page_id, date, \"value\") VALUES (2, 8, 2, 7)");
+        conn.createStatement().execute(
+            "UPSERT INTO " + tableName + " (id, page_id, date, \"value\") VALUES (3, 8, 3, 9)");
+        conn.createStatement().execute(
+            "UPSERT INTO " + tableName + " (id, page_id, date, \"value\") VALUES (5, 8, 5, 158)");
+        conn.createStatement().execute(
+            "UPSERT INTO " + tableName + " (id, page_id, date, \"value\") VALUES (4, 8, 4, 5)");
         conn.commit();
 
         ResultSet rs = conn.createStatement().executeQuery(
-                "SELECT FIRST_VALUE(\"value\") WITHIN GROUP (ORDER BY date ASC) FROM first_value_table GROUP BY page_id");
+            "SELECT FIRST_VALUE(\"value\") WITHIN GROUP (ORDER BY date ASC) FROM " + tableName
+                + " GROUP BY page_id");
 
         assertTrue(rs.next());
         assertEquals(rs.getLong(1), 3);
@@ -57,20 +64,27 @@ public class FirstValueFunctionIT extends BaseHBaseManagedTimeIT {
     public void testSortOrderInSortCol() throws Exception {
         Connection conn = DriverManager.getConnection(getUrl());
 
-        String ddl = "CREATE TABLE IF NOT EXISTS first_value_table "
+        String tableName = generateRandomString();
+        String ddl = "CREATE TABLE IF NOT EXISTS " + tableName + " "
                 + "(id INTEGER NOT NULL, page_id UNSIGNED_LONG,"
                 + " dates BIGINT NOT NULL, \"value\" BIGINT CONSTRAINT pk PRIMARY KEY (id, dates DESC))";
         conn.createStatement().execute(ddl);
 
-        conn.createStatement().execute("UPSERT INTO first_value_table (id, page_id, dates, \"value\") VALUES (1, 8, 1, 3)");
-        conn.createStatement().execute("UPSERT INTO first_value_table (id, page_id, dates, \"value\") VALUES (2, 8, 2, 7)");
-        conn.createStatement().execute("UPSERT INTO first_value_table (id, page_id, dates, \"value\") VALUES (3, 8, 3, 9)");
-        conn.createStatement().execute("UPSERT INTO first_value_table (id, page_id, dates, \"value\") VALUES (5, 8, 5, 158)");
-        conn.createStatement().execute("UPSERT INTO first_value_table (id, page_id, dates, \"value\") VALUES (4, 8, 4, 5)");
+        conn.createStatement().execute(
+            "UPSERT INTO " + tableName + " (id, page_id, dates, \"value\") VALUES (1, 8, 1, 3)");
+        conn.createStatement().execute(
+            "UPSERT INTO " + tableName + " (id, page_id, dates, \"value\") VALUES (2, 8, 2, 7)");
+        conn.createStatement().execute(
+            "UPSERT INTO " + tableName + " (id, page_id, dates, \"value\") VALUES (3, 8, 3, 9)");
+        conn.createStatement().execute(
+            "UPSERT INTO " + tableName + " (id, page_id, dates, \"value\") VALUES (5, 8, 5, 158)");
+        conn.createStatement().execute(
+            "UPSERT INTO " + tableName + " (id, page_id, dates, \"value\") VALUES (4, 8, 4, 5)");
         conn.commit();
 
         ResultSet rs = conn.createStatement().executeQuery(
-                "SELECT FIRST_VALUE(\"value\") WITHIN GROUP (ORDER BY dates ASC) FROM first_value_table GROUP BY page_id");
+            "SELECT FIRST_VALUE(\"value\") WITHIN GROUP (ORDER BY dates ASC) FROM " + tableName
+                + " GROUP BY page_id");
 
         assertTrue(rs.next());
         assertEquals(rs.getLong(1), 3);
@@ -81,20 +95,27 @@ public class FirstValueFunctionIT extends BaseHBaseManagedTimeIT {
     public void testSortOrderInDataCol() throws Exception {
         Connection conn = DriverManager.getConnection(getUrl());
 
-        String ddl = "CREATE TABLE IF NOT EXISTS first_value_table "
+        String tableName = generateRandomString();
+        String ddl = "CREATE TABLE IF NOT EXISTS " + tableName + " "
                 + "(id INTEGER NOT NULL, page_id UNSIGNED_LONG,"
                 + " dates BIGINT NOT NULL, \"value\" BIGINT NOT NULL CONSTRAINT pk PRIMARY KEY (id, dates, \"value\" DESC))";
         conn.createStatement().execute(ddl);
 
-        conn.createStatement().execute("UPSERT INTO first_value_table (id, page_id, dates, \"value\") VALUES (1, 8, 1, 3)");
-        conn.createStatement().execute("UPSERT INTO first_value_table (id, page_id, dates, \"value\") VALUES (2, 8, 2, 7)");
-        conn.createStatement().execute("UPSERT INTO first_value_table (id, page_id, dates, \"value\") VALUES (3, 8, 3, 9)");
-        conn.createStatement().execute("UPSERT INTO first_value_table (id, page_id, dates, \"value\") VALUES (5, 8, 5, 158)");
-        conn.createStatement().execute("UPSERT INTO first_value_table (id, page_id, dates, \"value\") VALUES (4, 8, 4, 5)");
+        conn.createStatement().execute(
+            "UPSERT INTO " + tableName + " (id, page_id, dates, \"value\") VALUES (1, 8, 1, 3)");
+        conn.createStatement().execute(
+            "UPSERT INTO " + tableName + " (id, page_id, dates, \"value\") VALUES (2, 8, 2, 7)");
+        conn.createStatement().execute(
+            "UPSERT INTO " + tableName + " (id, page_id, dates, \"value\") VALUES (3, 8, 3, 9)");
+        conn.createStatement().execute(
+            "UPSERT INTO " + tableName + " (id, page_id, dates, \"value\") VALUES (5, 8, 5, 158)");
+        conn.createStatement().execute(
+            "UPSERT INTO " + tableName + " (id, page_id, dates, \"value\") VALUES (4, 8, 4, 5)");
         conn.commit();
 
         ResultSet rs = conn.createStatement().executeQuery(
-                "SELECT FIRST_VALUE(\"value\") WITHIN GROUP (ORDER BY dates ASC) FROM first_value_table GROUP BY page_id");
+            "SELECT FIRST_VALUE(\"value\") WITHIN GROUP (ORDER BY dates ASC) FROM " + tableName
+                + " GROUP BY page_id");
 
         assertTrue(rs.next());
         assertEquals(rs.getLong(1), 3);
@@ -105,20 +126,27 @@ public class FirstValueFunctionIT extends BaseHBaseManagedTimeIT {
     public void doubleDataType() throws Exception {
         Connection conn = DriverManager.getConnection(getUrl());
 
-        String ddl = "CREATE TABLE IF NOT EXISTS first_value_table "
+        String tableName = generateRandomString();
+        String ddl = "CREATE TABLE IF NOT EXISTS " + tableName + " "
                 + "(id INTEGER NOT NULL PRIMARY KEY, page_id UNSIGNED_LONG, "
                 + "date DOUBLE, \"value\" DOUBLE)";
         conn.createStatement().execute(ddl);
 
-        conn.createStatement().execute("UPSERT INTO first_value_table (id, page_id, date, \"value\") VALUES (1, 8, 1, 300)");
-        conn.createStatement().execute("UPSERT INTO first_value_table (id, page_id, date, \"value\") VALUES (2, 8, 2, 7)");
-        conn.createStatement().execute("UPSERT INTO first_value_table (id, page_id, date, \"value\") VALUES (3, 8, 3, 9)");
-        conn.createStatement().execute("UPSERT INTO first_value_table (id, page_id, date, \"value\") VALUES (5, 8, 4, 2)");
-        conn.createStatement().execute("UPSERT INTO first_value_table (id, page_id, date, \"value\") VALUES (4, 8, 5, 400)");
+        conn.createStatement().execute(
+            "UPSERT INTO " + tableName + " (id, page_id, date, \"value\") VALUES (1, 8, 1, 300)");
+        conn.createStatement().execute(
+            "UPSERT INTO " + tableName + " (id, page_id, date, \"value\") VALUES (2, 8, 2, 7)");
+        conn.createStatement().execute(
+            "UPSERT INTO " + tableName + " (id, page_id, date, \"value\") VALUES (3, 8, 3, 9)");
+        conn.createStatement().execute(
+            "UPSERT INTO " + tableName + " (id, page_id, date, \"value\") VALUES (5, 8, 4, 2)");
+        conn.createStatement().execute(
+            "UPSERT INTO " + tableName + " (id, page_id, date, \"value\") VALUES (4, 8, 5, 400)");
         conn.commit();
 
         ResultSet rs = conn.createStatement().executeQuery(
-                "SELECT FIRST_VALUE(\"value\") WITHIN GROUP (ORDER BY date ASC) FROM first_value_table GROUP BY page_id");
+            "SELECT FIRST_VALUE(\"value\") WITHIN GROUP (ORDER BY date ASC) FROM " + tableName
+                + " GROUP BY page_id");
 
         assertTrue(rs.next());
         assertEquals("doubles", rs.getDouble(1), 300, 0.00001);
@@ -129,20 +157,27 @@ public class FirstValueFunctionIT extends BaseHBaseManagedTimeIT {
     public void varcharFixedLenghtDatatype() throws Exception {
         Connection conn = DriverManager.getConnection(getUrl());
 
-        String ddl = "CREATE TABLE IF NOT EXISTS first_value_table "
+        String table_name = generateRandomString();
+        String ddl = "CREATE TABLE IF NOT EXISTS " + table_name + " "
                 + "(id INTEGER NOT NULL PRIMARY KEY, page_id UNSIGNED_LONG, "
                 + "date VARCHAR(3), \"value\" VARCHAR(3))";
         conn.createStatement().execute(ddl);
 
-        conn.createStatement().execute("UPSERT INTO first_value_table (id, page_id, date, \"value\") VALUES (1, 8, '1', '3')");
-        conn.createStatement().execute("UPSERT INTO first_value_table (id, page_id, date, \"value\") VALUES (2, 8, '2', '7')");
-        conn.createStatement().execute("UPSERT INTO first_value_table (id, page_id, date, \"value\") VALUES (3, 8, '3', '9')");
-        conn.createStatement().execute("UPSERT INTO first_value_table (id, page_id, date, \"value\") VALUES (5, 8, '4', '2')");
-        conn.createStatement().execute("UPSERT INTO first_value_table (id, page_id, date, \"value\") VALUES (4, 8, '5', '4')");
+        conn.createStatement().execute(
+            "UPSERT INTO " + table_name + " (id, page_id, date, \"value\") VALUES (1, 8, '1', '3')");
+        conn.createStatement().execute(
+            "UPSERT INTO " + table_name + " (id, page_id, date, \"value\") VALUES (2, 8, '2', '7')");
+        conn.createStatement().execute(
+            "UPSERT INTO " + table_name + " (id, page_id, date, \"value\") VALUES (3, 8, '3', '9')");
+        conn.createStatement().execute(
+            "UPSERT INTO " + table_name + " (id, page_id, date, \"value\") VALUES (5, 8, '4', '2')");
+        conn.createStatement().execute(
+            "UPSERT INTO " + table_name + " (id, page_id, date, \"value\") VALUES (4, 8, '5', '4')");
         conn.commit();
 
         ResultSet rs = conn.createStatement().executeQuery(
-                "SELECT FIRST_VALUE(\"value\") WITHIN GROUP (ORDER BY date ASC) FROM first_value_table GROUP BY page_id");
+            "SELECT FIRST_VALUE(\"value\") WITHIN GROUP (ORDER BY date ASC) FROM " + table_name
+                + " GROUP BY page_id");
 
         assertTrue(rs.next());
         assertEquals(rs.getString(1), "3");
@@ -153,20 +188,27 @@ public class FirstValueFunctionIT extends BaseHBaseManagedTimeIT {
     public void floatDataType() throws Exception {
         Connection conn = DriverManager.getConnection(getUrl());
 
-        String ddl = "CREATE TABLE IF NOT EXISTS first_value_table "
+        String tableName = generateRandomString();
+        String ddl = "CREATE TABLE IF NOT EXISTS " + tableName + " "
                 + "(id INTEGER NOT NULL PRIMARY KEY, page_id UNSIGNED_LONG,"
                 + " date FLOAT, \"value\" FLOAT)";
         conn.createStatement().execute(ddl);
 
-        conn.createStatement().execute("UPSERT INTO first_value_table (id, page_id, date, \"value\") VALUES (1, 8, 1, 300)");
-        conn.createStatement().execute("UPSERT INTO first_value_table (id, page_id, date, \"value\") VALUES (2, 8, 2, 7)");
-        conn.createStatement().execute("UPSERT INTO first_value_table (id, page_id, date, \"value\") VALUES (3, 8, 3, 9)");
-        conn.createStatement().execute("UPSERT INTO first_value_table (id, page_id, date, \"value\") VALUES (5, 8, 4, 2)");
-        conn.createStatement().execute("UPSERT INTO first_value_table (id, page_id, date, \"value\") VALUES (4, 8, 5, 400)");
+        conn.createStatement().execute(
+            "UPSERT INTO " + tableName + " (id, page_id, date, \"value\") VALUES (1, 8, 1, 300)");
+        conn.createStatement().execute(
+            "UPSERT INTO " + tableName + " (id, page_id, date, \"value\") VALUES (2, 8, 2, 7)");
+        conn.createStatement().execute(
+            "UPSERT INTO " + tableName + " (id, page_id, date, \"value\") VALUES (3, 8, 3, 9)");
+        conn.createStatement().execute(
+            "UPSERT INTO " + tableName + " (id, page_id, date, \"value\") VALUES (5, 8, 4, 2)");
+        conn.createStatement().execute(
+            "UPSERT INTO " + tableName + " (id, page_id, date, \"value\") VALUES (4, 8, 5, 400)");
         conn.commit();
 
         ResultSet rs = conn.createStatement().executeQuery(
-                "SELECT FIRST_VALUE(\"value\") WITHIN GROUP (ORDER BY date ASC) FROM first_value_table GROUP BY page_id");
+            "SELECT FIRST_VALUE(\"value\") WITHIN GROUP (ORDER BY date ASC) FROM " + tableName
+                + " GROUP BY page_id");
 
         assertTrue(rs.next());
         assertEquals(rs.getFloat(1), 300.0, 0.000001);
@@ -178,20 +220,22 @@ public class FirstValueFunctionIT extends BaseHBaseManagedTimeIT {
     public void allColumnsNull() throws Exception {
         Connection conn = DriverManager.getConnection(getUrl());
 
-        String ddl = "CREATE TABLE IF NOT EXISTS first_value_table "
+        String tableName = generateRandomString();
+        String ddl = "CREATE TABLE IF NOT EXISTS " + tableName + " "
                 + "(id INTEGER NOT NULL PRIMARY KEY, page_id UNSIGNED_LONG,"
                 + " date FLOAT, \"value\" FLOAT)";
         conn.createStatement().execute(ddl);
 
-        conn.createStatement().execute("UPSERT INTO first_value_table (id, page_id) VALUES (1, 8)");
-        conn.createStatement().execute("UPSERT INTO first_value_table (id, page_id) VALUES (2, 8)");
-        conn.createStatement().execute("UPSERT INTO first_value_table (id, page_id) VALUES (3, 8)");
-        conn.createStatement().execute("UPSERT INTO first_value_table (id, page_id) VALUES (5, 8)");
-        conn.createStatement().execute("UPSERT INTO first_value_table (id, page_id) VALUES (4, 8)");
+        conn.createStatement().execute("UPSERT INTO " + tableName + " (id, page_id) VALUES (1, 8)");
+        conn.createStatement().execute("UPSERT INTO " + tableName + " (id, page_id) VALUES (2, 8)");
+        conn.createStatement().execute("UPSERT INTO " + tableName + " (id, page_id) VALUES (3, 8)");
+        conn.createStatement().execute("UPSERT INTO " + tableName + " (id, page_id) VALUES (5, 8)");
+        conn.createStatement().execute("UPSERT INTO " + tableName + " (id, page_id) VALUES (4, 8)");
         conn.commit();
 
         ResultSet rs = conn.createStatement().executeQuery(
-                "SELECT FIRST_VALUE(\"value\") WITHIN GROUP (ORDER BY date ASC) FROM first_value_table GROUP BY page_id");
+            "SELECT FIRST_VALUE(\"value\") WITHIN GROUP (ORDER BY date ASC) FROM " + tableName
+                + " GROUP BY page_id");
 
         assertTrue(rs.next());
         byte[] nothing = rs.getBytes(1);

http://git-wip-us.apache.org/repos/asf/phoenix/blob/6d147896/phoenix-core/src/it/java/org/apache/phoenix/end2end/GetSetByteBitFunctionEnd2EndIT.java
----------------------------------------------------------------------
diff --git a/phoenix-core/src/it/java/org/apache/phoenix/end2end/GetSetByteBitFunctionEnd2EndIT.java b/phoenix-core/src/it/java/org/apache/phoenix/end2end/GetSetByteBitFunctionEnd2EndIT.java
index a7f7ca3..734f2c4 100644
--- a/phoenix-core/src/it/java/org/apache/phoenix/end2end/GetSetByteBitFunctionEnd2EndIT.java
+++ b/phoenix-core/src/it/java/org/apache/phoenix/end2end/GetSetByteBitFunctionEnd2EndIT.java
@@ -32,24 +32,27 @@ import org.apache.phoenix.expression.function.GetByteFunction;
 import org.apache.phoenix.expression.function.SetBitFunction;
 import org.apache.phoenix.expression.function.SetByteFunction;
 import org.junit.Before;
+import org.junit.BeforeClass;
 import org.junit.Test;
 
 /**
  * End to end tests for {@link GetByteFunction} {@link SetByteFunction} {@link GetBitFunction}
  * {@link SetBitFunction}
  */
-public class GetSetByteBitFunctionEnd2EndIT extends BaseHBaseManagedTimeIT {
+public class GetSetByteBitFunctionEnd2EndIT extends BaseHBaseManagedTimeTableReuseIT {
 
     private static final String KEY = "key";
+    private static final String TABLE_NAME = generateRandomString();
 
-    @Before
-    public void initTable() throws Exception {
+    @BeforeClass
+    public static void initTable() throws Exception {
         Connection conn = null;
         PreparedStatement stmt = null;
         try {
             conn = DriverManager.getConnection(getUrl());
             String ddl;
-            ddl = "CREATE TABLE ta (k VARCHAR NOT NULL PRIMARY KEY, b BINARY(4), vb VARBINARY)";
+            ddl = "CREATE TABLE " + TABLE_NAME
+                + " (k VARCHAR NOT NULL PRIMARY KEY, b BINARY(4), vb VARBINARY)";
             conn.createStatement().execute(ddl);
             conn.commit();
         } finally {
@@ -60,7 +63,8 @@ public class GetSetByteBitFunctionEnd2EndIT extends BaseHBaseManagedTimeIT {
     @Test
     public void test() throws Exception {
         Connection conn = DriverManager.getConnection(getUrl());
-        PreparedStatement stmt = conn.prepareStatement("UPSERT INTO ta VALUES (?, ?, ?)");
+        PreparedStatement stmt = conn.prepareStatement(
+            "UPSERT INTO " + TABLE_NAME + " VALUES (?, ?, ?)");
         stmt.setString(1, KEY);
         stmt.setBytes(2, new byte[] { 1, 2, 3, 4 });
         stmt.setBytes(3, new byte[] { 1, 2, 3, 4 });
@@ -68,30 +72,30 @@ public class GetSetByteBitFunctionEnd2EndIT extends BaseHBaseManagedTimeIT {
         conn.commit();
         ResultSet rs =
                 conn.createStatement()
-                        .executeQuery(
-                            "SELECT GET_BYTE(vb, 1), GET_BYTE(b, 1) FROM ta WHERE GET_BYTE(vb, 1)=2 and GET_BYTE(b, 1)=2");
+                        .executeQuery("SELECT GET_BYTE(vb, 1), GET_BYTE(b, 1) FROM " + TABLE_NAME
+                            + " WHERE GET_BYTE(vb, 1)=2 and GET_BYTE(b, 1)=2");
         assertTrue(rs.next());
         assertEquals(2, rs.getInt(1));
         assertEquals(2, rs.getInt(2));
         assertTrue(!rs.next());
         rs =
                 conn.createStatement()
-                        .executeQuery(
-                            "SELECT GET_BIT(b, 0),GET_BIT(b, 9) FROM ta WHERE GET_BIT(vb, 0)=1 and GET_BIT(vb, 9)=1");
+                        .executeQuery("SELECT GET_BIT(b, 0),GET_BIT(b, 9) FROM " + TABLE_NAME
+                            + " WHERE GET_BIT(vb, 0)=1 and GET_BIT(vb, 9)=1");
         assertTrue(rs.next());
         assertEquals(1, rs.getInt(1));
         assertEquals(1, rs.getInt(2));
         assertTrue(!rs.next());
         rs =
                 conn.createStatement().executeQuery(
-                    "SELECT SET_BYTE(vb, 1, 1), SET_BYTE(b, 1, 1) FROM ta");
+                    "SELECT SET_BYTE(vb, 1, 1), SET_BYTE(b, 1, 1) FROM " + TABLE_NAME);
         assertTrue(rs.next());
         assertArrayEquals(new byte[] { 1, 1, 3, 4 }, rs.getBytes(1));
         assertArrayEquals(new byte[] { 1, 1, 3, 4 }, rs.getBytes(2));
         assertTrue(!rs.next());
         rs =
                 conn.createStatement().executeQuery(
-                    "SELECT SET_BIT(vb, 8, 1), SET_BIT(b, 8, 1) FROM ta");
+                    "SELECT SET_BIT(vb, 8, 1), SET_BIT(b, 8, 1) FROM " + TABLE_NAME);
         assertTrue(rs.next());
         assertArrayEquals(new byte[] { 1, 3, 3, 4 }, rs.getBytes(1));
         assertArrayEquals(new byte[] { 1, 3, 3, 4 }, rs.getBytes(2));

http://git-wip-us.apache.org/repos/asf/phoenix/blob/6d147896/phoenix-core/src/it/java/org/apache/phoenix/end2end/LikeExpressionIT.java
----------------------------------------------------------------------
diff --git a/phoenix-core/src/it/java/org/apache/phoenix/end2end/LikeExpressionIT.java b/phoenix-core/src/it/java/org/apache/phoenix/end2end/LikeExpressionIT.java
index ecd1e8c..00a6a64 100644
--- a/phoenix-core/src/it/java/org/apache/phoenix/end2end/LikeExpressionIT.java
+++ b/phoenix-core/src/it/java/org/apache/phoenix/end2end/LikeExpressionIT.java
@@ -30,17 +30,21 @@ import java.sql.SQLException;
 import java.sql.Statement;
 
 import org.junit.Before;
+import org.junit.BeforeClass;
 import org.junit.Test;
 
 public class LikeExpressionIT extends BaseHBaseManagedTimeIT {
-    @Before
-    public void doBeforeTestSetup() throws Exception {
+
+    private static final String TEST_TABLE = generateRandomString();
+
+    @BeforeClass
+    public static void doBeforeTestSetup() throws Exception {
         Connection conn = null;
         PreparedStatement stmt = null;
         try {
             conn = DriverManager.getConnection(getUrl());
             String ddl;
-            ddl = "CREATE TABLE testTable (k VARCHAR NOT NULL PRIMARY KEY, i INTEGER)";
+            ddl = "CREATE TABLE " + TEST_TABLE + " (k VARCHAR NOT NULL PRIMARY KEY, i INTEGER)";
             conn.createStatement().execute(ddl);
             conn.commit();
         } finally {
@@ -54,8 +58,9 @@ public class LikeExpressionIT extends BaseHBaseManagedTimeIT {
         insertRow(conn, "321n7-App-2-", 32);
     }
 
-    private void insertRow(Connection conn, String k, int i) throws SQLException {
-        PreparedStatement stmt = conn.prepareStatement("UPSERT INTO testTable VALUES (?, ?)");
+    private static void insertRow(Connection conn, String k, int i) throws SQLException {
+        PreparedStatement stmt = conn.prepareStatement(
+            "UPSERT INTO " + TEST_TABLE + " VALUES (?, ?)");
         stmt.setString(1, k);
         stmt.setInt(2, i);
         stmt.executeUpdate();
@@ -64,7 +69,7 @@ public class LikeExpressionIT extends BaseHBaseManagedTimeIT {
 
     private void testLikeExpression(Connection conn, String likeStr, int numResult, int expectedSum)
             throws Exception {
-        String cmd = "select k, i from testTable where k like '" + likeStr + "'";
+        String cmd = "select k, i from " + TEST_TABLE + " where k like '" + likeStr + "'";
         Statement stmt = conn.createStatement();
         ResultSet rs = stmt.executeQuery(cmd);
         int sum = 0;
@@ -89,15 +94,18 @@ public class LikeExpressionIT extends BaseHBaseManagedTimeIT {
     @Test
     public void testLikeEverythingExpression() throws Exception {
         Connection conn = DriverManager.getConnection(getUrl());
-        String ddl = "CREATE TABLE t (k1 VARCHAR, k2 VARCHAR, CONSTRAINT pk PRIMARY KEY (k1,k2))";
+        String table = generateRandomString();
+        String ddl = "CREATE TABLE " + table
+            + " (k1 VARCHAR, k2 VARCHAR, CONSTRAINT pk PRIMARY KEY (k1,k2))";
         conn.createStatement().execute(ddl);
-        conn.createStatement().execute("UPSERT INTO t VALUES('aa','bb')");
-        conn.createStatement().execute("UPSERT INTO t VALUES('ab','bc')");
-        conn.createStatement().execute("UPSERT INTO t VALUES(null,'cc')");
-        conn.createStatement().execute("UPSERT INTO t VALUES('dd',null)");
+        conn.createStatement().execute("UPSERT INTO " + table + " VALUES('aa','bb')");
+        conn.createStatement().execute("UPSERT INTO " + table + " VALUES('ab','bc')");
+        conn.createStatement().execute("UPSERT INTO " + table + " VALUES(null,'cc')");
+        conn.createStatement().execute("UPSERT INTO " + table + " VALUES('dd',null)");
         conn.commit();
         
-        ResultSet rs = conn.createStatement().executeQuery("SELECT * FROM t WHERE k1 LIKE '%'");
+        ResultSet rs = conn.createStatement().executeQuery(
+            "SELECT * FROM " + table + " WHERE k1 LIKE '%'");
         assertTrue(rs.next());
         assertEquals("aa", rs.getString(1));
         assertEquals("bb", rs.getString(2));
@@ -109,7 +117,7 @@ public class LikeExpressionIT extends BaseHBaseManagedTimeIT {
         assertEquals(null, rs.getString(2));
         assertFalse(rs.next());
         
-        rs = conn.createStatement().executeQuery("SELECT * FROM t WHERE k2 LIKE '%'");
+        rs = conn.createStatement().executeQuery("SELECT * FROM " + table + " WHERE k2 LIKE '%'");
         assertTrue(rs.next());
         assertEquals(null, rs.getString(1));
         assertEquals("cc", rs.getString(2));

http://git-wip-us.apache.org/repos/asf/phoenix/blob/6d147896/phoenix-core/src/it/java/org/apache/phoenix/end2end/MD5FunctionIT.java
----------------------------------------------------------------------
diff --git a/phoenix-core/src/it/java/org/apache/phoenix/end2end/MD5FunctionIT.java b/phoenix-core/src/it/java/org/apache/phoenix/end2end/MD5FunctionIT.java
index a6107df..0b63aa8 100644
--- a/phoenix-core/src/it/java/org/apache/phoenix/end2end/MD5FunctionIT.java
+++ b/phoenix-core/src/it/java/org/apache/phoenix/end2end/MD5FunctionIT.java
@@ -30,20 +30,22 @@ import java.sql.ResultSet;
 import org.junit.Test;
 
 
-public class MD5FunctionIT extends BaseHBaseManagedTimeIT {
+public class MD5FunctionIT extends BaseHBaseManagedTimeTableReuseIT {
   
   @Test
   public void testRetrieve() throws Exception {
       String testString = "mwalsh";
       
       Connection conn = DriverManager.getConnection(getUrl());
-      String ddl = "CREATE TABLE IF NOT EXISTS MD5_RETRIEVE_TEST (pk VARCHAR NOT NULL PRIMARY KEY)";
+      String md5_retrieve_test = generateRandomString();
+      String ddl =
+          "CREATE TABLE IF NOT EXISTS " + md5_retrieve_test + " (pk VARCHAR NOT NULL PRIMARY KEY)";
       conn.createStatement().execute(ddl);
-      String dml = String.format("UPSERT INTO MD5_RETRIEVE_TEST VALUES('%s')", testString);
+      String dml = String.format("UPSERT INTO " + md5_retrieve_test + " VALUES('%s')", testString);
       conn.createStatement().execute(dml);
       conn.commit();
       
-      ResultSet rs = conn.createStatement().executeQuery("SELECT MD5(pk) FROM MD5_RETRIEVE_TEST");
+      ResultSet rs = conn.createStatement().executeQuery("SELECT MD5(pk) FROM " + md5_retrieve_test);
       assertTrue(rs.next());
       byte[] first = MessageDigest.getInstance("MD5").digest(testString.getBytes());
       byte[] second = rs.getBytes(1);
@@ -56,13 +58,16 @@ public class MD5FunctionIT extends BaseHBaseManagedTimeIT {
       String testString = "FOOBAR";
       
       Connection conn = DriverManager.getConnection(getUrl());
-      String ddl = "CREATE TABLE IF NOT EXISTS MD5_RETRIEVE_TEST (k1 CHAR(3) NOT NULL, k2 CHAR(3) NOT NULL, CONSTRAINT PK PRIMARY KEY (K1,K2))";
+      String md5_retrieve_test = generateRandomString();
+      String ddl = "CREATE TABLE IF NOT EXISTS " + md5_retrieve_test
+          + " (k1 CHAR(3) NOT NULL, k2 CHAR(3) NOT NULL, CONSTRAINT PK PRIMARY KEY (K1,K2))";
       conn.createStatement().execute(ddl);
-      String dml = "UPSERT INTO MD5_RETRIEVE_TEST VALUES('FOO','BAR')";
+      String dml = "UPSERT INTO " + md5_retrieve_test + " VALUES('FOO','BAR')";
       conn.createStatement().execute(dml);
       conn.commit();
       
-      ResultSet rs = conn.createStatement().executeQuery("SELECT MD5((K1,K2)) FROM MD5_RETRIEVE_TEST");
+      ResultSet rs = conn.createStatement().executeQuery(
+          "SELECT MD5((K1,K2)) FROM " + md5_retrieve_test);
       assertTrue(rs.next());
       byte[] first = MessageDigest.getInstance("MD5").digest(testString.getBytes());
       byte[] second = rs.getBytes(1);
@@ -76,20 +81,23 @@ public class MD5FunctionIT extends BaseHBaseManagedTimeIT {
       String testString2 = "mwalsh2";
       
       Connection conn = DriverManager.getConnection(getUrl());
-      String ddl = "CREATE TABLE IF NOT EXISTS MD5_UPSERT_TEST (k1 binary(16) NOT NULL,k2 binary(16) NOT NULL  CONSTRAINT pk PRIMARY KEY (k1, k2))";
+      String md5_upsert_test = generateRandomString();
+      String ddl = "CREATE TABLE IF NOT EXISTS " + md5_upsert_test
+          + " (k1 binary(16) NOT NULL,k2 binary(16) NOT NULL  CONSTRAINT pk PRIMARY KEY (k1, k2))";
       conn.createStatement().execute(ddl);
-      String dml = String.format("UPSERT INTO MD5_UPSERT_TEST VALUES(md5('%s'),md5('%s'))", testString1, testString2);
+      String dml = String.format("UPSERT INTO " + md5_upsert_test + " VALUES(md5('%s'),md5('%s'))", testString1, testString2);
       conn.createStatement().execute(dml);
       conn.commit();
       
-      ResultSet rs = conn.createStatement().executeQuery("SELECT k1,k2 FROM MD5_UPSERT_TEST");
+      ResultSet rs = conn.createStatement().executeQuery("SELECT k1,k2 FROM " + md5_upsert_test);
       assertTrue(rs.next());
       byte[] pk1 = MessageDigest.getInstance("MD5").digest(testString1.getBytes());
       byte[] pk2 = MessageDigest.getInstance("MD5").digest(testString2.getBytes());
       assertArrayEquals(pk1, rs.getBytes(1));
       assertArrayEquals(pk2, rs.getBytes(2));
       assertFalse(rs.next());
-      PreparedStatement stmt = conn.prepareStatement("SELECT k1,k2 FROM MD5_UPSERT_TEST WHERE k1=md5(?)");
+      PreparedStatement stmt = conn.prepareStatement(
+          "SELECT k1,k2 FROM " + md5_upsert_test + " WHERE k1=md5(?)");
       stmt.setString(1, testString1);
       rs = stmt.executeQuery();
       assertTrue(rs.next());

http://git-wip-us.apache.org/repos/asf/phoenix/blob/6d147896/phoenix-core/src/it/java/org/apache/phoenix/end2end/MappingTableDataTypeIT.java
----------------------------------------------------------------------
diff --git a/phoenix-core/src/it/java/org/apache/phoenix/end2end/MappingTableDataTypeIT.java b/phoenix-core/src/it/java/org/apache/phoenix/end2end/MappingTableDataTypeIT.java
index 9617e37..6c51ebd 100644
--- a/phoenix-core/src/it/java/org/apache/phoenix/end2end/MappingTableDataTypeIT.java
+++ b/phoenix-core/src/it/java/org/apache/phoenix/end2end/MappingTableDataTypeIT.java
@@ -52,7 +52,8 @@ import org.junit.Test;
 public class MappingTableDataTypeIT extends BaseHBaseManagedTimeIT {
     @Test
     public void testMappingHbaseTableToPhoenixTable() throws Exception {
-        final TableName tableName = TableName.valueOf("MTEST");
+        String mtest = generateRandomString();
+        final TableName tableName = TableName.valueOf(mtest);
         Properties props = PropertiesUtil.deepCopy(TEST_PROPERTIES);
         PhoenixConnection conn = DriverManager.getConnection(getUrl(), props).unwrap(PhoenixConnection.class);
         
@@ -65,13 +66,13 @@ public class MappingTableDataTypeIT extends BaseHBaseManagedTimeIT {
             descriptor.addFamily(columnDescriptor1);
             descriptor.addFamily(columnDescriptor2);
             admin.createTable(descriptor);
-            HTableInterface t = conn.getQueryServices().getTable(Bytes.toBytes("MTEST"));
+            HTableInterface t = conn.getQueryServices().getTable(Bytes.toBytes(mtest));
             insertData(tableName.getName(), admin, t);
             t.close();
             // create phoenix table that maps to existing HBase table
-            createPhoenixTable();
+            createPhoenixTable(mtest);
             
-            String selectSql = "SELECT * FROM MTEST";
+            String selectSql = "SELECT * FROM " + mtest;
             ResultSet rs = conn.createStatement().executeQuery(selectSql);
             ResultSetMetaData rsMetaData = rs.getMetaData();
             assertTrue("Expected single row", rs.next());
@@ -81,7 +82,7 @@ public class MappingTableDataTypeIT extends BaseHBaseManagedTimeIT {
             assertFalse("Expected single row ", rs.next());
             
             // delete the row
-            String deleteSql = "DELETE FROM MTEST WHERE id = 'row'";
+            String deleteSql = "DELETE FROM " + mtest + " WHERE id = 'row'";
             conn.createStatement().executeUpdate(deleteSql);
             conn.commit();
             
@@ -116,8 +117,8 @@ public class MappingTableDataTypeIT extends BaseHBaseManagedTimeIT {
     /**
      * Create a table in Phoenix that only maps column family cf1
      */
-    private void createPhoenixTable() throws SQLException {
-        String ddl = "create table IF NOT EXISTS MTEST (" + " id varchar NOT NULL primary key,"
+    private void createPhoenixTable(String tableName) throws SQLException {
+        String ddl = "create table IF NOT EXISTS " + tableName+ " (" + " id varchar NOT NULL primary key,"
                 + " \"cf1\".\"q1\" varchar" + " ) ";
         Properties props = PropertiesUtil.deepCopy(TEST_PROPERTIES);
         Connection conn = DriverManager.getConnection(getUrl(), props);

http://git-wip-us.apache.org/repos/asf/phoenix/blob/6d147896/phoenix-core/src/it/java/org/apache/phoenix/end2end/MinMaxAggregateFunctionIT.java
----------------------------------------------------------------------
diff --git a/phoenix-core/src/it/java/org/apache/phoenix/end2end/MinMaxAggregateFunctionIT.java b/phoenix-core/src/it/java/org/apache/phoenix/end2end/MinMaxAggregateFunctionIT.java
index ca7a676..3a5088d 100644
--- a/phoenix-core/src/it/java/org/apache/phoenix/end2end/MinMaxAggregateFunctionIT.java
+++ b/phoenix-core/src/it/java/org/apache/phoenix/end2end/MinMaxAggregateFunctionIT.java
@@ -23,7 +23,9 @@ import java.util.Properties;
 import org.apache.phoenix.util.PropertiesUtil;
 import org.junit.Test;
 
-public class MinMaxAggregateFunctionIT extends BaseHBaseManagedTimeIT {
+public class MinMaxAggregateFunctionIT extends BaseHBaseManagedTimeTableReuseIT {
+
+    private static final String TABLE_NAME = generateRandomString();
 
     @Test
     public void testMinMaxAggregateFunctions() throws SQLException {
@@ -32,7 +34,7 @@ public class MinMaxAggregateFunctionIT extends BaseHBaseManagedTimeIT {
         conn.setAutoCommit(false);
         try {
             conn.prepareStatement(
-                "create table TT("
+                "create table " + TABLE_NAME + "("
                         + "VAL1 integer not null, "
                         + "VAL2 char(2), "
                         + "VAL3 varchar, "
@@ -40,30 +42,30 @@ public class MinMaxAggregateFunctionIT extends BaseHBaseManagedTimeIT {
                         + "constraint PK primary key (VAL1))").execute();
             conn.commit();
 
-            conn.prepareStatement("upsert into TT values (0, '00', '00', '0')").execute();
-            conn.prepareStatement("upsert into TT values (1, '01', '01', '1')").execute();
-            conn.prepareStatement("upsert into TT values (2, '02', '02', '2')").execute();
+            conn.prepareStatement("upsert into " + TABLE_NAME + " values (0, '00', '00', '0')").execute();
+            conn.prepareStatement("upsert into " + TABLE_NAME + " values (1, '01', '01', '1')").execute();
+            conn.prepareStatement("upsert into " + TABLE_NAME + " values (2, '02', '02', '2')").execute();
             conn.commit();
 
-            ResultSet rs = conn.prepareStatement("select min(VAL2) from TT").executeQuery();
+            ResultSet rs = conn.prepareStatement("select min(VAL2) from " + TABLE_NAME).executeQuery();
             assertTrue(rs.next());
             assertEquals("00", rs.getString(1));
 
-            rs = conn.prepareStatement("select min(VAL3) from TT").executeQuery();
+            rs = conn.prepareStatement("select min(VAL3) from " + TABLE_NAME).executeQuery();
             assertTrue(rs.next());
             assertEquals("00", rs.getString(1));
 
-            rs = conn.prepareStatement("select max(VAL2)from TT").executeQuery();
+            rs = conn.prepareStatement("select max(VAL2)from " + TABLE_NAME).executeQuery();
             assertTrue(rs.next());
             assertEquals("02", rs.getString(1));
 
-            rs = conn.prepareStatement("select max(VAL3)from TT").executeQuery();
+            rs = conn.prepareStatement("select max(VAL3)from " + TABLE_NAME).executeQuery();
             assertTrue(rs.next());
             assertEquals("02", rs.getString(1));
 
             rs =
                     conn.prepareStatement(
-                        "select min(VAL1), min(VAL2), min(VAL3), min(VAL4) from TT").executeQuery();
+                        "select min(VAL1), min(VAL2), min(VAL3), min(VAL4) from " + TABLE_NAME).executeQuery();
             assertTrue(rs.next());
             assertEquals(0, rs.getInt(1));
             assertEquals("00", rs.getString(2));
@@ -72,7 +74,7 @@ public class MinMaxAggregateFunctionIT extends BaseHBaseManagedTimeIT {
 
             rs =
                     conn.prepareStatement(
-                        "select max(VAL1), max(VAL2), max(VAL3), max(VAL4) from TT").executeQuery();
+                        "select max(VAL1), max(VAL2), max(VAL3), max(VAL4) from " + TABLE_NAME).executeQuery();
 
             assertTrue(rs.next());
             assertEquals(2, rs.getInt(1));

http://git-wip-us.apache.org/repos/asf/phoenix/blob/6d147896/phoenix-core/src/it/java/org/apache/phoenix/end2end/NthValueFunctionIT.java
----------------------------------------------------------------------
diff --git a/phoenix-core/src/it/java/org/apache/phoenix/end2end/NthValueFunctionIT.java b/phoenix-core/src/it/java/org/apache/phoenix/end2end/NthValueFunctionIT.java
index 11ecc0d..697c04c 100644
--- a/phoenix-core/src/it/java/org/apache/phoenix/end2end/NthValueFunctionIT.java
+++ b/phoenix-core/src/it/java/org/apache/phoenix/end2end/NthValueFunctionIT.java
@@ -29,24 +29,31 @@ import java.util.ArrayList;
 import org.junit.Test;
 
 
-public class NthValueFunctionIT extends BaseHBaseManagedTimeIT {
+public class NthValueFunctionIT extends BaseHBaseManagedTimeTableReuseIT {
 
     @Test
     public void simpleTest() throws Exception {
         Connection conn = DriverManager.getConnection(getUrl());
 
-        String ddl = "CREATE TABLE IF NOT EXISTS nthValue "
+        String nthValue = generateRandomString();
+        String ddl = "CREATE TABLE IF NOT EXISTS " + nthValue + " "
                 + "(id INTEGER NOT NULL PRIMARY KEY, page_id UNSIGNED_LONG,"
                 + " dates INTEGER, val INTEGER)";
         conn.createStatement().execute(ddl);
 
-        conn.createStatement().execute("UPSERT INTO nthValue (id, page_id, dates, val) VALUES (2, 8, 1, 7)");
-        conn.createStatement().execute("UPSERT INTO nthValue (id, page_id, dates, val) VALUES (3, 8, 2, 9)");
-        conn.createStatement().execute("UPSERT INTO nthValue (id, page_id, dates, val) VALUES (4, 8, 3, 4)");
-        conn.createStatement().execute("UPSERT INTO nthValue (id, page_id, dates, val) VALUES (5, 8, 4, 2)");
+        conn.createStatement().execute(
+            "UPSERT INTO " + nthValue + " (id, page_id, dates, val) VALUES (2, 8, 1, 7)");
+        conn.createStatement().execute(
+            "UPSERT INTO " + nthValue + " (id, page_id, dates, val) VALUES (3, 8, 2, 9)");
+        conn.createStatement().execute(
+            "UPSERT INTO " + nthValue + " (id, page_id, dates, val) VALUES (4, 8, 3, 4)");
+        conn.createStatement().execute(
+            "UPSERT INTO " + nthValue + " (id, page_id, dates, val) VALUES (5, 8, 4, 2)");
         conn.commit();
 
-        ResultSet rs = conn.createStatement().executeQuery("SELECT NTH_VALUE(val, 2) WITHIN GROUP (ORDER BY dates DESC) FROM nthValue GROUP BY page_id");
+        ResultSet rs = conn.createStatement().executeQuery(
+            "SELECT NTH_VALUE(val, 2) WITHIN GROUP (ORDER BY dates DESC) FROM " + nthValue
+                + " GROUP BY page_id");
 
         assertTrue(rs.next());
         assertEquals(rs.getInt(1), 4);
@@ -57,21 +64,30 @@ public class NthValueFunctionIT extends BaseHBaseManagedTimeIT {
     public void offsetValueAscOrder() throws Exception {
         Connection conn = DriverManager.getConnection(getUrl());
 
-        String ddl = "CREATE TABLE IF NOT EXISTS nth_test_table "
+        String nth_test_table = generateRandomString();
+
+        String ddl = "CREATE TABLE IF NOT EXISTS " + nth_test_table + " "
                 + "(id INTEGER NOT NULL PRIMARY KEY, page_id UNSIGNED_LONG,"
                 + " date INTEGER, \"value\" UNSIGNED_LONG)";
         conn.createStatement().execute(ddl);
 
-        conn.createStatement().execute("UPSERT INTO nth_test_table (id, page_id, date, \"value\") VALUES (1, 8, 0, 300)");
-        conn.createStatement().execute("UPSERT INTO nth_test_table (id, page_id, date, \"value\") VALUES (2, 8, 1, 7)");
-        conn.createStatement().execute("UPSERT INTO nth_test_table (id, page_id, date, \"value\") VALUES (3, 8, 2, 9)");
-        conn.createStatement().execute("UPSERT INTO nth_test_table (id, page_id, date, \"value\") VALUES (4, 8, 3, 4)");
-        conn.createStatement().execute("UPSERT INTO nth_test_table (id, page_id, date, \"value\") VALUES (5, 8, 4, 2)");
-        conn.createStatement().execute("UPSERT INTO nth_test_table (id, page_id, date, \"value\") VALUES (6, 8, 5, 150)");
+        conn.createStatement().execute("UPSERT INTO " + nth_test_table
+            + " (id, page_id, date, \"value\") VALUES (1, 8, 0, 300)");
+        conn.createStatement().execute(
+            "UPSERT INTO " + nth_test_table + " (id, page_id, date, \"value\") VALUES (2, 8, 1, 7)");
+        conn.createStatement().execute(
+            "UPSERT INTO " + nth_test_table + " (id, page_id, date, \"value\") VALUES (3, 8, 2, 9)");
+        conn.createStatement().execute(
+            "UPSERT INTO " + nth_test_table + " (id, page_id, date, \"value\") VALUES (4, 8, 3, 4)");
+        conn.createStatement().execute(
+            "UPSERT INTO " + nth_test_table + " (id, page_id, date, \"value\") VALUES (5, 8, 4, 2)");
+        conn.createStatement().execute("UPSERT INTO " + nth_test_table
+            + " (id, page_id, date, \"value\") VALUES (6, 8, 5, 150)");
         conn.commit();
 
         ResultSet rs = conn.createStatement().executeQuery(
-                "SELECT NTH_VALUE(\"value\", 2)  WITHIN GROUP (ORDER BY date ASC) FROM nth_test_table GROUP BY page_id");
+            "SELECT NTH_VALUE(\"value\", 2)  WITHIN GROUP (ORDER BY date ASC) FROM "
+                + nth_test_table + " GROUP BY page_id");
 
         assertTrue(rs.next());
         assertEquals(rs.getLong(1), 7);
@@ -82,21 +98,29 @@ public class NthValueFunctionIT extends BaseHBaseManagedTimeIT {
     public void offsetValueDescOrder() throws Exception {
         Connection conn = DriverManager.getConnection(getUrl());
 
-        String ddl = "CREATE TABLE IF NOT EXISTS nth_test_table "
+        String nth_test_table = generateRandomString();
+        String ddl = "CREATE TABLE IF NOT EXISTS " + nth_test_table + " "
                 + "(id INTEGER NOT NULL PRIMARY KEY, page_id UNSIGNED_LONG,"
                 + " date INTEGER, \"value\" UNSIGNED_LONG)";
         conn.createStatement().execute(ddl);
 
-        conn.createStatement().execute("UPSERT INTO nth_test_table (id, page_id, date, \"value\") VALUES (1, 8, 0, 300)");
-        conn.createStatement().execute("UPSERT INTO nth_test_table (id, page_id, date, \"value\") VALUES (2, 8, 1, 7)");
-        conn.createStatement().execute("UPSERT INTO nth_test_table (id, page_id, date, \"value\") VALUES (3, 8, 2, 9)");
-        conn.createStatement().execute("UPSERT INTO nth_test_table (id, page_id, date, \"value\") VALUES (4, 8, 3, 4)");
-        conn.createStatement().execute("UPSERT INTO nth_test_table (id, page_id, date, \"value\") VALUES (5, 8, 4, 2)");
-        conn.createStatement().execute("UPSERT INTO nth_test_table (id, page_id, date, \"value\") VALUES (6, 8, 5, 150)");
+        conn.createStatement().execute("UPSERT INTO " + nth_test_table
+            + " (id, page_id, date, \"value\") VALUES (1, 8, 0, 300)");
+        conn.createStatement().execute(
+            "UPSERT INTO " + nth_test_table + " (id, page_id, date, \"value\") VALUES (2, 8, 1, 7)");
+        conn.createStatement().execute(
+            "UPSERT INTO " + nth_test_table + " (id, page_id, date, \"value\") VALUES (3, 8, 2, 9)");
+        conn.createStatement().execute(
+            "UPSERT INTO " + nth_test_table + " (id, page_id, date, \"value\") VALUES (4, 8, 3, 4)");
+        conn.createStatement().execute(
+            "UPSERT INTO " + nth_test_table + " (id, page_id, date, \"value\") VALUES (5, 8, 4, 2)");
+        conn.createStatement().execute("UPSERT INTO " + nth_test_table
+            + " (id, page_id, date, \"value\") VALUES (6, 8, 5, 150)");
         conn.commit();
 
         ResultSet rs = conn.createStatement().executeQuery(
-                "SELECT NTH_VALUE(\"value\", 2)  WITHIN GROUP (ORDER BY date DESC) FROM nth_test_table GROUP BY page_id");
+            "SELECT NTH_VALUE(\"value\", 2)  WITHIN GROUP (ORDER BY date DESC) FROM "
+                + nth_test_table + " GROUP BY page_id");
 
         assertTrue(rs.next());
         assertEquals(rs.getLong(1), 2);
@@ -107,21 +131,29 @@ public class NthValueFunctionIT extends BaseHBaseManagedTimeIT {
     public void offsetValueLastMismatchByColumn() throws Exception {
         Connection conn = DriverManager.getConnection(getUrl());
 
-        String ddl = "CREATE TABLE IF NOT EXISTS nth_test_table "
+        String nth_test_table = generateRandomString();
+        String ddl = "CREATE TABLE IF NOT EXISTS " + nth_test_table + " "
                 + "(id INTEGER NOT NULL PRIMARY KEY, page_id UNSIGNED_LONG,"
                 + " date INTEGER, \"value\" UNSIGNED_LONG)";
         conn.createStatement().execute(ddl);
 
-        conn.createStatement().execute("UPSERT INTO nth_test_table (id, page_id, date, \"value\") VALUES (1, 8, 5, 8)");
-        conn.createStatement().execute("UPSERT INTO nth_test_table (id, page_id, date, \"value\") VALUES (2, 8, 2, 7)");
-        conn.createStatement().execute("UPSERT INTO nth_test_table (id, page_id, date, \"value\") VALUES (3, 8, 1, 9)");
-        conn.createStatement().execute("UPSERT INTO nth_test_table (id, page_id, date, \"value\") VALUES (4, 8, 4, 4)");
-        conn.createStatement().execute("UPSERT INTO nth_test_table (id, page_id, date, \"value\") VALUES (5, 8, 3, 2)");
-        conn.createStatement().execute("UPSERT INTO nth_test_table (id, page_id, date, \"value\") VALUES (6, 8, 0, 1)");
+        conn.createStatement().execute(
+            "UPSERT INTO " + nth_test_table + " (id, page_id, date, \"value\") VALUES (1, 8, 5, 8)");
+        conn.createStatement().execute(
+            "UPSERT INTO " + nth_test_table + " (id, page_id, date, \"value\") VALUES (2, 8, 2, 7)");
+        conn.createStatement().execute(
+            "UPSERT INTO " + nth_test_table + " (id, page_id, date, \"value\") VALUES (3, 8, 1, 9)");
+        conn.createStatement().execute(
+            "UPSERT INTO " + nth_test_table + " (id, page_id, date, \"value\") VALUES (4, 8, 4, 4)");
+        conn.createStatement().execute(
+            "UPSERT INTO " + nth_test_table + " (id, page_id, date, \"value\") VALUES (5, 8, 3, 2)");
+        conn.createStatement().execute(
+            "UPSERT INTO " + nth_test_table + " (id, page_id, date, \"value\") VALUES (6, 8, 0, 1)");
         conn.commit();
 
         ResultSet rs = conn.createStatement().executeQuery(
-                "SELECT NTH_VALUE(\"value\", 2)  WITHIN GROUP (ORDER BY date DESC) FROM nth_test_table GROUP BY page_id");
+            "SELECT NTH_VALUE(\"value\", 2)  WITHIN GROUP (ORDER BY date DESC) FROM "
+                + nth_test_table + " GROUP BY page_id");
 
         assertTrue(rs.next());
         assertEquals(rs.getLong(1), 4);
@@ -132,20 +164,27 @@ public class NthValueFunctionIT extends BaseHBaseManagedTimeIT {
     public void testSortOrderInDataColWithOffset() throws Exception {
         Connection conn = DriverManager.getConnection(getUrl());
 
-        String ddl = "CREATE TABLE IF NOT EXISTS nth_test_table "
+        String nth_test_table = generateRandomString();
+        String ddl = "CREATE TABLE IF NOT EXISTS " + nth_test_table + " "
                 + "(id INTEGER NOT NULL, page_id UNSIGNED_LONG,"
                 + " dates BIGINT NOT NULL, \"value\" BIGINT NOT NULL CONSTRAINT pk PRIMARY KEY (id, dates, \"value\" DESC))";
         conn.createStatement().execute(ddl);
 
-        conn.createStatement().execute("UPSERT INTO nth_test_table (id, page_id, dates, \"value\") VALUES (1, 8, 1, 3)");
-        conn.createStatement().execute("UPSERT INTO nth_test_table (id, page_id, dates, \"value\") VALUES (2, 8, 2, 7)");
-        conn.createStatement().execute("UPSERT INTO nth_test_table (id, page_id, dates, \"value\") VALUES (3, 8, 3, 9)");
-        conn.createStatement().execute("UPSERT INTO nth_test_table (id, page_id, dates, \"value\") VALUES (5, 8, 5, 158)");
-        conn.createStatement().execute("UPSERT INTO nth_test_table (id, page_id, dates, \"value\") VALUES (4, 8, 4, 5)");
+        conn.createStatement().execute("UPSERT INTO " + nth_test_table
+            + " (id, page_id, dates, \"value\") VALUES (1, 8, 1, 3)");
+        conn.createStatement().execute("UPSERT INTO " + nth_test_table
+            + " (id, page_id, dates, \"value\") VALUES (2, 8, 2, 7)");
+        conn.createStatement().execute("UPSERT INTO " + nth_test_table
+            + " (id, page_id, dates, \"value\") VALUES (3, 8, 3, 9)");
+        conn.createStatement().execute("UPSERT INTO " + nth_test_table
+            + " (id, page_id, dates, \"value\") VALUES (5, 8, 5, 158)");
+        conn.createStatement().execute("UPSERT INTO " + nth_test_table
+            + " (id, page_id, dates, \"value\") VALUES (4, 8, 4, 5)");
         conn.commit();
 
         ResultSet rs = conn.createStatement().executeQuery(
-                "SELECT NTH_VALUE(\"value\", 2)  WITHIN GROUP (ORDER BY dates ASC) FROM nth_test_table GROUP BY page_id");
+            "SELECT NTH_VALUE(\"value\", 2)  WITHIN GROUP (ORDER BY dates ASC) FROM "
+                + nth_test_table + " GROUP BY page_id");
 
         assertTrue(rs.next());
         assertEquals(rs.getLong(1), 7);
@@ -156,19 +195,27 @@ public class NthValueFunctionIT extends BaseHBaseManagedTimeIT {
     public void nonUniqueValuesInOrderByAsc() throws Exception {
         Connection conn = DriverManager.getConnection(getUrl());
 
-        String ddl = "CREATE TABLE IF NOT EXISTS nthValue "
+        String nthValue = generateRandomString();
+        String ddl = "CREATE TABLE IF NOT EXISTS " + nthValue + " "
                 + "(id INTEGER NOT NULL PRIMARY KEY, page_id UNSIGNED_LONG,"
                 + " dates INTEGER, val INTEGER)";
         conn.createStatement().execute(ddl);
 
-        conn.createStatement().execute("UPSERT INTO nthValue (id, page_id, dates, val) VALUES (2, 8, 1, 7)");
-        conn.createStatement().execute("UPSERT INTO nthValue (id, page_id, dates, val) VALUES (3, 8, 2, 9)");
-        conn.createStatement().execute("UPSERT INTO nthValue (id, page_id, dates, val) VALUES (4, 8, 2, 4)");
-        conn.createStatement().execute("UPSERT INTO nthValue (id, page_id, dates, val) VALUES (5, 8, 2, 2)");
-        conn.createStatement().execute("UPSERT INTO nthValue (id, page_id, dates, val) VALUES (6, 8, 3, 3)");
+        conn.createStatement().execute(
+            "UPSERT INTO " + nthValue + " (id, page_id, dates, val) VALUES (2, 8, 1, 7)");
+        conn.createStatement().execute(
+            "UPSERT INTO " + nthValue + " (id, page_id, dates, val) VALUES (3, 8, 2, 9)");
+        conn.createStatement().execute(
+            "UPSERT INTO " + nthValue + " (id, page_id, dates, val) VALUES (4, 8, 2, 4)");
+        conn.createStatement().execute(
+            "UPSERT INTO " + nthValue + " (id, page_id, dates, val) VALUES (5, 8, 2, 2)");
+        conn.createStatement().execute(
+            "UPSERT INTO " + nthValue + " (id, page_id, dates, val) VALUES (6, 8, 3, 3)");
         conn.commit();
 
-        ResultSet rs = conn.createStatement().executeQuery("SELECT NTH_VALUE(val, 3) WITHIN GROUP (ORDER BY dates ASC) FROM nthValue GROUP BY page_id");
+        ResultSet rs = conn.createStatement().executeQuery(
+            "SELECT NTH_VALUE(val, 3) WITHIN GROUP (ORDER BY dates ASC) FROM " + nthValue
+                + " GROUP BY page_id");
 
         assertTrue(rs.next());
         assertInIntArray(new int[]{2, 4, 9}, rs.getInt(1));
@@ -179,19 +226,27 @@ public class NthValueFunctionIT extends BaseHBaseManagedTimeIT {
     public void nonUniqueValuesInOrderByAscSkipDuplicit() throws Exception {
         Connection conn = DriverManager.getConnection(getUrl());
 
-        String ddl = "CREATE TABLE IF NOT EXISTS nthValue "
+        String nthValue = generateRandomString();
+        String ddl = "CREATE TABLE IF NOT EXISTS " + nthValue + " "
                 + "(id INTEGER NOT NULL PRIMARY KEY, page_id UNSIGNED_LONG,"
                 + " dates INTEGER, val INTEGER)";
         conn.createStatement().execute(ddl);
 
-        conn.createStatement().execute("UPSERT INTO nthValue (id, page_id, dates, val) VALUES (2, 8, 1, 7)");
-        conn.createStatement().execute("UPSERT INTO nthValue (id, page_id, dates, val) VALUES (3, 8, 2, 9)");
-        conn.createStatement().execute("UPSERT INTO nthValue (id, page_id, dates, val) VALUES (4, 8, 2, 4)");
-        conn.createStatement().execute("UPSERT INTO nthValue (id, page_id, dates, val) VALUES (5, 8, 2, 2)");
-        conn.createStatement().execute("UPSERT INTO nthValue (id, page_id, dates, val) VALUES (6, 8, 3, 3)");
+        conn.createStatement().execute(
+            "UPSERT INTO " + nthValue + " (id, page_id, dates, val) VALUES (2, 8, 1, 7)");
+        conn.createStatement().execute(
+            "UPSERT INTO " + nthValue + " (id, page_id, dates, val) VALUES (3, 8, 2, 9)");
+        conn.createStatement().execute(
+            "UPSERT INTO " + nthValue + " (id, page_id, dates, val) VALUES (4, 8, 2, 4)");
+        conn.createStatement().execute(
+            "UPSERT INTO " + nthValue + " (id, page_id, dates, val) VALUES (5, 8, 2, 2)");
+        conn.createStatement().execute(
+            "UPSERT INTO " + nthValue + " (id, page_id, dates, val) VALUES (6, 8, 3, 3)");
         conn.commit();
 
-        ResultSet rs = conn.createStatement().executeQuery("SELECT NTH_VALUE(val, 5) WITHIN GROUP (ORDER BY dates ASC) FROM nthValue GROUP BY page_id");
+        ResultSet rs = conn.createStatement().executeQuery(
+            "SELECT NTH_VALUE(val, 5) WITHIN GROUP (ORDER BY dates ASC) FROM " + nthValue
+                + " GROUP BY page_id");
 
         assertTrue(rs.next());
         assertEquals(3, rs.getInt(1));
@@ -202,19 +257,27 @@ public class NthValueFunctionIT extends BaseHBaseManagedTimeIT {
     public void nonUniqueValuesInOrderByDesc() throws Exception {
         Connection conn = DriverManager.getConnection(getUrl());
 
-        String ddl = "CREATE TABLE IF NOT EXISTS nthValue "
+        String nthValue = generateRandomString();
+        String ddl = "CREATE TABLE IF NOT EXISTS " + nthValue + " "
                 + "(id INTEGER NOT NULL PRIMARY KEY, page_id UNSIGNED_LONG,"
                 + " dates INTEGER, val INTEGER)";
         conn.createStatement().execute(ddl);
 
-        conn.createStatement().execute("UPSERT INTO nthValue (id, page_id, dates, val) VALUES (2, 8, 1, 7)");
-        conn.createStatement().execute("UPSERT INTO nthValue (id, page_id, dates, val) VALUES (3, 8, 2, 9)");
-        conn.createStatement().execute("UPSERT INTO nthValue (id, page_id, dates, val) VALUES (4, 8, 2, 4)");
-        conn.createStatement().execute("UPSERT INTO nthValue (id, page_id, dates, val) VALUES (5, 8, 2, 2)");
-        conn.createStatement().execute("UPSERT INTO nthValue (id, page_id, dates, val) VALUES (6, 8, 3, 3)");
+        conn.createStatement().execute(
+            "UPSERT INTO " + nthValue + " (id, page_id, dates, val) VALUES (2, 8, 1, 7)");
+        conn.createStatement().execute(
+            "UPSERT INTO " + nthValue + " (id, page_id, dates, val) VALUES (3, 8, 2, 9)");
+        conn.createStatement().execute(
+            "UPSERT INTO " + nthValue + " (id, page_id, dates, val) VALUES (4, 8, 2, 4)");
+        conn.createStatement().execute(
+            "UPSERT INTO " + nthValue + " (id, page_id, dates, val) VALUES (5, 8, 2, 2)");
+        conn.createStatement().execute(
+            "UPSERT INTO " + nthValue + " (id, page_id, dates, val) VALUES (6, 8, 3, 3)");
         conn.commit();
 
-        ResultSet rs = conn.createStatement().executeQuery("SELECT NTH_VALUE(val, 3) WITHIN GROUP (ORDER BY dates DESC) FROM nthValue GROUP BY page_id");
+        ResultSet rs = conn.createStatement().executeQuery(
+            "SELECT NTH_VALUE(val, 3) WITHIN GROUP (ORDER BY dates DESC) FROM " + nthValue
+                + " GROUP BY page_id");
 
         assertTrue(rs.next());
         assertInIntArray(new int[]{2, 4, 9}, rs.getInt(1));
@@ -225,20 +288,29 @@ public class NthValueFunctionIT extends BaseHBaseManagedTimeIT {
     public void nonUniqueValuesInOrderNextValueDesc() throws Exception {
         Connection conn = DriverManager.getConnection(getUrl());
 
-        String ddl = "CREATE TABLE IF NOT EXISTS nthValue "
+        String nthValue = generateRandomString();
+        String ddl = "CREATE TABLE IF NOT EXISTS " + nthValue + " "
                 + "(id INTEGER NOT NULL PRIMARY KEY, page_id UNSIGNED_LONG,"
                 + " dates INTEGER, val INTEGER)";
         conn.createStatement().execute(ddl);
 
-        conn.createStatement().execute("UPSERT INTO nthValue (id, page_id, dates, val) VALUES (2, 8, 0, 7)");
-        conn.createStatement().execute("UPSERT INTO nthValue (id, page_id, dates, val) VALUES (3, 8, 1, 9)");
-        conn.createStatement().execute("UPSERT INTO nthValue (id, page_id, dates, val) VALUES (4, 8, 2, 4)");
-        conn.createStatement().execute("UPSERT INTO nthValue (id, page_id, dates, val) VALUES (5, 8, 2, 2)");
-        conn.createStatement().execute("UPSERT INTO nthValue (id, page_id, dates, val) VALUES (6, 8, 3, 3)");
-        conn.createStatement().execute("UPSERT INTO nthValue (id, page_id, dates, val) VALUES (7, 8, 3, 5)");
+        conn.createStatement().execute(
+            "UPSERT INTO " + nthValue + " (id, page_id, dates, val) VALUES (2, 8, 0, 7)");
+        conn.createStatement().execute(
+            "UPSERT INTO " + nthValue + " (id, page_id, dates, val) VALUES (3, 8, 1, 9)");
+        conn.createStatement().execute(
+            "UPSERT INTO " + nthValue + " (id, page_id, dates, val) VALUES (4, 8, 2, 4)");
+        conn.createStatement().execute(
+            "UPSERT INTO " + nthValue + " (id, page_id, dates, val) VALUES (5, 8, 2, 2)");
+        conn.createStatement().execute(
+            "UPSERT INTO " + nthValue + " (id, page_id, dates, val) VALUES (6, 8, 3, 3)");
+        conn.createStatement().execute(
+            "UPSERT INTO " + nthValue + " (id, page_id, dates, val) VALUES (7, 8, 3, 5)");
         conn.commit();
 
-        ResultSet rs = conn.createStatement().executeQuery("SELECT NTH_VALUE(val, 2) WITHIN GROUP (ORDER BY dates DESC) FROM nthValue GROUP BY page_id");
+        ResultSet rs = conn.createStatement().executeQuery(
+            "SELECT NTH_VALUE(val, 2) WITHIN GROUP (ORDER BY dates DESC) FROM " + nthValue
+                + " GROUP BY page_id");
 
         assertTrue(rs.next());
         assertInIntArray(new int[]{3, 5}, rs.getInt(1));
@@ -249,20 +321,29 @@ public class NthValueFunctionIT extends BaseHBaseManagedTimeIT {
     public void nonUniqueValuesInOrderNextValueAsc() throws Exception {
         Connection conn = DriverManager.getConnection(getUrl());
 
-        String ddl = "CREATE TABLE IF NOT EXISTS nthValue "
+        String nthValue = generateRandomString();
+        String ddl = "CREATE TABLE IF NOT EXISTS " + nthValue + " "
                 + "(id INTEGER NOT NULL PRIMARY KEY, page_id UNSIGNED_LONG,"
                 + " dates INTEGER, val INTEGER)";
         conn.createStatement().execute(ddl);
 
-        conn.createStatement().execute("UPSERT INTO nthValue (id, page_id, dates, val) VALUES (2, 8, 0, 7)");
-        conn.createStatement().execute("UPSERT INTO nthValue (id, page_id, dates, val) VALUES (3, 8, 1, 9)");
-        conn.createStatement().execute("UPSERT INTO nthValue (id, page_id, dates, val) VALUES (4, 8, 2, 4)");
-        conn.createStatement().execute("UPSERT INTO nthValue (id, page_id, dates, val) VALUES (5, 8, 2, 2)");
-        conn.createStatement().execute("UPSERT INTO nthValue (id, page_id, dates, val) VALUES (6, 8, 3, 3)");
-        conn.createStatement().execute("UPSERT INTO nthValue (id, page_id, dates, val) VALUES (7, 8, 3, 5)");
+        conn.createStatement().execute(
+            "UPSERT INTO " + nthValue + " (id, page_id, dates, val) VALUES (2, 8, 0, 7)");
+        conn.createStatement().execute(
+            "UPSERT INTO " + nthValue + " (id, page_id, dates, val) VALUES (3, 8, 1, 9)");
+        conn.createStatement().execute(
+            "UPSERT INTO " + nthValue + " (id, page_id, dates, val) VALUES (4, 8, 2, 4)");
+        conn.createStatement().execute(
+            "UPSERT INTO " + nthValue + " (id, page_id, dates, val) VALUES (5, 8, 2, 2)");
+        conn.createStatement().execute(
+            "UPSERT INTO " + nthValue + " (id, page_id, dates, val) VALUES (6, 8, 3, 3)");
+        conn.createStatement().execute(
+            "UPSERT INTO " + nthValue + " (id, page_id, dates, val) VALUES (7, 8, 3, 5)");
         conn.commit();
 
-        ResultSet rs = conn.createStatement().executeQuery("SELECT NTH_VALUE(val, 5) WITHIN GROUP (ORDER BY dates ASC) FROM nthValue GROUP BY page_id");
+        ResultSet rs = conn.createStatement().executeQuery(
+            "SELECT NTH_VALUE(val, 5) WITHIN GROUP (ORDER BY dates ASC) FROM " + nthValue
+                + " GROUP BY page_id");
 
         assertTrue(rs.next());
         assertInIntArray(new int[]{3, 5}, rs.getInt(1));
@@ -273,20 +354,27 @@ public class NthValueFunctionIT extends BaseHBaseManagedTimeIT {
     public void ignoreNullValues() throws Exception {
         Connection conn = DriverManager.getConnection(getUrl());
 
-        String ddl = "CREATE TABLE IF NOT EXISTS nth_test_table "
+        String nth_test_table = generateRandomString();
+        String ddl = "CREATE TABLE IF NOT EXISTS " + nth_test_table + " "
                 + "(id INTEGER NOT NULL, page_id UNSIGNED_LONG,"
                 + " dates BIGINT NOT NULL, \"value\" BIGINT NULL CONSTRAINT pk PRIMARY KEY (id, dates))";
         conn.createStatement().execute(ddl);
 
-        conn.createStatement().execute("UPSERT INTO nth_test_table (id, page_id, dates, \"value\") VALUES (1, 8, 1, 1)");
-        conn.createStatement().execute("UPSERT INTO nth_test_table (id, page_id, dates, \"value\") VALUES (2, 8, 2, NULL)");
-        conn.createStatement().execute("UPSERT INTO nth_test_table (id, page_id, dates, \"value\") VALUES (3, 8, 3, NULL)");
-        conn.createStatement().execute("UPSERT INTO nth_test_table (id, page_id, dates, \"value\") VALUES (5, 8, 4, 4)");
-        conn.createStatement().execute("UPSERT INTO nth_test_table (id, page_id, dates, \"value\") VALUES (4, 8, 5, 5)");
+        conn.createStatement().execute("UPSERT INTO " + nth_test_table
+            + " (id, page_id, dates, \"value\") VALUES (1, 8, 1, 1)");
+        conn.createStatement().execute("UPSERT INTO " + nth_test_table
+            + " (id, page_id, dates, \"value\") VALUES (2, 8, 2, NULL)");
+        conn.createStatement().execute("UPSERT INTO " + nth_test_table
+            + " (id, page_id, dates, \"value\") VALUES (3, 8, 3, NULL)");
+        conn.createStatement().execute("UPSERT INTO " + nth_test_table
+            + " (id, page_id, dates, \"value\") VALUES (5, 8, 4, 4)");
+        conn.createStatement().execute("UPSERT INTO " + nth_test_table
+            + " (id, page_id, dates, \"value\") VALUES (4, 8, 5, 5)");
         conn.commit();
 
         ResultSet rs = conn.createStatement().executeQuery(
-                "SELECT NTH_VALUE(\"value\", 2)  WITHIN GROUP (ORDER BY dates DESC) FROM nth_test_table GROUP BY page_id");
+            "SELECT NTH_VALUE(\"value\", 2)  WITHIN GROUP (ORDER BY dates DESC) FROM "
+                + nth_test_table + " GROUP BY page_id");
 
         assertTrue(rs.next());
         assertEquals(rs.getLong(1), 4);

http://git-wip-us.apache.org/repos/asf/phoenix/blob/6d147896/phoenix-core/src/it/java/org/apache/phoenix/end2end/OctetLengthFunctionEnd2EndIT.java
----------------------------------------------------------------------
diff --git a/phoenix-core/src/it/java/org/apache/phoenix/end2end/OctetLengthFunctionEnd2EndIT.java b/phoenix-core/src/it/java/org/apache/phoenix/end2end/OctetLengthFunctionEnd2EndIT.java
index 1239e7a..7977ab5 100644
--- a/phoenix-core/src/it/java/org/apache/phoenix/end2end/OctetLengthFunctionEnd2EndIT.java
+++ b/phoenix-core/src/it/java/org/apache/phoenix/end2end/OctetLengthFunctionEnd2EndIT.java
@@ -33,9 +33,10 @@ import org.junit.Test;
 /**
  * End to end tests for {@link OctetLengthFunction}
  */
-public class OctetLengthFunctionEnd2EndIT extends BaseHBaseManagedTimeIT {
+public class OctetLengthFunctionEnd2EndIT extends BaseHBaseManagedTimeTableReuseIT {
 
     private static final String KEY = "key";
+    private static final String TABLE_NAME = generateRandomString();
 
     @Before
     public void initTable() throws Exception {
@@ -44,7 +45,8 @@ public class OctetLengthFunctionEnd2EndIT extends BaseHBaseManagedTimeIT {
         try {
             conn = DriverManager.getConnection(getUrl());
             String ddl;
-            ddl = "CREATE TABLE ta (k VARCHAR NOT NULL PRIMARY KEY, b BINARY(4), vb VARBINARY)";
+            ddl = "CREATE TABLE " + TABLE_NAME
+                + " (k VARCHAR NOT NULL PRIMARY KEY, b BINARY(4), vb VARBINARY)";
             conn.createStatement().execute(ddl);
             conn.commit();
         } finally {
@@ -55,7 +57,8 @@ public class OctetLengthFunctionEnd2EndIT extends BaseHBaseManagedTimeIT {
     @Test
     public void test() throws Exception {
         Connection conn = DriverManager.getConnection(getUrl());
-        PreparedStatement stmt = conn.prepareStatement("UPSERT INTO ta VALUES (?, ?, ?)");
+        PreparedStatement stmt = conn.prepareStatement(
+            "UPSERT INTO " + TABLE_NAME + " VALUES (?, ?, ?)");
         stmt.setString(1, KEY);
         stmt.setBytes(2, new byte[] { 1, 2, 3, 4 });
         stmt.setBytes(3, new byte[] { 1, 2, 3, 4 });
@@ -63,8 +66,8 @@ public class OctetLengthFunctionEnd2EndIT extends BaseHBaseManagedTimeIT {
         conn.commit();
         ResultSet rs =
                 conn.createStatement()
-                        .executeQuery(
-                            "SELECT OCTET_LENGTH(vb), OCTET_LENGTH(b) FROM ta WHERE OCTET_LENGTH(vb)=4 and OCTET_LENGTH(b)=4");
+                        .executeQuery("SELECT OCTET_LENGTH(vb), OCTET_LENGTH(b) FROM " + TABLE_NAME
+                            + " WHERE OCTET_LENGTH(vb)=4 and OCTET_LENGTH(b)=4");
         assertTrue(rs.next());
         assertEquals(4, rs.getInt(1));
         assertEquals(4, rs.getInt(2));

http://git-wip-us.apache.org/repos/asf/phoenix/blob/6d147896/phoenix-core/src/it/java/org/apache/phoenix/end2end/PowerFunctionEnd2EndIT.java
----------------------------------------------------------------------
diff --git a/phoenix-core/src/it/java/org/apache/phoenix/end2end/PowerFunctionEnd2EndIT.java b/phoenix-core/src/it/java/org/apache/phoenix/end2end/PowerFunctionEnd2EndIT.java
index 691fb61..cb120bd 100644
--- a/phoenix-core/src/it/java/org/apache/phoenix/end2end/PowerFunctionEnd2EndIT.java
+++ b/phoenix-core/src/it/java/org/apache/phoenix/end2end/PowerFunctionEnd2EndIT.java
@@ -27,15 +27,18 @@ import java.sql.ResultSet;
 
 import org.apache.phoenix.expression.function.PowerFunction;
 import org.junit.Before;
+import org.junit.BeforeClass;
 import org.junit.Test;
 
 /**
  * End to end tests for {@link PowerFunction}
  */
-public class PowerFunctionEnd2EndIT extends BaseHBaseManagedTimeIT {
+public class PowerFunctionEnd2EndIT extends BaseHBaseManagedTimeTableReuseIT {
 
     private static final String KEY = "key";
     private static final double ZERO = 1e-9;
+    private static final String TEST_SIGNED = generateRandomString();
+    private static final String TEST_UNSIGNED = generateRandomString();
 
     private static boolean twoDoubleEquals(double a, double b) {
         if (Double.isNaN(a) ^ Double.isNaN(b)) return false;
@@ -52,18 +55,18 @@ public class PowerFunctionEnd2EndIT extends BaseHBaseManagedTimeIT {
         }
     }
 
-    @Before
-    public void initTable() throws Exception {
+    @BeforeClass
+    public static void initTable() throws Exception {
         Connection conn = null;
         PreparedStatement stmt = null;
         try {
             conn = DriverManager.getConnection(getUrl());
             String ddl;
-            ddl =
-                    "CREATE TABLE testSigned (k VARCHAR NOT NULL PRIMARY KEY, doub DOUBLE, fl FLOAT, inte INTEGER, lon BIGINT, smalli SMALLINT, tinyi TINYINT)";
+            ddl = "CREATE TABLE " + TEST_SIGNED
+                + " (k VARCHAR NOT NULL PRIMARY KEY, doub DOUBLE, fl FLOAT, inte INTEGER, lon BIGINT, smalli SMALLINT, tinyi TINYINT)";
             conn.createStatement().execute(ddl);
-            ddl =
-                    "CREATE TABLE testUnsigned (k VARCHAR NOT NULL PRIMARY KEY, doub UNSIGNED_DOUBLE, fl UNSIGNED_FLOAT, inte UNSIGNED_INT, lon UNSIGNED_LONG, smalli UNSIGNED_SMALLINT, tinyi UNSIGNED_TINYINT)";
+            ddl = "CREATE TABLE " + TEST_UNSIGNED
+                + " (k VARCHAR NOT NULL PRIMARY KEY, doub UNSIGNED_DOUBLE, fl UNSIGNED_FLOAT, inte UNSIGNED_INT, lon UNSIGNED_LONG, smalli UNSIGNED_SMALLINT, tinyi UNSIGNED_TINYINT)";
             conn.createStatement().execute(ddl);
             conn.commit();
         } finally {
@@ -137,8 +140,8 @@ public class PowerFunctionEnd2EndIT extends BaseHBaseManagedTimeIT {
     public void test() throws Exception {
         Connection conn = DriverManager.getConnection(getUrl());
         for (double d : new double[] { 0.0, 1.0, -1.0, 123.1234, -123.1234 }) {
-            testNumberSpec(conn, d, "testSigned");
-            if (d >= 0) testNumberSpec(conn, d, "testUnsigned");
+            testNumberSpec(conn, d, TEST_SIGNED);
+            if (d >= 0) testNumberSpec(conn, d, TEST_UNSIGNED);
         }
     }
 }

http://git-wip-us.apache.org/repos/asf/phoenix/blob/6d147896/phoenix-core/src/it/java/org/apache/phoenix/end2end/PrimitiveTypeIT.java
----------------------------------------------------------------------
diff --git a/phoenix-core/src/it/java/org/apache/phoenix/end2end/PrimitiveTypeIT.java b/phoenix-core/src/it/java/org/apache/phoenix/end2end/PrimitiveTypeIT.java
index cc92ea9..b78d144 100644
--- a/phoenix-core/src/it/java/org/apache/phoenix/end2end/PrimitiveTypeIT.java
+++ b/phoenix-core/src/it/java/org/apache/phoenix/end2end/PrimitiveTypeIT.java
@@ -29,15 +29,23 @@ import java.util.Properties;
 
 import org.apache.phoenix.util.PropertiesUtil;
 import org.apache.phoenix.util.TestUtil;
+import org.junit.BeforeClass;
 import org.junit.Test;
 
 
-public class PrimitiveTypeIT extends BaseHBaseManagedTimeIT {
-    private static void initTableValues(Connection conn) throws Exception {
-        conn.createStatement().execute("create table T (l bigint not null primary key, b boolean)");
+public class PrimitiveTypeIT extends BaseHBaseManagedTimeTableReuseIT {
+
+    private static final String TABLE_NAME = generateRandomString();
+    private static final Properties PROPS = PropertiesUtil.deepCopy(TestUtil.TEST_PROPERTIES);
+    private static Connection conn;
+
+    @BeforeClass
+    public static void initTableValues() throws Exception {
+        conn = DriverManager.getConnection(getUrl(), PROPS);
+        conn.createStatement().execute(
+            "create table " + TABLE_NAME + " (l bigint not null primary key, b boolean)");
         PreparedStatement stmt = conn.prepareStatement(
-                "upsert into " +
-                "T VALUES(?)");
+                "upsert into " + TABLE_NAME + " VALUES(?)");
         stmt.setLong(1, 2);
         stmt.execute();
         conn.commit();
@@ -45,10 +53,7 @@ public class PrimitiveTypeIT extends BaseHBaseManagedTimeIT {
 
     @Test
     public void testCompareLongGTDecimal() throws Exception {
-        Properties props = PropertiesUtil.deepCopy(TestUtil.TEST_PROPERTIES);
-        Connection conn = DriverManager.getConnection(getUrl(), props);
-        initTableValues(conn);
-        String query = "SELECT l FROM T where l > 1.5";
+        String query = "SELECT l FROM " + TABLE_NAME + " where l > 1.5";
         try {
             PreparedStatement statement = conn.prepareStatement(query);
             ResultSet rs = statement.executeQuery();
@@ -62,10 +67,7 @@ public class PrimitiveTypeIT extends BaseHBaseManagedTimeIT {
     
     @Test
     public void testCompareLongGTEDecimal() throws Exception {
-        Properties props = PropertiesUtil.deepCopy(TestUtil.TEST_PROPERTIES);
-        Connection conn = DriverManager.getConnection(getUrl(), props);
-        initTableValues(conn);
-        String query = "SELECT l FROM T where l >= 1.5";
+        String query = "SELECT l FROM " + TABLE_NAME + " where l >= 1.5";
         try {
             PreparedStatement statement = conn.prepareStatement(query);
             ResultSet rs = statement.executeQuery();
@@ -86,10 +88,7 @@ public class PrimitiveTypeIT extends BaseHBaseManagedTimeIT {
     
     @Test
     public void testCompareLongLTDecimal() throws Exception {
-        Properties props = PropertiesUtil.deepCopy(TestUtil.TEST_PROPERTIES);
-        Connection conn = DriverManager.getConnection(getUrl(), props);
-        initTableValues(conn);
-        String query = "SELECT l FROM T where l < 1.5";
+        String query = "SELECT l FROM " + TABLE_NAME + " where l < 1.5";
         try {
             PreparedStatement statement = conn.prepareStatement(query);
             ResultSet rs = statement.executeQuery();
@@ -108,10 +107,7 @@ public class PrimitiveTypeIT extends BaseHBaseManagedTimeIT {
 
     @Test
     public void testCompareLongLTEDecimal() throws Exception {
-        Properties props = PropertiesUtil.deepCopy(TestUtil.TEST_PROPERTIES);
-        Connection conn = DriverManager.getConnection(getUrl(), props);
-        initTableValues(conn);
-        String query = "SELECT l FROM T where l <= 1.5";
+        String query = "SELECT l FROM " + TABLE_NAME + " where l <= 1.5";
         try {
             PreparedStatement statement = conn.prepareStatement(query);
             ResultSet rs = statement.executeQuery();
@@ -129,10 +125,7 @@ public class PrimitiveTypeIT extends BaseHBaseManagedTimeIT {
     }
     @Test
     public void testCompareLongGTDecimal2() throws Exception {
-        Properties props = PropertiesUtil.deepCopy(TestUtil.TEST_PROPERTIES);
-        Connection conn = DriverManager.getConnection(getUrl(), props);
-        initTableValues(conn);
-        String query = "SELECT l FROM T where l > 2.5";
+        String query = "SELECT l FROM " + TABLE_NAME + " where l > 2.5";
         try {
             PreparedStatement statement = conn.prepareStatement(query);
             ResultSet rs = statement.executeQuery();
@@ -151,10 +144,7 @@ public class PrimitiveTypeIT extends BaseHBaseManagedTimeIT {
     
     @Test
     public void testCompareLongGTEDecimal2() throws Exception {
-        Properties props = PropertiesUtil.deepCopy(TestUtil.TEST_PROPERTIES);
-        Connection conn = DriverManager.getConnection(getUrl(), props);
-        initTableValues(conn);
-        String query = "SELECT l FROM T where l >= 2.5";
+        String query = "SELECT l FROM " + TABLE_NAME + " where l >= 2.5";
         try {
             PreparedStatement statement = conn.prepareStatement(query);
             ResultSet rs = statement.executeQuery();
@@ -173,10 +163,7 @@ public class PrimitiveTypeIT extends BaseHBaseManagedTimeIT {
     
     @Test
     public void testCompareLongLTDecimal2() throws Exception {
-        Properties props = PropertiesUtil.deepCopy(TestUtil.TEST_PROPERTIES);
-        Connection conn = DriverManager.getConnection(getUrl(), props);
-        initTableValues(conn);
-        String query = "SELECT l FROM T where l < 2.5";
+        String query = "SELECT l FROM " + TABLE_NAME + " where l < 2.5";
         try {
             PreparedStatement statement = conn.prepareStatement(query);
             ResultSet rs = statement.executeQuery();
@@ -199,8 +186,7 @@ public class PrimitiveTypeIT extends BaseHBaseManagedTimeIT {
     public void testCompareLongLTEDecimal2() throws Exception {
         Properties props = PropertiesUtil.deepCopy(TestUtil.TEST_PROPERTIES);
         Connection conn = DriverManager.getConnection(getUrl(), props);
-        initTableValues(conn);
-        String query = "SELECT l FROM T where l <= 2.5";
+        String query = "SELECT l FROM " + TABLE_NAME + " where l <= 2.5";
         try {
             PreparedStatement statement = conn.prepareStatement(query);
             ResultSet rs = statement.executeQuery();
@@ -221,16 +207,13 @@ public class PrimitiveTypeIT extends BaseHBaseManagedTimeIT {
     
     @Test
     public void testBooleanAsObject() throws Exception {
-        Properties props = PropertiesUtil.deepCopy(TestUtil.TEST_PROPERTIES);
-        Connection conn = DriverManager.getConnection(getUrl(), props);
-        initTableValues(conn);
-        String query = "upsert into T values (2, ?)";
+        String query = "upsert into " + TABLE_NAME + " values (2, ?)";
         try {
             PreparedStatement statement = conn.prepareStatement(query);
             statement.setObject(1, new Boolean("false"));
             statement.execute();
             conn.commit();
-            statement = conn.prepareStatement("SELECT l,b,? FROM T");
+            statement = conn.prepareStatement("SELECT l,b,? FROM " + TABLE_NAME);
             statement.setObject(1, new Boolean("false"));
             ResultSet rs = statement.executeQuery();
             assertTrue(rs.next());