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/08/26 23:19:29 UTC

[06/14] phoenix git commit: Modify phoenix IT tests to extend BaseHBaseManagedTimeTableReuseIT (Prakul Agarwal, Samarth Jain)

http://git-wip-us.apache.org/repos/asf/phoenix/blob/d77d2492/phoenix-core/src/it/java/org/apache/phoenix/end2end/SkipScanQueryIT.java
----------------------------------------------------------------------
diff --git a/phoenix-core/src/it/java/org/apache/phoenix/end2end/SkipScanQueryIT.java b/phoenix-core/src/it/java/org/apache/phoenix/end2end/SkipScanQueryIT.java
index 31994bb..1021bdd 100644
--- a/phoenix-core/src/it/java/org/apache/phoenix/end2end/SkipScanQueryIT.java
+++ b/phoenix-core/src/it/java/org/apache/phoenix/end2end/SkipScanQueryIT.java
@@ -34,36 +34,40 @@ import java.util.Collections;
 import java.util.List;
 import java.util.Properties;
 
-import org.apache.phoenix.util.PhoenixRuntime;
-import org.apache.phoenix.util.PropertiesUtil;
 import org.apache.phoenix.util.TestUtil;
+import org.apache.phoenix.util.SchemaUtil;
+import org.apache.phoenix.util.PropertiesUtil;
+import org.apache.phoenix.util.PhoenixRuntime;
 import org.junit.Test;
 
 
-public class SkipScanQueryIT extends BaseHBaseManagedTimeIT {
+public class SkipScanQueryIT extends BaseHBaseManagedTimeTableReuseIT {
     
-    private void initIntInTable(Connection conn, List<Integer> data) throws SQLException {
-        String ddl = "CREATE TABLE IF NOT EXISTS inTest (" + 
+    private String initIntInTable(Connection conn, List<Integer> data) throws SQLException {
+        String tableName = generateRandomString();
+        String ddl = "CREATE TABLE IF NOT EXISTS " + tableName + " (" + 
                      "  i INTEGER NOT NULL PRIMARY KEY)";
         conn.createStatement().executeUpdate(ddl);
         
         // Test upsert correct values 
-        String query = "UPSERT INTO inTest VALUES(?)";
+        String query = "UPSERT INTO " + tableName + " VALUES(?)";
         PreparedStatement stmt = conn.prepareStatement(query);
         for (Integer i : data) {
             stmt.setInt(1, i);
             stmt.execute();
         }
         conn.commit();
+        return tableName;
     }
     
-    private void initVarCharCrossProductInTable(Connection conn, List<String> c1, List<String> c2) throws SQLException {
-        String ddl = "CREATE TABLE IF NOT EXISTS inVarTest (" + 
+    private String initVarCharCrossProductInTable(Connection conn, List<String> c1, List<String> c2) throws SQLException {
+        String tableName = generateRandomString();
+        String ddl = "CREATE TABLE IF NOT EXISTS " + tableName + " (" +
                      "  s1 VARCHAR, s2 VARCHAR CONSTRAINT pk PRIMARY KEY (s1,s2))";
         conn.createStatement().executeUpdate(ddl);
         
         // Test upsert correct values 
-        String query = "UPSERT INTO inVarTest VALUES(?,?)";
+        String query = "UPSERT INTO " + tableName + " VALUES(?,?)";
         PreparedStatement stmt = conn.prepareStatement(query);
         for (String s1 : c1) {
             for (String s2 : c2) {
@@ -73,15 +77,17 @@ public class SkipScanQueryIT extends BaseHBaseManagedTimeIT {
             }
         }
         conn.commit();
+        return tableName;
     }
     
-    private void initVarCharParallelListInTable(Connection conn, List<String> c1, List<String> c2) throws SQLException {
-        String ddl = "CREATE TABLE IF NOT EXISTS inVarTest (" + 
+    private String initVarCharParallelListInTable(Connection conn, List<String> c1, List<String> c2) throws SQLException {
+        String tableName = generateRandomString();
+        String ddl = "CREATE TABLE IF NOT EXISTS " + tableName + " (" + 
                      "  s1 VARCHAR, s2 VARCHAR CONSTRAINT pk PRIMARY KEY (s1,s2))";
         conn.createStatement().executeUpdate(ddl);
         
         // Test upsert correct values 
-        String query = "UPSERT INTO inVarTest VALUES(?,?)";
+        String query = "UPSERT INTO " + tableName + " VALUES(?,?)";
         PreparedStatement stmt = conn.prepareStatement(query);
         for (int i = 0; i < c1.size(); i++) {
             stmt.setString(1, c1.get(i));
@@ -89,13 +95,15 @@ public class SkipScanQueryIT extends BaseHBaseManagedTimeIT {
             stmt.execute();
         }
         conn.commit();
+        return tableName;
     }
     
-    private static final String UPSERT_SELECT_AFTER_UPSERT_STATEMENTS = 
-    		"upsert into table1(c1, c2, c3, c4, v1, v2) values('1001', '91', 's1', '2013-09-26', 28397, 23541);\n" + 
-    		"upsert into table1(c1, c2, c3, c4, v1, v2) values('1001', '91', 's2', '2013-09-23', 3369, null);\n";
-    private void initSelectAfterUpsertTable(Connection conn) throws Exception {
-        String ddl = "create table if not exists table1("
+    private static String UPSERT_SELECT_AFTER_UPSERT_STATEMENTS =
+    		"upsert into %s(c1, c2, c3, c4, v1, v2) values('1001', '91', 's1', '2013-09-26', 28397, 23541);\n" +
+    		"upsert into %s(c1, c2, c3, c4, v1, v2) values('1001', '91', 's2', '2013-09-23', 3369, null);\n";
+    private String initSelectAfterUpsertTable(Connection conn) throws Exception {
+        String tableName = generateRandomString();
+        String ddl = "create table if not exists  " + tableName + " ("
                 + "c1 VARCHAR NOT NULL," + "c2 VARCHAR NOT NULL,"
                 + "c3 VARCHAR NOT NULL," + "c4 VARCHAR NOT NULL,"
                 + "v1 integer," + "v2 integer "
@@ -103,18 +111,20 @@ public class SkipScanQueryIT extends BaseHBaseManagedTimeIT {
         conn.createStatement().execute(ddl);
 
         // Test upsert correct values
-        StringReader reader = new StringReader(UPSERT_SELECT_AFTER_UPSERT_STATEMENTS);
+        StringReader reader = new StringReader(String.format(UPSERT_SELECT_AFTER_UPSERT_STATEMENTS, tableName, tableName));
         PhoenixRuntime.executeStatements(conn, reader, Collections.emptyList());
         reader.close();
         conn.commit();
+        return tableName;
     }
     
     @Test
     public void testSkipScanFilterQuery() throws Exception {
-        String createTableDDL = "CREATE TABLE test" + "(col1 VARCHAR," + "col2 VARCHAR," + "col3 VARCHAR,"
+        String tableName = generateRandomString();
+        String createTableDDL = "CREATE TABLE " + tableName + "(col1 VARCHAR," + "col2 VARCHAR," + "col3 VARCHAR,"
              + "col4 VARCHAR," + "CONSTRAINT pk  " + "PRIMARY KEY (col1,col2,col3,col4))";
-        String upsertQuery = "upsert into test values(?,?,?,?)";
-        String query = "SELECT col1, col2, col3, col4 FROM test WHERE col1 IN ('a','e','f') AND col2 = 'b' AND col4 = '1' ";
+        String upsertQuery = "upsert into  " + tableName + "  values(?,?,?,?)";
+        String query = "SELECT col1, col2, col3, col4 FROM " + tableName + " WHERE col1 IN ('a','e','f') AND col2 = 'b' AND col4 = '1' ";
         String[] col1Values = { "a", "e.f", "f" };
         Properties props = PropertiesUtil.deepCopy(TEST_PROPERTIES);
         createTestTable(getUrl(), createTableDDL);
@@ -143,11 +153,11 @@ public class SkipScanQueryIT extends BaseHBaseManagedTimeIT {
     @Test
     public void testSelectAfterUpsertInQuery() throws Exception {
         Connection conn = DriverManager.getConnection(getUrl());
-        initSelectAfterUpsertTable(conn);
+        String tableName = initSelectAfterUpsertTable(conn);
         try {
             String query;
-            query = "SELECT case when sum(v2)*1.0/sum(v1) is null then 0 else sum(v2)*1.0/sum(v1) END AS val FROM table1 " +
-            		"WHERE c1='1001' AND c2 = '91' " +
+            query = "SELECT case when sum(v2)*1.0/sum(v1) is null then 0 else sum(v2)*1.0/sum(v1) END AS val FROM  " + tableName +
+            		" WHERE c1='1001' AND c2 = '91' " +
             		"AND c3 IN ('s1','s2') AND c4='2013-09-24'";
             ResultSet rs = conn.createStatement().executeQuery(query);
             assertTrue(rs.next());
@@ -160,10 +170,10 @@ public class SkipScanQueryIT extends BaseHBaseManagedTimeIT {
     public void testInQuery() throws Exception {
         Connection conn = DriverManager.getConnection(getUrl());
         conn.setAutoCommit(false);
-        initIntInTable(conn,Arrays.asList(2,7,10));
+        String tableName = initIntInTable(conn,Arrays.asList(2,7,10));
         try {
             String query;
-            query = "SELECT i FROM inTest WHERE i IN (1,2,4,5,7,8,10)";
+            query = "SELECT i FROM " + tableName + " WHERE i IN (1,2,4,5,7,8,10)";
             ResultSet rs = conn.createStatement().executeQuery(query);
             assertTrue(rs.next());
             assertEquals(2, rs.getInt(1));
@@ -181,10 +191,10 @@ public class SkipScanQueryIT extends BaseHBaseManagedTimeIT {
     public void testVarCharParallelListInQuery() throws Exception {
         Connection conn = DriverManager.getConnection(getUrl());
         conn.setAutoCommit(false);
-        initVarCharParallelListInTable(conn,Arrays.asList("d","da","db"),Arrays.asList("m","mc","tt"));
+        String tableName = initVarCharParallelListInTable(conn,Arrays.asList("d","da","db"),Arrays.asList("m","mc","tt"));
         try {
             String query;
-            query = "SELECT s1,s2 FROM inVarTest WHERE s1 IN ('a','b','da','db') AND s2 IN ('c','ma','m','mc','ttt','z')";
+            query = "SELECT s1,s2 FROM " + tableName + " WHERE s1 IN ('a','b','da','db') AND s2 IN ('c','ma','m','mc','ttt','z')";
             ResultSet rs = conn.createStatement().executeQuery(query);
             assertTrue(rs.next());
             assertEquals("da", rs.getString(1));
@@ -199,10 +209,10 @@ public class SkipScanQueryIT extends BaseHBaseManagedTimeIT {
     public void testVarCharXInQuery() throws Exception {
         Connection conn = DriverManager.getConnection(getUrl());
         conn.setAutoCommit(false);
-        initVarCharCrossProductInTable(conn,Arrays.asList("d","da","db"),Arrays.asList("m","mc","tt"));
+        String tableName = initVarCharCrossProductInTable(conn,Arrays.asList("d","da","db"),Arrays.asList("m","mc","tt"));
         try {
             String query;
-            query = "SELECT s1,s2 FROM inVarTest WHERE s1 IN ('a','b','da','db') AND s2 IN ('c','ma','m','mc','ttt','z')";
+            query = "SELECT s1,s2 FROM " + tableName + " WHERE s1 IN ('a','b','da','db') AND s2 IN ('c','ma','m','mc','ttt','z')";
             ResultSet rs = conn.createStatement().executeQuery(query);
             assertTrue(rs.next());
             assertEquals("da", rs.getString(1));
@@ -226,11 +236,11 @@ public class SkipScanQueryIT extends BaseHBaseManagedTimeIT {
     public void testVarCharXIntInQuery() throws Exception {
         Connection conn = DriverManager.getConnection(getUrl());
         conn.setAutoCommit(false);
-        initVarCharCrossProductInTable(conn,Arrays.asList("d","da","db"),Arrays.asList("m","mc","tt"));
+        String tableName = initVarCharCrossProductInTable(conn,Arrays.asList("d","da","db"),Arrays.asList("m","mc","tt"));
         try {
             String query;
-            query = "SELECT s1,s2 FROM inVarTest " +
-                    "WHERE s1 IN ('a','b','da','db') AND s2 IN ('c','ma','m','mc','ttt','z') " +
+            query = "SELECT s1,s2 FROM " + tableName +
+                    " WHERE s1 IN ('a','b','da','db') AND s2 IN ('c','ma','m','mc','ttt','z') " +
                     "AND s1 > 'd' AND s1 < 'db' AND s2 > 'm'";
             ResultSet rs = conn.createStatement().executeQuery(query);
             assertTrue(rs.next());
@@ -244,17 +254,18 @@ public class SkipScanQueryIT extends BaseHBaseManagedTimeIT {
     
     @Test
     public void testPreSplitCompositeFixedKey() throws Exception {
+        String tableName = generateRandomString();
         Connection conn = DriverManager.getConnection(getUrl());
         try {
-            conn.createStatement().execute("create table test(key_1 char(3) not null, key_2 char(4) not null, v varchar(8)  CONSTRAINT pk PRIMARY KEY (key_1,key_2)) split on('000','100','200')");
+            conn.createStatement().execute("create table " + tableName + "(key_1 char(3) not null, key_2 char(4) not null, v varchar(8)  CONSTRAINT pk PRIMARY KEY (key_1,key_2)) split on('000','100','200')");
             conn.setAutoCommit(true);
-            conn.createStatement().execute("upsert into test values('000','aaaa','value_1')");
-            conn.createStatement().execute("upsert into test values('000','aabb','value_2')");
-            conn.createStatement().execute("upsert into test values('100','aacc','value_3')");
-            conn.createStatement().execute("upsert into test values('100','aadd','value_4')");
-            conn.createStatement().execute("upsert into test values('200','aaee','value_5')");
-            conn.createStatement().execute("upsert into test values('201','aaff','value_6')");
-            ResultSet rs = conn.createStatement().executeQuery("select * from test where key_1>='000' and key_1<'200' and key_2>='aabb' and key_2<'aadd'");
+            conn.createStatement().execute("upsert into " + tableName + " values('000','aaaa','value_1')");
+            conn.createStatement().execute("upsert into " + tableName + " values('000','aabb','value_2')");
+            conn.createStatement().execute("upsert into " + tableName + " values('100','aacc','value_3')");
+            conn.createStatement().execute("upsert into " + tableName + " values('100','aadd','value_4')");
+            conn.createStatement().execute("upsert into " + tableName + " values('200','aaee','value_5')");
+            conn.createStatement().execute("upsert into " + tableName + " values('201','aaff','value_6')");
+            ResultSet rs = conn.createStatement().executeQuery("select * from " + tableName + " where key_1>='000' and key_1<'200' and key_2>='aabb' and key_2<'aadd'");
             assertTrue(rs.next());
             assertEquals("000", rs.getString(1));
             assertEquals("aabb", rs.getString(2));
@@ -273,16 +284,17 @@ public class SkipScanQueryIT extends BaseHBaseManagedTimeIT {
     @Test
     public void testInWithDescKey() throws Exception {
         Connection conn = DriverManager.getConnection(getUrl());
+        String tableName = generateRandomString();
         try {
-            conn.createStatement().execute("create table test(key_1 char(3) not null, key_2 char(4) not null, v varchar(8)  CONSTRAINT pk PRIMARY KEY (key_1,key_2 desc))");
+            conn.createStatement().execute("create table " + tableName + "(key_1 char(3) not null, key_2 char(4) not null, v varchar(8)  CONSTRAINT pk PRIMARY KEY (key_1,key_2 desc))");
             conn.setAutoCommit(true);
-            conn.createStatement().execute("upsert into test values('000','aaaa','value_1')");
-            conn.createStatement().execute("upsert into test values('000','aabb','value_2')");
-            conn.createStatement().execute("upsert into test values('100','aacc','value_3')");
-            conn.createStatement().execute("upsert into test values('100','aadd','value_4')");
-            conn.createStatement().execute("upsert into test values('200','aaee','value_5')");
-            conn.createStatement().execute("upsert into test values('201','aaff','value_6')");
-            ResultSet rs = conn.createStatement().executeQuery("select * from test where key_1>='000' and key_1<'200' and key_2>='aabb' and key_2<'aadd'");
+            conn.createStatement().execute("upsert into " + tableName + " values('000','aaaa','value_1')");
+            conn.createStatement().execute("upsert into " + tableName + " values('000','aabb','value_2')");
+            conn.createStatement().execute("upsert into " + tableName + " values('100','aacc','value_3')");
+            conn.createStatement().execute("upsert into " + tableName + " values('100','aadd','value_4')");
+            conn.createStatement().execute("upsert into " + tableName + " values('200','aaee','value_5')");
+            conn.createStatement().execute("upsert into " + tableName + " values('201','aaff','value_6')");
+            ResultSet rs = conn.createStatement().executeQuery("select * from " + tableName + " where key_1>='000' and key_1<'200' and key_2>='aabb' and key_2<'aadd'");
             assertTrue(rs.next());
             assertEquals("000", rs.getString(1));
             assertEquals("aabb", rs.getString(2));
@@ -293,7 +305,7 @@ public class SkipScanQueryIT extends BaseHBaseManagedTimeIT {
             assertEquals("value_3", rs.getString(3));
             assertFalse(rs.next());
 
-            rs = conn.createStatement().executeQuery("select * from test where (key_1,key_2) in (('100','aacc'),('100','aadd'))");
+            rs = conn.createStatement().executeQuery("select * from " + tableName + " where (key_1,key_2) in (('100','aacc'),('100','aadd'))");
             assertTrue(rs.next());
             assertEquals("100", rs.getString(1));
             assertEquals("aadd", rs.getString(2));
@@ -312,8 +324,8 @@ public class SkipScanQueryIT extends BaseHBaseManagedTimeIT {
     @Test
     public void testSkipScanIntersectionAtEnd() throws Exception {
         Connection conn = DriverManager.getConnection(getUrl());
-        
-        PreparedStatement stmt = conn.prepareStatement("create table splits_test "
+        String tableName = generateRandomString();
+        PreparedStatement stmt = conn.prepareStatement("create table " + tableName 
             + "(pk1 UNSIGNED_TINYINT NOT NULL, pk2 UNSIGNED_TINYINT NOT NULL, pk3 UNSIGNED_TINYINT NOT NULL, kv VARCHAR "
             + "CONSTRAINT pk PRIMARY KEY (pk1, pk2, pk3)) SPLIT ON (?, ?, ?)");
         stmt.setBytes(1, new byte[] {1, 1});
@@ -321,13 +333,13 @@ public class SkipScanQueryIT extends BaseHBaseManagedTimeIT {
         stmt.setBytes(3, new byte[] {3, 1});
         stmt.execute();
         
-        conn.createStatement().execute("upsert into splits_test values (0, 1, 1, 'a')");
-        conn.createStatement().execute("upsert into splits_test values (1, 1, 1, 'a')");
-        conn.createStatement().execute("upsert into splits_test values (2, 1, 1, 'a')");
-        conn.createStatement().execute("upsert into splits_test values (3, 1, 1, 'a')");
+        conn.createStatement().execute("upsert into " + tableName + " values (0, 1, 1, 'a')");
+        conn.createStatement().execute("upsert into " + tableName + " values (1, 1, 1, 'a')");
+        conn.createStatement().execute("upsert into " + tableName + " values (2, 1, 1, 'a')");
+        conn.createStatement().execute("upsert into " + tableName + " values (3, 1, 1, 'a')");
         conn.commit();
         
-        ResultSet rs = conn.createStatement().executeQuery("select count(kv) from splits_test where pk1 in (0, 1, 2, 3) AND pk2 = 1");
+        ResultSet rs = conn.createStatement().executeQuery("select count(kv) from " + tableName + " where pk1 in (0, 1, 2, 3) AND pk2 = 1");
         assertTrue(rs.next());
         assertEquals(4, rs.getInt(1));
         assertFalse(rs.next());
@@ -338,10 +350,12 @@ public class SkipScanQueryIT extends BaseHBaseManagedTimeIT {
         Properties props = PropertiesUtil.deepCopy(TEST_PROPERTIES);
         Connection conn = DriverManager.getConnection(getUrl(), props);
         conn.setAutoCommit(false);
+        String tableName = generateRandomString();
+        String fullTableName = SchemaUtil.getTableName(TestUtil.DEFAULT_SCHEMA_NAME, tableName);
         try {
-            createMultiCFTestTable(TestUtil.DEFAULT_DATA_TABLE_FULL_NAME, null);
-            populateMultiCFTestTable(TestUtil.DEFAULT_DATA_TABLE_FULL_NAME);
-            String upsert = "UPSERT INTO " + TestUtil.DEFAULT_DATA_TABLE_FULL_NAME
+            createMultiCFTestTable(fullTableName , null);
+            populateMultiCFTestTable(fullTableName);
+            String upsert = "UPSERT INTO " + fullTableName
                     + " VALUES(?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)";
             PreparedStatement stmt = conn.prepareStatement(upsert);
             stmt.setString(1, "varchar4");
@@ -398,7 +412,7 @@ public class SkipScanQueryIT extends BaseHBaseManagedTimeIT {
             stmt.setDate(16, null);
             stmt.executeUpdate();
             conn.commit();
-            String query = "SELECT char_col1, int_col1, long_col2 from " + TestUtil.DEFAULT_DATA_TABLE_FULL_NAME + " where varchar_pk in ('varchar3','varchar6')";
+            String query = "SELECT char_col1, int_col1, long_col2 from " + fullTableName + " where varchar_pk in ('varchar3','varchar6')";
             ResultSet rs = conn.createStatement().executeQuery(query);
             assertTrue(rs.next());
             assertEquals("chara", rs.getString(1));
@@ -418,13 +432,14 @@ public class SkipScanQueryIT extends BaseHBaseManagedTimeIT {
     @Test
     public void testOrPKWithAndNonPK() throws Exception {
         Connection conn = DriverManager.getConnection(getUrl());
+        String tableName = generateRandomString();
         try {
-            conn.createStatement().execute("create table bugTable(ID varchar primary key,company varchar)");
+            conn.createStatement().execute("create table " + tableName + "(ID varchar primary key,company varchar)");
             conn.setAutoCommit(true);
-            conn.createStatement().execute("upsert into bugTable values('i1','c1')");
-            conn.createStatement().execute("upsert into bugTable values('i2','c2')");
-            conn.createStatement().execute("upsert into bugTable values('i3','c3')");
-            ResultSet rs = conn.createStatement().executeQuery("select * from bugTable where ID = 'i1' or (ID = 'i2' and company = 'c3')");
+            conn.createStatement().execute("upsert into " + tableName + " values('i1','c1')");
+            conn.createStatement().execute("upsert into " + tableName + " values('i2','c2')");
+            conn.createStatement().execute("upsert into " + tableName + " values('i3','c3')");
+            ResultSet rs = conn.createStatement().executeQuery("select * from " + tableName + " where ID = 'i1' or (ID = 'i2' and company = 'c3')");
             assertTrue(rs.next());
             assertEquals("i1", rs.getString(1));
             assertEquals("c1", rs.getString(2));
@@ -438,9 +453,10 @@ public class SkipScanQueryIT extends BaseHBaseManagedTimeIT {
     @Test
     public void testNullInfiniteLoop() throws Exception {
         try (Connection conn = DriverManager.getConnection(getUrl())) {
+            String tableName = generateRandomString();
             conn.setAutoCommit(true);
             conn.createStatement().execute(
-              "create table NULL_TEST"+
+              "create table " + tableName +
               "("+
                      "CREATETIME VARCHAR,"+
                      "ACCOUNTID VARCHAR,"+
@@ -449,9 +465,9 @@ public class SkipScanQueryIT extends BaseHBaseManagedTimeIT {
                      "CONSTRAINT pk PRIMARY KEY(CREATETIME,ACCOUNTID,SERVICENAME)"+
               ")");
 
-            conn.createStatement().execute("upsert into NULL_TEST(CREATETIME,SERVICENAME,SPAN.APPID) values('20160116141006','servlet','android')");
-            conn.createStatement().execute("upsert into NULL_TEST(CREATETIME,ACCOUNTID,SERVICENAME,SPAN.APPID) values('20160116151006','2404787','jdbc','ios')");
-            ResultSet rs = conn.createStatement().executeQuery("select * from NULL_TEST where CREATETIME>='20160116121006' and  CREATETIME<='20160116181006' and ACCOUNTID='2404787'");
+            conn.createStatement().execute("upsert into " + tableName + "(CREATETIME,SERVICENAME,SPAN.APPID) values('20160116141006','servlet','android')");
+            conn.createStatement().execute("upsert into " + tableName + "(CREATETIME,ACCOUNTID,SERVICENAME,SPAN.APPID) values('20160116151006','2404787','jdbc','ios')");
+            ResultSet rs = conn.createStatement().executeQuery("select * from " + tableName + " where CREATETIME>='20160116121006' and  CREATETIME<='20160116181006' and ACCOUNTID='2404787'");
             assertTrue(rs.next());
             assertFalse(rs.next());
         }

http://git-wip-us.apache.org/repos/asf/phoenix/blob/d77d2492/phoenix-core/src/it/java/org/apache/phoenix/end2end/SortMergeJoinMoreIT.java
----------------------------------------------------------------------
diff --git a/phoenix-core/src/it/java/org/apache/phoenix/end2end/SortMergeJoinMoreIT.java b/phoenix-core/src/it/java/org/apache/phoenix/end2end/SortMergeJoinMoreIT.java
index 8ede6ae..f1be09f 100644
--- a/phoenix-core/src/it/java/org/apache/phoenix/end2end/SortMergeJoinMoreIT.java
+++ b/phoenix-core/src/it/java/org/apache/phoenix/end2end/SortMergeJoinMoreIT.java
@@ -39,10 +39,10 @@ import org.junit.Test;
 
 import com.google.common.collect.Maps;
 
-public class SortMergeJoinMoreIT extends BaseHBaseManagedTimeIT {
+public class SortMergeJoinMoreIT extends BaseHBaseManagedTimeTableReuseIT {
     
     @BeforeClass
-    @Shadower(classBeingShadowed = BaseHBaseManagedTimeIT.class)
+    @Shadower(classBeingShadowed = BaseHBaseManagedTimeTableReuseIT.class)
     public static void doSetup() throws Exception {
         Map<String,String> props = Maps.newHashMapWithExpectedSize(3);
         // Forces server cache to be used
@@ -53,8 +53,8 @@ public class SortMergeJoinMoreIT extends BaseHBaseManagedTimeIT {
     
     @Test
     public void testJoinOverSaltedTables() throws Exception {
-        String tempTableNoSalting = "TEMP_TABLE_NO_SALTING";
-        String tempTableWithSalting = "TEMP_TABLE_WITH_SALTING";
+        String tempTableNoSalting = "TEMP_TABLE_NO_SALTING"  + generateRandomString();
+        String tempTableWithSalting = "TEMP_TABLE_WITH_SALTING" + generateRandomString();
         Properties props = PropertiesUtil.deepCopy(TEST_PROPERTIES);
         Connection conn = DriverManager.getConnection(getUrl(), props);
         try {
@@ -191,8 +191,8 @@ public class SortMergeJoinMoreIT extends BaseHBaseManagedTimeIT {
 
     @Test
     public void testJoinOnDynamicColumns() throws Exception {
-        String tableA = "tableA";
-        String tableB = "tableB";
+        String tableA =  generateRandomString();
+        String tableB =  generateRandomString();
         Properties props = PropertiesUtil.deepCopy(TEST_PROPERTIES);
         Connection conn = null;
         PreparedStatement stmt = null;
@@ -210,7 +210,7 @@ public class SortMergeJoinMoreIT extends BaseHBaseManagedTimeIT {
             stmt.execute();
             stmt.close();
 
-            String upsertA = "UPSERT INTO TABLEA (pkA, colA1, colA2) VALUES(?, ?, ?)";
+            String upsertA = "UPSERT INTO " + tableA + " (pkA, colA1, colA2) VALUES(?, ?, ?)";
             stmt = conn.prepareStatement(upsertA);
             int i = 0;
             for (i = 0; i < 5; i++) {
@@ -221,20 +221,21 @@ public class SortMergeJoinMoreIT extends BaseHBaseManagedTimeIT {
             }
             conn.commit();
             stmt.close();
+            String seqBName = generateRandomString();
 
             // upsert select dynamic columns in tableB
-            conn.createStatement().execute("CREATE SEQUENCE SEQB");
-            String upsertBSelectA = "UPSERT INTO TABLEB (pkB, pkA INTEGER)"
-                    + "SELECT NEXT VALUE FOR SEQB, pkA FROM TABLEA";
+            conn.createStatement().execute("CREATE SEQUENCE " + seqBName);
+            String upsertBSelectA = "UPSERT INTO " + tableB + " (pkB, pkA INTEGER)"
+                    + "SELECT NEXT VALUE FOR " + seqBName + ", pkA FROM " + tableA ;
             stmt = conn.prepareStatement(upsertBSelectA);
             stmt.executeUpdate();
             stmt.close();
             conn.commit();
-            conn.createStatement().execute("DROP SEQUENCE SEQB");
+            conn.createStatement().execute("DROP SEQUENCE " + seqBName );
 
             // perform a join between tableB and tableA by joining on the dynamic column that we upserted in
             // tableB. This join should return all the rows from table A.
-            String joinSql = "SELECT /*+ USE_SORT_MERGE_JOIN*/ A.pkA, A.COLA1, A.colA2 FROM TABLEB B(pkA INTEGER) JOIN TABLEA A ON a.pkA = b.pkA";
+            String joinSql = "SELECT /*+ USE_SORT_MERGE_JOIN*/ A.pkA, A.COLA1, A.colA2 FROM " + tableB + " B(pkA INTEGER) JOIN " + tableA + " A ON a.pkA = b.pkA";
             stmt = conn.prepareStatement(joinSql);
             ResultSet rs = stmt.executeQuery();
             i = 0;
@@ -263,9 +264,13 @@ public class SortMergeJoinMoreIT extends BaseHBaseManagedTimeIT {
         Properties props = PropertiesUtil.deepCopy(TEST_PROPERTIES);
         Connection conn = DriverManager.getConnection(getUrl(), props);
         conn.setAutoCommit(false);
+        String gTableName = generateRandomString();
+        String lTableName = generateRandomString();
+        String slTableName = generateRandomString();
+
 
         try {
-            String GRAMMAR_TABLE = "CREATE TABLE IF NOT EXISTS GRAMMAR_TABLE (ID INTEGER PRIMARY KEY, " +
+            String GRAMMAR_TABLE = "CREATE TABLE IF NOT EXISTS " + gTableName + "  (ID INTEGER PRIMARY KEY, " +
                     "unsig_id UNSIGNED_INT, big_id BIGINT, unsig_long_id UNSIGNED_LONG, tiny_id TINYINT," +
                     "unsig_tiny_id UNSIGNED_TINYINT, small_id SMALLINT, unsig_small_id UNSIGNED_SMALLINT," + 
                     "float_id FLOAT, unsig_float_id UNSIGNED_FLOAT, double_id DOUBLE, unsig_double_id UNSIGNED_DOUBLE," + 
@@ -273,7 +278,7 @@ public class SortMergeJoinMoreIT extends BaseHBaseManagedTimeIT {
                     "unsig_time_id TIME, unsig_date_id DATE, unsig_timestamp_id TIMESTAMP, varchar_id VARCHAR (30)," + 
                     "char_id CHAR (30), binary_id BINARY (100), varbinary_id VARBINARY (100))";
 
-            String LARGE_TABLE = "CREATE TABLE IF NOT EXISTS LARGE_TABLE (ID INTEGER PRIMARY KEY, " +
+            String LARGE_TABLE = "CREATE TABLE IF NOT EXISTS " + lTableName + " (ID INTEGER PRIMARY KEY, " +
                     "unsig_id UNSIGNED_INT, big_id BIGINT, unsig_long_id UNSIGNED_LONG, tiny_id TINYINT," +
                     "unsig_tiny_id UNSIGNED_TINYINT, small_id SMALLINT, unsig_small_id UNSIGNED_SMALLINT," + 
                     "float_id FLOAT, unsig_float_id UNSIGNED_FLOAT, double_id DOUBLE, unsig_double_id UNSIGNED_DOUBLE," + 
@@ -281,7 +286,7 @@ public class SortMergeJoinMoreIT extends BaseHBaseManagedTimeIT {
                     "unsig_time_id TIME, unsig_date_id DATE, unsig_timestamp_id TIMESTAMP, varchar_id VARCHAR (30)," + 
                     "char_id CHAR (30), binary_id BINARY (100), varbinary_id VARBINARY (100))";
 
-            String SECONDARY_LARGE_TABLE = "CREATE TABLE IF NOT EXISTS SECONDARY_LARGE_TABLE (SEC_ID INTEGER PRIMARY KEY," +
+            String SECONDARY_LARGE_TABLE = "CREATE TABLE IF NOT EXISTS " + slTableName + " (SEC_ID INTEGER PRIMARY KEY," +
                     "sec_unsig_id UNSIGNED_INT, sec_big_id BIGINT, sec_usnig_long_id UNSIGNED_LONG, sec_tiny_id TINYINT," + 
                     "sec_unsig_tiny_id UNSIGNED_TINYINT, sec_small_id SMALLINT, sec_unsig_small_id UNSIGNED_SMALLINT," + 
                     "sec_float_id FLOAT, sec_unsig_float_id UNSIGNED_FLOAT, sec_double_id DOUBLE, sec_unsig_double_id UNSIGNED_DOUBLE," +
@@ -292,22 +297,22 @@ public class SortMergeJoinMoreIT extends BaseHBaseManagedTimeIT {
             createTestTable(getUrl(), LARGE_TABLE);
             createTestTable(getUrl(), SECONDARY_LARGE_TABLE);
 
-            String ddl = "SELECT /*+USE_SORT_MERGE_JOIN*/ * FROM (SELECT ID, BIG_ID, DATE_ID FROM LARGE_TABLE AS A WHERE (A.ID % 5) = 0) AS A " +
-                    "INNER JOIN (SELECT SEC_ID, SEC_TINY_ID, SEC_UNSIG_FLOAT_ID FROM SECONDARY_LARGE_TABLE AS B WHERE (B.SEC_ID % 5) = 0) AS B " +     
-                    "ON A.ID=B.SEC_ID WHERE A.DATE_ID > ALL (SELECT SEC_DATE_ID FROM SECONDARY_LARGE_TABLE LIMIT 100) " +      
-                    "AND B.SEC_UNSIG_FLOAT_ID = ANY (SELECT sec_unsig_float_id FROM SECONDARY_LARGE_TABLE " +                                       
-                    "WHERE SEC_ID > ALL (SELECT MIN (ID) FROM GRAMMAR_TABLE WHERE UNSIG_ID IS NULL) AND " +
-                    "SEC_UNSIG_ID < ANY (SELECT DISTINCT(UNSIG_ID) FROM LARGE_TABLE WHERE UNSIG_ID<2500) LIMIT 1000) " +
+            String ddl = "SELECT /*+USE_SORT_MERGE_JOIN*/ * FROM (SELECT ID, BIG_ID, DATE_ID FROM " + lTableName + " AS A WHERE (A.ID % 5) = 0) AS A " +
+                    "INNER JOIN (SELECT SEC_ID, SEC_TINY_ID, SEC_UNSIG_FLOAT_ID FROM " + slTableName + " AS B WHERE (B.SEC_ID % 5) = 0) AS B " +
+                    "ON A.ID=B.SEC_ID WHERE A.DATE_ID > ALL (SELECT SEC_DATE_ID FROM " + slTableName + " LIMIT 100) " +
+                    "AND B.SEC_UNSIG_FLOAT_ID = ANY (SELECT sec_unsig_float_id FROM " + slTableName +
+                    " WHERE SEC_ID > ALL (SELECT MIN (ID) FROM " + gTableName + "  WHERE UNSIG_ID IS NULL) AND " +
+                    "SEC_UNSIG_ID < ANY (SELECT DISTINCT(UNSIG_ID) FROM " + lTableName + " WHERE UNSIG_ID<2500) LIMIT 1000) " +
                     "AND A.ID < 10000";
             ResultSet rs = conn.createStatement().executeQuery(ddl);
             assertFalse(rs.next());  
         } finally {
             Statement statement = conn.createStatement();
-            String query = "drop table GRAMMAR_TABLE";
+            String query = "drop table " + gTableName;
             statement.executeUpdate(query);
-            query = "drop table LARGE_TABLE";
+            query = "drop table " + lTableName ;
             statement.executeUpdate(query);
-            query = "drop table SECONDARY_LARGE_TABLE";
+            query = "drop table " + slTableName ;
             statement.executeUpdate(query);
             conn.close();
         }
@@ -318,9 +323,10 @@ public class SortMergeJoinMoreIT extends BaseHBaseManagedTimeIT {
         Properties props = PropertiesUtil.deepCopy(TEST_PROPERTIES);
         Connection conn = DriverManager.getConnection(getUrl(), props);
         conn.setAutoCommit(true);
+        String eventCountTableName = generateRandomString();
         try {
             conn.createStatement().execute(
-                    "CREATE TABLE IF NOT EXISTS EVENT_COUNT (\n" +
+                    "CREATE TABLE IF NOT EXISTS " + eventCountTableName + " (\n" +
                     "        BUCKET VARCHAR,\n" +
                     "        TIMESTAMP_DATE TIMESTAMP,\n" +
                     "        TIMESTAMP UNSIGNED_LONG NOT NULL,\n" +
@@ -332,7 +338,7 @@ public class SortMergeJoinMoreIT extends BaseHBaseManagedTimeIT {
                     "        E FLOAT\n" +
                     "    CONSTRAINT pk PRIMARY KEY (BUCKET, TIMESTAMP DESC, LOCATION, A, B, C)\n" +
                     ") SALT_BUCKETS=2, COMPRESSION='GZ', TTL=31622400");
-            PreparedStatement stmt = conn.prepareStatement("UPSERT INTO EVENT_COUNT(BUCKET, TIMESTAMP, LOCATION, A, B, C) VALUES(?,?,?,?,?,?)");
+            PreparedStatement stmt = conn.prepareStatement("UPSERT INTO " + eventCountTableName + "(BUCKET, TIMESTAMP, LOCATION, A, B, C) VALUES(?,?,?,?,?,?)");
             stmt.setString(1, "5SEC");
             stmt.setString(3, "Tr/Bal");
             stmt.setString(4, "A1");
@@ -378,7 +384,7 @@ public class SortMergeJoinMoreIT extends BaseHBaseManagedTimeIT {
             // We'll test the original version of the user table as well as a slightly modified
             // version, in order to verify that sort-merge join works for columns both having
             // DESC sort order as well as one having ASC order and the other having DESC order.
-            String[] t = new String[] {"EVENT_LATENCY", "EVENT_LATENCY_2"};
+            String[] t = new String[] {"EVENT_LATENCY" + generateRandomString(), "EVENT_LATENCY_2" + generateRandomString()};
             for (int i = 0; i < 2; i++) {
                 conn.createStatement().execute(
                         "CREATE TABLE IF NOT EXISTS " + t[i] + " (\n" +
@@ -425,7 +431,7 @@ public class SortMergeJoinMoreIT extends BaseHBaseManagedTimeIT {
                 String q =
                         "SELECT C.BUCKET, C.TIMESTAMP FROM (\n" +
                         "     SELECT E.BUCKET as BUCKET, L.BUCKET as LBUCKET, E.TIMESTAMP as TIMESTAMP, L.TIMESTAMP as LTIMESTAMP FROM\n" +
-                        "        (SELECT BUCKET, TIMESTAMP FROM EVENT_COUNT\n" +
+                        "        (SELECT BUCKET, TIMESTAMP FROM " + eventCountTableName + "\n" +
                         "             WHERE BUCKET = '5SEC' AND LOCATION = 'Tr/Bal'\n" +
                         "                 AND TIMESTAMP <= 1462993520000000000 AND TIMESTAMP > 1462993420000000000\n" +
                         "             GROUP BY BUCKET, TIMESTAMP, LOCATION\n" +
@@ -442,7 +448,7 @@ public class SortMergeJoinMoreIT extends BaseHBaseManagedTimeIT {
                 
                 String p = i == 0 ?
                         "SORT-MERGE-JOIN (INNER) TABLES\n" +
-                        "    CLIENT PARALLEL 2-WAY SKIP SCAN ON 2 RANGES OVER EVENT_COUNT [0,'5SEC',~1462993520000000000,'Tr/Bal'] - [1,'5SEC',~1462993420000000000,'Tr/Bal']\n" +
+                        "    CLIENT PARALLEL 2-WAY SKIP SCAN ON 2 RANGES OVER " + eventCountTableName + " [0,'5SEC',~1462993520000000000,'Tr/Bal'] - [1,'5SEC',~1462993420000000000,'Tr/Bal']\n" +
                         "        SERVER FILTER BY FIRST KEY ONLY\n" +
                         "        SERVER DISTINCT PREFIX FILTER OVER [BUCKET, TIMESTAMP, LOCATION]\n" +
                         "        SERVER AGGREGATE INTO ORDERED DISTINCT ROWS BY [BUCKET, TIMESTAMP, LOCATION]\n" +
@@ -459,7 +465,7 @@ public class SortMergeJoinMoreIT extends BaseHBaseManagedTimeIT {
                         "CLIENT AGGREGATE INTO DISTINCT ROWS BY [E.BUCKET, E.TIMESTAMP]"
                         :
                         "SORT-MERGE-JOIN (INNER) TABLES\n" +
-                        "    CLIENT PARALLEL 2-WAY SKIP SCAN ON 2 RANGES OVER EVENT_COUNT [0,'5SEC',~1462993520000000000,'Tr/Bal'] - [1,'5SEC',~1462993420000000000,'Tr/Bal']\n" +
+                        "    CLIENT PARALLEL 2-WAY SKIP SCAN ON 2 RANGES OVER " + eventCountTableName + " [0,'5SEC',~1462993520000000000,'Tr/Bal'] - [1,'5SEC',~1462993420000000000,'Tr/Bal']\n" +
                         "        SERVER FILTER BY FIRST KEY ONLY\n" +
                         "        SERVER DISTINCT PREFIX FILTER OVER [BUCKET, TIMESTAMP, LOCATION]\n" +
                         "        SERVER AGGREGATE INTO ORDERED DISTINCT ROWS BY [BUCKET, TIMESTAMP, LOCATION]\n" +

http://git-wip-us.apache.org/repos/asf/phoenix/blob/d77d2492/phoenix-core/src/it/java/org/apache/phoenix/end2end/SpillableGroupByIT.java
----------------------------------------------------------------------
diff --git a/phoenix-core/src/it/java/org/apache/phoenix/end2end/SpillableGroupByIT.java b/phoenix-core/src/it/java/org/apache/phoenix/end2end/SpillableGroupByIT.java
index 70d5f1d..51dcd21 100644
--- a/phoenix-core/src/it/java/org/apache/phoenix/end2end/SpillableGroupByIT.java
+++ b/phoenix-core/src/it/java/org/apache/phoenix/end2end/SpillableGroupByIT.java
@@ -74,7 +74,7 @@ public class SpillableGroupByIT extends BaseOwnClusterHBaseManagedTimeIT {
 
     private long createTable() throws Exception {
         long ts = nextTimestamp();
-        ensureTableCreated(getUrl(), GROUPBYTEST_NAME, null, ts - 2);
+        ensureTableCreated(getUrl(), GROUPBYTEST_NAME, GROUPBYTEST_NAME, null, ts - 2);
         return ts;
     }
 

http://git-wip-us.apache.org/repos/asf/phoenix/blob/d77d2492/phoenix-core/src/it/java/org/apache/phoenix/end2end/SpooledTmpFileDeleteIT.java
----------------------------------------------------------------------
diff --git a/phoenix-core/src/it/java/org/apache/phoenix/end2end/SpooledTmpFileDeleteIT.java b/phoenix-core/src/it/java/org/apache/phoenix/end2end/SpooledTmpFileDeleteIT.java
index e23378e..728aa6f 100644
--- a/phoenix-core/src/it/java/org/apache/phoenix/end2end/SpooledTmpFileDeleteIT.java
+++ b/phoenix-core/src/it/java/org/apache/phoenix/end2end/SpooledTmpFileDeleteIT.java
@@ -38,11 +38,12 @@ import com.google.common.io.Files;
 
 
 
-public class SpooledTmpFileDeleteIT extends BaseHBaseManagedTimeIT {
+public class SpooledTmpFileDeleteIT extends BaseHBaseManagedTimeTableReuseIT {
 	
     private Connection conn = null;
     private Properties props = null;
     private File spoolDir;
+	private String tableName;
 
     @BeforeClass
     @Shadower(classBeingShadowed = BaseClientManagedTimeIT.class)
@@ -56,16 +57,17 @@ public class SpooledTmpFileDeleteIT extends BaseHBaseManagedTimeIT {
 	
 	@Before 
 	public void setup() throws SQLException {
+		tableName = generateRandomString();
 		props = new Properties();
 		spoolDir =  Files.createTempDir();
 		props.put(QueryServices.SPOOL_DIRECTORY, spoolDir.getPath());
         props.setProperty(QueryServices.SPOOL_THRESHOLD_BYTES_ATTRIB, Integer.toString(1));
         conn = DriverManager.getConnection(getUrl(), props);
 		Statement stmt = conn.createStatement();
-		stmt.execute("CREATE TABLE test (ID varchar NOT NULL PRIMARY KEY) SPLIT ON ('EA','EZ')");
-		stmt.execute("UPSERT INTO test VALUES ('AA')");
-		stmt.execute("UPSERT INTO test VALUES ('EB')");    
-		stmt.execute("UPSERT INTO test VALUES ('FA')");    
+		stmt.execute("CREATE TABLE " + tableName + " (ID varchar NOT NULL PRIMARY KEY) SPLIT ON ('EA','EZ')");
+		stmt.execute("UPSERT INTO " + tableName + " VALUES ('AA')");
+		stmt.execute("UPSERT INTO " + tableName + " VALUES ('EB')");
+		stmt.execute("UPSERT INTO " + tableName + " VALUES ('FA')");
 		stmt.close();
 		conn.commit();
 	}
@@ -98,7 +100,7 @@ public class SpooledTmpFileDeleteIT extends BaseHBaseManagedTimeIT {
 			file.delete();
 		}
 
-		String query = "select * from TEST";
+		String query = "select * from " + tableName + "";
 		Statement statement = conn.createStatement();
 		ResultSet rs = statement.executeQuery(query);
 		assertTrue(rs.next());
@@ -109,7 +111,7 @@ public class SpooledTmpFileDeleteIT extends BaseHBaseManagedTimeIT {
 			fileNames.add(file.getName());
 		}
 
-		String preparedQuery = "select * from test where id = ?";
+		String preparedQuery = "select * from " + tableName + " where id = ?";
 		PreparedStatement pstmt = conn.prepareStatement(preparedQuery);
 		pstmt.setString(1, "EB");
 		ResultSet prs = pstmt.executeQuery(preparedQuery);
@@ -121,14 +123,14 @@ public class SpooledTmpFileDeleteIT extends BaseHBaseManagedTimeIT {
 		}
 
 		Connection conn2 = DriverManager.getConnection(getUrl(), props);
-		String query2 = "select * from TEST";
+		String query2 = "select * from " + tableName + "";
 		Statement statement2 = conn2.createStatement();
 		ResultSet rs2 = statement2.executeQuery(query2);
 		assertTrue(rs2.next());
 		files = dir.listFiles(fnameFilter);
 		assertTrue(files.length > 0);
 
-		String preparedQuery2 = "select * from test where id = ?";
+		String preparedQuery2 = "select * from " + tableName + " where id = ?";
 		PreparedStatement pstmt2 = conn2.prepareStatement(preparedQuery2);
 		pstmt2.setString(1, "EB");
 		ResultSet prs2 = pstmt2.executeQuery(preparedQuery2);

http://git-wip-us.apache.org/repos/asf/phoenix/blob/d77d2492/phoenix-core/src/it/java/org/apache/phoenix/end2end/SqrtFunctionEnd2EndIT.java
----------------------------------------------------------------------
diff --git a/phoenix-core/src/it/java/org/apache/phoenix/end2end/SqrtFunctionEnd2EndIT.java b/phoenix-core/src/it/java/org/apache/phoenix/end2end/SqrtFunctionEnd2EndIT.java
index 50fdd4f..877b46d 100644
--- a/phoenix-core/src/it/java/org/apache/phoenix/end2end/SqrtFunctionEnd2EndIT.java
+++ b/phoenix-core/src/it/java/org/apache/phoenix/end2end/SqrtFunctionEnd2EndIT.java
@@ -18,6 +18,7 @@
 package org.apache.phoenix.end2end;
 
 import static org.apache.phoenix.util.TestUtil.closeStmtAndConn;
+import static org.apache.phoenix.util.TestUtil.getTableName;
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertTrue;
 
@@ -33,21 +34,25 @@ import org.junit.Test;
 /**
  * End to end tests for {@link SqrtFunction}
  */
-public class SqrtFunctionEnd2EndIT extends BaseHBaseManagedTimeIT {
+public class SqrtFunctionEnd2EndIT extends BaseHBaseManagedTimeTableReuseIT {
 
     private static final String KEY = "key";
     private static final double ZERO = 1e-8;
-
+    String testUnsignedTable;
+    String testSignedTable;
+    
     @Before
     public void initTable() throws Exception {
         Connection conn = null;
         PreparedStatement stmt = null;
+        testUnsignedTable = generateRandomString();
+        testSignedTable = generateRandomString();
         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 " + testSignedTable + " (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 " + testUnsignedTable + " (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,7 @@ public class SqrtFunctionEnd2EndIT 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 " + testSignedTable + " VALUES (?, ?, ?, ?, ?, ?, ?)");
         stmt.setString(1, KEY);
         Double d = Double.valueOf(data);
         stmt.setDouble(2, d.doubleValue());
@@ -70,7 +75,7 @@ public class SqrtFunctionEnd2EndIT 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 " + testUnsignedTable + " VALUES (?, ?, ?, ?, ?, ?, ?)");
         stmt.setString(1, KEY);
         Double d = Double.valueOf(data);
         stmt.setDouble(2, d.doubleValue());
@@ -85,7 +90,7 @@ public class SqrtFunctionEnd2EndIT extends BaseHBaseManagedTimeIT {
 
     private void testSignedNumberSpec(Connection conn, double data) throws Exception {
         updateSignedTable(conn, data);
-        ResultSet rs = conn.createStatement().executeQuery("SELECT SQRT(doub),SQRT(fl),SQRT(inte),SQRT(lon),SQRT(smalli),SQRT(tinyi) FROM testSigned");
+        ResultSet rs = conn.createStatement().executeQuery("SELECT SQRT(doub),SQRT(fl),SQRT(inte),SQRT(lon),SQRT(smalli),SQRT(tinyi) FROM " + testSignedTable );
         assertTrue(rs.next());
         Double d = Double.valueOf(data);
         assertTrue(Math.abs(rs.getDouble(1) - Math.sqrt(d.doubleValue())) < ZERO);
@@ -95,7 +100,7 @@ public class SqrtFunctionEnd2EndIT extends BaseHBaseManagedTimeIT {
         assertTrue(Math.abs(rs.getDouble(5) - Math.sqrt(d.shortValue())) < ZERO);
         assertTrue(Math.abs(rs.getDouble(6) - Math.sqrt(d.byteValue())) < ZERO);
         assertTrue(!rs.next());
-        PreparedStatement stmt = conn.prepareStatement("SELECT k FROM testSigned WHERE SQRT(doub)>0 AND SQRT(fl)>0 AND SQRT(inte)>0 AND SQRT(lon)>0 AND SQRT(smalli)>0 AND SQRT(tinyi)>0");
+        PreparedStatement stmt = conn.prepareStatement("SELECT k FROM " + testSignedTable + " WHERE SQRT(doub)>0 AND SQRT(fl)>0 AND SQRT(inte)>0 AND SQRT(lon)>0 AND SQRT(smalli)>0 AND SQRT(tinyi)>0");
         rs = stmt.executeQuery();
         if (data > 0) {
             assertTrue(rs.next());
@@ -106,7 +111,7 @@ public class SqrtFunctionEnd2EndIT extends BaseHBaseManagedTimeIT {
 
     private void testUnsignedNumberSpec(Connection conn, double data) throws Exception {
         updateUnsignedTable(conn, data);
-        ResultSet rs = conn.createStatement().executeQuery("SELECT SQRT(doub),SQRT(fl),SQRT(inte),SQRT(lon),SQRT(smalli),SQRT(tinyi) FROM testUnsigned");
+        ResultSet rs = conn.createStatement().executeQuery("SELECT SQRT(doub),SQRT(fl),SQRT(inte),SQRT(lon),SQRT(smalli),SQRT(tinyi) FROM " + testUnsignedTable );
         assertTrue(rs.next());
         Double d = Double.valueOf(data);
         assertTrue(Math.abs(rs.getDouble(1) - Math.sqrt(d.doubleValue())) < ZERO);
@@ -116,7 +121,7 @@ public class SqrtFunctionEnd2EndIT extends BaseHBaseManagedTimeIT {
         assertTrue(Math.abs(rs.getDouble(5) - Math.sqrt(d.shortValue())) < ZERO);
         assertTrue(Math.abs(rs.getDouble(6) - Math.sqrt(d.byteValue())) < ZERO);
         assertTrue(!rs.next());
-        PreparedStatement stmt = conn.prepareStatement("SELECT k FROM testUnsigned WHERE SQRT(doub)>0 AND SQRT(fl)>0 AND SQRT(inte)>0 AND SQRT(lon)>0 AND SQRT(smalli)>0 AND SQRT(tinyi)>0");
+        PreparedStatement stmt = conn.prepareStatement("SELECT k FROM " + testUnsignedTable + " WHERE SQRT(doub)>0 AND SQRT(fl)>0 AND SQRT(inte)>0 AND SQRT(lon)>0 AND SQRT(smalli)>0 AND SQRT(tinyi)>0");
         rs = stmt.executeQuery();
         if (data > 0) {
             assertTrue(rs.next());

http://git-wip-us.apache.org/repos/asf/phoenix/blob/d77d2492/phoenix-core/src/it/java/org/apache/phoenix/end2end/StddevIT.java
----------------------------------------------------------------------
diff --git a/phoenix-core/src/it/java/org/apache/phoenix/end2end/StddevIT.java b/phoenix-core/src/it/java/org/apache/phoenix/end2end/StddevIT.java
index c00b770..280b0aa 100644
--- a/phoenix-core/src/it/java/org/apache/phoenix/end2end/StddevIT.java
+++ b/phoenix-core/src/it/java/org/apache/phoenix/end2end/StddevIT.java
@@ -30,14 +30,14 @@ import java.sql.ResultSet;
 
 import org.junit.Test;
 
-public class StddevIT extends BaseHBaseManagedTimeIT {
+public class StddevIT extends BaseHBaseManagedTimeTableReuseIT {
 
     @Test
     public void testSTDDEV_POP() throws Exception {
         String tenantId = getOrganizationId();
-        initATableValues(tenantId, getDefaultSplits(tenantId), getUrl());
+        String tableName = initATableValues(tenantId, getDefaultSplits(tenantId), getUrl());
 
-        String query = "SELECT STDDEV_POP(A_INTEGER) FROM aTable";
+        String query = "SELECT STDDEV_POP(A_INTEGER) FROM " + tableName;
 
         Connection conn = DriverManager.getConnection(getUrl());
         try {
@@ -56,9 +56,9 @@ public class StddevIT extends BaseHBaseManagedTimeIT {
     @Test
     public void testSTDDEV_SAMP() throws Exception {
         String tenantId = getOrganizationId();
-        initATableValues(tenantId, getDefaultSplits(tenantId), getUrl());
+        String tableName = initATableValues(tenantId, getDefaultSplits(tenantId), getUrl());
 
-        String query = "SELECT STDDEV_SAMP(x_decimal) FROM aTable";
+        String query = "SELECT STDDEV_SAMP(x_decimal) FROM " + tableName;
 
         Connection conn = DriverManager.getConnection(getUrl());
         try {
@@ -77,9 +77,9 @@ public class StddevIT extends BaseHBaseManagedTimeIT {
     @Test
     public void testSTDDEV_POPOnDecimalColType() throws Exception {
         String tenantId = getOrganizationId();
-        initATableValues(tenantId, getDefaultSplits(tenantId), getUrl());
+        String tableName = initATableValues(tenantId, getDefaultSplits(tenantId), getUrl());
 
-        String query = "SELECT STDDEV_POP(x_decimal) FROM aTable";
+        String query = "SELECT STDDEV_POP(x_decimal) FROM " + tableName;
 
         Connection conn = DriverManager.getConnection(getUrl());
         try {
@@ -98,9 +98,9 @@ public class StddevIT extends BaseHBaseManagedTimeIT {
     @Test
     public void testSTDDEV_SAMPOnDecimalColType() throws Exception {
         String tenantId = getOrganizationId();
-        initATableValues(tenantId, getDefaultSplits(tenantId), getUrl());
+        String tableName = initATableValues(tenantId, getDefaultSplits(tenantId), getUrl());
 
-        String query = "SELECT STDDEV_SAMP(x_decimal) FROM aTable";
+        String query = "SELECT STDDEV_SAMP(x_decimal) FROM " + tableName;
 
         Connection conn = DriverManager.getConnection(getUrl());
         try {

http://git-wip-us.apache.org/repos/asf/phoenix/blob/d77d2492/phoenix-core/src/it/java/org/apache/phoenix/end2end/StringIT.java
----------------------------------------------------------------------
diff --git a/phoenix-core/src/it/java/org/apache/phoenix/end2end/StringIT.java b/phoenix-core/src/it/java/org/apache/phoenix/end2end/StringIT.java
index b315d7d..d5aad53 100644
--- a/phoenix-core/src/it/java/org/apache/phoenix/end2end/StringIT.java
+++ b/phoenix-core/src/it/java/org/apache/phoenix/end2end/StringIT.java
@@ -40,7 +40,7 @@ import com.google.common.collect.Lists;
  * Tests for the LPAD built-in function.
  */
 
-public class StringIT extends BaseHBaseManagedTimeIT {
+public class StringIT extends BaseHBaseManagedTimeTableReuseIT {
     
     /**
      * Helper to test LPAD function
@@ -51,21 +51,23 @@ public class StringIT extends BaseHBaseManagedTimeIT {
      *            name of column to query
      * @param length
      *            length of the output string
-     * @param fillString
+     * @param fillStringList
      *            fill characters to be used while prepending
      * @param sortOrder
      *            sort order of the pk column
-     * @param expectedOutput
+     * @param expectedOutputList
      *            expected output of LPAD function
+     * @param tableName
+     *            base name of the table
      */
     private void testLpadHelper(Connection conn, String colName, int length, List<String> fillStringList,
-        List<String> expectedOutputList, String sortOrder) throws Exception {
+        List<String> expectedOutputList, String tableName, String sortOrder) throws Exception {
         assertEquals("fillStringList and expectedOutputList should be of equal size", fillStringList.size(),
             expectedOutputList.size());
         for (int id = 0; id < fillStringList.size(); ++id) {
             String fillString = fillStringList.get(id);
             String lPadExpr = fillString != null ? "LPAD(%s,?,?)" : "LPAD(%s,?)";
-            String sql = String.format("SELECT " + lPadExpr + " FROM TEST_TABLE_%s WHERE id=?", colName, sortOrder);
+            String sql = String.format("SELECT " + lPadExpr + " FROM " + tableName + "_%s WHERE id=?", colName, sortOrder);
             PreparedStatement stmt = conn.prepareStatement(sql);
             int index = 1;
             stmt.setInt(index++, length);
@@ -93,16 +95,16 @@ public class StringIT extends BaseHBaseManagedTimeIT {
      *            list of fill string to be used while testing
      * @param colName
      *            name of column to be used as function input
-     * @param expecetedOutputList
+     * @param expectedOutputList
      *            list of expected output values
      * @param expectedOutputList
      *            expected output of lpad function
      */
     private void testLpad(Connection conn, List<String> inputList, int length, List<String> fillStringList,
         String colName, List<String> expectedOutputList) throws Exception {
-        TestUtil.initTables(conn, "VARCHAR", new ArrayList<Object>(inputList));
-        testLpadHelper(conn, colName, length, fillStringList, expectedOutputList, "ASC");
-        testLpadHelper(conn, colName, length, fillStringList, expectedOutputList, "DESC");
+        String tableName = TestUtil.initTables(conn, "VARCHAR", new ArrayList<Object>(inputList));
+        testLpadHelper(conn, colName, length, fillStringList, expectedOutputList, tableName, "ASC");
+        testLpadHelper(conn, colName, length, fillStringList, expectedOutputList, tableName, "DESC");
     }
 
     private void testLpad(Connection conn, List<String> inputList, int length, List<String> fillStringList,
@@ -114,23 +116,23 @@ public class StringIT extends BaseHBaseManagedTimeIT {
     public void testCharPadding() throws Exception {
         ResultSet rs;
         Connection conn = DriverManager.getConnection(getUrl());
-        
-        conn.createStatement().execute("CREATE TABLE t (k CHAR(3) PRIMARY KEY)");
-        conn.createStatement().execute("UPSERT INTO t VALUES('a')");
-        conn.createStatement().execute("UPSERT INTO t VALUES('ab')");
+        String tableName = generateRandomString();
+        conn.createStatement().execute("CREATE TABLE " + tableName + " (k CHAR(3) PRIMARY KEY)");
+        conn.createStatement().execute("UPSERT INTO " + tableName + " VALUES('a')");
+        conn.createStatement().execute("UPSERT INTO " + tableName + " VALUES('ab')");
         conn.commit();
-        rs = conn.createStatement().executeQuery("SELECT * FROM t ORDER BY k");
+        rs = conn.createStatement().executeQuery("SELECT * FROM " + tableName + " ORDER BY k");
         assertTrue(rs.next());
         assertEquals("a", rs.getString(1));
         assertTrue(rs.next());
         assertEquals("ab", rs.getString(1));
         assertFalse(rs.next());
-
-        conn.createStatement().execute("CREATE TABLE tdesc (k CHAR(3) PRIMARY KEY DESC)");
-        conn.createStatement().execute("UPSERT INTO tdesc VALUES('a')");
-        conn.createStatement().execute("UPSERT INTO tdesc VALUES('ab')");
+        String tableNameDesc = generateRandomString();
+        conn.createStatement().execute("CREATE TABLE " + tableNameDesc + " (k CHAR(3) PRIMARY KEY DESC)");
+        conn.createStatement().execute("UPSERT INTO " + tableNameDesc + " VALUES('a')");
+        conn.createStatement().execute("UPSERT INTO " + tableNameDesc + " VALUES('ab')");
         conn.commit();
-        rs = conn.createStatement().executeQuery("SELECT * FROM tdesc ORDER BY k DESC");
+        rs = conn.createStatement().executeQuery("SELECT * FROM " + tableNameDesc + " ORDER BY k DESC");
         assertTrue(rs.next());
         assertEquals("ab", rs.getString(1));
         assertTrue(rs.next());
@@ -142,23 +144,24 @@ public class StringIT extends BaseHBaseManagedTimeIT {
     public void testBinaryPadding() throws Exception {
         ResultSet rs;
         Connection conn = DriverManager.getConnection(getUrl());
-        
-        conn.createStatement().execute("CREATE TABLE t (k BINARY(3) PRIMARY KEY)");
-        conn.createStatement().execute("UPSERT INTO t VALUES('a')");
-        conn.createStatement().execute("UPSERT INTO t VALUES('ab')");
+        String tableName = generateRandomString();
+        conn.createStatement().execute("CREATE TABLE " + tableName + " (k BINARY(3) PRIMARY KEY)");
+        conn.createStatement().execute("UPSERT INTO " + tableName + " VALUES('a')");
+        conn.createStatement().execute("UPSERT INTO " + tableName + " VALUES('ab')");
         conn.commit();
-        rs = conn.createStatement().executeQuery("SELECT * FROM t ORDER BY k");
+        rs = conn.createStatement().executeQuery("SELECT * FROM " + tableName + " ORDER BY k");
         assertTrue(rs.next());
         assertArrayEquals(ByteUtil.concat(Bytes.toBytes("a"), QueryConstants.SEPARATOR_BYTE_ARRAY, QueryConstants.SEPARATOR_BYTE_ARRAY), rs.getBytes(1));
         assertTrue(rs.next());
         assertArrayEquals(ByteUtil.concat(Bytes.toBytes("ab"), QueryConstants.SEPARATOR_BYTE_ARRAY), rs.getBytes(1));
         assertFalse(rs.next());
 
-        conn.createStatement().execute("CREATE TABLE tdesc (k BINARY(3) PRIMARY KEY DESC)");
-        conn.createStatement().execute("UPSERT INTO tdesc VALUES('a')");
-        conn.createStatement().execute("UPSERT INTO tdesc VALUES('ab')");
+        String tableNameDesc = generateRandomString();
+        conn.createStatement().execute("CREATE TABLE " +  tableNameDesc + " (k BINARY(3) PRIMARY KEY DESC)");
+        conn.createStatement().execute("UPSERT INTO " + tableNameDesc + " VALUES('a')");
+        conn.createStatement().execute("UPSERT INTO " + tableNameDesc + " VALUES('ab')");
         conn.commit();
-        rs = conn.createStatement().executeQuery("SELECT * FROM tdesc ORDER BY k DESC");
+        rs = conn.createStatement().executeQuery("SELECT * FROM " + tableNameDesc + " ORDER BY k DESC");
         assertTrue(rs.next());
         assertArrayEquals(ByteUtil.concat(Bytes.toBytes("ab"), QueryConstants.SEPARATOR_BYTE_ARRAY), rs.getBytes(1));
         assertTrue(rs.next());
@@ -242,11 +245,12 @@ public class StringIT extends BaseHBaseManagedTimeIT {
     @Test
     public void testStrConcat() throws Exception {
         Connection conn = DriverManager.getConnection(getUrl());
-        conn.createStatement().execute("create table T (PK1 integer, F1 varchar, F2 varchar, F3 varchar, F4 varchar, constraint PK primary key (PK1))");
-        conn.createStatement().execute("upsert into T(PK1, F1,F3) values(0, 'tortilla', 'chip')");
+        String tableName = generateRandomString();
+        conn.createStatement().execute("create table " + tableName + " (PK1 integer, F1 varchar, F2 varchar, F3 varchar, F4 varchar, constraint PK primary key (PK1))");
+        conn.createStatement().execute("upsert into " + tableName + "(PK1, F1,F3) values(0, 'tortilla', 'chip')");
         conn.commit();
         
-        ResultSet rs = conn.createStatement().executeQuery("select * from T where (F1||F2||F3||F4)='tortillachip'");
+        ResultSet rs = conn.createStatement().executeQuery("select * from " + tableName + " where (F1||F2||F3||F4)='tortillachip'");
         assertTrue(rs.next());
         assertEquals(0, rs.getInt(1));
         assertFalse(rs.next());

http://git-wip-us.apache.org/repos/asf/phoenix/blob/d77d2492/phoenix-core/src/it/java/org/apache/phoenix/end2end/SubqueryIT.java
----------------------------------------------------------------------
diff --git a/phoenix-core/src/it/java/org/apache/phoenix/end2end/SubqueryIT.java b/phoenix-core/src/it/java/org/apache/phoenix/end2end/SubqueryIT.java
index 2ced621..d94d4e3 100644
--- a/phoenix-core/src/it/java/org/apache/phoenix/end2end/SubqueryIT.java
+++ b/phoenix-core/src/it/java/org/apache/phoenix/end2end/SubqueryIT.java
@@ -67,7 +67,8 @@ public class SubqueryIT extends BaseHBaseManagedTimeIT {
     
     private String[] indexDDL;
     private String[] plans;
-    
+    private String itemTableFullName;
+
     public SubqueryIT(String[] indexDDL, String[] plans) {
         this.indexDDL = indexDDL;
         this.plans = plans;
@@ -322,7 +323,7 @@ public class SubqueryIT extends BaseHBaseManagedTimeIT {
     
     
     protected void initCoItemTableValues() throws Exception {
-        ensureTableCreated(getUrl(), JOIN_COITEM_TABLE_FULL_NAME);
+        ensureTableCreated(getUrl(), JOIN_COITEM_TABLE_FULL_NAME, JOIN_COITEM_TABLE_FULL_NAME);
         
         Properties props = PropertiesUtil.deepCopy(TEST_PROPERTIES);
         Connection conn = DriverManager.getConnection(getUrl(), props);

http://git-wip-us.apache.org/repos/asf/phoenix/blob/d77d2492/phoenix-core/src/it/java/org/apache/phoenix/end2end/TenantIdTypeIT.java
----------------------------------------------------------------------
diff --git a/phoenix-core/src/it/java/org/apache/phoenix/end2end/TenantIdTypeIT.java b/phoenix-core/src/it/java/org/apache/phoenix/end2end/TenantIdTypeIT.java
index f28436e..c7b5716 100644
--- a/phoenix-core/src/it/java/org/apache/phoenix/end2end/TenantIdTypeIT.java
+++ b/phoenix-core/src/it/java/org/apache/phoenix/end2end/TenantIdTypeIT.java
@@ -38,7 +38,7 @@ import org.junit.runners.Parameterized;
 import org.junit.runners.Parameterized.Parameters;
 
 @RunWith(Parameterized.class)
-public class TenantIdTypeIT extends BaseHBaseManagedTimeIT {
+public class TenantIdTypeIT extends BaseHBaseManagedTimeTableReuseIT {
 
     private Connection regularConnection(String url) throws SQLException {
         Properties props = new Properties();
@@ -74,7 +74,7 @@ public class TenantIdTypeIT extends BaseHBaseManagedTimeIT {
         this.dataType = dataType;
         this.tenantId = tenantId;
         this.otherTenantId = otherTenantId;
-        String tbl = "foo" + dataType;
+        String tbl = generateRandomString();
         if(tbl.contains("(")){
             tbl = tbl.substring(0, tbl.indexOf("("));
         }

http://git-wip-us.apache.org/repos/asf/phoenix/blob/d77d2492/phoenix-core/src/it/java/org/apache/phoenix/end2end/TenantSpecificViewIndexIT.java
----------------------------------------------------------------------
diff --git a/phoenix-core/src/it/java/org/apache/phoenix/end2end/TenantSpecificViewIndexIT.java b/phoenix-core/src/it/java/org/apache/phoenix/end2end/TenantSpecificViewIndexIT.java
index e6e13d3..8010542 100644
--- a/phoenix-core/src/it/java/org/apache/phoenix/end2end/TenantSpecificViewIndexIT.java
+++ b/phoenix-core/src/it/java/org/apache/phoenix/end2end/TenantSpecificViewIndexIT.java
@@ -17,6 +17,8 @@
  */
 package org.apache.phoenix.end2end;
 
+import static org.apache.phoenix.util.MetaDataUtil.getViewIndexSequenceName;
+import static org.apache.phoenix.util.MetaDataUtil.getViewIndexSequenceSchemaName;
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertFalse;
 import static org.junit.Assert.assertTrue;
@@ -34,11 +36,13 @@ import org.apache.phoenix.jdbc.PhoenixConnection;
 import org.apache.phoenix.jdbc.PhoenixDatabaseMetaData;
 import org.apache.phoenix.query.QueryServices;
 import org.apache.phoenix.schema.ColumnNotFoundException;
+import org.apache.phoenix.schema.PNameFactory;
 import org.apache.phoenix.schema.PTableType;
 import org.apache.phoenix.util.MetaDataUtil;
 import org.apache.phoenix.util.PhoenixRuntime;
 import org.apache.phoenix.util.QueryUtil;
 import org.apache.phoenix.util.SchemaUtil;
+import org.junit.Ignore;
 import org.junit.Test;
 
 
@@ -69,16 +73,19 @@ public class TenantSpecificViewIndexIT extends BaseTenantSpecificViewIndexIT {
         testUpdatableViewsWithSameNameDifferentTenants(null, true);
     }
 
+
     @Test
     public void testMultiCFViewIndex() throws Exception {
         testMultiCFViewIndex(false, false);
     }
 
+
     @Test
     public void testMultiCFViewIndexWithNamespaceMapping() throws Exception {
         testMultiCFViewIndex(false, true);
     }
 
+
     @Test
     public void testMultiCFViewLocalIndex() throws Exception {
         testMultiCFViewIndex(true, false);
@@ -110,12 +117,18 @@ public class TenantSpecificViewIndexIT extends BaseTenantSpecificViewIndexIT {
     }
 
     private void testMultiCFViewIndex(boolean localIndex, boolean isNamespaceEnabled) throws Exception {
-        String tableName = "A.MT_BASE";
-        String baseViewName = "acme";
+        String tableName = "XYZ." + generateRandomString();
+        String baseViewName = generateRandomString() ;
         createTableAndValidate(tableName, isNamespaceEnabled);
         createViewAndIndexesWithTenantId(tableName, baseViewName, localIndex, "b", isNamespaceEnabled);
         createViewAndIndexesWithTenantId(tableName, baseViewName, localIndex, "a", isNamespaceEnabled);
-        validateSequence(tableName, isNamespaceEnabled, "-32767,-32767");
+
+        String sequenceNameA = getViewIndexSequenceName(PNameFactory.newName(tableName), PNameFactory.newName("a"), isNamespaceEnabled);
+        String sequenceNameB = getViewIndexSequenceName(PNameFactory.newName(tableName), PNameFactory.newName("b"), isNamespaceEnabled);
+        String sequenceSchemaName = getViewIndexSequenceSchemaName(PNameFactory.newName(tableName), isNamespaceEnabled);
+        verifySequence(isNamespaceEnabled? "a" : null, sequenceNameA, sequenceSchemaName, true);
+        verifySequence(isNamespaceEnabled? "b" : null, sequenceNameB, sequenceSchemaName, true);
+
         Properties props = new Properties();
         props.setProperty(PhoenixRuntime.TENANT_ID_ATTRIB, "a");
         try (Connection conn = DriverManager.getConnection(getUrl(), props)) {
@@ -126,24 +139,9 @@ public class TenantSpecificViewIndexIT extends BaseTenantSpecificViewIndexIT {
             conn.createStatement().execute("DROP VIEW  " + baseViewName + "_b");
         }
         DriverManager.getConnection(getUrl()).createStatement().execute("DROP TABLE " + tableName + " CASCADE");
-        validateSequence(tableName, isNamespaceEnabled, null);
-    }
 
-    private void validateSequence(String tableName, boolean isNamespaceEnabled, String expectedResult)
-            throws SQLException {
-        PhoenixConnection phxConn = DriverManager.getConnection(getUrl()).unwrap(PhoenixConnection.class);
-        ResultSet rs = phxConn.createStatement().executeQuery("SELECT " + PhoenixDatabaseMetaData.CURRENT_VALUE
-                + "  FROM " + PhoenixDatabaseMetaData.SYSTEM_SEQUENCE);
-        if (expectedResult != null) {
-            String[] splits = expectedResult.split(",");
-            for (String seq : splits) {
-                assertTrue(rs.next());
-                assertEquals(seq, rs.getString(1));
-            }
-        } else {
-            assertFalse(rs.next());
-        }
-        phxConn.close();
+        verifySequence(isNamespaceEnabled? "a" : null, sequenceNameA, sequenceSchemaName, false);
+        verifySequence(isNamespaceEnabled? "b" : null, sequenceNameB, sequenceSchemaName, false);
     }
 
     private void createViewAndIndexesWithTenantId(String tableName,String baseViewName, boolean localIndex, String tenantId,
@@ -251,10 +249,12 @@ public class TenantSpecificViewIndexIT extends BaseTenantSpecificViewIndexIT {
     public void testNonPaddedTenantId() throws Exception {
         String tenantId1 = "org1";
         String tenantId2 = "org2";
-        String ddl = "CREATE TABLE T (tenantId char(15) NOT NULL, pk1 varchar NOT NULL, pk2 INTEGER NOT NULL, val1 VARCHAR CONSTRAINT pk primary key (tenantId,pk1,pk2)) MULTI_TENANT = true";
+        String tableName = generateRandomString();
+        String viewName = generateRandomString();
+        String ddl = "CREATE TABLE " + tableName + " (tenantId char(15) NOT NULL, pk1 varchar NOT NULL, pk2 INTEGER NOT NULL, val1 VARCHAR CONSTRAINT pk primary key (tenantId,pk1,pk2)) MULTI_TENANT = true";
         Connection conn = DriverManager.getConnection(getUrl());
         conn.createStatement().execute(ddl);
-        String dml = "UPSERT INTO T (tenantId, pk1, pk2, val1) VALUES (?, ?, ?, ?)";
+        String dml = "UPSERT INTO " + tableName + " (tenantId, pk1, pk2, val1) VALUES (?, ?, ?, ?)";
         PreparedStatement stmt = conn.prepareStatement(dml);
         
         String pk = "pk1b";
@@ -278,8 +278,8 @@ public class TenantSpecificViewIndexIT extends BaseTenantSpecificViewIndexIT {
         Connection tenantConn = DriverManager.getConnection(tenantUrl);
         
         // create a tenant specific view.
-        tenantConn.createStatement().execute("CREATE VIEW V AS select * from T");
-        String query = "SELECT val1 FROM V WHERE pk1 = ?";
+        tenantConn.createStatement().execute("CREATE VIEW " + viewName + " AS select * from " + tableName);
+        String query = "SELECT val1 FROM " + viewName + " WHERE pk1 = ?";
         
         // using the tenant connection query the view.
         PreparedStatement stmt2 = tenantConn.prepareStatement(query);

http://git-wip-us.apache.org/repos/asf/phoenix/blob/d77d2492/phoenix-core/src/it/java/org/apache/phoenix/end2end/ToCharFunctionIT.java
----------------------------------------------------------------------
diff --git a/phoenix-core/src/it/java/org/apache/phoenix/end2end/ToCharFunctionIT.java b/phoenix-core/src/it/java/org/apache/phoenix/end2end/ToCharFunctionIT.java
index 72544f2..e976517 100644
--- a/phoenix-core/src/it/java/org/apache/phoenix/end2end/ToCharFunctionIT.java
+++ b/phoenix-core/src/it/java/org/apache/phoenix/end2end/ToCharFunctionIT.java
@@ -245,12 +245,13 @@ public class ToCharFunctionIT extends BaseHBaseManagedTimeTableReuseIT {
     @Test
     public void testToCharWithCloneMethod() throws SQLException {
         Connection conn = DriverManager.getConnection(getUrl());
-    	String ddl = "create table t (k varchar primary key, v integer[])";
+        String tableName = generateRandomString();
+    	String ddl = "create table " + tableName + " (k varchar primary key, v integer[])";
         conn.createStatement().execute(ddl);
-        conn.createStatement().execute("UPSERT INTO T VALUES('x',ARRAY[1234])");
+        conn.createStatement().execute("UPSERT INTO " + tableName + " VALUES('x',ARRAY[1234])");
         conn.commit();
         
-        ResultSet rs = conn.createStatement().executeQuery("select to_char(v[1],'000') from t");
+        ResultSet rs = conn.createStatement().executeQuery("select to_char(v[1],'000') from " + tableName);
         assertTrue(rs.next());
         assertEquals("Unexpected value for date ", String.valueOf(1234), rs.getString(1));
         assertFalse(rs.next());

http://git-wip-us.apache.org/repos/asf/phoenix/blob/d77d2492/phoenix-core/src/it/java/org/apache/phoenix/end2end/ToDateFunctionIT.java
----------------------------------------------------------------------
diff --git a/phoenix-core/src/it/java/org/apache/phoenix/end2end/ToDateFunctionIT.java b/phoenix-core/src/it/java/org/apache/phoenix/end2end/ToDateFunctionIT.java
index acb29df..b530d2a 100644
--- a/phoenix-core/src/it/java/org/apache/phoenix/end2end/ToDateFunctionIT.java
+++ b/phoenix-core/src/it/java/org/apache/phoenix/end2end/ToDateFunctionIT.java
@@ -30,7 +30,7 @@ import java.util.Properties;
 import static org.junit.Assert.*;
 
 
-public class ToDateFunctionIT extends BaseHBaseManagedTimeIT {
+public class ToDateFunctionIT extends BaseHBaseManagedTimeTableReuseIT {
 
     private static final long ONE_HOUR_IN_MILLIS = 1000L * 60L * 60L;
 
@@ -255,12 +255,13 @@ public class ToDateFunctionIT extends BaseHBaseManagedTimeIT {
     @Test
     public void testToDateWithCloneMethod() throws SQLException {
         Connection conn = DriverManager.getConnection(getUrl());
-    	String ddl = "create table t (k varchar primary key, v varchar[])";
+        String tableName = generateRandomString();
+    	String ddl = "create table " + tableName + " (k varchar primary key, v varchar[])";
         conn.createStatement().execute(ddl);
         String dateStr = "2100-01-01";
-        conn.createStatement().execute("UPSERT INTO T VALUES('x',ARRAY['"+dateStr+"'])");
+        conn.createStatement().execute("UPSERT INTO " + tableName + " VALUES('x',ARRAY['"+dateStr+"'])");
         conn.commit();
-        ResultSet rs = conn.createStatement().executeQuery("select to_date(v[1], 'yyyy-MM-dd', 'local') from t");
+        ResultSet rs = conn.createStatement().executeQuery("select to_date(v[1], 'yyyy-MM-dd', 'local') from " + tableName);
         
         assertTrue(rs.next());
         assertEquals("Unexpected value for date ", Date.valueOf(dateStr), rs.getDate(1));

http://git-wip-us.apache.org/repos/asf/phoenix/blob/d77d2492/phoenix-core/src/it/java/org/apache/phoenix/end2end/TopNIT.java
----------------------------------------------------------------------
diff --git a/phoenix-core/src/it/java/org/apache/phoenix/end2end/TopNIT.java b/phoenix-core/src/it/java/org/apache/phoenix/end2end/TopNIT.java
index 618680d..ca1cd86 100644
--- a/phoenix-core/src/it/java/org/apache/phoenix/end2end/TopNIT.java
+++ b/phoenix-core/src/it/java/org/apache/phoenix/end2end/TopNIT.java
@@ -27,6 +27,7 @@ import static org.apache.phoenix.util.TestUtil.ROW7;
 import static org.apache.phoenix.util.TestUtil.ROW8;
 import static org.apache.phoenix.util.TestUtil.ROW9;
 import static org.apache.phoenix.util.TestUtil.TEST_PROPERTIES;
+import static org.apache.phoenix.util.TestUtil.ATABLE_NAME;
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertFalse;
 import static org.junit.Assert.assertTrue;
@@ -48,7 +49,8 @@ public class TopNIT extends BaseClientManagedTimeIT {
     public void testMultiOrderByExpr() throws Exception {
         long ts = nextTimestamp();
         String tenantId = getOrganizationId();
-        initATableValues(tenantId, getDefaultSplits(tenantId), null, ts);
+
+        initATableValues(ATABLE_NAME, tenantId, getDefaultSplits(tenantId), null, ts, getUrl());
         String query = "SELECT entity_id FROM aTable ORDER BY b_string, entity_id LIMIT 5";
         Properties props = PropertiesUtil.deepCopy(TEST_PROPERTIES);
         props.setProperty(PhoenixRuntime.CURRENT_SCN_ATTRIB, Long.toString(ts + 2)); // Execute at timestamp 2
@@ -78,7 +80,7 @@ public class TopNIT extends BaseClientManagedTimeIT {
     public void testDescMultiOrderByExpr() throws Exception {
         long ts = nextTimestamp();
         String tenantId = getOrganizationId();
-        initATableValues(tenantId, getDefaultSplits(tenantId), null, ts);
+        initATableValues(ATABLE_NAME, tenantId, getDefaultSplits(tenantId), null, ts, getUrl());
         String query = "SELECT entity_id FROM aTable ORDER BY b_string || entity_id desc LIMIT 5";
         Properties props = PropertiesUtil.deepCopy(TEST_PROPERTIES);
         props.setProperty(PhoenixRuntime.CURRENT_SCN_ATTRIB, Long.toString(ts + 2)); // Execute at timestamp 2
@@ -117,7 +119,7 @@ public class TopNIT extends BaseClientManagedTimeIT {
     private void testTopNDelete(boolean autoCommit) throws Exception {
         long ts = nextTimestamp();
         String tenantId = getOrganizationId();
-        initATableValues(tenantId, getDefaultSplits(tenantId), null, ts);
+        initATableValues(ATABLE_NAME, tenantId, getDefaultSplits(tenantId), null, ts, getUrl());
         String query = "DELETE FROM aTable ORDER BY b_string, entity_id LIMIT 5";
         Properties props = PropertiesUtil.deepCopy(TEST_PROPERTIES);
         props.setProperty(PhoenixRuntime.CURRENT_SCN_ATTRIB, Long.toString(ts + 2)); // Execute at timestamp 2

http://git-wip-us.apache.org/repos/asf/phoenix/blob/d77d2492/phoenix-core/src/it/java/org/apache/phoenix/end2end/TruncateFunctionIT.java
----------------------------------------------------------------------
diff --git a/phoenix-core/src/it/java/org/apache/phoenix/end2end/TruncateFunctionIT.java b/phoenix-core/src/it/java/org/apache/phoenix/end2end/TruncateFunctionIT.java
index 9e8f2c0..983d086 100644
--- a/phoenix-core/src/it/java/org/apache/phoenix/end2end/TruncateFunctionIT.java
+++ b/phoenix-core/src/it/java/org/apache/phoenix/end2end/TruncateFunctionIT.java
@@ -57,7 +57,7 @@ public class TruncateFunctionIT extends BaseClientManagedTimeIT {
     public void testTruncate() throws Exception {
         long ts = nextTimestamp();
         String tenantId = getOrganizationId();
-        ensureTableCreated(getUrl(), ATABLE_NAME, ts-5);
+        ensureTableCreated(getUrl(), ATABLE_NAME,ATABLE_NAME, ts-5);
         Properties props = new Properties();
         props.setProperty(CURRENT_SCN_ATTRIB, Long.toString(ts-3));
         Connection conn = DriverManager.getConnection(getUrl(), props);