[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