[
https://issues.apache.org/jira/browse/PHOENIX-1016?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Thomas D'Silva reopened PHOENIX-1016:
-------------------------------------
[~jamestaylor],
I have attached a patch that ensures that a 3.0/4.0 client can use sequences
from a server that has been upgraded to 3.1/4.1 . I can detect if a client is
using 3.0/4.0 or 3.1/4.1 based on the key values in the Increment and so I can
preserve the 3.0/4.0 behavior.
I changed the implementation to use CURRENT_VALUE stored in SYSTEM.SEQUENCE to
represent the next available value, and this makes it simpler to preserve the
previous behavior.
I also added an @After annotation to SequenceIT to close the connection that
was opened, so no connections are leaked.
Thanks,
Thomas
> 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)