From: Mike Bayer Date: Mon, 19 Dec 2005 08:32:49 +0000 (+0000) Subject: typemap needs lower case keys since result set metadata is not always case-sensitive... X-Git-Tag: rel_0_1_0~227 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=3362991b7c52fcc555d21f9e81fc5051a069e9e3;p=thirdparty%2Fsqlalchemy%2Fsqlalchemy.git typemap needs lower case keys since result set metadata is not always case-sensitive (like in oracle) --- diff --git a/lib/sqlalchemy/ansisql.py b/lib/sqlalchemy/ansisql.py index e4bcdd0775..2cb5e5301b 100644 --- a/lib/sqlalchemy/ansisql.py +++ b/lib/sqlalchemy/ansisql.py @@ -158,9 +158,9 @@ class ANSICompiler(sql.Compiled): # if we are within a visit to a Select, set up the "typemap" # for this column which is used to translate result set values if self.select_stack[-1].use_labels: - self.typemap.setdefault(column.label, column.type) + self.typemap.setdefault(column.label.lower(), column.type) else: - self.typemap.setdefault(column.key, column.type) + self.typemap.setdefault(column.key.lower(), column.type) if column.table.name is None: self.strings[column] = column.name else: @@ -269,6 +269,11 @@ class ANSICompiler(sql.Compiled): whereclause = select.whereclause + # TODO: look at our own parameters, see if they + # are all present in the form of BindParamClauses. if + # not, then append to the above whereclause column conditions + # matching those keys + froms = [] for f in select.froms: