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 00:17:26 UTC
[13/14] phoenix git commit: PHOENIX-3036 Modify phoenix IT tests to
extend BaseHBaseManagedTimeTableReuseIT (Prakul Agarwal, Samarth Jain)
http://git-wip-us.apache.org/repos/asf/phoenix/blob/03df8ab5/phoenix-core/src/it/java/org/apache/phoenix/end2end/AlterTableWithViewsIT.java
----------------------------------------------------------------------
diff --git a/phoenix-core/src/it/java/org/apache/phoenix/end2end/AlterTableWithViewsIT.java b/phoenix-core/src/it/java/org/apache/phoenix/end2end/AlterTableWithViewsIT.java
index ea376de..ae3b977 100644
--- a/phoenix-core/src/it/java/org/apache/phoenix/end2end/AlterTableWithViewsIT.java
+++ b/phoenix-core/src/it/java/org/apache/phoenix/end2end/AlterTableWithViewsIT.java
@@ -56,7 +56,7 @@ import org.junit.runners.Parameterized.Parameters;
import com.google.common.collect.Maps;
@RunWith(Parameterized.class)
-public class AlterTableWithViewsIT extends BaseHBaseManagedTimeIT {
+public class AlterTableWithViewsIT extends BaseHBaseManagedTimeTableReuseIT {
private final boolean isMultiTenant;
@@ -73,7 +73,7 @@ public class AlterTableWithViewsIT extends BaseHBaseManagedTimeIT {
}
@BeforeClass
- @Shadower(classBeingShadowed = BaseHBaseManagedTimeIT.class)
+ @Shadower(classBeingShadowed = BaseHBaseManagedTimeTableReuseIT.class)
public static void doSetup() throws Exception {
Map<String,String> props = Maps.newHashMapWithExpectedSize(1);
props.put(QueryServices.TRANSACTIONS_ENABLED, Boolean.toString(true));
@@ -89,49 +89,53 @@ public class AlterTableWithViewsIT extends BaseHBaseManagedTimeIT {
public void testAddNewColumnsToBaseTableWithViews() throws Exception {
try (Connection conn = DriverManager.getConnection(getUrl());
Connection viewConn = isMultiTenant ? DriverManager.getConnection(TENANT_SPECIFIC_URL1) : conn ) {
- String ddlFormat = "CREATE TABLE IF NOT EXISTS TABLEWITHVIEW ("
+ String tableName = generateRandomString();
+ String viewOfTable = tableName + "_VIEW";
+ String ddlFormat = "CREATE TABLE IF NOT EXISTS " + tableName + " ("
+ " %s ID char(1) NOT NULL,"
+ " COL1 integer NOT NULL,"
+ " COL2 bigint NOT NULL,"
+ " CONSTRAINT NAME_PK PRIMARY KEY (%s ID, COL1, COL2)"
+ " ) %s";
conn.createStatement().execute(generateDDL(ddlFormat));
- assertTableDefinition(conn, "TABLEWITHVIEW", PTableType.TABLE, null, 0, 3, QueryConstants.BASE_TABLE_BASE_COLUMN_COUNT, "ID", "COL1", "COL2");
+ assertTableDefinition(conn, tableName, PTableType.TABLE, null, 0, 3, QueryConstants.BASE_TABLE_BASE_COLUMN_COUNT, "ID", "COL1", "COL2");
- viewConn.createStatement().execute("CREATE VIEW VIEWOFTABLE ( VIEW_COL1 DECIMAL(10,2), VIEW_COL2 VARCHAR ) AS SELECT * FROM TABLEWITHVIEW");
- assertTableDefinition(conn, "VIEWOFTABLE", PTableType.VIEW, "TABLEWITHVIEW", 0, 5, 3, "ID", "COL1", "COL2", "VIEW_COL1", "VIEW_COL2");
+ viewConn.createStatement().execute("CREATE VIEW " + viewOfTable + " ( VIEW_COL1 DECIMAL(10,2), VIEW_COL2 VARCHAR ) AS SELECT * FROM " + tableName);
+ assertTableDefinition(conn, viewOfTable, PTableType.VIEW, tableName, 0, 5, 3, "ID", "COL1", "COL2", "VIEW_COL1", "VIEW_COL2");
// adding a new pk column and a new regular column
- conn.createStatement().execute("ALTER TABLE TABLEWITHVIEW ADD COL3 varchar(10) PRIMARY KEY, COL4 integer");
- assertTableDefinition(conn, "TABLEWITHVIEW", PTableType.TABLE, null, 1, 5, QueryConstants.BASE_TABLE_BASE_COLUMN_COUNT, "ID", "COL1", "COL2", "COL3", "COL4");
- assertTableDefinition(conn, "VIEWOFTABLE", PTableType.VIEW, "TABLEWITHVIEW", 1, 7, 5, "ID", "COL1", "COL2", "COL3", "COL4", "VIEW_COL1", "VIEW_COL2");
+ conn.createStatement().execute("ALTER TABLE " + tableName + " ADD COL3 varchar(10) PRIMARY KEY, COL4 integer");
+ assertTableDefinition(conn, tableName, PTableType.TABLE, null, 1, 5, QueryConstants.BASE_TABLE_BASE_COLUMN_COUNT, "ID", "COL1", "COL2", "COL3", "COL4");
+ assertTableDefinition(conn, viewOfTable, PTableType.VIEW, tableName, 1, 7, 5, "ID", "COL1", "COL2", "COL3", "COL4", "VIEW_COL1", "VIEW_COL2");
}
}
@Test
public void testDropColumnsFromBaseTableWithView() throws Exception {
try (Connection conn = DriverManager.getConnection(getUrl());
- Connection viewConn = isMultiTenant ? DriverManager.getConnection(TENANT_SPECIFIC_URL1) : conn ) {
- String ddlFormat = "CREATE TABLE IF NOT EXISTS TABLEWITHVIEW (" + " %s ID char(1) NOT NULL,"
+ Connection viewConn = isMultiTenant ? DriverManager.getConnection(TENANT_SPECIFIC_URL1) : conn ) {
+ String tableName = generateRandomString();
+ String viewOfTable = tableName + "_VIEW";
+ String ddlFormat = "CREATE TABLE IF NOT EXISTS " + tableName + " (" + " %s ID char(1) NOT NULL,"
+ " COL1 integer NOT NULL," + " COL2 bigint NOT NULL,"
+ " COL3 varchar(10)," + " COL4 varchar(10)," + " COL5 varchar(10),"
+ " CONSTRAINT NAME_PK PRIMARY KEY (%s ID, COL1, COL2)" + " ) %s";
conn.createStatement().execute(generateDDL(ddlFormat));
- assertTableDefinition(conn, "TABLEWITHVIEW", PTableType.TABLE, null, 0, 6,
+ assertTableDefinition(conn, tableName, PTableType.TABLE, null, 0, 6,
QueryConstants.BASE_TABLE_BASE_COLUMN_COUNT, "ID", "COL1", "COL2", "COL3", "COL4",
"COL5");
viewConn.createStatement()
.execute(
- "CREATE VIEW VIEWOFTABLE ( VIEW_COL1 DECIMAL(10,2), VIEW_COL2 VARCHAR ) AS SELECT * FROM TABLEWITHVIEW");
- assertTableDefinition(conn, "VIEWOFTABLE", PTableType.VIEW, "TABLEWITHVIEW", 0, 8, 6,
+ "CREATE VIEW " + viewOfTable + " ( VIEW_COL1 DECIMAL(10,2), VIEW_COL2 VARCHAR ) AS SELECT * FROM " + tableName);
+ assertTableDefinition(conn, viewOfTable, PTableType.VIEW, tableName, 0, 8, 6,
"ID", "COL1", "COL2", "COL3", "COL4", "COL5", "VIEW_COL1", "VIEW_COL2");
// drop two columns from the base table
- conn.createStatement().execute("ALTER TABLE TABLEWITHVIEW DROP COLUMN COL3, COL5");
- assertTableDefinition(conn, "TABLEWITHVIEW", PTableType.TABLE, null, 1, 4,
+ conn.createStatement().execute("ALTER TABLE " + tableName + " DROP COLUMN COL3, COL5");
+ assertTableDefinition(conn, tableName, PTableType.TABLE, null, 1, 4,
QueryConstants.BASE_TABLE_BASE_COLUMN_COUNT, "ID", "COL1", "COL2", "COL4");
- assertTableDefinition(conn, "VIEWOFTABLE", PTableType.VIEW, "TABLEWITHVIEW", 1, 6, 4,
+ assertTableDefinition(conn, viewOfTable, PTableType.VIEW, tableName, 1, 6, 4,
"ID", "COL1", "COL2", "COL4", "VIEW_COL1", "VIEW_COL2");
}
}
@@ -142,20 +146,23 @@ public class AlterTableWithViewsIT extends BaseHBaseManagedTimeIT {
Connection viewConn = isMultiTenant ? DriverManager.getConnection(TENANT_SPECIFIC_URL1) : conn ) {
conn.setAutoCommit(false);
viewConn.setAutoCommit(false);
- String ddlFormat = "CREATE TABLE IF NOT EXISTS TABLEWITHVIEW ("
+ String tableName = generateRandomString();
+ String viewOfTable = tableName + "_VIEW";
+
+ String ddlFormat = "CREATE TABLE IF NOT EXISTS " + tableName + " ("
+ " %s ID char(10) NOT NULL,"
+ " COL1 integer NOT NULL,"
+ " COL2 bigint NOT NULL,"
+ " CONSTRAINT NAME_PK PRIMARY KEY (%s ID, COL1, COL2)"
+ " ) %s";
conn.createStatement().execute(generateDDL(ddlFormat));
- assertTableDefinition(conn, "TABLEWITHVIEW", PTableType.TABLE, null, 0, 3, QueryConstants.BASE_TABLE_BASE_COLUMN_COUNT, "ID", "COL1", "COL2");
+ assertTableDefinition(conn, tableName, PTableType.TABLE, null, 0, 3, QueryConstants.BASE_TABLE_BASE_COLUMN_COUNT, "ID", "COL1", "COL2");
- viewConn.createStatement().execute("CREATE VIEW VIEWOFTABLE ( VIEW_COL1 DECIMAL(10,2), VIEW_COL2 VARCHAR(256), VIEW_COL3 VARCHAR, VIEW_COL4 DECIMAL, VIEW_COL5 DECIMAL(10,2), VIEW_COL6 VARCHAR, CONSTRAINT pk PRIMARY KEY (VIEW_COL5, VIEW_COL6) ) AS SELECT * FROM TABLEWITHVIEW");
- assertTableDefinition(conn, "VIEWOFTABLE", PTableType.VIEW, "TABLEWITHVIEW", 0, 9, 3, "ID", "COL1", "COL2", "VIEW_COL1", "VIEW_COL2", "VIEW_COL3", "VIEW_COL4", "VIEW_COL5", "VIEW_COL6");
+ viewConn.createStatement().execute("CREATE VIEW " + viewOfTable + " ( VIEW_COL1 DECIMAL(10,2), VIEW_COL2 VARCHAR(256), VIEW_COL3 VARCHAR, VIEW_COL4 DECIMAL, VIEW_COL5 DECIMAL(10,2), VIEW_COL6 VARCHAR, CONSTRAINT pk PRIMARY KEY (VIEW_COL5, VIEW_COL6) ) AS SELECT * FROM " + tableName);
+ assertTableDefinition(conn,viewOfTable, PTableType.VIEW, tableName, 0, 9, 3, "ID", "COL1", "COL2", "VIEW_COL1", "VIEW_COL2", "VIEW_COL3", "VIEW_COL4", "VIEW_COL5", "VIEW_COL6");
// upsert single row into view
- String dml = "UPSERT INTO VIEWOFTABLE VALUES(?,?,?,?,?, ?, ?, ?, ?)";
+ String dml = "UPSERT INTO " + viewOfTable + " VALUES(?,?,?,?,?, ?, ?, ?, ?)";
PreparedStatement stmt = viewConn.prepareStatement(dml);
stmt.setString(1, "view1");
stmt.setInt(2, 12);
@@ -171,7 +178,7 @@ public class AlterTableWithViewsIT extends BaseHBaseManagedTimeIT {
try {
// should fail because there is already a view column with same name of different type
- conn.createStatement().execute("ALTER TABLE TABLEWITHVIEW ADD VIEW_COL1 char(10)");
+ conn.createStatement().execute("ALTER TABLE " + tableName + " ADD VIEW_COL1 char(10)");
fail();
}
catch (SQLException e) {
@@ -180,7 +187,7 @@ public class AlterTableWithViewsIT extends BaseHBaseManagedTimeIT {
try {
// should fail because there is already a view column with same name with different scale
- conn.createStatement().execute("ALTER TABLE TABLEWITHVIEW ADD VIEW_COL1 DECIMAL(10,1)");
+ conn.createStatement().execute("ALTER TABLE " + tableName + " ADD VIEW_COL1 DECIMAL(10,1)");
fail();
}
catch (SQLException e) {
@@ -189,7 +196,7 @@ public class AlterTableWithViewsIT extends BaseHBaseManagedTimeIT {
try {
// should fail because there is already a view column with same name with different length
- conn.createStatement().execute("ALTER TABLE TABLEWITHVIEW ADD VIEW_COL1 DECIMAL(9,2)");
+ conn.createStatement().execute("ALTER TABLE " + tableName + " ADD VIEW_COL1 DECIMAL(9,2)");
fail();
}
catch (SQLException e) {
@@ -198,7 +205,7 @@ public class AlterTableWithViewsIT extends BaseHBaseManagedTimeIT {
try {
// should fail because there is already a view column with different length
- conn.createStatement().execute("ALTER TABLE TABLEWITHVIEW ADD VIEW_COL2 VARCHAR");
+ conn.createStatement().execute("ALTER TABLE " + tableName + " ADD VIEW_COL2 VARCHAR");
fail();
}
catch (SQLException e) {
@@ -206,16 +213,16 @@ public class AlterTableWithViewsIT extends BaseHBaseManagedTimeIT {
}
// validate that there were no columns added to the table or view
- assertTableDefinition(conn, "TABLEWITHVIEW", PTableType.TABLE, null, 0, 3, QueryConstants.BASE_TABLE_BASE_COLUMN_COUNT, "ID", "COL1", "COL2");
- assertTableDefinition(conn, "VIEWOFTABLE", PTableType.VIEW, "TABLEWITHVIEW", 0, 9, 3, "ID", "COL1", "COL2", "VIEW_COL1", "VIEW_COL2", "VIEW_COL3", "VIEW_COL4", "VIEW_COL5", "VIEW_COL6");
+ assertTableDefinition(conn, tableName, PTableType.TABLE, null, 0, 3, QueryConstants.BASE_TABLE_BASE_COLUMN_COUNT, "ID", "COL1", "COL2");
+ assertTableDefinition(conn, viewOfTable, PTableType.VIEW, tableName, 0, 9, 3, "ID", "COL1", "COL2", "VIEW_COL1", "VIEW_COL2", "VIEW_COL3", "VIEW_COL4", "VIEW_COL5", "VIEW_COL6");
// should succeed
- conn.createStatement().execute("ALTER TABLE TABLEWITHVIEW ADD VIEW_COL4 DECIMAL, VIEW_COL2 VARCHAR(256)");
- assertTableDefinition(conn, "TABLEWITHVIEW", PTableType.TABLE, null, 1, 5, QueryConstants.BASE_TABLE_BASE_COLUMN_COUNT, "ID", "COL1", "COL2", "VIEW_COL4", "VIEW_COL2");
- assertTableDefinition(conn, "VIEWOFTABLE", PTableType.VIEW, "TABLEWITHVIEW", 1, 9, 5, "ID", "COL1", "COL2", "VIEW_COL4", "VIEW_COL2", "VIEW_COL1", "VIEW_COL3", "VIEW_COL5", "VIEW_COL6");
+ conn.createStatement().execute("ALTER TABLE " + tableName + " ADD VIEW_COL4 DECIMAL, VIEW_COL2 VARCHAR(256)");
+ assertTableDefinition(conn, tableName, PTableType.TABLE, null, 1, 5, QueryConstants.BASE_TABLE_BASE_COLUMN_COUNT, "ID", "COL1", "COL2", "VIEW_COL4", "VIEW_COL2");
+ assertTableDefinition(conn, viewOfTable, PTableType.VIEW, tableName, 1, 9, 5, "ID", "COL1", "COL2", "VIEW_COL4", "VIEW_COL2", "VIEW_COL1", "VIEW_COL3", "VIEW_COL5", "VIEW_COL6");
// query table
- ResultSet rs = stmt.executeQuery("SELECT * FROM TABLEWITHVIEW");
+ ResultSet rs = stmt.executeQuery("SELECT * FROM " + tableName);
assertTrue(rs.next());
assertEquals("view1", rs.getString("ID"));
assertEquals(12, rs.getInt("COL1"));
@@ -225,7 +232,7 @@ public class AlterTableWithViewsIT extends BaseHBaseManagedTimeIT {
assertFalse(rs.next());
// query view
- rs = stmt.executeQuery("SELECT * FROM VIEWOFTABLE");
+ rs = stmt.executeQuery("SELECT * FROM " + viewOfTable);
assertTrue(rs.next());
assertEquals("view1", rs.getString("ID"));
assertEquals(12, rs.getInt("COL1"));
@@ -246,20 +253,23 @@ public class AlterTableWithViewsIT extends BaseHBaseManagedTimeIT {
Connection viewConn = isMultiTenant ? DriverManager.getConnection(TENANT_SPECIFIC_URL1) : conn ) {
conn.setAutoCommit(false);
viewConn.setAutoCommit(false);
- String ddlFormat = "CREATE TABLE IF NOT EXISTS TABLEWITHVIEW ("
+ String tableName = generateRandomString();
+ String viewOfTable = tableName + "_VIEW";
+
+ String ddlFormat = "CREATE TABLE IF NOT EXISTS " + tableName + " ("
+ " %s ID char(10) NOT NULL,"
+ " COL1 integer NOT NULL,"
+ " COL2 integer NOT NULL,"
+ " CONSTRAINT NAME_PK PRIMARY KEY (%s ID, COL1, COL2)"
+ " ) %s";
conn.createStatement().execute(generateDDL(ddlFormat));
- assertTableDefinition(conn, "TABLEWITHVIEW", PTableType.TABLE, null, 0, 3, QueryConstants.BASE_TABLE_BASE_COLUMN_COUNT, "ID", "COL1", "COL2");
+ assertTableDefinition(conn, tableName, PTableType.TABLE, null, 0, 3, QueryConstants.BASE_TABLE_BASE_COLUMN_COUNT, "ID", "COL1", "COL2");
- viewConn.createStatement().execute("CREATE VIEW VIEWOFTABLE ( VIEW_COL1 DECIMAL(10,2), VIEW_COL2 VARCHAR(256) CONSTRAINT pk PRIMARY KEY (VIEW_COL1, VIEW_COL2)) AS SELECT * FROM TABLEWITHVIEW");
- assertTableDefinition(conn, "VIEWOFTABLE", PTableType.VIEW, "TABLEWITHVIEW", 0, 5, 3, "ID", "COL1", "COL2", "VIEW_COL1", "VIEW_COL2");
+ viewConn.createStatement().execute("CREATE VIEW " + viewOfTable + " ( VIEW_COL1 DECIMAL(10,2), VIEW_COL2 VARCHAR(256) CONSTRAINT pk PRIMARY KEY (VIEW_COL1, VIEW_COL2)) AS SELECT * FROM " + tableName);
+ assertTableDefinition(conn, viewOfTable, PTableType.VIEW, tableName, 0, 5, 3, "ID", "COL1", "COL2", "VIEW_COL1", "VIEW_COL2");
// upsert single row into view
- String dml = "UPSERT INTO VIEWOFTABLE VALUES(?,?,?,?,?)";
+ String dml = "UPSERT INTO " + viewOfTable + " VALUES(?,?,?,?,?)";
PreparedStatement stmt = viewConn.prepareStatement(dml);
stmt.setString(1, "view1");
stmt.setInt(2, 12);
@@ -271,7 +281,7 @@ public class AlterTableWithViewsIT extends BaseHBaseManagedTimeIT {
try {
// should fail because there we have to add both VIEW_COL1 and VIEW_COL2 to the pk
- conn.createStatement().execute("ALTER TABLE TABLEWITHVIEW ADD VIEW_COL2 VARCHAR(256) PRIMARY KEY");
+ conn.createStatement().execute("ALTER TABLE " + tableName + " ADD VIEW_COL2 VARCHAR(256) PRIMARY KEY");
fail();
}
catch (SQLException e) {
@@ -280,7 +290,7 @@ public class AlterTableWithViewsIT extends BaseHBaseManagedTimeIT {
try {
// should fail because there we have to add both VIEW_COL1 and VIEW_COL2 to the pk
- conn.createStatement().execute("ALTER TABLE TABLEWITHVIEW ADD VIEW_COL1 DECIMAL(10,2) PRIMARY KEY");
+ conn.createStatement().execute("ALTER TABLE " + tableName + " ADD VIEW_COL1 DECIMAL(10,2) PRIMARY KEY");
fail();
}
catch (SQLException e) {
@@ -289,7 +299,7 @@ public class AlterTableWithViewsIT extends BaseHBaseManagedTimeIT {
try {
// should fail because there we have to add both VIEW_COL1 and VIEW_COL2 to the pk
- conn.createStatement().execute("ALTER TABLE TABLEWITHVIEW ADD VIEW_COL1 DECIMAL(10,2), VIEW_COL2 VARCHAR(256) PRIMARY KEY");
+ conn.createStatement().execute("ALTER TABLE " + tableName + " ADD VIEW_COL1 DECIMAL(10,2), VIEW_COL2 VARCHAR(256) PRIMARY KEY");
fail();
}
catch (SQLException e) {
@@ -298,7 +308,7 @@ public class AlterTableWithViewsIT extends BaseHBaseManagedTimeIT {
try {
// should fail because there we have to add both VIEW_COL1 and VIEW_COL2 to the pk
- conn.createStatement().execute("ALTER TABLE TABLEWITHVIEW ADD VIEW_COL1 DECIMAL(10,2) PRIMARY KEY, VIEW_COL2 VARCHAR(256)");
+ conn.createStatement().execute("ALTER TABLE " + tableName + " ADD VIEW_COL1 DECIMAL(10,2) PRIMARY KEY, VIEW_COL2 VARCHAR(256)");
fail();
}
catch (SQLException e) {
@@ -307,7 +317,7 @@ public class AlterTableWithViewsIT extends BaseHBaseManagedTimeIT {
try {
// should fail because there we have to add both VIEW_COL1 and VIEW_COL2 to the pk in the right order
- conn.createStatement().execute("ALTER TABLE TABLEWITHVIEW ADD VIEW_COL2 VARCHAR(256) PRIMARY KEY, VIEW_COL1 DECIMAL(10,2) PRIMARY KEY");
+ conn.createStatement().execute("ALTER TABLE " + tableName + " ADD VIEW_COL2 VARCHAR(256) PRIMARY KEY, VIEW_COL1 DECIMAL(10,2) PRIMARY KEY");
fail();
}
catch (SQLException e) {
@@ -316,7 +326,7 @@ public class AlterTableWithViewsIT extends BaseHBaseManagedTimeIT {
try {
// should fail because there we have to add both VIEW_COL1 and VIEW_COL2 with the right sort order
- conn.createStatement().execute("ALTER TABLE TABLEWITHVIEW ADD VIEW_COL1 DECIMAL(10,2) PRIMARY KEY DESC, VIEW_COL2 VARCHAR(256) PRIMARY KEY");
+ conn.createStatement().execute("ALTER TABLE " + tableName + " ADD VIEW_COL1 DECIMAL(10,2) PRIMARY KEY DESC, VIEW_COL2 VARCHAR(256) PRIMARY KEY");
fail();
}
catch (SQLException e) {
@@ -324,12 +334,12 @@ public class AlterTableWithViewsIT extends BaseHBaseManagedTimeIT {
}
// add the pk column of the view to the base table
- conn.createStatement().execute("ALTER TABLE TABLEWITHVIEW ADD VIEW_COL1 DECIMAL(10,2) PRIMARY KEY, VIEW_COL2 VARCHAR(256) PRIMARY KEY");
- assertTableDefinition(conn, "TABLEWITHVIEW", PTableType.TABLE, null, 1, 5, QueryConstants.BASE_TABLE_BASE_COLUMN_COUNT, "ID", "COL1", "COL2", "VIEW_COL1", "VIEW_COL2");
- assertTableDefinition(conn, "VIEWOFTABLE", PTableType.VIEW, "TABLEWITHVIEW", 1, 5, 5, "ID", "COL1", "COL2", "VIEW_COL1", "VIEW_COL2");
+ conn.createStatement().execute("ALTER TABLE " + tableName + " ADD VIEW_COL1 DECIMAL(10,2) PRIMARY KEY, VIEW_COL2 VARCHAR(256) PRIMARY KEY");
+ assertTableDefinition(conn, tableName, PTableType.TABLE, null, 1, 5, QueryConstants.BASE_TABLE_BASE_COLUMN_COUNT, "ID", "COL1", "COL2", "VIEW_COL1", "VIEW_COL2");
+ assertTableDefinition(conn, viewOfTable, PTableType.VIEW, tableName, 1, 5, 5, "ID", "COL1", "COL2", "VIEW_COL1", "VIEW_COL2");
// query table
- ResultSet rs = stmt.executeQuery("SELECT * FROM TABLEWITHVIEW");
+ ResultSet rs = stmt.executeQuery("SELECT * FROM " + tableName);
assertTrue(rs.next());
assertEquals("view1", rs.getString("ID"));
assertEquals(12, rs.getInt("COL1"));
@@ -339,7 +349,7 @@ public class AlterTableWithViewsIT extends BaseHBaseManagedTimeIT {
assertFalse(rs.next());
// query view
- rs = stmt.executeQuery("SELECT * FROM VIEWOFTABLE");
+ rs = stmt.executeQuery("SELECT * FROM " + viewOfTable);
assertTrue(rs.next());
assertEquals("view1", rs.getString("ID"));
assertEquals(12, rs.getInt("COL1"));
@@ -353,25 +363,28 @@ public class AlterTableWithViewsIT extends BaseHBaseManagedTimeIT {
@Test
public void testAddExistingViewPkColumnToBaseTableWithMultipleViews() throws Exception {
try (Connection conn = DriverManager.getConnection(getUrl());
- Connection viewConn = isMultiTenant ? DriverManager.getConnection(TENANT_SPECIFIC_URL1) : conn ) {
- String ddlFormat = "CREATE TABLE IF NOT EXISTS TABLEWITHVIEW ("
+ Connection viewConn = isMultiTenant ? DriverManager.getConnection(TENANT_SPECIFIC_URL1) : conn ) {
+ String tableName = generateRandomString();
+ String viewOfTable1 = tableName + "_VIEW1";
+ String viewOfTable2 = tableName + "_VIEW2";
+ String ddlFormat = "CREATE TABLE IF NOT EXISTS " + tableName + "("
+ " %s ID char(10) NOT NULL,"
+ " COL1 integer NOT NULL,"
+ " COL2 integer NOT NULL,"
+ " CONSTRAINT NAME_PK PRIMARY KEY (%s ID, COL1, COL2)"
+ " ) %s";
conn.createStatement().execute(generateDDL(ddlFormat));
- assertTableDefinition(conn, "TABLEWITHVIEW", PTableType.TABLE, null, 0, 3, QueryConstants.BASE_TABLE_BASE_COLUMN_COUNT, "ID", "COL1", "COL2");
+ assertTableDefinition(conn, tableName, PTableType.TABLE, null, 0, 3, QueryConstants.BASE_TABLE_BASE_COLUMN_COUNT, "ID", "COL1", "COL2");
- viewConn.createStatement().execute("CREATE VIEW VIEWOFTABLE1 ( VIEW_COL1 DECIMAL(10,2), VIEW_COL2 VARCHAR(256) CONSTRAINT pk PRIMARY KEY (VIEW_COL1, VIEW_COL2)) AS SELECT * FROM TABLEWITHVIEW");
- assertTableDefinition(conn, "VIEWOFTABLE1", PTableType.VIEW, "TABLEWITHVIEW", 0, 5, 3, "ID", "COL1", "COL2", "VIEW_COL1", "VIEW_COL2");
+ viewConn.createStatement().execute("CREATE VIEW " + viewOfTable1 + " ( VIEW_COL1 DECIMAL(10,2), VIEW_COL2 VARCHAR(256) CONSTRAINT pk PRIMARY KEY (VIEW_COL1, VIEW_COL2)) AS SELECT * FROM " + tableName);
+ assertTableDefinition(conn, viewOfTable1, PTableType.VIEW, tableName, 0, 5, 3, "ID", "COL1", "COL2", "VIEW_COL1", "VIEW_COL2");
- viewConn.createStatement().execute("CREATE VIEW VIEWOFTABLE2 ( VIEW_COL3 VARCHAR(256), VIEW_COL4 DECIMAL(10,2) CONSTRAINT pk PRIMARY KEY (VIEW_COL3, VIEW_COL4)) AS SELECT * FROM TABLEWITHVIEW");
- assertTableDefinition(conn, "VIEWOFTABLE2", PTableType.VIEW, "TABLEWITHVIEW", 0, 5, 3, "ID", "COL1", "COL2", "VIEW_COL3", "VIEW_COL4");
+ viewConn.createStatement().execute("CREATE VIEW " + viewOfTable2 + " ( VIEW_COL3 VARCHAR(256), VIEW_COL4 DECIMAL(10,2) CONSTRAINT pk PRIMARY KEY (VIEW_COL3, VIEW_COL4)) AS SELECT * FROM " + tableName);
+ assertTableDefinition(conn, viewOfTable2, PTableType.VIEW, tableName, 0, 5, 3, "ID", "COL1", "COL2", "VIEW_COL3", "VIEW_COL4");
try {
// should fail because there are two view with different pk columns
- conn.createStatement().execute("ALTER TABLE TABLEWITHVIEW ADD VIEW_COL1 DECIMAL PRIMARY KEY, VIEW_COL2 VARCHAR PRIMARY KEY");
+ conn.createStatement().execute("ALTER TABLE " + tableName + " ADD VIEW_COL1 DECIMAL PRIMARY KEY, VIEW_COL2 VARCHAR PRIMARY KEY");
fail();
}
catch (SQLException e) {
@@ -380,7 +393,7 @@ public class AlterTableWithViewsIT extends BaseHBaseManagedTimeIT {
try {
// should fail because there are two view with different pk columns
- conn.createStatement().execute("ALTER TABLE TABLEWITHVIEW ADD VIEW_COL3 VARCHAR PRIMARY KEY, VIEW_COL4 DECIMAL PRIMARY KEY");
+ conn.createStatement().execute("ALTER TABLE " + tableName + " ADD VIEW_COL3 VARCHAR PRIMARY KEY, VIEW_COL4 DECIMAL PRIMARY KEY");
fail();
}
catch (SQLException e) {
@@ -389,7 +402,7 @@ public class AlterTableWithViewsIT extends BaseHBaseManagedTimeIT {
try {
// should fail because slot positions of pks are different
- conn.createStatement().execute("ALTER TABLE TABLEWITHVIEW ADD VIEW_COL1 DECIMAL PRIMARY KEY, VIEW_COL2 VARCHAR PRIMARY KEY, VIEW_COL3 VARCHAR PRIMARY KEY, VIEW_COL4 DECIMAL PRIMARY KEY");
+ conn.createStatement().execute("ALTER TABLE " + tableName + " ADD VIEW_COL1 DECIMAL PRIMARY KEY, VIEW_COL2 VARCHAR PRIMARY KEY, VIEW_COL3 VARCHAR PRIMARY KEY, VIEW_COL4 DECIMAL PRIMARY KEY");
fail();
}
catch (SQLException e) {
@@ -398,7 +411,7 @@ public class AlterTableWithViewsIT extends BaseHBaseManagedTimeIT {
try {
// should fail because slot positions of pks are different
- conn.createStatement().execute("ALTER TABLE TABLEWITHVIEW ADD VIEW_COL3 VARCHAR PRIMARY KEY, VIEW_COL4 DECIMAL PRIMARY KEY, VIEW_COL1 DECIMAL PRIMARY KEY, VIEW_COL2 VARCHAR PRIMARY KEY");
+ conn.createStatement().execute("ALTER TABLE " + tableName + " ADD VIEW_COL3 VARCHAR PRIMARY KEY, VIEW_COL4 DECIMAL PRIMARY KEY, VIEW_COL1 DECIMAL PRIMARY KEY, VIEW_COL2 VARCHAR PRIMARY KEY");
fail();
}
catch (SQLException e) {
@@ -415,23 +428,26 @@ public class AlterTableWithViewsIT extends BaseHBaseManagedTimeIT {
conn.setAutoCommit(false);
viewConn.setAutoCommit(false);
viewConn2.setAutoCommit(false);
- String ddlFormat = "CREATE TABLE IF NOT EXISTS TABLEWITHVIEW ("
+ String tableName = generateRandomString();
+ String viewOfTable1 = tableName + "_VIEW1";
+ String viewOfTable2 = tableName + "_VIEW2";
+ String ddlFormat = "CREATE TABLE IF NOT EXISTS " + tableName + "("
+ " %s ID char(10) NOT NULL,"
+ " COL1 integer NOT NULL,"
+ " COL2 integer NOT NULL,"
+ " CONSTRAINT NAME_PK PRIMARY KEY (%s ID, COL1, COL2)"
+ " ) %s";
conn.createStatement().execute(generateDDL(ddlFormat));
- assertTableDefinition(conn, "TABLEWITHVIEW", PTableType.TABLE, null, 0, 3, QueryConstants.BASE_TABLE_BASE_COLUMN_COUNT, "ID", "COL1", "COL2");
+ assertTableDefinition(conn, tableName, PTableType.TABLE, null, 0, 3, QueryConstants.BASE_TABLE_BASE_COLUMN_COUNT, "ID", "COL1", "COL2");
- viewConn.createStatement().execute("CREATE VIEW VIEWOFTABLE1 ( VIEW_COL1 DECIMAL(10,2), VIEW_COL2 VARCHAR(256) CONSTRAINT pk PRIMARY KEY (VIEW_COL1, VIEW_COL2)) AS SELECT * FROM TABLEWITHVIEW");
- assertTableDefinition(conn, "VIEWOFTABLE1", PTableType.VIEW, "TABLEWITHVIEW", 0, 5, 3, "ID", "COL1", "COL2", "VIEW_COL1", "VIEW_COL2");
+ viewConn.createStatement().execute("CREATE VIEW " + viewOfTable1 + " ( VIEW_COL1 DECIMAL(10,2), VIEW_COL2 VARCHAR(256) CONSTRAINT pk PRIMARY KEY (VIEW_COL1, VIEW_COL2)) AS SELECT * FROM " + tableName);
+ assertTableDefinition(conn, viewOfTable1, PTableType.VIEW, tableName, 0, 5, 3, "ID", "COL1", "COL2", "VIEW_COL1", "VIEW_COL2");
- viewConn2.createStatement().execute("CREATE VIEW VIEWOFTABLE2 ( VIEW_COL1 DECIMAL(10,2), VIEW_COL2 VARCHAR(256) CONSTRAINT pk PRIMARY KEY (VIEW_COL1, VIEW_COL2)) AS SELECT * FROM TABLEWITHVIEW");
- assertTableDefinition(conn, "VIEWOFTABLE2", PTableType.VIEW, "TABLEWITHVIEW", 0, 5, 3, "ID", "COL1", "COL2", "VIEW_COL1", "VIEW_COL2");
+ viewConn2.createStatement().execute("CREATE VIEW " + viewOfTable2 + " ( VIEW_COL1 DECIMAL(10,2), VIEW_COL2 VARCHAR(256) CONSTRAINT pk PRIMARY KEY (VIEW_COL1, VIEW_COL2)) AS SELECT * FROM " + tableName);
+ assertTableDefinition(conn, viewOfTable2, PTableType.VIEW, tableName, 0, 5, 3, "ID", "COL1", "COL2", "VIEW_COL1", "VIEW_COL2");
// upsert single row into both view
- String dml = "UPSERT INTO VIEWOFTABLE1 VALUES(?,?,?,?,?)";
+ String dml = "UPSERT INTO " + viewOfTable1 + " VALUES(?,?,?,?,?)";
PreparedStatement stmt = viewConn.prepareStatement(dml);
stmt.setString(1, "view1");
stmt.setInt(2, 12);
@@ -440,7 +456,7 @@ public class AlterTableWithViewsIT extends BaseHBaseManagedTimeIT {
stmt.setString(5, "view5");
stmt.execute();
viewConn.commit();
- dml = "UPSERT INTO VIEWOFTABLE2 VALUES(?,?,?,?,?)";
+ dml = "UPSERT INTO " + viewOfTable2 + " VALUES(?,?,?,?,?)";
stmt = viewConn2.prepareStatement(dml);
stmt.setString(1, "view1");
stmt.setInt(2, 12);
@@ -452,7 +468,7 @@ public class AlterTableWithViewsIT extends BaseHBaseManagedTimeIT {
try {
// should fail because the view have two extra columns in their pk
- conn.createStatement().execute("ALTER TABLE TABLEWITHVIEW ADD VIEW_COL1 DECIMAL(10,2) PRIMARY KEY");
+ conn.createStatement().execute("ALTER TABLE " + tableName + " ADD VIEW_COL1 DECIMAL(10,2) PRIMARY KEY");
fail();
}
catch (SQLException e) {
@@ -461,7 +477,7 @@ public class AlterTableWithViewsIT extends BaseHBaseManagedTimeIT {
try {
// should fail because the view have two extra columns in their pk
- conn.createStatement().execute("ALTER TABLE TABLEWITHVIEW ADD VIEW_COL2 VARCHAR(256) PRIMARY KEY");
+ conn.createStatement().execute("ALTER TABLE " + tableName + " ADD VIEW_COL2 VARCHAR(256) PRIMARY KEY");
fail();
}
catch (SQLException e) {
@@ -470,20 +486,20 @@ public class AlterTableWithViewsIT extends BaseHBaseManagedTimeIT {
try {
// should fail because slot positions of pks are different
- conn.createStatement().execute("ALTER TABLE TABLEWITHVIEW ADD VIEW_COL2 DECIMAL(10,2) PRIMARY KEY, VIEW_COL1 VARCHAR(256) PRIMARY KEY");
+ conn.createStatement().execute("ALTER TABLE " + tableName + " ADD VIEW_COL2 DECIMAL(10,2) PRIMARY KEY, VIEW_COL1 VARCHAR(256) PRIMARY KEY");
fail();
}
catch (SQLException e) {
assertEquals("Unexpected exception", CANNOT_MUTATE_TABLE.getErrorCode(), e.getErrorCode());
}
- conn.createStatement().execute("ALTER TABLE TABLEWITHVIEW ADD VIEW_COL1 DECIMAL(10,2) PRIMARY KEY, VIEW_COL2 VARCHAR(256) PRIMARY KEY");
- assertTableDefinition(conn, "TABLEWITHVIEW", PTableType.TABLE, null, 1, 5, QueryConstants.BASE_TABLE_BASE_COLUMN_COUNT, "ID", "COL1", "COL2", "VIEW_COL1", "VIEW_COL2");
- assertTableDefinition(conn, "VIEWOFTABLE1", PTableType.VIEW, "TABLEWITHVIEW", 1, 5, 5, "ID", "COL1", "COL2", "VIEW_COL1", "VIEW_COL2");
- assertTableDefinition(conn, "VIEWOFTABLE2", PTableType.VIEW, "TABLEWITHVIEW", 1, 5, 5, "ID", "COL1", "COL2", "VIEW_COL1", "VIEW_COL2");
+ conn.createStatement().execute("ALTER TABLE " + tableName + " ADD VIEW_COL1 DECIMAL(10,2) PRIMARY KEY, VIEW_COL2 VARCHAR(256) PRIMARY KEY");
+ assertTableDefinition(conn, tableName, PTableType.TABLE, null, 1, 5, QueryConstants.BASE_TABLE_BASE_COLUMN_COUNT, "ID", "COL1", "COL2", "VIEW_COL1", "VIEW_COL2");
+ assertTableDefinition(conn, viewOfTable1, PTableType.VIEW, tableName, 1, 5, 5, "ID", "COL1", "COL2", "VIEW_COL1", "VIEW_COL2");
+ assertTableDefinition(conn, viewOfTable2, PTableType.VIEW, tableName, 1, 5, 5, "ID", "COL1", "COL2", "VIEW_COL1", "VIEW_COL2");
// query table
- ResultSet rs = stmt.executeQuery("SELECT * FROM TABLEWITHVIEW");
+ ResultSet rs = stmt.executeQuery("SELECT * FROM " + tableName);
assertTrue(rs.next());
assertEquals("view1", rs.getString("ID"));
assertEquals(12, rs.getInt("COL1"));
@@ -493,7 +509,7 @@ public class AlterTableWithViewsIT extends BaseHBaseManagedTimeIT {
assertFalse(rs.next());
// query both views
- rs = viewConn.createStatement().executeQuery("SELECT * FROM VIEWOFTABLE1");
+ rs = viewConn.createStatement().executeQuery("SELECT * FROM " + viewOfTable1);
assertTrue(rs.next());
assertEquals("view1", rs.getString("ID"));
assertEquals(12, rs.getInt("COL1"));
@@ -501,7 +517,7 @@ public class AlterTableWithViewsIT extends BaseHBaseManagedTimeIT {
assertEquals(14, rs.getInt("VIEW_COL1"));
assertEquals("view5", rs.getString("VIEW_COL2"));
assertFalse(rs.next());
- rs = viewConn2.createStatement().executeQuery("SELECT * FROM VIEWOFTABLE2");
+ rs = viewConn2.createStatement().executeQuery("SELECT * FROM " + viewOfTable2);
assertTrue(rs.next());
assertEquals("view1", rs.getString("ID"));
assertEquals(12, rs.getInt("COL1"));
@@ -521,7 +537,7 @@ public class AlterTableWithViewsIT extends BaseHBaseManagedTimeIT {
else {
cols = columnNames;
}
- AlterMultiTenantTableWithViews.assertTableDefinition(conn, tableName, tableType, parentTableName, sequenceNumber, columnCount + delta,
+ AlterMultiTenantTableWithViewsIT.assertTableDefinition(conn, tableName, tableType, parentTableName, sequenceNumber, columnCount + delta,
baseColumnCount==QueryConstants.BASE_TABLE_BASE_COLUMN_COUNT ? baseColumnCount : baseColumnCount +delta, cols);
}
@@ -602,9 +618,9 @@ public class AlterTableWithViewsIT extends BaseHBaseManagedTimeIT {
@Test
public void testDivergedViewsStayDiverged() throws Exception {
- String baseTable = "testDivergedViewsStayDiverged";
- String view1 = baseTable + "_view1";
- String view2 = baseTable + "_view2";
+ String baseTable = generateRandomString();
+ String view1 = baseTable + "_VIEW1";
+ String view2 = baseTable + "_VIEW2";
try (Connection conn = DriverManager.getConnection(getUrl());
Connection viewConn = isMultiTenant ? DriverManager.getConnection(TENANT_SPECIFIC_URL1) : conn ;
Connection viewConn2 = isMultiTenant ? DriverManager.getConnection(TENANT_SPECIFIC_URL2) : conn) {
@@ -645,7 +661,8 @@ public class AlterTableWithViewsIT extends BaseHBaseManagedTimeIT {
public void testMakeBaseTableTransactional() throws Exception {
try (Connection conn = DriverManager.getConnection(getUrl());
Connection viewConn = isMultiTenant ? DriverManager.getConnection(TENANT_SPECIFIC_URL1) : conn ) {
- String baseTableName = "NONTXNTBL_" + (isMultiTenant ? "0":"1");
+ String baseTableName = "NONTXNTBL_" + generateRandomString() + (isMultiTenant ? "0":"1");
+ String viewOfTable = baseTableName + "_VIEW";
String ddlFormat = "CREATE TABLE IF NOT EXISTS " + baseTableName + " ("
+ " %s ID char(1) NOT NULL,"
+ " COL1 integer NOT NULL,"
@@ -655,24 +672,24 @@ public class AlterTableWithViewsIT extends BaseHBaseManagedTimeIT {
conn.createStatement().execute(generateDDL(ddlFormat));
assertTableDefinition(conn, baseTableName, PTableType.TABLE, null, 0, 3, QueryConstants.BASE_TABLE_BASE_COLUMN_COUNT, "ID", "COL1", "COL2");
- viewConn.createStatement().execute("CREATE VIEW VIEWOFTABLE ( VIEW_COL1 DECIMAL(10,2), VIEW_COL2 VARCHAR ) AS SELECT * FROM "+baseTableName);
- assertTableDefinition(conn, "VIEWOFTABLE", PTableType.VIEW, "TABLEWITHVIEW", 0, 5, 3, "ID", "COL1", "COL2", "VIEW_COL1", "VIEW_COL2");
+ viewConn.createStatement().execute("CREATE VIEW " + viewOfTable + " ( VIEW_COL1 DECIMAL(10,2), VIEW_COL2 VARCHAR ) AS SELECT * FROM "+baseTableName);
+ assertTableDefinition(conn, viewOfTable, PTableType.VIEW, baseTableName, 0, 5, 3, "ID", "COL1", "COL2", "VIEW_COL1", "VIEW_COL2");
PName tenantId = isMultiTenant ? PNameFactory.newName("tenant1") : null;
PhoenixConnection phoenixConn = conn.unwrap(PhoenixConnection.class);
HTableInterface htable = phoenixConn.getQueryServices().getTable(Bytes.toBytes(baseTableName));
assertFalse(htable.getTableDescriptor().getCoprocessors().contains(PhoenixTransactionalProcessor.class.getName()));
assertFalse(phoenixConn.getTable(new PTableKey(null, baseTableName)).isTransactional());
- assertFalse(viewConn.unwrap(PhoenixConnection.class).getTable(new PTableKey(tenantId, "VIEWOFTABLE")).isTransactional());
+ assertFalse(viewConn.unwrap(PhoenixConnection.class).getTable(new PTableKey(tenantId, viewOfTable)).isTransactional());
// make the base table transactional
conn.createStatement().execute("ALTER TABLE " + baseTableName + " SET TRANSACTIONAL=true");
// query the view to force the table cache to be updated
- viewConn.createStatement().execute("SELECT * FROM VIEWOFTABLE");
+ viewConn.createStatement().execute("SELECT * FROM " + viewOfTable);
htable = phoenixConn.getQueryServices().getTable(Bytes.toBytes(baseTableName));
assertTrue(htable.getTableDescriptor().getCoprocessors().contains(PhoenixTransactionalProcessor.class.getName()));
assertTrue(phoenixConn.getTable(new PTableKey(null, baseTableName)).isTransactional());
- assertTrue(viewConn.unwrap(PhoenixConnection.class).getTable(new PTableKey(tenantId, "VIEWOFTABLE")).isTransactional());
+ assertTrue(viewConn.unwrap(PhoenixConnection.class).getTable(new PTableKey(tenantId, viewOfTable)).isTransactional());
}
}
http://git-wip-us.apache.org/repos/asf/phoenix/blob/03df8ab5/phoenix-core/src/it/java/org/apache/phoenix/end2end/AppendOnlySchemaIT.java
----------------------------------------------------------------------
diff --git a/phoenix-core/src/it/java/org/apache/phoenix/end2end/AppendOnlySchemaIT.java b/phoenix-core/src/it/java/org/apache/phoenix/end2end/AppendOnlySchemaIT.java
index 080ccad..017a477 100644
--- a/phoenix-core/src/it/java/org/apache/phoenix/end2end/AppendOnlySchemaIT.java
+++ b/phoenix-core/src/it/java/org/apache/phoenix/end2end/AppendOnlySchemaIT.java
@@ -60,9 +60,11 @@ import org.apache.phoenix.util.PropertiesUtil;
import org.junit.Test;
import org.mockito.Mockito;
-public class AppendOnlySchemaIT extends BaseHBaseManagedTimeIT {
+public class AppendOnlySchemaIT extends BaseHBaseManagedTimeTableReuseIT {
+
private void testTableWithSameSchema(boolean notExists, boolean sameClient) throws Exception {
+
// use a spyed ConnectionQueryServices so we can verify calls to getTable
ConnectionQueryServices connectionQueryServices =
Mockito.spy(driver.getConnectionQueryServices(getUrl(),
@@ -72,20 +74,24 @@ public class AppendOnlySchemaIT extends BaseHBaseManagedTimeIT {
try (Connection conn1 = connectionQueryServices.connect(getUrl(), props);
Connection conn2 = sameClient ? conn1 : connectionQueryServices.connect(getUrl(), props)) {
+
+ String metricTableName = generateRandomString();
+ String viewName = generateRandomString();
+ String metricIdSeqTableName = generateRandomString();
// create sequence for auto partition
- conn1.createStatement().execute("CREATE SEQUENCE metric_id_seq CACHE 1");
+ conn1.createStatement().execute("CREATE SEQUENCE " + metricIdSeqTableName + " CACHE 1");
// create base table
- conn1.createStatement().execute("CREATE TABLE metric_table (metricId INTEGER NOT NULL, metricVal DOUBLE, CONSTRAINT PK PRIMARY KEY(metricId))"
- + " APPEND_ONLY_SCHEMA = true, UPDATE_CACHE_FREQUENCY=1, AUTO_PARTITION_SEQ=metric_id_seq");
+ conn1.createStatement().execute("CREATE TABLE "+ metricTableName + "(metricId INTEGER NOT NULL, metricVal DOUBLE, CONSTRAINT PK PRIMARY KEY(metricId))"
+ + " APPEND_ONLY_SCHEMA = true, UPDATE_CACHE_FREQUENCY=1, AUTO_PARTITION_SEQ=" + metricIdSeqTableName);
// create view
String ddl =
- "CREATE VIEW " + (notExists ? "IF NOT EXISTS" : "")
- + " view1( hostName varchar NOT NULL, tagName varChar"
+ "CREATE VIEW " + (notExists ? "IF NOT EXISTS " : "")
+ + viewName + " ( hostName varchar NOT NULL, tagName varChar"
+ " CONSTRAINT HOSTNAME_PK PRIMARY KEY (hostName))"
- + " AS SELECT * FROM metric_table"
+ + " AS SELECT * FROM " + metricTableName
+ " APPEND_ONLY_SCHEMA = true, UPDATE_CACHE_FREQUENCY=300000";
conn1.createStatement().execute(ddl);
- conn1.createStatement().execute("UPSERT INTO view1(hostName, metricVal) VALUES('host1', 1.0)");
+ conn1.createStatement().execute("UPSERT INTO " + viewName + "(hostName, metricVal) VALUES('host1', 1.0)");
conn1.commit();
reset(connectionQueryServices);
@@ -103,7 +109,7 @@ public class AppendOnlySchemaIT extends BaseHBaseManagedTimeIT {
}
// verify getTable rpcs
- verify(connectionQueryServices, sameClient ? never() : times(1)).getTable((PName)isNull(), eq(new byte[0]), eq(Bytes.toBytes("VIEW1")), anyLong(), anyLong());
+ verify(connectionQueryServices, sameClient ? never() : times(1)).getTable((PName)isNull(), eq(new byte[0]), eq(Bytes.toBytes(viewName)), anyLong(), anyLong());
// verify no create table rpcs
verify(connectionQueryServices, never()).createTable(anyListOf(Mutation.class),
@@ -112,7 +118,7 @@ public class AppendOnlySchemaIT extends BaseHBaseManagedTimeIT {
reset(connectionQueryServices);
// execute alter table ddl that adds the same column
- ddl = "ALTER VIEW view1 ADD " + (notExists ? "IF NOT EXISTS" : "") + " tagName varchar";
+ ddl = "ALTER VIEW " + viewName + " ADD " + (notExists ? "IF NOT EXISTS" : "") + " tagName varchar";
try {
conn2.createStatement().execute(ddl);
if (!notExists) {
@@ -130,10 +136,10 @@ public class AppendOnlySchemaIT extends BaseHBaseManagedTimeIT {
verify(connectionQueryServices, notExists ? times(1) : never() ).addColumn(eq(Collections.<Mutation>emptyList()), any(PTable.class), anyMap(), anySetOf(String.class));
// upsert one row
- conn2.createStatement().execute("UPSERT INTO view1(hostName, metricVal) VALUES('host2', 2.0)");
+ conn2.createStatement().execute("UPSERT INTO " + viewName + "(hostName, metricVal) VALUES('host2', 2.0)");
conn2.commit();
// verify data in base table
- ResultSet rs = conn2.createStatement().executeQuery("SELECT * from metric_table");
+ ResultSet rs = conn2.createStatement().executeQuery("SELECT * from " + metricTableName);
assertTrue(rs.next());
assertEquals(1, rs.getInt(1));
assertEquals(1.0, rs.getDouble(2), 1e-6);
@@ -142,7 +148,7 @@ public class AppendOnlySchemaIT extends BaseHBaseManagedTimeIT {
assertEquals(2.0, rs.getDouble(2), 1e-6);
assertFalse(rs.next());
// verify data in view
- rs = conn2.createStatement().executeQuery("SELECT * from view1");
+ rs = conn2.createStatement().executeQuery("SELECT * from " + viewName);
assertTrue(rs.next());
assertEquals(1, rs.getInt(1));
assertEquals(1.0, rs.getDouble(2), 1e-6);
@@ -179,47 +185,52 @@ public class AppendOnlySchemaIT extends BaseHBaseManagedTimeIT {
Properties props = PropertiesUtil.deepCopy(TEST_PROPERTIES);
try (Connection conn1 = DriverManager.getConnection(getUrl(), props);
Connection conn2 = sameClient ? conn1 : DriverManager.getConnection(getUrl(), props)) {
+
+ String metricTableName = generateRandomString();
+ String viewName = generateRandomString();
+ String metricIdSeqTableName = generateRandomString();
+
// create sequence for auto partition
- conn1.createStatement().execute("CREATE SEQUENCE metric_id_seq CACHE 1");
+ conn1.createStatement().execute("CREATE SEQUENCE " + metricIdSeqTableName + " CACHE 1");
// create base table
- conn1.createStatement().execute("CREATE TABLE metric_table (metricId INTEGER NOT NULL, metricVal1 DOUBLE, CONSTRAINT PK PRIMARY KEY(metricId))"
- + " APPEND_ONLY_SCHEMA = true, UPDATE_CACHE_FREQUENCY=1, AUTO_PARTITION_SEQ=metric_id_seq");
+ conn1.createStatement().execute("CREATE TABLE " + metricTableName + " (metricId INTEGER NOT NULL, metricVal1 DOUBLE, CONSTRAINT PK PRIMARY KEY(metricId))"
+ + " APPEND_ONLY_SCHEMA = true, UPDATE_CACHE_FREQUENCY=1, AUTO_PARTITION_SEQ=" + metricIdSeqTableName);
// create view
String ddl =
- "CREATE VIEW IF NOT EXISTS"
- + " view1( hostName varchar NOT NULL,"
+ "CREATE VIEW IF NOT EXISTS "
+ + viewName + "( hostName varchar NOT NULL,"
+ " CONSTRAINT HOSTNAME_PK PRIMARY KEY (hostName))"
- + " AS SELECT * FROM metric_table"
+ + " AS SELECT * FROM " + metricTableName
+ " APPEND_ONLY_SCHEMA = true, UPDATE_CACHE_FREQUENCY=300000";
conn1.createStatement().execute(ddl);
- conn1.createStatement().execute("UPSERT INTO view1(hostName, metricVal1) VALUES('host1', 1.0)");
+ conn1.createStatement().execute("UPSERT INTO " + viewName + "(hostName, metricVal1) VALUES('host1', 1.0)");
conn1.commit();
// execute ddl that creates that same view with an additional pk column and regular column
// and also changes the order of the pk columns (which is not respected since we only
// allow appending columns)
ddl =
- "CREATE VIEW IF NOT EXISTS"
- + " view1( instanceName varchar, hostName varchar, metricVal2 double, metricVal1 double"
+ "CREATE VIEW IF NOT EXISTS "
+ + viewName + "( instanceName varchar, hostName varchar, metricVal2 double, metricVal1 double"
+ " CONSTRAINT HOSTNAME_PK PRIMARY KEY (instancename, hostName))"
- + " AS SELECT * FROM metric_table"
+ + " AS SELECT * FROM " + metricTableName
+ " APPEND_ONLY_SCHEMA = true, UPDATE_CACHE_FREQUENCY=300000";
conn2.createStatement().execute(ddl);
conn2.createStatement().execute(
- "UPSERT INTO view1(hostName, instanceName, metricVal1, metricval2) VALUES('host2', 'instance2', 21.0, 22.0)");
+ "UPSERT INTO " + viewName + "(hostName, instanceName, metricVal1, metricval2) VALUES('host2', 'instance2', 21.0, 22.0)");
conn2.commit();
- conn1.createStatement().execute("UPSERT INTO view1(hostName, metricVal1) VALUES('host3', 3.0)");
+ conn1.createStatement().execute("UPSERT INTO " + viewName + "(hostName, metricVal1) VALUES('host3', 3.0)");
conn1.commit();
// verify data exists
- ResultSet rs = conn2.createStatement().executeQuery("SELECT * from view1");
+ ResultSet rs = conn2.createStatement().executeQuery("SELECT * from " + viewName);
// verify the two columns were added correctly
PTable table =
- conn2.unwrap(PhoenixConnection.class).getTable(new PTableKey(null, "VIEW1"));
+ conn2.unwrap(PhoenixConnection.class).getTable(new PTableKey(null, viewName));
List<PColumn> pkColumns = table.getPKColumns();
assertEquals(3,table.getPKColumns().size());
// even though the second create view statement changed the order of the pk, the original order is maintained
@@ -274,36 +285,15 @@ public class AppendOnlySchemaIT extends BaseHBaseManagedTimeIT {
testAddColumns(false);
}
- public void testCreateTableDropColumns() throws Exception {
- Properties props = PropertiesUtil.deepCopy(TEST_PROPERTIES);
- try (Connection conn = DriverManager.getConnection(getUrl(), props)) {
- String ddl =
- "create table IF NOT EXISTS TEST( id1 char(2) NOT NULL," + " col1 integer,"
- + " col2 integer," + " CONSTRAINT NAME_PK PRIMARY KEY (id1))"
- + " APPEND_ONLY_SCHEMA = true, UPDATE_CACHE_FREQUENCY=300000";
- conn.createStatement().execute(ddl);
- conn.createStatement().execute("UPSERT INTO TEST VALUES('a', 11)");
- conn.commit();
-
- // execute ddl while dropping a column
- ddl = "alter table TEST drop column col1";
- try {
- conn.createStatement().execute(ddl);
- fail("Dropping a column from a table with APPEND_ONLY_SCHEMA=true should fail");
- } catch (SQLException e) {
- assertEquals(SQLExceptionCode.CANNOT_DROP_COL_APPEND_ONLY_SCHEMA.getErrorCode(),
- e.getErrorCode());
- }
- }
- }
-
@Test
public void testValidateAttributes() throws Exception {
Properties props = PropertiesUtil.deepCopy(TEST_PROPERTIES);
try (Connection conn = DriverManager.getConnection(getUrl(), props)) {
+ String tableName = generateRandomString();
+ String viewName = generateRandomString();
try {
conn.createStatement().execute(
- "create table IF NOT EXISTS TEST1 ( id char(1) NOT NULL,"
+ "create table IF NOT EXISTS " + tableName + " ( id char(1) NOT NULL,"
+ " col1 integer NOT NULL,"
+ " CONSTRAINT NAME_PK PRIMARY KEY (id, col1))"
+ " APPEND_ONLY_SCHEMA = true");
@@ -314,13 +304,13 @@ public class AppendOnlySchemaIT extends BaseHBaseManagedTimeIT {
}
conn.createStatement().execute(
- "create table IF NOT EXISTS TEST1 ( id char(1) NOT NULL,"
+ "create table IF NOT EXISTS " + tableName + " ( id char(1) NOT NULL,"
+ " col1 integer NOT NULL"
+ " CONSTRAINT NAME_PK PRIMARY KEY (id, col1))"
+ " APPEND_ONLY_SCHEMA = true, UPDATE_CACHE_FREQUENCY=1000");
try {
conn.createStatement().execute(
- "create view IF NOT EXISTS MY_VIEW (val1 integer NOT NULL) AS SELECT * FROM TEST1"
+ "create view IF NOT EXISTS " + viewName + " (val1 integer NOT NULL) AS SELECT * FROM " + tableName
+ " UPDATE_CACHE_FREQUENCY=1000");
fail("APPEND_ONLY_SCHEMA must be true for a view if it is true for the base table ");
}
@@ -336,25 +326,28 @@ public class AppendOnlySchemaIT extends BaseHBaseManagedTimeIT {
Properties props = PropertiesUtil.deepCopy(TEST_PROPERTIES);
try (Connection conn1 = DriverManager.getConnection(getUrl(), props);
Connection conn2 = DriverManager.getConnection(getUrl(), props)) {
+ String metricTableName = generateRandomString();
+ String viewName = generateRandomString();
+ String metricIdSeqTableName = generateRandomString();
// create sequence for auto partition
- conn1.createStatement().execute("CREATE SEQUENCE metric_id_seq CACHE 1");
+ conn1.createStatement().execute("CREATE SEQUENCE " + metricIdSeqTableName + " CACHE 1");
// create base table
- conn1.createStatement().execute("CREATE TABLE metric_table (metricId INTEGER NOT NULL, metricVal DOUBLE, CONSTRAINT PK PRIMARY KEY(metricId))"
- + " APPEND_ONLY_SCHEMA = true, UPDATE_CACHE_FREQUENCY=1, AUTO_PARTITION_SEQ=metric_id_seq");
+ conn1.createStatement().execute("CREATE TABLE " + metricTableName + " (metricId INTEGER NOT NULL, metricVal DOUBLE, CONSTRAINT PK PRIMARY KEY(metricId))"
+ + " APPEND_ONLY_SCHEMA = true, UPDATE_CACHE_FREQUENCY=1, AUTO_PARTITION_SEQ=" + metricIdSeqTableName);
// create view
String ddl =
- "CREATE VIEW IF NOT EXISTS"
- + " view1( hostName varchar NOT NULL,"
+ "CREATE VIEW IF NOT EXISTS "
+ + viewName + "( hostName varchar NOT NULL,"
+ " CONSTRAINT HOSTNAME_PK PRIMARY KEY (hostName))"
- + " AS SELECT * FROM metric_table"
+ + " AS SELECT * FROM " + metricTableName
+ " APPEND_ONLY_SCHEMA = true, UPDATE_CACHE_FREQUENCY=300000";
conn1.createStatement().execute(ddl);
// drop the table using a different connection
- conn2.createStatement().execute("DROP VIEW view1");
+ conn2.createStatement().execute("DROP VIEW " + viewName);
// upsert one row
- conn1.createStatement().execute("UPSERT INTO view1(hostName, metricVal) VALUES('host1', 1.0)");
+ conn1.createStatement().execute("UPSERT INTO " + viewName + "(hostName, metricVal) VALUES('host1', 1.0)");
// upsert doesn't fail since base table still exists
conn1.commit();
}
http://git-wip-us.apache.org/repos/asf/phoenix/blob/03df8ab5/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 4dba393..736de9f 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
@@ -656,8 +656,9 @@ public class ArithmeticQueryIT extends BaseHBaseManagedTimeTableReuseIT {
}
@Test
public void testSumDouble() throws Exception {
- initSumDoubleValues(null, getUrl());
- String query = "SELECT SUM(d) FROM SumDoubleTest";
+ String tableName = "TBL_" + generateRandomString();
+ initSumDoubleValues(tableName, null, getUrl());
+ String query = "SELECT SUM(d) FROM " + tableName ;
Properties props = PropertiesUtil.deepCopy(TEST_PROPERTIES);
Connection conn = DriverManager.getConnection(getUrl(), props);
try {
@@ -673,8 +674,9 @@ public class ArithmeticQueryIT extends BaseHBaseManagedTimeTableReuseIT {
@Test
public void testSumUnsignedDouble() throws Exception {
- initSumDoubleValues(null, getUrl());
- String query = "SELECT SUM(ud) FROM SumDoubleTest";
+ String tableName = "TBL_" + generateRandomString();
+ initSumDoubleValues(tableName, null, getUrl());
+ String query = "SELECT SUM(ud) FROM " + tableName ;
Properties props = PropertiesUtil.deepCopy(TEST_PROPERTIES);
Connection conn = DriverManager.getConnection(getUrl(), props);
try {
@@ -690,8 +692,9 @@ public class ArithmeticQueryIT extends BaseHBaseManagedTimeTableReuseIT {
@Test
public void testSumFloat() throws Exception {
- initSumDoubleValues(null, getUrl());
- String query = "SELECT SUM(f) FROM SumDoubleTest";
+ String tableName = "TBL_" + generateRandomString();
+ initSumDoubleValues(tableName, null, getUrl());
+ String query = "SELECT SUM(f) FROM " + tableName ;
Properties props = PropertiesUtil.deepCopy(TEST_PROPERTIES);
Connection conn = DriverManager.getConnection(getUrl(), props);
try {
@@ -707,8 +710,9 @@ public class ArithmeticQueryIT extends BaseHBaseManagedTimeTableReuseIT {
@Test
public void testSumUnsignedFloat() throws Exception {
- initSumDoubleValues(null, getUrl());
- String query = "SELECT SUM(uf) FROM SumDoubleTest";
+ String tableName = "TBL_" + generateRandomString();
+ initSumDoubleValues(tableName, null, getUrl());
+ String query = "SELECT SUM(uf) FROM " + tableName;
Properties props = PropertiesUtil.deepCopy(TEST_PROPERTIES);
Connection conn = DriverManager.getConnection(getUrl(), props);
try {