redefine table with unique=True

Issue #179 resolved
Former user created an issue

The following was tested with SA 0.2 (Schema):

import sqlalchemy meta = sqlalchemy.MetaData() a = sqlalchemy.Table( ... 'a', ... meta, ... sqlalchemy.Column('id', sqlalchemy.Integer, primary_key=True), ... sqlalchemy.Column('value', sqlalchemy.Integer, unique=True), ... ) b = sqlalchemy.Table( ... 'a', ... meta, ... sqlalchemy.Column('id', sqlalchemy.Integer, primary_key=True), ... sqlalchemy.Column('value', sqlalchemy.Integer, unique=True), ... redefine=True, ... )

Results in :

Failed example: b = sqlalchemy.Table( 'a', meta, sqlalchemy.Column('id', sqlalchemy.Integer, primary_key=True), sqlalchemy.Column('value', sqlalchemy.Integer, unique=True), redefine=True, ) Exception raised: Traceback (most recent call last): File "/home/juka/zope/trunk/src/zope/testing/doctest.py", line 1256, in run compileflags, 1) in test.globs File "<doctest sa.txt3>", line 6, in ? redefine=True, File "/home/juka/zope/instances/trunk/coma/lib/python/sqlalchemy/schema.py", line 71, in __call table.reload_values(args) File "/home/juka/zope/instances/trunk/coma/lib/python/sqlalchemy/schema.py", line 161, in reload_values self._init_items(args) File "/home/juka/zope/instances/trunk/coma/lib/python/sqlalchemy/schema.py", line 29, in _init_items item._set_parent(self) File "/home/juka/zope/instances/trunk/coma/lib/python/sqlalchemy/schema.py", line 338, in _set_parent unique=self.unique) File "/home/juka/zope/instances/trunk/coma/lib/python/sqlalchemy/schema.py", line 207, in append_index_column index.append_column(column) File "/home/juka/zope/instances/trunk/coma/lib/python/sqlalchemy/schema.py", line 570, in append_column raise exceptions.ArgumentError("A column may not appear twice in the " File "/home/juka/zope/instances/trunk/coma/lib/python/sqlalchemy/sql.py", line 491, in str return str(self.compile()) File "/home/juka/zope/instances/trunk/coma/lib/python/sqlalchemy/sql.py", line 481, in compile elif self.engine is not None: File "/home/juka/zope/instances/trunk/coma/lib/python/sqlalchemy/schema.py", line 41, in <lambda> engine = property(lambda s:s._get_engine()) File "/home/juka/zope/instances/trunk/coma/lib/python/sqlalchemy/schema.py", line 313, in _get_engine return self.table.engine File "/home/juka/zope/instances/trunk/coma/lib/python/sqlalchemy/schema.py", line 41, in <lambda> engine = property(lambda s:s._get_engine()) File "/home/juka/zope/instances/trunk/coma/lib/python/sqlalchemy/schema.py", line 40, in _get_engine return self._derived_metadata().engine File "/home/juka/zope/instances/trunk/coma/lib/python/sqlalchemy/schema.py", line 41, in <lambda> engine = property(lambda s:s._get_engine()) File "/home/juka/zope/instances/trunk/coma/lib/python/sqlalchemy/schema.py", line 651, in _get_engine raise exceptions.InvalidRequestError("Schema %s is not bound to any engine" % self.name) InvalidRequestError: Schema None is not bound to any engine

This happens only with the above unique=True column.

Comments (1)

  1. Log in to comment