[Serdev] [Tracker] Updated: (SER-204) [Patch] MySQL: Support
VARBINARY fields as a replacement for BLOBs
Jan Janak (JIRA)
tracker at iptel.org
Sun Jan 14 17:52:40 UTC 2007
[ http://tracker.iptel.org/browse/SER-204?page=all ]
Jan Janak updated SER-204:
--------------------------
Fix Version/s: Wishlist
> [Patch] MySQL: Support VARBINARY fields as a replacement for BLOBs
> ------------------------------------------------------------------
>
> Key: SER-204
> URL: http://tracker.iptel.org/browse/SER-204
> Project: SER
> Issue Type: Improvement
> Components: MySQL
> Affects Versions: Ottendorf
> Environment: not relevant here
> Priority: Minor
> Fix For: Wishlist
>
>
> It is sometimes useful to use MySQL heap tables (ENGINE=MEMORY) for some of SER's tables. Unfortunately, MySQL does not allow BLOB columns in heap tables. As long as the values are not too large, VARBINARY is a good replacement, but the problem is that SER cannot distinguish VARBINARY from VARCHAR and will return VARBINARY values in SELECTs as DB_STRING (which is a null-terminated string, obviously useless for a binary value).
> This patch allows SER to recognize [VAR]BINARY fields and treat them similar to DB_BLOBs.
> --- modules/mysql/res.c (revision 38634)
> +++ modules/mysql/res.c (working copy)
> @@ -106,6 +106,16 @@
> RES_TYPES(_r)[i] = DB_BITMAP;
> break;
>
> + case FIELD_TYPE_STRING:
> + case FIELD_TYPE_VAR_STRING:
> + /* If the field is a BINARY or VARBINARY field, treat it
> as a
> + * DB_BLOB. Null-terminated strings don't make sense the
> re. */
> + if (fields[i].flags & BINARY_FLAG)
> + RES_TYPES(_r)[i] = DB_BLOB;
> + else
> + RES_TYPES(_r)[i] = DB_STRING;
> + break;
> +
> default:
> RES_TYPES(_r)[i] = DB_STRING;
> break;
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: http://tracker.iptel.org/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira
More information about the Serdev
mailing list