Bug #85463 | varchar(64) varchar(255) lead to bug | ||
---|---|---|---|
Submitted: | 15 Mar 2017 11:29 | Modified: | 16 Mar 2017 1:27 |
Reporter: | mi ke | Email Updates: | |
Status: | Can't repeat | Impact on me: | |
Category: | MySQL Server: Data Types | Severity: | S2 (Serious) |
Version: | 5.7 | OS: | Windows |
Assigned to: | CPU Architecture: | Any | |
Tags: | count(disticnt), type varchar(255) varchar(64) |
[15 Mar 2017 11:29]
mi ke
[15 Mar 2017 11:34]
mi ke
however , when i create table use varchar(64),the way_1 is equal to way_2;
[15 Mar 2017 12:12]
MySQL Verification Team
Thank you for the bug report. I couldn't repeat with recent source server: c:\dbs>c:\dbs\5.7\bin\mysql -uroot --port=3570 -p --local-infile test --prompt="mysql 5.7 > " Enter password: ****** Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 5 Server version: 5.7.19 Source distribution PULL: 2017-MAR-07 Copyright (c) 2000, 2017, Oracle and/or its affiliates. All rights reserved. Oracle is a registered trademark of Oracle Corporation and/or its affiliates. Other names may be trademarks of their respective owners. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. mysql 5.7 > use test Database changed mysql 5.7 > LOAD DATA LOCAL INFILE 'C:\\tmp\\uid_utf8.csv' -> INTO TABLE temp -> CHARACTER SET utf8 -> fields terminated by ',' optionally enclosed by '"' ESCAPED BY '"' -> lines terminated by '\n' ignore 1 lines; Query OK, 167778 rows affected (3.82 sec) Records: 167778 Deleted: 0 Skipped: 0 Warnings: 0 mysql 5.7 > select count(distinct uid) -> from -> (SELECT distinct uid FROM temp) as a; +---------------------+ | count(distinct uid) | +---------------------+ | 35758 | +---------------------+ 1 row in set (0.22 sec) mysql 5.7 > SELECT count(distinct uid) FROM temp; +---------------------+ | count(distinct uid) | +---------------------+ | 35758 | +---------------------+ 1 row in set (0.09 sec) mysql 5.7 > show create table temp; +-------+------------------------------------------------------------------------------------------------+ | Table | Create Table | +-------+------------------------------------------------------------------------------------------------+ | temp | CREATE TABLE `temp` ( `uid` varchar(255) DEFAULT NULL ) ENGINE=InnoDB DEFAULT CHARSET=latin1 | +-------+------------------------------------------------------------------------------------------------+ 1 row in set (0.01 sec)
[16 Mar 2017 1:07]
mi ke
hello, when i use ENGINE=InnoDB DEFAULT CHARSET=latin1 , i have a equal results; however,when i user ENGINE=InnoDB DEFAULT CHARSET=utf8;, i have two differernt results; can you try again to user ENGINE=InnoDB DEFAULT CHARSET=utf8 ?
[16 Mar 2017 1:27]
mi ke
mysql> SHOW VARIABLES LIKE 'character%'; +--------------------------+---------------------------------------------------------+ | Variable_name | Value | +--------------------------+---------------------------------------------------------+ | character_set_client | utf8 | | character_set_connection | utf8 | | character_set_database | utf8 | | character_set_filesystem | binary | | character_set_results | utf8 | | character_set_server | utf8 | | character_set_system | utf8 | | character_sets_dir | C:\Program Files\MySQL\MySQL Server 5.7\share\charsets\ | +--------------------------+---------------------------------------------------------+ 8 rows in set
[16 Mar 2017 11:01]
MySQL Verification Team
Thank you for the feedback: mysql 5.7 > SHOW GLOBAL VARIABLES LIKE 'character%'; +--------------------------+----------------------------+ | Variable_name | Value | +--------------------------+----------------------------+ | character_set_client | utf8 | | character_set_connection | utf8 | | character_set_database | utf8 | | character_set_filesystem | binary | | character_set_results | utf8 | | character_set_server | utf8 | | character_set_system | utf8 | | character_sets_dir | c:\dbs\5.7\share\charsets\ | +--------------------------+----------------------------+ 8 rows in set (0.00 sec) mysql 5.7 > create table temp (uid varchar(255) null)ENGINE=InnoDB DEFAULT CHARSET=utf8; Query OK, 0 rows affected (0.20 sec) mysql 5.7 > show create table temp; +-------+----------------------------------------------------------------------------------------------+ | Table | Create Table | +-------+----------------------------------------------------------------------------------------------+ | temp | CREATE TABLE `temp` ( `uid` varchar(255) DEFAULT NULL ) ENGINE=InnoDB DEFAULT CHARSET=utf8 | +-------+----------------------------------------------------------------------------------------------+ 1 row in set (0.00 sec) mysql 5.7 > LOAD DATA LOCAL INFILE 'C:\\tmp\\uid_utf8.csv' -> INTO TABLE temp -> CHARACTER SET utf8 -> fields terminated by ',' optionally enclosed by '"' ESCAPED BY '"' -> lines terminated by '\n' ignore 1 lines; Query OK, 167778 rows affected (2.18 sec) Records: 167778 Deleted: 0 Skipped: 0 Warnings: 0 mysql 5.7 > select count(distinct uid) -> from -> (SELECT distinct uid FROM temp) as a; +---------------------+ | count(distinct uid) | +---------------------+ | 35758 | +---------------------+ 1 row in set (0.48 sec) mysql 5.7 > SELECT count(distinct uid) FROM temp; +---------------------+ | count(distinct uid) | +---------------------+ | 35758 | +---------------------+ 1 row in set (0.20 sec) mysql 5.7 > SHOW VARIABLES LIKE "%version%"; +-------------------------+---------------------------------------+ | Variable_name | Value | +-------------------------+---------------------------------------+ | innodb_version | 5.7.19 | | protocol_version | 10 | | slave_type_conversions | | | tls_version | TLSv1,TLSv1.1 | | version | 5.7.19 | | version_comment | Source distribution PULL: 2017-MAR-07 | | version_compile_machine | x86_64 | | version_compile_os | Win64 | +-------------------------+---------------------------------------+ 8 rows in set (0.00 sec) mysql 5.7 >