summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--CHANGES2
-rw-r--r--lib/sqlalchemy/engine/url.py2
2 files changed, 4 insertions, 0 deletions
diff --git a/CHANGES b/CHANGES
index 17736daa2..fc8077167 100644
--- a/CHANGES
+++ b/CHANGES
@@ -16,6 +16,8 @@
dbapis [ticket:505]
- sending None as an argument to func.<something> will produce
an argument of NULL
+ - query strings in unicode URLs get keys encoded to ascii
+ for **kwargs compat
- orm:
- corresponding to label/bindparam name generataion, eager loaders
generate deterministic names for the aliases they create using
diff --git a/lib/sqlalchemy/engine/url.py b/lib/sqlalchemy/engine/url.py
index 353a9f840..edb8cf32e 100644
--- a/lib/sqlalchemy/engine/url.py
+++ b/lib/sqlalchemy/engine/url.py
@@ -131,6 +131,8 @@ def _parse_rfc1738_args(name):
tokens = database.split(r"?", 2)
database = tokens[0]
query = (len(tokens) > 1 and dict( cgi.parse_qsl(tokens[1]) ) or None)
+ if query is not None:
+ query = dict([(k.encode('ascii'), query[k]) for k in query])
else:
query = None
opts = {'username':username,'password':password,'host':host,'port':port,'database':database, 'query':query}