diff options
| author | Mike Bayer <mike_mp@zzzcomputing.com> | 2007-09-22 17:14:15 +0000 |
|---|---|---|
| committer | Mike Bayer <mike_mp@zzzcomputing.com> | 2007-09-22 17:14:15 +0000 |
| commit | 32dcfdf80801051971ce9638a1d9292262b375aa (patch) | |
| tree | 9156fca51b61dcf02b6b5c2e8bb3543573a131cd /lib/sqlalchemy | |
| parent | 6b0a907fbdd33b9d9333ec1b72287580a2568d07 (diff) | |
| download | sqlalchemy-32dcfdf80801051971ce9638a1d9292262b375aa.tar.gz | |
- added "schema" argument to Sequence; use this with Postgres /Oracle when the sequence is
located in an alternate schema. Implements part of [ticket:584], should fix [ticket:761].
Diffstat (limited to 'lib/sqlalchemy')
| -rw-r--r-- | lib/sqlalchemy/schema.py | 3 | ||||
| -rw-r--r-- | lib/sqlalchemy/sql/compiler.py | 7 |
2 files changed, 7 insertions, 3 deletions
diff --git a/lib/sqlalchemy/schema.py b/lib/sqlalchemy/schema.py index 3b7f08f79..713adc585 100644 --- a/lib/sqlalchemy/schema.py +++ b/lib/sqlalchemy/schema.py @@ -770,13 +770,14 @@ class ColumnDefault(DefaultGenerator): class Sequence(DefaultGenerator): """Represent a sequence, which applies to Oracle and Postgres databases.""" - def __init__(self, name, start = None, increment = None, optional=False, quote=False, **kwargs): + def __init__(self, name, start = None, increment = None, schema=None, optional=False, quote=False, **kwargs): super(Sequence, self).__init__(**kwargs) self.name = name self.start = start self.increment = increment self.optional=optional self.quote = quote + self.schema = schema def __repr__(self): return "Sequence(%s)" % ', '.join( diff --git a/lib/sqlalchemy/sql/compiler.py b/lib/sqlalchemy/sql/compiler.py index 2b4786cb2..4fca6b2ec 100644 --- a/lib/sqlalchemy/sql/compiler.py +++ b/lib/sqlalchemy/sql/compiler.py @@ -1000,8 +1000,11 @@ class IdentifierPreparer(object): def should_quote(self, object): return object.quote or self._requires_quotes(object.name) - def format_sequence(self, sequence): - return self.__generic_obj_format(sequence, sequence.name) + def format_sequence(self, sequence, use_schema=True): + name = self.__generic_obj_format(sequence, sequence.name) + if use_schema and sequence.schema is not None: + name = self.__generic_obj_format(sequence, sequence.schema) + "." + name + return name def format_label(self, label, name=None): return self.__generic_obj_format(label, name or label.name) |
