maria-developers team mailing list archive
Mailing list archive
Re: d221068ae8b: Change CHARSET_INFO character set and collaction names to LEX_CSTRING
On Thu, Apr 1, 2021 at 4:19 PM Sergei Golubchik <serg@xxxxxxxxxxx> wrote:
> Hi, Michael!
> On Apr 01, Michael Widenius wrote:
> > revision-id: d221068ae8b (mariadb-10.5.2-540-gd221068ae8b)
> > parent(s): 896c3b0a00a
> > author: Michael Widenius <michael.widenius@xxxxxxxxx>
> > committer: Michael Widenius <michael.widenius@xxxxxxxxx>
> > timestamp: 2021-03-24 19:13:42 +0200
> > message:
> > Change CHARSET_INFO character set and collaction names to LEX_CSTRING
> > This change removed 68 strlen() calls from the code.
> > The following renames was to ensure we don't use the old names
> > when merging code from earlier releases, as using the new variables
> > for print function could result in crashes:
> > - charset->csname renamed to charset->cs_name
> > - charset->name renamed to charset->col_name
> Two comments:
> 1. please, use coll_name.
> in our codebase "cs" conventionally means "charset", "col"
> is usually used for "column", "coll" - for "collation"
I can do that, but that will cause changes also in columnstore.
Will try to fix...
> 2. You changed the client api, as can be seen from
> > diff --git a/client/mysql.cc b/client/mysql.cc
> > index e6c7d0f091c..8c64d01539d 100644
> > --- a/client/mysql.cc
> > +++ b/client/mysql.cc
> > @@ -4719,9 +4719,8 @@ sql_real_connect(char *host,char *database,char *user,char *password,
> > return -1; // Retryable
> > }
> > - charset_info= get_charset_by_name(mysql.charset->name, MYF(0));
> > -
> > -
> > + charset_info= get_charset_by_name(IF_EMBEDDED(mysql.charset->col_name.str,
> > + mysql.charset->name), MYF(0));
> > connected=1;
> > #ifndef EMBEDDED_LIBRARY
> > mysql_options(&mysql, MYSQL_OPT_RECONNECT, &debug_info_flag);
> Luckily, C/C is a separate project now, so most clients won't be
> affected. But anything linking with embedded might be.
Yes, I know the effect of this. However I did check with you that this
is ok to do
This only affects clients that access the collation name directly,
which one should
not really do.