Markus Hoenicka writes: > information. This check simply looks spurious to me: > > if(field->charsetnr == 63) >
It probably isn't as wrong as I thought initially. MySQL gurus, please correct me if I'm wrong, but I take the following from the manual: The purpose of the field->charsetnr==63 is to tell TEXT and BLOB fields apart (and their relatives of other sizes). Both are represented by a FIELD_TYPE_BLOB (or MYSQL_TYPE_BLOB) type. The former is a NULL-terminated string with a character set and a collation, the latter is a binary object without character set or collation. There is apparently no way to tell these apart other than by their field->charsetnr value. Therefore I tend to think the proper fix is to rearrange the case statements in the mysql driver (see the _translate_mysql_type function). The VAR_STRING and STRING types should be moved below the default: entry to never mark those as binary. Vikram, do I understand correctly that you don't expect to be able to store binary strings in a "VARCHAR(256) COLLATE 'binary'" column? If we fix the driver as I suggested above, you'd get back only the part of the string up to the first NULL. regards, Markus -- Markus Hoenicka http://www.mhoenicka.de AQ score 38 ------------------------------------------------------------------------------ Throughout its 18-year history, RSA Conference consistently attracts the world's best and brightest in the field, creating opportunities for Conference attendees to learn about information security's most important issues through interactions with peers, luminaries and emerging and established companies. http://p.sf.net/sfu/rsaconf-dev2dev _______________________________________________ libdbi-users mailing list libdbi-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/libdbi-users