[jira] [Resolved] (PHOENIX-1016) Support MINVALUE, MAXVALUE, and CYCLE options in CREATE SEQUENCE

2014-07-28 Thread James Taylor (JIRA)

 [ 
https://issues.apache.org/jira/browse/PHOENIX-1016?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

James Taylor resolved PHOENIX-1016.
---

Resolution: Fixed

 Support MINVALUE, MAXVALUE, and CYCLE options in CREATE SEQUENCE
 

 Key: PHOENIX-1016
 URL: https://issues.apache.org/jira/browse/PHOENIX-1016
 Project: Phoenix
  Issue Type: Bug
Reporter: James Taylor
Assignee: Thomas D'Silva
 Fix For: 5.0.0, 3.1, 4.1

 Attachments: AddSeqColumns.txt, PHOENIX-1016-3.1.v3.patch, 
 PHOENIX-1016-3.1.v4.patch, PHOENIX-1016-3.1.v5.patch, 
 PHOENIX-1016-3.1.v6.patch, PHOENIX-1016-4.1.v3.patch, 
 PHOENIX-1016-4.1.v4.patch, PHOENIX-1016-master.v6.patch, 
 PHOENIX-1016.3.0.patch, PHOENIX-1016.patch, PHOENIX-1016.v2.3.0.patch, 
 PHOENIX-1016.v2.patch, PHOENIX-1016.v5.patch, diff.txt


 We currently don't support MINVALUE, MAXVALUE, and CYCLE options in CREATE 
 SEQUENCE, but we should. See 
 http://msdn.microsoft.com/en-us/library/ff878091.aspx for the syntax.
 I believe MINVALUE applies if the INCREMENT is negative while MAXVALUE 
 applies otherwise. If the value of a sequence goes beyond MINVALUE/MAXVALUE, 
 then:
 - if CYCLE is true, then the sequence value should start again at the START 
 WITH value (or the MINVALUE if specified too? Not sure about this).
 - if CYCLE is false, then an exception should be thrown.
 To implement this:
 - make the grammar changes in PhoenixSQL.g
 - add member variables for MINVALUE, MAXVALUE, and CYCLE to 
 CreateSequenceStatement
 - add the appropriate error checking and handle bind variables for these new 
 options in CreateSequenceCompiler
 - modify the MetaDataClient.createSequence() call by passing along these new 
 parameters.
 - same for ConnectionQueryServices.createSequence() call
 - same for Sequence.createSequence().
 - pass along these parameters as new KeyValues in the Append that constitutes 
 the RPC call
 - act on these in the SequenceRegionObserver coprocessor as indicated above.



--
This message was sent by Atlassian JIRA
(v6.2#6252)


[jira] [Resolved] (PHOENIX-1016) Support MINVALUE, MAXVALUE, and CYCLE options in CREATE SEQUENCE

2014-07-19 Thread James Taylor (JIRA)

 [ 
https://issues.apache.org/jira/browse/PHOENIX-1016?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

James Taylor resolved PHOENIX-1016.
---

   Resolution: Fixed
Fix Version/s: 4.1
   3.1
   5.0.0

Thanks for the excellent contribution, [~tdsilva].

 Support MINVALUE, MAXVALUE, and CYCLE options in CREATE SEQUENCE
 

 Key: PHOENIX-1016
 URL: https://issues.apache.org/jira/browse/PHOENIX-1016
 Project: Phoenix
  Issue Type: Bug
Reporter: James Taylor
Assignee: Thomas D'Silva
 Fix For: 5.0.0, 3.1, 4.1

 Attachments: AddSeqColumns.txt, PHOENIX-1016-3.1.v3.patch, 
 PHOENIX-1016-3.1.v4.patch, PHOENIX-1016-3.1.v5.patch, 
 PHOENIX-1016-4.1.v3.patch, PHOENIX-1016-4.1.v4.patch, PHOENIX-1016.3.0.patch, 
 PHOENIX-1016.patch, PHOENIX-1016.v2.3.0.patch, PHOENIX-1016.v2.patch, 
 PHOENIX-1016.v5.patch, diff.txt


 We currently don't support MINVALUE, MAXVALUE, and CYCLE options in CREATE 
 SEQUENCE, but we should. See 
 http://msdn.microsoft.com/en-us/library/ff878091.aspx for the syntax.
 I believe MINVALUE applies if the INCREMENT is negative while MAXVALUE 
 applies otherwise. If the value of a sequence goes beyond MINVALUE/MAXVALUE, 
 then:
 - if CYCLE is true, then the sequence value should start again at the START 
 WITH value (or the MINVALUE if specified too? Not sure about this).
 - if CYCLE is false, then an exception should be thrown.
 To implement this:
 - make the grammar changes in PhoenixSQL.g
 - add member variables for MINVALUE, MAXVALUE, and CYCLE to 
 CreateSequenceStatement
 - add the appropriate error checking and handle bind variables for these new 
 options in CreateSequenceCompiler
 - modify the MetaDataClient.createSequence() call by passing along these new 
 parameters.
 - same for ConnectionQueryServices.createSequence() call
 - same for Sequence.createSequence().
 - pass along these parameters as new KeyValues in the Append that constitutes 
 the RPC call
 - act on these in the SequenceRegionObserver coprocessor as indicated above.



--
This message was sent by Atlassian JIRA
(v6.2#6252)