summaryrefslogtreecommitdiff
path: root/test/dialect
diff options
context:
space:
mode:
authorMichael Trier <mtrier@gmail.com>2008-11-08 04:43:35 +0000
committerMichael Trier <mtrier@gmail.com>2008-11-08 04:43:35 +0000
commit8924a0e4fe3f6dfe3f90413deb8bee8cd776cafb (patch)
tree2f87e4bc128ce54ee022dbe0ef3f634e25dd4169 /test/dialect
parentcfca625e9445f9c52fe20c6542dd7268f2c55b6d (diff)
downloadsqlalchemy-8924a0e4fe3f6dfe3f90413deb8bee8cd776cafb.tar.gz
Corrected a lot of mssql limit / offset issues. Also ensured that mssql uses the IN / NOT IN syntax when using a binary expression with a subquery.
Diffstat (limited to 'test/dialect')
-rwxr-xr-xtest/dialect/mssql.py32
1 files changed, 10 insertions, 22 deletions
diff --git a/test/dialect/mssql.py b/test/dialect/mssql.py
index 4708cc28c..26fc75243 100755
--- a/test/dialect/mssql.py
+++ b/test/dialect/mssql.py
@@ -20,6 +20,16 @@ class CompileTest(TestBase, AssertsCompiledSQL):
t = table('sometable', column('somecolumn'))
self.assert_compile(t.update(t.c.somecolumn==7), "UPDATE sometable SET somecolumn=:somecolumn WHERE sometable.somecolumn = :somecolumn_1", dict(somecolumn=10))
+ def test_in_with_subqueries(self):
+ """Test that when using subqueries in a binary expression
+ the == and != are changed to IN and NOT IN respectively.
+
+ """
+
+ t = table('sometable', column('somecolumn'))
+ self.assert_compile(t.select().where(t.c.somecolumn==t.select()), "SELECT sometable.somecolumn FROM sometable WHERE sometable.somecolumn IN (SELECT sometable.somecolumn FROM sometable)")
+ self.assert_compile(t.select().where(t.c.somecolumn!=t.select()), "SELECT sometable.somecolumn FROM sometable WHERE sometable.somecolumn NOT IN (SELECT sometable.somecolumn FROM sometable)")
+
def test_count(self):
t = table('sometable', column('somecolumn'))
self.assert_compile(t.count(), "SELECT count(sometable.somecolumn) AS tbl_row_count FROM sometable")
@@ -197,28 +207,6 @@ class QueryTest(TestBase):
finally:
table.drop()
- def test_select_limit_nooffset(self):
- metadata = MetaData(testing.db)
-
- users = Table('query_users', metadata,
- Column('user_id', INT, primary_key = True),
- Column('user_name', VARCHAR(20)),
- )
- addresses = Table('query_addresses', metadata,
- Column('address_id', Integer, primary_key=True),
- Column('user_id', Integer, ForeignKey('query_users.user_id')),
- Column('address', String(30)))
- metadata.create_all()
-
- try:
- try:
- r = users.select(limit=3, offset=2,
- order_by=[users.c.user_id]).execute().fetchall()
- assert False # InvalidRequestError should have been raised
- except exc.InvalidRequestError:
- pass
- finally:
- metadata.drop_all()
class Foo(object):
def __init__(self, **kw):