[1/3] PHOENIX-1016 Support MINVALUE, MAXVALUE, and CYCLE options in CREATE SEQUENCE (Thomas D'Silva)
Repository: phoenix Updated Branches: refs/heads/3.0 6d4c9f420 - 866d43266 http://git-wip-us.apache.org/repos/asf/phoenix/blob/15e1108f/phoenix-core/src/main/java/org/apache/phoenix/query/QueryConstants.java -- diff --git a/phoenix-core/src/main/java/org/apache/phoenix/query/QueryConstants.java b/phoenix-core/src/main/java/org/apache/phoenix/query/QueryConstants.java index 7e81915..20ab137 100644 --- a/phoenix-core/src/main/java/org/apache/phoenix/query/QueryConstants.java +++ b/phoenix-core/src/main/java/org/apache/phoenix/query/QueryConstants.java @@ -28,6 +28,7 @@ import static org.apache.phoenix.jdbc.PhoenixDatabaseMetaData.COLUMN_FAMILY; import static org.apache.phoenix.jdbc.PhoenixDatabaseMetaData.COLUMN_NAME; import static org.apache.phoenix.jdbc.PhoenixDatabaseMetaData.COLUMN_SIZE; import static org.apache.phoenix.jdbc.PhoenixDatabaseMetaData.CURRENT_VALUE; +import static org.apache.phoenix.jdbc.PhoenixDatabaseMetaData.CYCLE_FLAG; import static org.apache.phoenix.jdbc.PhoenixDatabaseMetaData.DATA_TABLE_NAME; import static org.apache.phoenix.jdbc.PhoenixDatabaseMetaData.DATA_TYPE; import static org.apache.phoenix.jdbc.PhoenixDatabaseMetaData.DECIMAL_DIGITS; @@ -41,6 +42,8 @@ import static org.apache.phoenix.jdbc.PhoenixDatabaseMetaData.IS_NULLABLE; import static org.apache.phoenix.jdbc.PhoenixDatabaseMetaData.IS_VIEW_REFERENCED; import static org.apache.phoenix.jdbc.PhoenixDatabaseMetaData.KEY_SEQ; import static org.apache.phoenix.jdbc.PhoenixDatabaseMetaData.LINK_TYPE; +import static org.apache.phoenix.jdbc.PhoenixDatabaseMetaData.MAX_VALUE; +import static org.apache.phoenix.jdbc.PhoenixDatabaseMetaData.MIN_VALUE; import static org.apache.phoenix.jdbc.PhoenixDatabaseMetaData.MULTI_TENANT; import static org.apache.phoenix.jdbc.PhoenixDatabaseMetaData.NULLABLE; import static org.apache.phoenix.jdbc.PhoenixDatabaseMetaData.NUM_PREC_RADIX; @@ -213,15 +216,19 @@ public interface QueryConstants { HTableDescriptor.SPLIT_POLICY + =' + MetaDataSplitPolicy.class.getName() + '\n; public static final String CREATE_SEQUENCE_METADATA = -CREATE TABLE IF NOT EXISTS + SYSTEM_CATALOG_SCHEMA + .\ + TYPE_SEQUENCE + \(\n + +CREATE TABLE + SYSTEM_CATALOG_SCHEMA + .\ + TYPE_SEQUENCE + \(\n + TENANT_ID + VARCHAR NULL, + - SEQUENCE_SCHEMA + VARCHAR NULL, \n + +SEQUENCE_SCHEMA + VARCHAR NULL, \n + SEQUENCE_NAME + VARCHAR NOT NULL, \n + START_WITH + BIGINT, \n + - CURRENT_VALUE + BIGINT, \n + +CURRENT_VALUE + BIGINT, \n + INCREMENT_BY + BIGINT, \n + -CACHE_SIZE + BIGINT \n + -CONSTRAINT + SYSTEM_TABLE_PK_NAME + PRIMARY KEY ( + TENANT_ID + , + SEQUENCE_SCHEMA + , + SEQUENCE_NAME + ))\n + - HConstants.VERSIONS + = + MetaDataProtocol.DEFAULT_MAX_META_DATA_VERSIONS + \n; +CACHE_SIZE + BIGINT, \n + +// the following three columns were added in 3.0/4.0 +MIN_VALUE + BIGINT, \n + +MAX_VALUE + BIGINT, \n + +CYCLE_FLAG + BOOLEAN \n + + CONSTRAINT + SYSTEM_TABLE_PK_NAME + PRIMARY KEY ( + TENANT_ID + , + SEQUENCE_SCHEMA + , + SEQUENCE_NAME + ))\n + +HConstants.VERSIONS + = + MetaDataProtocol.DEFAULT_MAX_META_DATA_VERSIONS + \n; } http://git-wip-us.apache.org/repos/asf/phoenix/blob/15e1108f/phoenix-core/src/main/java/org/apache/phoenix/schema/MetaDataClient.java -- diff --git a/phoenix-core/src/main/java/org/apache/phoenix/schema/MetaDataClient.java b/phoenix-core/src/main/java/org/apache/phoenix/schema/MetaDataClient.java index dc59d83..53aebf5 100644 --- a/phoenix-core/src/main/java/org/apache/phoenix/schema/MetaDataClient.java +++ b/phoenix-core/src/main/java/org/apache/phoenix/schema/MetaDataClient.java @@ -637,7 +637,9 @@ public class MetaDataClient { SequenceKey key = MetaDataUtil.getViewIndexSequenceKey(tenantIdStr, physicalName); // Create at parent timestamp as we know that will be earlier than now // and earlier than any SCN if one is set. -createSequence(key.getTenantId(), key.getSchemaName(), key.getSequenceName(), true, Short.MIN_VALUE, 1, 1, dataTable.getTimeStamp()); +createSequence(key.getTenantId(), key.getSchemaName(), key.getSequenceName(), +true, Short.MIN_VALUE, 1, 1, false, Long.MIN_VALUE, Long.MAX_VALUE, +dataTable.getTimeStamp()); long[] seqValues = new long[1]; SQLException[] sqlExceptions = new SQLException[1];
[1/3] PHOENIX-1016 Support MINVALUE, MAXVALUE, and CYCLE options in CREATE SEQUENCE (Thomas D'Silva)
Repository: phoenix Updated Branches: refs/heads/4.0 c3e120471 - daa13c727 http://git-wip-us.apache.org/repos/asf/phoenix/blob/6d06ab2e/phoenix-core/src/main/java/org/apache/phoenix/query/QueryConstants.java -- diff --git a/phoenix-core/src/main/java/org/apache/phoenix/query/QueryConstants.java b/phoenix-core/src/main/java/org/apache/phoenix/query/QueryConstants.java index 455b20d..a27aae6 100644 --- a/phoenix-core/src/main/java/org/apache/phoenix/query/QueryConstants.java +++ b/phoenix-core/src/main/java/org/apache/phoenix/query/QueryConstants.java @@ -28,6 +28,7 @@ import static org.apache.phoenix.jdbc.PhoenixDatabaseMetaData.COLUMN_FAMILY; import static org.apache.phoenix.jdbc.PhoenixDatabaseMetaData.COLUMN_NAME; import static org.apache.phoenix.jdbc.PhoenixDatabaseMetaData.COLUMN_SIZE; import static org.apache.phoenix.jdbc.PhoenixDatabaseMetaData.CURRENT_VALUE; +import static org.apache.phoenix.jdbc.PhoenixDatabaseMetaData.CYCLE_FLAG; import static org.apache.phoenix.jdbc.PhoenixDatabaseMetaData.DATA_TABLE_NAME; import static org.apache.phoenix.jdbc.PhoenixDatabaseMetaData.DATA_TYPE; import static org.apache.phoenix.jdbc.PhoenixDatabaseMetaData.DECIMAL_DIGITS; @@ -42,6 +43,8 @@ import static org.apache.phoenix.jdbc.PhoenixDatabaseMetaData.IS_NULLABLE; import static org.apache.phoenix.jdbc.PhoenixDatabaseMetaData.IS_VIEW_REFERENCED; import static org.apache.phoenix.jdbc.PhoenixDatabaseMetaData.KEY_SEQ; import static org.apache.phoenix.jdbc.PhoenixDatabaseMetaData.LINK_TYPE; +import static org.apache.phoenix.jdbc.PhoenixDatabaseMetaData.MAX_VALUE; +import static org.apache.phoenix.jdbc.PhoenixDatabaseMetaData.MIN_VALUE; import static org.apache.phoenix.jdbc.PhoenixDatabaseMetaData.MULTI_TENANT; import static org.apache.phoenix.jdbc.PhoenixDatabaseMetaData.NULLABLE; import static org.apache.phoenix.jdbc.PhoenixDatabaseMetaData.NUM_PREC_RADIX; @@ -215,15 +218,19 @@ public interface QueryConstants { HTableDescriptor.SPLIT_POLICY + =' + MetaDataSplitPolicy.class.getName() + '\n; public static final String CREATE_SEQUENCE_METADATA = -CREATE TABLE IF NOT EXISTS + SYSTEM_CATALOG_SCHEMA + .\ + TYPE_SEQUENCE + \(\n + +CREATE TABLE + SYSTEM_CATALOG_SCHEMA + .\ + TYPE_SEQUENCE + \(\n + TENANT_ID + VARCHAR NULL, + - SEQUENCE_SCHEMA + VARCHAR NULL, \n + +SEQUENCE_SCHEMA + VARCHAR NULL, \n + SEQUENCE_NAME + VARCHAR NOT NULL, \n + START_WITH + BIGINT, \n + - CURRENT_VALUE + BIGINT, \n + +CURRENT_VALUE + BIGINT, \n + INCREMENT_BY + BIGINT, \n + -CACHE_SIZE + BIGINT \n + -CONSTRAINT + SYSTEM_TABLE_PK_NAME + PRIMARY KEY ( + TENANT_ID + , + SEQUENCE_SCHEMA + , + SEQUENCE_NAME + ))\n + - HConstants.VERSIONS + = + MetaDataProtocol.DEFAULT_MAX_META_DATA_VERSIONS + \n; +CACHE_SIZE + BIGINT, \n + +// the following three columns were added in 3.1/4.1 +MIN_VALUE + BIGINT, \n + +MAX_VALUE + BIGINT, \n + +CYCLE_FLAG + BOOLEAN \n + + CONSTRAINT + SYSTEM_TABLE_PK_NAME + PRIMARY KEY ( + TENANT_ID + , + SEQUENCE_SCHEMA + , + SEQUENCE_NAME + ))\n + +HConstants.VERSIONS + = + MetaDataProtocol.DEFAULT_MAX_META_DATA_VERSIONS + \n; } http://git-wip-us.apache.org/repos/asf/phoenix/blob/6d06ab2e/phoenix-core/src/main/java/org/apache/phoenix/schema/MetaDataClient.java -- diff --git a/phoenix-core/src/main/java/org/apache/phoenix/schema/MetaDataClient.java b/phoenix-core/src/main/java/org/apache/phoenix/schema/MetaDataClient.java index b246857..12cc15a 100644 --- a/phoenix-core/src/main/java/org/apache/phoenix/schema/MetaDataClient.java +++ b/phoenix-core/src/main/java/org/apache/phoenix/schema/MetaDataClient.java @@ -705,7 +705,9 @@ public class MetaDataClient { SequenceKey key = MetaDataUtil.getViewIndexSequenceKey(tenantIdStr, physicalName); // Create at parent timestamp as we know that will be earlier than now // and earlier than any SCN if one is set. -createSequence(key.getTenantId(), key.getSchemaName(), key.getSequenceName(), true, Short.MIN_VALUE, 1, 1, dataTable.getTimeStamp()); +createSequence(key.getTenantId(), key.getSchemaName(), key.getSequenceName(), +true, Short.MIN_VALUE, 1, 1, false, Long.MIN_VALUE, Long.MAX_VALUE, +dataTable.getTimeStamp()); long[] seqValues = new long[1]; SQLException[] sqlExceptions = new SQLException[1];