summaryrefslogtreecommitdiff
path: root/test/sql/defaults.py
diff options
context:
space:
mode:
authorMike Bayer <mike_mp@zzzcomputing.com>2007-10-28 21:28:53 +0000
committerMike Bayer <mike_mp@zzzcomputing.com>2007-10-28 21:28:53 +0000
commitbbebcdf8f526226d2d64a91dfc306086fc9873f4 (patch)
tree9d7ae997a5f816418ac05b20b22f523653fc32f6 /test/sql/defaults.py
parent19fcf37483b381d795239fa328d08ce97b87ed90 (diff)
downloadsqlalchemy-bbebcdf8f526226d2d64a91dfc306086fc9873f4.tar.gz
- fixed INSERT statements w.r.t. primary key columns that have SQL-expression
based default generators on them; SQL expression executes inline as normal but will not trigger a "postfetch" condition for the column, for those DB's who provide it via cursor.lastrowid
Diffstat (limited to 'test/sql/defaults.py')
-rw-r--r--test/sql/defaults.py28
1 files changed, 28 insertions, 0 deletions
diff --git a/test/sql/defaults.py b/test/sql/defaults.py
index c29ffa3b3..da23a67a2 100644
--- a/test/sql/defaults.py
+++ b/test/sql/defaults.py
@@ -243,6 +243,34 @@ class DefaultTest(PersistTest):
finally:
testbase.db.execute("drop table speedy_users", None)
+class PKDefaultTest(PersistTest):
+ def setUpAll(self):
+ global metadata, t1, t2
+
+ metadata = MetaData(testbase.db)
+
+ t2 = Table('t2', metadata,
+ Column('nextid', Integer))
+
+ t1 = Table('t1', metadata,
+ Column('id', Integer, primary_key=True, default=select([func.max(t2.c.nextid)]).as_scalar()),
+ Column('data', String(30)))
+
+ metadata.create_all()
+
+ def tearDownAll(self):
+ metadata.drop_all()
+
+ def test_basic(self):
+ t2.insert().execute(nextid=1)
+ r = t1.insert().execute(data='hi')
+ assert r.last_inserted_ids() == [1]
+
+ t2.insert().execute(nextid=2)
+ r = t1.insert().execute(data='there')
+ assert r.last_inserted_ids() == [2]
+
+
class AutoIncrementTest(PersistTest):
def setUp(self):
global aitable, aimeta