From 0fe6b80c7024e6f9430071f162274fbbd0e3ca44 Mon Sep 17 00:00:00 2001 From: Jason Kirtland Date: Thu, 19 Apr 2007 23:44:26 +0000 Subject: - Promoted mysql's dburl query string helper to util + fixed - Coercing sqlite connect args provided in query string to their expected type (e.g. 'timeout' as float, fixes #544) - Coerce mysql's client_flag to int too --- lib/sqlalchemy/databases/mysql.py | 18 ++++++++---------- 1 file changed, 8 insertions(+), 10 deletions(-) (limited to 'lib/sqlalchemy/databases/mysql.py') diff --git a/lib/sqlalchemy/databases/mysql.py b/lib/sqlalchemy/databases/mysql.py index 21f8bb398..52aa03003 100644 --- a/lib/sqlalchemy/databases/mysql.py +++ b/lib/sqlalchemy/databases/mysql.py @@ -10,6 +10,7 @@ from sqlalchemy import sql,engine,schema,ansisql from sqlalchemy.engine import default import sqlalchemy.types as sqltypes import sqlalchemy.exceptions as exceptions +import sqlalchemy.util as util from array import array @@ -285,16 +286,13 @@ class MySQLDialect(ansisql.ANSIDialect): def create_connect_args(self, url): opts = url.translate_connect_args(['host', 'db', 'user', 'passwd', 'port']) opts.update(url.query) - def coercetype(param, type): - if param in opts and type(param) is not type: - if type is bool: - opts[param] = bool(int(opts[param])) - else: - opts[param] = type(opts[param]) - coercetype('compress', bool) - coercetype('connect_timeout', int) - coercetype('use_unicode', bool) # this could break SA Unicode type - coercetype('charset', str) # this could break SA Unicode type + + util.coerce_kw_type(opts, 'compress', bool) + util.coerce_kw_type(opts, 'connect_timeout', int) + util.coerce_kw_type(opts, 'client_flag', int) + # note: these two could break SA Unicode type + util.coerce_kw_type(opts, 'use_unicode', bool) + util.coerce_kw_type(opts, 'charset', str) # TODO: what about options like "ssl", "cursorclass" and "conv" ? client_flag = opts.get('client_flag', 0) -- cgit v1.2.1