diff options
author | Mike Bayer <mike_mp@zzzcomputing.com> | 2008-02-14 23:41:17 +0000 |
---|---|---|
committer | Mike Bayer <mike_mp@zzzcomputing.com> | 2008-02-14 23:41:17 +0000 |
commit | 14b3a913ac29dd8b37a616701bf13fb6541f5370 (patch) | |
tree | 9ddc9242384812e483f57121f8b7962983cbc08c | |
parent | 911c1ec51336ca143c67da7f0b7763f2396d2547 (diff) | |
download | sqlalchemy-14b3a913ac29dd8b37a616701bf13fb6541f5370.tar.gz |
fixing recent schema.py changes to work with oracle 'owner' attributerel_0_4_3
-rw-r--r-- | lib/sqlalchemy/schema.py | 12 | ||||
-rw-r--r-- | test/engine/execute.py | 2 | ||||
-rw-r--r-- | test/engine/reflection.py | 3 |
3 files changed, 11 insertions, 6 deletions
diff --git a/lib/sqlalchemy/schema.py b/lib/sqlalchemy/schema.py index 3a2ff97a7..a3aa9ecc6 100644 --- a/lib/sqlalchemy/schema.py +++ b/lib/sqlalchemy/schema.py @@ -196,6 +196,7 @@ class Table(SchemaItem, expression.TableClause): super(Table, self).__init__(name) self.metadata = metadata self.schema = kwargs.pop('schema', None) + self.owner = kwargs.pop('owner', None) self.indexes = util.Set() self.constraints = util.Set() self._columns = expression.ColumnCollection() @@ -232,7 +233,13 @@ class Table(SchemaItem, expression.TableClause): schema = kwargs.pop('schema', None) if schema and schema != self.schema: raise exceptions.ArgumentError("Can't change schema of existing table from '%s' to '%s'", (self.schema, schema)) - + owner = kwargs.pop('owner', None) + if owner: + if not self.owner: + self.owner = owner + elif owner != self.owner: + raise exceptions.ArgumentError("Can't change owner of existing table from '%s' to '%s'", (self.owner, owner)) + include_columns = kwargs.pop('include_columns', None) if include_columns: for c in self.c: @@ -246,12 +253,11 @@ class Table(SchemaItem, expression.TableClause): the 'useexisting' flag overrides this. """ - return bool(args) or bool(util.Set(kwargs).difference(['autoload', 'autoload_with', 'schema'])) + return bool(args) or bool(util.Set(kwargs).difference(['autoload', 'autoload_with', 'schema', 'owner'])) def __post_init(self, *args, **kwargs): self.quote = kwargs.pop('quote', False) self.quote_schema = kwargs.pop('quote_schema', False) - self.owner = kwargs.pop('owner', None) if kwargs.get('info'): self._info = kwargs.pop('info') diff --git a/test/engine/execute.py b/test/engine/execute.py index 643a22a18..260a05e27 100644 --- a/test/engine/execute.py +++ b/test/engine/execute.py @@ -55,7 +55,7 @@ class ExecuteTest(TestBase): assert res.fetchall() == [(1, "jack"), (2, "ed"), (3, "horse"), (4, 'sally')] conn.execute("delete from users") - @testing.fails_on_everything_except('sqlite') + @testing.fails_on_everything_except('sqlite', 'oracle') def test_raw_named(self): for conn in (testing.db, testing.db.connect()): conn.execute("insert into users (user_id, user_name) values (:id, :name)", {'id':1, 'name':'jack'}) diff --git a/test/engine/reflection.py b/test/engine/reflection.py index 127a46a1d..c9a07835c 100644 --- a/test/engine/reflection.py +++ b/test/engine/reflection.py @@ -27,8 +27,7 @@ class ReflectionTest(TestBase, ComparesTables): Column('test8', Binary), Column('test_passivedefault2', Integer, PassiveDefault("5")), Column('test9', Binary(100)), - Column('test10', Boolean), - Column('test_numeric', Numeric(None, None)), + Column('test_numeric', Numeric()), test_needs_fk=True, ) |