* Check for module initialization failure (extremely rare)

* The MySQL FIELD_TYPE converter can now be a sequence of 2-tuples.
   Item 0 is a bit mask (using FLAG.*) which must be matched. This should
   be an integer. Item 1 is the conversion function. If item 0 is not an
   integer, then this function is considered the default converter for
   this FIELD_TYPE. Note that these tuples are considered when the query
   has been executed and the result is available, so it doesn't add a
   per-row overhead.

 * As a result of the above, BINARY BLOB fields are now returned as
   character arrays using the array.array class. Non-BINARY BLOB fields
   (i.e. TEXT) are returned as strings. If unicode is enabled, they are
   returned as unicode strings.

 * Bump version to 0.9.3b3.
This commit is contained in:
adustman
2003-12-30 01:30:36 +00:00
parent 37481774b1
commit 59913d32f4
5 changed files with 46 additions and 9 deletions

View File

@@ -20,7 +20,7 @@ version_info = (
9,
3,
"beta",
2)
3)
if version_info[3] == "final": __version__ = "%d.%d.%d" % version_info[:3]
else: __version__ = "%d.%d.%d%1.1s%d" % version_info[:5]

View File

@@ -112,6 +112,7 @@ class Connection(ConnectionBase):
u = unicode
conv[FIELD_TYPE.STRING] = u
conv[FIELD_TYPE.VAR_STRING] = u
conv[FIELD_TYPE.BLOB].insert(-1, (None, u))
self._make_connection(args, kwargs2)
self.converter[types.StringType] = self.string_literal
if hasattr(types, 'UnicodeType'):

View File

@@ -26,7 +26,7 @@ MySQL.connect().
"""
from _mysql import string_literal, escape_sequence, escape_dict, escape, NULL
from constants import FIELD_TYPE
from constants import FIELD_TYPE, FLAG
from sets import *
from times import *
from string import split
@@ -132,6 +132,10 @@ conversions = {
FIELD_TYPE.DATETIME: DateTime_or_None,
FIELD_TYPE.TIME: Time_or_None,
FIELD_TYPE.DATE: Date_or_None,
FIELD_TYPE.BLOB: [
(FLAG.BINARY, char_array),
(None, None),
],
}