First, MySQL, as of version 3.23.55, does not support strings of length greater than 255 characters. XSB's ODBC interface has been updated to allow the use of the BLOB datatype to encode larger strings.
More importantly, MyODBC implements SQLDescribeCol such that, by
default, it returns actual lengths of columns in the result table,
instead of the formal lengths in the tables. For example, suppose
you have, in table A, a field
declared as ``VARCHAR
(200)''. Now, you create a query of the form ``SELECT
FROM A
WHERE ...'' If, in the result set, the largest size of
is 52,
that's the length that SQLDescribeCol will return. This breaks XSB's
caching of query-related data-structures. In order to prevent this
behavior, you should configure your DSN setup so that you pass
``Option=1'' to MyODBC.