summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMike Bayer <mike_mp@zzzcomputing.com>2009-10-20 16:19:54 +0000
committerMike Bayer <mike_mp@zzzcomputing.com>2009-10-20 16:19:54 +0000
commit7b457b973102c8fe7c3105d5984f48a3265a5168 (patch)
tree849165d305d1e42df20434c05ff1b663876d5ffb
parentf44f59e05e793cf89e7184bcbcfebd546a4f36cf (diff)
downloadsqlalchemy-7b457b973102c8fe7c3105d5984f48a3265a5168.tar.gz
merged r6416 of 0.5 branch, fix the "numeric" paramstyle and add tests
-rw-r--r--CHANGES10
-rw-r--r--lib/sqlalchemy/sql/compiler.py2
-rw-r--r--test/sql/test_select.py30
3 files changed, 41 insertions, 1 deletions
diff --git a/CHANGES b/CHANGES
index 4de7b2e22..850dcf8db 100644
--- a/CHANGES
+++ b/CHANGES
@@ -580,6 +580,16 @@ CHANGES
by contains_eager() out of individual instance states.
[ticket:1553]
+- sql
+ - Fixed the "numeric" paramstyle, which apparently is the
+ default paramstyle used by Informixdb.
+
+- postgresql
+ - Added support for reflecting the DOUBLE PRECISION type,
+ via a new postgres.PGDoublePrecision object.
+ This is postgresql.DOUBLE_PRECISION in 0.6.
+ [ticket:1085]
+
- mssql
- Changed the name of TrustedConnection to
Trusted_Connection when constructing pyodbc connect
diff --git a/lib/sqlalchemy/sql/compiler.py b/lib/sqlalchemy/sql/compiler.py
index 59034ca22..f07e6aca8 100644
--- a/lib/sqlalchemy/sql/compiler.py
+++ b/lib/sqlalchemy/sql/compiler.py
@@ -56,7 +56,7 @@ BIND_TEMPLATES = {
'pyformat':"%%(%(name)s)s",
'qmark':"?",
'format':"%%s",
- 'numeric':"%(position)s",
+ 'numeric':":%(position)s",
'named':":%(name)s"
}
diff --git a/test/sql/test_select.py b/test/sql/test_select.py
index 554938dc8..757dc5213 100644
--- a/test/sql/test_select.py
+++ b/test/sql/test_select.py
@@ -152,6 +152,36 @@ sq.myothertable_othername AS sq_myothertable_othername FROM (" + sqstring + ") A
select([cast("data", Integer)], use_labels=True), # this will work with plain Integer in 0.6
"SELECT CAST(:param_1 AS INTEGER) AS anon_1"
)
+
+ def test_paramstyles(self):
+ stmt = text("select :foo, :bar, :bat from sometable")
+
+ self.assert_compile(
+ stmt,
+ "select ?, ?, ? from sometable"
+ , dialect=default.DefaultDialect(paramstyle='qmark')
+ )
+ self.assert_compile(
+ stmt,
+ "select :foo, :bar, :bat from sometable"
+ , dialect=default.DefaultDialect(paramstyle='named')
+ )
+ self.assert_compile(
+ stmt,
+ "select %s, %s, %s from sometable"
+ , dialect=default.DefaultDialect(paramstyle='format')
+ )
+ self.assert_compile(
+ stmt,
+ "select :1, :2, :3 from sometable"
+ , dialect=default.DefaultDialect(paramstyle='numeric')
+ )
+ self.assert_compile(
+ stmt,
+ "select %(foo)s, %(bar)s, %(bat)s from sometable"
+ , dialect=default.DefaultDialect(paramstyle='pyformat')
+ )
+
def test_nested_uselabels(self):
"""test nested anonymous label generation. this