From 849ba3d620823fa897eeaaecbb22393d6e9623e7 Mon Sep 17 00:00:00 2001 From: Mike Bayer Date: Fri, 30 Mar 2007 15:49:30 +0000 Subject: [PATCH] - query strings in unicode URLs get keys encoded to ascii for **kwargs compat --- CHANGES | 2 ++ lib/sqlalchemy/engine/url.py | 2 ++ 2 files changed, 4 insertions(+) diff --git a/CHANGES b/CHANGES index 17736daa29..fc8077167f 100644 --- a/CHANGES +++ b/CHANGES @@ -16,6 +16,8 @@ dbapis [ticket:505] - sending None as an argument to func. 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 353a9f8406..edb8cf32e8 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} -- 2.47.2