Thanks for the info.

Since it is NOCYCLE in oracle and NO CYCLE in postgres, I would check the engine.dialect.name in the compile, method correct?

                    if eng.dialect.name == 'oracle':
                        sql += " NOCYCLE"
                    elif eng.dialect.name == 'postgres':
                        sql += " NO CYCLE"
                    else:
raise Exception("RSequence is only implemented for Oracle and PostgreSQL!")

How do I get a hold of the engine from within a Sequence object?


On 3/26/2010 2:26 PM, Michael Bayer wrote:
Kent wrote:
Any plans to support MINVALUE, MAXVALUE, CYCLE, NOCYCLE for sequences
(for both postgres and oracle)?

I've implemented a subclass of Sequence myself, but it isn't very
elegant, because I'm not familiar enough with the code to know which
methods to override for create() output.
correction:  redefine the compilation for CreateSequence:

from sqlalchemy import *
from sqlalchemy import schema
from sqlalchemy.ext.compiler import compiles


class MySeq(Sequence):
     def __init__(self, *args, **kw):
         self.cycle = kw.pop('cycle', False)
         super(MySeq, self).__init__(*args, **kw)

@compiles(schema.CreateSequence)
def compile(element, compiler, **kw):
     if isinstance(element.element, MySeq):
         return "CREATE SEQUENCE %s %s" % (element.element.name,
element.element.cycle and "CYCLE" or "")
     else:
         return compiler.visit_create_sequence(element)





--
You received this message because you are subscribed to the Google Groups
"sqlalchemy" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to
[email protected].
For more options, visit this group at
http://groups.google.com/group/sqlalchemy?hl=en.



--
You received this message because you are subscribed to the Google Groups 
"sqlalchemy" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/sqlalchemy?hl=en.

Reply via email to