diff options
author | Mike Bayer <mike_mp@zzzcomputing.com> | 2008-03-30 21:48:19 +0000 |
---|---|---|
committer | Mike Bayer <mike_mp@zzzcomputing.com> | 2008-03-30 21:48:19 +0000 |
commit | 7512b5e5482ea8a01095f98f82f1380f19a07110 (patch) | |
tree | c262ad7eae3bb2331a9bdd46fff79c2f3f46b9d7 /test/dialect/postgres.py | |
parent | c096aeefe04ff77dbbef084923c75bf928620a27 (diff) | |
download | sqlalchemy-7512b5e5482ea8a01095f98f82f1380f19a07110.tar.gz |
- schema-qualified tables now will place the schemaname
ahead of the tablename in all column expressions as well
as when generating column labels. This prevents cross-
schema name collisions in all cases [ticket:999]
- the "use_schema" argument to compiler.visit_column() is removed. It uses
schema in all cases now.
- added a new test to the PG dialect to test roundtrip insert/update/delete/select
statements with full schema qualification
Diffstat (limited to 'test/dialect/postgres.py')
-rw-r--r-- | test/dialect/postgres.py | 26 |
1 files changed, 25 insertions, 1 deletions
diff --git a/test/dialect/postgres.py b/test/dialect/postgres.py index 21b11f114..e68fd4d74 100644 --- a/test/dialect/postgres.py +++ b/test/dialect/postgres.py @@ -568,7 +568,31 @@ class MiscTest(TestBase, AssertsExecutionResults): self.assert_((subject.c.id==referer.c.ref).compare(subject.join(referer).onclause)) finally: meta1.drop_all() - + + def test_schema_roundtrips(self): + meta = MetaData(testing.db) + users = Table('users', meta, + Column('id', Integer, primary_key=True), + Column('name', String(50)), schema='alt_schema') + users.create() + try: + users.insert().execute(id=1, name='name1') + users.insert().execute(id=2, name='name2') + users.insert().execute(id=3, name='name3') + users.insert().execute(id=4, name='name4') + + self.assertEquals(users.select().where(users.c.name=='name2').execute().fetchall(), [(2, 'name2')]) + self.assertEquals(users.select(use_labels=True).where(users.c.name=='name2').execute().fetchall(), [(2, 'name2')]) + + users.delete().where(users.c.id==3).execute() + self.assertEquals(users.select().where(users.c.name=='name3').execute().fetchall(), []) + + users.update().where(users.c.name=='name4').execute(name='newname') + self.assertEquals(users.select(use_labels=True).where(users.c.id==4).execute().fetchall(), [(4, 'newname')]) + + finally: + users.drop() + def test_preexecute_passivedefault(self): """test that when we get a primary key column back from reflecting a table which has a default value on it, we pre-execute |