Repository: phoenix Updated Branches: refs/heads/4.x-HBase-0.98 a479c6dd4 -> 98b9e3f4b
PHOENIX-4175 Convert tests using CURRENT_SCN to not use it when possible Project: http://git-wip-us.apache.org/repos/asf/phoenix/repo Commit: http://git-wip-us.apache.org/repos/asf/phoenix/commit/98b9e3f4 Tree: http://git-wip-us.apache.org/repos/asf/phoenix/tree/98b9e3f4 Diff: http://git-wip-us.apache.org/repos/asf/phoenix/diff/98b9e3f4 Branch: refs/heads/4.x-HBase-0.98 Commit: 98b9e3f4bf25b9411183305698741fbe30c27856 Parents: 1f24103 Author: James Taylor <jamestay...@apache.org> Authored: Wed Sep 6 18:05:42 2017 -0700 Committer: James Taylor <jtay...@salesforce.com> Committed: Thu Sep 7 10:59:15 2017 -0700 ---------------------------------------------------------------------- .../apache/phoenix/end2end/CreateSchemaIT.java | 26 +++---- .../phoenix/end2end/CustomEntityDataIT.java | 75 ++++++++++++-------- .../apache/phoenix/end2end/UpsertSelectIT.java | 46 ++++++++++-- 3 files changed, 93 insertions(+), 54 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/phoenix/blob/98b9e3f4/phoenix-core/src/it/java/org/apache/phoenix/end2end/CreateSchemaIT.java ---------------------------------------------------------------------- diff --git a/phoenix-core/src/it/java/org/apache/phoenix/end2end/CreateSchemaIT.java b/phoenix-core/src/it/java/org/apache/phoenix/end2end/CreateSchemaIT.java index 09cd810..fe09dcd 100644 --- a/phoenix-core/src/it/java/org/apache/phoenix/end2end/CreateSchemaIT.java +++ b/phoenix-core/src/it/java/org/apache/phoenix/end2end/CreateSchemaIT.java @@ -30,41 +30,31 @@ import org.apache.hadoop.hbase.client.HBaseAdmin; import org.apache.phoenix.exception.SQLExceptionCode; import org.apache.phoenix.jdbc.PhoenixConnection; import org.apache.phoenix.query.QueryServices; -import org.apache.phoenix.schema.NewerSchemaAlreadyExistsException; import org.apache.phoenix.schema.SchemaAlreadyExistsException; -import org.apache.phoenix.util.PhoenixRuntime; +import org.apache.phoenix.util.PropertiesUtil; import org.apache.phoenix.util.SchemaUtil; +import org.apache.phoenix.util.TestUtil; import org.junit.Test; -public class CreateSchemaIT extends BaseClientManagedTimeIT { +public class CreateSchemaIT extends ParallelStatsDisabledIT { @Test public void testCreateSchema() throws Exception { - long ts = nextTimestamp(); - Properties props = new Properties(); - props.setProperty(PhoenixRuntime.CURRENT_SCN_ATTRIB, Long.toString(ts)); + Properties props = PropertiesUtil.deepCopy(TestUtil.TEST_PROPERTIES); props.setProperty(QueryServices.IS_NAMESPACE_MAPPING_ENABLED, Boolean.toString(true)); - String ddl = "CREATE SCHEMA TEST_SCHEMA"; + String schemaName = generateUniqueName(); + String ddl = "CREATE SCHEMA " + schemaName; try (Connection conn = DriverManager.getConnection(getUrl(), props); HBaseAdmin admin = conn.unwrap(PhoenixConnection.class).getQueryServices().getAdmin();) { conn.createStatement().execute(ddl); - assertNotNull(admin.getNamespaceDescriptor("TEST_SCHEMA")); + assertNotNull(admin.getNamespaceDescriptor(schemaName)); } - props.setProperty(PhoenixRuntime.CURRENT_SCN_ATTRIB, Long.toString(ts + 10)); - try (Connection conn = DriverManager.getConnection(getUrl(), props);) { - conn.createStatement().execute(ddl); - fail(); - } catch (SchemaAlreadyExistsException e) { - // expected - } - props.setProperty(PhoenixRuntime.CURRENT_SCN_ATTRIB, Long.toString(ts - 20)); try (Connection conn = DriverManager.getConnection(getUrl(), props)) { conn.createStatement().execute(ddl); fail(); - } catch (NewerSchemaAlreadyExistsException e) { + } catch (SchemaAlreadyExistsException e) { // expected } - props.setProperty(PhoenixRuntime.CURRENT_SCN_ATTRIB, Long.toString(ts + 50)); Connection conn = DriverManager.getConnection(getUrl(), props); try { conn.createStatement().execute("CREATE SCHEMA " + SchemaUtil.SCHEMA_FOR_DEFAULT_NAMESPACE); http://git-wip-us.apache.org/repos/asf/phoenix/blob/98b9e3f4/phoenix-core/src/it/java/org/apache/phoenix/end2end/CustomEntityDataIT.java ---------------------------------------------------------------------- diff --git a/phoenix-core/src/it/java/org/apache/phoenix/end2end/CustomEntityDataIT.java b/phoenix-core/src/it/java/org/apache/phoenix/end2end/CustomEntityDataIT.java index ad0f308..4af2c5c 100644 --- a/phoenix-core/src/it/java/org/apache/phoenix/end2end/CustomEntityDataIT.java +++ b/phoenix-core/src/it/java/org/apache/phoenix/end2end/CustomEntityDataIT.java @@ -17,7 +17,6 @@ */ package org.apache.phoenix.end2end; -import static org.apache.phoenix.util.TestUtil.CUSTOM_ENTITY_DATA_FULL_NAME; import static org.apache.phoenix.util.TestUtil.ROW2; import static org.apache.phoenix.util.TestUtil.ROW5; import static org.apache.phoenix.util.TestUtil.ROW9; @@ -32,26 +31,49 @@ import java.sql.Date; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.ResultSet; -import java.util.Properties; -import org.apache.phoenix.util.PhoenixRuntime; import org.apache.phoenix.util.PropertiesUtil; import org.junit.Test; -public class CustomEntityDataIT extends BaseClientManagedTimeIT { +public class CustomEntityDataIT extends ParallelStatsDisabledIT { - protected static void initTableValues(String tenantId, byte[][] splits, long ts) throws Exception { - ensureTableCreated(getUrl(),CUSTOM_ENTITY_DATA_FULL_NAME,CUSTOM_ENTITY_DATA_FULL_NAME, ts-2); - - String url = getUrl() + ";" + PhoenixRuntime.CURRENT_SCN_ATTRIB + "=" + ts; - Properties props = PropertiesUtil.deepCopy(TEST_PROPERTIES); - Connection conn = DriverManager.getConnection(url, props); + private static void initTableValues(Connection conn, String tenantId, String tableName) throws Exception { + String ddl = "create table " + tableName + + " (organization_id char(15) not null, \n" + + " key_prefix char(3) not null,\n" + + " custom_entity_data_id char(12) not null,\n" + + " created_by varchar,\n" + + " created_date date,\n" + + " currency_iso_code char(3),\n" + + " deleted char(1),\n" + + " division decimal(31,10),\n" + + " last_activity date,\n" + + " last_update date,\n" + + " last_update_by varchar,\n" + + " name varchar(240),\n" + + " owner varchar,\n" + + " record_type_id char(15),\n" + + " setup_owner varchar,\n" + + " system_modstamp date,\n" + + " b.val0 varchar,\n" + + " b.val1 varchar,\n" + + " b.val2 varchar,\n" + + " b.val3 varchar,\n" + + " b.val4 varchar,\n" + + " b.val5 varchar,\n" + + " b.val6 varchar,\n" + + " b.val7 varchar,\n" + + " b.val8 varchar,\n" + + " b.val9 varchar\n" + + " CONSTRAINT pk PRIMARY KEY (organization_id, key_prefix, custom_entity_data_id)) SPLIT ON ('" + tenantId + "00A','" + tenantId + "00B','" + tenantId + "00C')"; + + conn.createStatement().execute(ddl); // Insert all rows at ts PreparedStatement stmt = conn.prepareStatement( - "upsert into " + - "CORE.CUSTOM_ENTITY_DATA(" + + "upsert into " + tableName + + "(" + " ORGANIZATION_ID, " + " KEY_PREFIX, " + " CUSTOM_ENTITY_DATA_ID, " + @@ -154,18 +176,16 @@ public class CustomEntityDataIT extends BaseClientManagedTimeIT { stmt.execute(); conn.commit(); - conn.close(); } @Test public void testUngroupedAggregation() throws Exception { - long ts = nextTimestamp(); String tenantId = getOrganizationId(); - String query = "SELECT count(1) FROM CORE.CUSTOM_ENTITY_DATA WHERE organization_id=?"; - String url = getUrl() + ";" + PhoenixRuntime.CURRENT_SCN_ATTRIB + "=" + (ts + 5); // Run query at timestamp 5 - Connection conn = DriverManager.getConnection(url, PropertiesUtil.deepCopy(TEST_PROPERTIES)); + String tableName = generateUniqueName(); + String query = "SELECT count(1) FROM " + tableName + " WHERE organization_id=?"; + Connection conn = DriverManager.getConnection(getUrl(), PropertiesUtil.deepCopy(TEST_PROPERTIES)); try { - initTableValues(tenantId, getDefaultSplits(getOrganizationId()), ts); + initTableValues(conn, tenantId, tableName); PreparedStatement statement = conn.prepareStatement(query); statement.setString(1, tenantId); ResultSet rs = statement.executeQuery(); @@ -179,13 +199,12 @@ public class CustomEntityDataIT extends BaseClientManagedTimeIT { @Test public void testScan() throws Exception { - long ts = nextTimestamp(); String tenantId = getOrganizationId(); - String query = "SELECT CREATED_BY,CREATED_DATE,CURRENCY_ISO_CODE,DELETED,DIVISION,LAST_UPDATE,LAST_UPDATE_BY,NAME,OWNER,SYSTEM_MODSTAMP,VAL0,VAL1,VAL2,VAL3,VAL4,VAL5,VAL6,VAL7,VAL8,VAL9 FROM CORE.CUSTOM_ENTITY_DATA WHERE organization_id=?"; - String url = getUrl() + ";" + PhoenixRuntime.CURRENT_SCN_ATTRIB + "=" + (ts + 5); // Run query at timestamp 5 - Connection conn = DriverManager.getConnection(url, PropertiesUtil.deepCopy(TEST_PROPERTIES)); + String tableName = generateUniqueName(); + String query = "SELECT CREATED_BY,CREATED_DATE,CURRENCY_ISO_CODE,DELETED,DIVISION,LAST_UPDATE,LAST_UPDATE_BY,NAME,OWNER,SYSTEM_MODSTAMP,VAL0,VAL1,VAL2,VAL3,VAL4,VAL5,VAL6,VAL7,VAL8,VAL9 FROM " + tableName + " WHERE organization_id=?"; + Connection conn = DriverManager.getConnection(getUrl(), PropertiesUtil.deepCopy(TEST_PROPERTIES)); try { - initTableValues(tenantId, getDefaultSplits(getOrganizationId()), ts); + initTableValues(conn, tenantId, tableName); PreparedStatement statement = conn.prepareStatement(query); statement.setString(1, tenantId); ResultSet rs = statement.executeQuery(); @@ -203,14 +222,12 @@ public class CustomEntityDataIT extends BaseClientManagedTimeIT { @Test public void testWhereStringConcatExpression() throws Exception { - long ts = nextTimestamp(); String tenantId = getOrganizationId(); - initTableValues(tenantId, getDefaultSplits(getOrganizationId()), ts); - String query = "SELECT KEY_PREFIX||CUSTOM_ENTITY_DATA_ID FROM CORE.CUSTOM_ENTITY_DATA where '00A'||val0 LIKE '00A2%'"; - Properties props = new Properties(); - props.setProperty(PhoenixRuntime.CURRENT_SCN_ATTRIB, Long.toString(ts + 2)); // Execute at timestamp 2 - Connection conn = DriverManager.getConnection(getUrl(), props); + String tableName = generateUniqueName(); + String query = "SELECT KEY_PREFIX||CUSTOM_ENTITY_DATA_ID FROM " + tableName + " where '00A'||val0 LIKE '00A2%'"; + Connection conn = DriverManager.getConnection(getUrl(), PropertiesUtil.deepCopy(TEST_PROPERTIES)); try { + initTableValues(conn, tenantId, tableName); PreparedStatement statement = conn.prepareStatement(query); ResultSet rs=statement.executeQuery(); assertTrue (rs.next()); http://git-wip-us.apache.org/repos/asf/phoenix/blob/98b9e3f4/phoenix-core/src/it/java/org/apache/phoenix/end2end/UpsertSelectIT.java ---------------------------------------------------------------------- diff --git a/phoenix-core/src/it/java/org/apache/phoenix/end2end/UpsertSelectIT.java b/phoenix-core/src/it/java/org/apache/phoenix/end2end/UpsertSelectIT.java index 08d12f4..e9a514b 100644 --- a/phoenix-core/src/it/java/org/apache/phoenix/end2end/UpsertSelectIT.java +++ b/phoenix-core/src/it/java/org/apache/phoenix/end2end/UpsertSelectIT.java @@ -21,7 +21,6 @@ import static org.apache.phoenix.util.PhoenixRuntime.TENANT_ID_ATTRIB; import static org.apache.phoenix.util.PhoenixRuntime.UPSERT_BATCH_SIZE_ATTRIB; import static org.apache.phoenix.util.TestUtil.A_VALUE; import static org.apache.phoenix.util.TestUtil.B_VALUE; -import static org.apache.phoenix.util.TestUtil.CUSTOM_ENTITY_DATA_FULL_NAME; import static org.apache.phoenix.util.TestUtil.C_VALUE; import static org.apache.phoenix.util.TestUtil.PTSDB_NAME; import static org.apache.phoenix.util.TestUtil.ROW6; @@ -89,23 +88,56 @@ public class UpsertSelectIT extends ParallelStatsDisabledIT { private void testUpsertSelect(boolean createIndex) throws Exception { long ts = nextTimestamp(); String tenantId = getOrganizationId(); - String aTable = initATableValues(tenantId, getDefaultSplits(tenantId), null, ts-1, getUrl(), null); + byte[][] splits = getDefaultSplits(tenantId); + Properties props = PropertiesUtil.deepCopy(TEST_PROPERTIES); + String aTable = initATableValues(tenantId, splits, null, ts-1, getUrl(), null); + String customEntityTable = generateUniqueName(); - ensureTableCreated(getUrl(), customEntityTable, CUSTOM_ENTITY_DATA_FULL_NAME, ts-1); + props.setProperty(PhoenixRuntime.CURRENT_SCN_ATTRIB, Long.toString(ts - 1)); + Connection conn = DriverManager.getConnection(getUrl(), props); + String ddl = "create table " + customEntityTable + + " (organization_id char(15) not null, \n" + + " key_prefix char(3) not null,\n" + + " custom_entity_data_id char(12) not null,\n" + + " created_by varchar,\n" + + " created_date date,\n" + + " currency_iso_code char(3),\n" + + " deleted char(1),\n" + + " division decimal(31,10),\n" + + " last_activity date,\n" + + " last_update date,\n" + + " last_update_by varchar,\n" + + " name varchar(240),\n" + + " owner varchar,\n" + + " record_type_id char(15),\n" + + " setup_owner varchar,\n" + + " system_modstamp date,\n" + + " b.val0 varchar,\n" + + " b.val1 varchar,\n" + + " b.val2 varchar,\n" + + " b.val3 varchar,\n" + + " b.val4 varchar,\n" + + " b.val5 varchar,\n" + + " b.val6 varchar,\n" + + " b.val7 varchar,\n" + + " b.val8 varchar,\n" + + " b.val9 varchar\n" + + " CONSTRAINT pk PRIMARY KEY (organization_id, key_prefix, custom_entity_data_id))"; + conn.createStatement().execute(ddl); + conn.close(); + String indexName = generateUniqueName(); if (createIndex) { - Properties props = new Properties(); props.setProperty(PhoenixRuntime.CURRENT_SCN_ATTRIB, Long.toString(ts)); // Execute at timestamp 1 - Connection conn = DriverManager.getConnection(getUrl(), props); + conn = DriverManager.getConnection(getUrl(), props); conn.createStatement().execute("CREATE INDEX IF NOT EXISTS " + indexName + " ON " + aTable + "(a_string)" ); conn.close(); } PreparedStatement upsertStmt; - Properties props = new Properties(); props.setProperty(PhoenixRuntime.CURRENT_SCN_ATTRIB, Long.toString(ts + 2)); // Execute at timestamp 2 props.setProperty(UPSERT_BATCH_SIZE_ATTRIB, Integer.toString(3)); // Trigger multiple batches - Connection conn = DriverManager.getConnection(getUrl(), props); + conn = DriverManager.getConnection(getUrl(), props); conn.setAutoCommit(true); String upsert = "UPSERT INTO " + customEntityTable + "(custom_entity_data_id, key_prefix, organization_id, created_by) " + "SELECT substr(entity_id, 4), substr(entity_id, 1, 3), organization_id, a_string FROM " + aTable + " WHERE ?=a_string";