MySQL Lists are EOL. Please join:

List:Commits« Previous MessageNext Message »
From:Alexander Barkov Date:July 3 2008 7:29am
Subject:Re: commit into mysql-6.0-rpl branch (bar:2657) WL#4164
View as plain text  
Hi Sergei,

Thanks  for review!

Sergey Vojtovich wrote:
> Hi Bar,
> the patch looks good in general, but I have a few questions below:
> 1. WL states that the version number byte of .frm file will change.
>    I didn't find this anywhere in the patch. For now it looks fine:
>    there were no changes in character set enumeration. What shall
>    happen if we open a table, which uses charsetnr > 255, by earlier
>    mysql version?

There was a misunderstanding here between me and Peter here.

FRM file actually stored two versions:

1. FRM file version, shown in "SHOW TABLE STATUS"
2. Version of MySQL created this FRM file
(which is not available in SHOW commands)

There's no needs to change the first version number.
My patch doesn't modify the file format. I just re-used some
bytes which have been always set to zero so far.

The "mysqld" version is of course will be set to
the current version of MySQLD. So no special action
is needed.

Note, a table created by mysqld-6.0.x will be successfully
opened by mysqld-5.1.x providing that the table doesn't used
"new" collations with ID>255.

>    If you're going to follow WL here, I'd suggest to use second
>    byte conditionally. If the table was created by earlier version,
>    do not use it.

The second byte was always zero. There's no really a need
to use it conditionally.

There's probably a need to add a check into the previous version
(i.e. MySQL-5.1) - if the high byte of collation id is non-zero
then MySQL-5.1 should refuse open this table. If you agree,
I can prepare a separate patch for 5.1 for that
(which won't be propagated into 6.0).

> 2. WL mentiones some ideas about charset + collation pair encoding.
>    Am I right that what you actually did is you simply increased
>    number of possible character sets from 256 to 512? That is no
>    tricky encodings implemented.

This idea was abandoned.

It will be later implemented on client-server protocol level.
We'll introduce separate character set IDs. Server will
send both character set ID and collation ID to the client side.

> Regards,
> Sergey
> On Tue, Jun 24, 2008 at 03:06:28PM +0500, Alexander Barkov wrote:
>> #At file:///home/bar/mysql-bzr/mysql-6.0.wl4164/
>>  2657 Alexander Barkov	2008-06-24
>>       WL#4164: Two-byte collation IDs
>> modified:
>>   include/my_handler.h
>>   include/my_sys.h
>>   include/myisam.h
>>   mysql-test/r/ctype_ldml.result
>>   mysql-test/std_data/Index.xml
>>   mysql-test/t/ctype_ldml.test
>>   mysys/charset.c
>>   sql/
>>   sql/
>>   sql/
>>   storage/myisam/mi_open.c
>>   strings/conf_to_src.c

commit into mysql-6.0-rpl branch (bar:2657) WL#4164Alexander Barkov24 Jun
Re: commit into mysql-6.0-rpl branch (bar:2657) WL#4164Alexander Barkov3 Jul