[1/3] PHOENIX-1016 Support MINVALUE, MAXVALUE, and CYCLE options in CREATE SEQUENCE (Thomas D'Silva)

2014-07-19 Thread jamestaylor
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)

2014-07-19 Thread jamestaylor
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];