Hi, Sergei
>>?KEY?CONCERNS
>>?============
>>?1.?In?infoschema_discover,?I?take?all?fields?whose?type?are
>>?MYSQL_TYPE_STRING?into?Field_varstring?and?no?Field_blob,?regardless
>>?of?field's?lengh.?Is?it?any?problem?
>
>Yes,?I?think.
>blobs?may?be?needed?for?certain?very?long?fields.
>Why?did?you?disable?them?-?any?particular?problem?you?had?with?blobs??
Yes. you can check it by - cancel comment in infoschema_dicover():
switch(fileds_info->field_type)
{
case MYSQL_TYPE_STRING:
if(field_length > MAX_FIELD_VARCHARLENGTH)
{
new_field = new Field_blob(field_length, maybe_null, fields_info->field_name,
cs);
}
and SELECT * FROM INFOSCHEMA.PLUGINS occurs errors. something cross the border.
If I replace Field_blob by Field_varstring. It works.
Another question:
Add "#define MYSQL_SERVER 1" in source file, and THD *thd->something works.
But there are lots of others thing couldn't, like GRANT_TABLE, GRANT_COLUMN.
mysql_priv.h does not contain their definition.
So I can't do something like GRANT_TABLE *gtable directly in source file. I do it in this
way:
Add some functions connected with GRANT_TABLE in sql_acl.cc.
There are lots of this function in sql_acl.cc:
char *get_grant_table_user(GRANT_TABLE *gtable)
{
return gtable->user;
}
You can check it in the new branch code.
I think this way is not a good idea. Is there any good way?
Regards,
Robin