Allow to specify a sequence start element for SequenceManagerNextValImpl
------------------------------------------------------------------------

         Key: OJB-66
         URL: http://issues.apache.org/jira/browse/OJB-66
     Project: OJB
        Type: Improvement
  Components: PB-API, RDBMS platform-specific support  
    Versions: 1.0.3    
 Environment: Oracle 9i
OJB 1.0.3
JDK 1.4.2
    Reporter: Guillaume Laforge


SequenceManagerNextValImpl doesn't support the globalSequenceStart attribute.
Thus all sequences start at 1, even though we may have inserted some sample 
data already.
Not being able to start at >1 means we'll have errors when inserting new 
elements when sample data was already inserted.

I'd like to be able to write:

<sequence-manager
className="org.apache.ojb.broker.util.sequence.SequenceManagerNextValImpl">
   <attribute attribute-name="autoNaming" attribute-value="true"/>
   <attribute attribute-name="globalSequenceStart" attribute-value="1000"/>
</sequence-manager>

I also noticed that the PlatformOracleImpl can only create "simple" sequences, 
though it'd be great if this (and other platforms) support a method which could 
be used to specify the sequence start.

So that'd be great if there could be another method than:
    public String createSequenceQuery(String sequenceName)

For instance:
    public String createSequenceQuery(String sequenceName, int sequenceStart)

On Oracle 9i, we can create a sequence like:
CREATE SEQUENCE FOOBAR_SEQ;

That's what currently supported by the standard createSequenceQuery method, but 
it's also possible to create a more complex sequence with:
CREATE SEQUENCE FOOBAR_SEQ START WITH 41 MAXVALUE 999999999999999999999999999 
MINVALUE 1 NOCYCLE CACHE 20 NOORDER;

Or more simply:
CREATE SEQUENCE FOOBAR_SEQ START WITH 41

It may be interesting to be able to specify the other parameters as well, and 
we could probably reuse them when defining the sequence manager, with something 
like:

<sequence-manager
className="org.apache.ojb.broker.util.sequence.SequenceManagerNextValImpl">
   <attribute attribute-name="autoNaming" attribute-value="true"/>
   <attribute attribute-name="globalSequenceStart" attribute-value="1000"/>
   <attribute attribute-name="minValue" attribute-value="1000"/>
   <attribute attribute-name="maxValue" attribute-value="1000"/>
   <attribute attribute-name="noCycle"/>
   <attribute attribute-name="cache" attribute-value="20"/>
   <attribute attribute-name="noOrder"/>
</sequence-manager>

(cache 20 pre-computes 20 sequence ids and puts them in a cache, without 
requiring a new select)

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
   http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see:
   http://www.atlassian.com/software/jira


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to