diff options
author | Sylvain Th?nault <sylvain.thenault@logilab.fr> | 2009-05-27 11:16:43 +0200 |
---|---|---|
committer | Sylvain Th?nault <sylvain.thenault@logilab.fr> | 2009-05-27 11:16:43 +0200 |
commit | fcbbd2bbe3fe65a433ed85d8cc85db2efc3054d9 (patch) | |
tree | 548f98e664686cb651386cd2dc8e6c50ae556c8d | |
parent | 2cbadb3eec1970c4198ba60cbfc60c131a8f53b0 (diff) | |
download | logilab-common-fcbbd2bbe3fe65a433ed85d8cc85db2efc3054d9.tar.gz |
fix sqlite's bytea handling: should use native module's Binary, not StringIO
-rw-r--r-- | db.py | 12 |
1 files changed, 6 insertions, 6 deletions
@@ -361,19 +361,19 @@ class _PySqlite2Adapter(DBAPIAdapter): def adapt_bytea(data): return data.getvalue() sqlite.register_adapter(StringIO, adapt_bytea) - def convert_bytea(data): - return StringIO(data) + def convert_bytea(data, Binary=sqlite.Binary): + return Binary(data) sqlite.register_converter('bytea', convert_bytea) # boolean type handling + def adapt_boolean(bval): + return str(bval).upper() + sqlite.register_adapter(bool, adapt_boolean) def convert_boolean(ustr): if ustr.upper() in ('F', 'FALSE'): return False return True sqlite.register_converter('boolean', convert_boolean) - def adapt_boolean(bval): - return str(bval).upper() - sqlite.register_adapter(bool, adapt_boolean) # decimal type handling @@ -458,7 +458,7 @@ class _PySqlite2Adapter(DBAPIAdapter): return self._wrap_if_needed(PySqlite2CnxWrapper(cnx), user) def process_value(self, value, description, encoding='utf-8', binarywrap=None): - if not binarywrap is None and isinstance(value, self._native_module.Binary): + if binarywrap is not None and isinstance(value, self._native_module.Binary): return binarywrap(value) return value # no type code support, can't do anything |