From: Alexander Barkov Date: May 5 2010 9:35am Subject: bzr commit into mysql-next-mr-bugfixing branch (bar:3169) Bug#52849 List-Archive: http://lists.mysql.com/commits/107433 X-Bug: 52849 Message-Id: <201005050935.o459ZlXa022863@bar.myoffice.izhnet.ru> MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="===============1343946909==" --===============1343946909== MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Content-Disposition: inline #At file:///home/bar/mysql-bzr/mysql-next-mr-bugfixing/ based on revid:horst.hunger@stripped 3169 Alexander Barkov 2010-05-05 [merge] Merging bug#52849 from mysql-trunk-bugfixing modified: mysql-test/r/type_datetime.result mysql-test/t/type_datetime.test sql/item.cc === modified file 'mysql-test/r/type_datetime.result' --- a/mysql-test/r/type_datetime.result 2010-03-24 15:03:44 +0000 +++ b/mysql-test/r/type_datetime.result 2010-05-05 09:28:37 +0000 @@ -638,3 +638,22 @@ CAST(CAST('2008-07-29T10:42:51.1234567' Warnings: Warning 1292 Truncated incorrect datetime value: '2008-07-29T10:42:51.1234567' End of 5.1 tests +# +# Start of 5.5 tests +# +# +# Bug#52849 datetime index not work +# +CREATE TABLE t1 (Id INT, AtTime DATETIME, KEY AtTime (AtTime)); +SET NAMES CP850; +INSERT INTO t1 VALUES (1,'2010-04-12 22:30:12'), (2,'2010-04-12 22:30:12'), (3,'2010-04-12 22:30:12'); +EXPLAIN EXTENDED SELECT * FROM t1 FORCE INDEX(attime) WHERE AtTime = '2010-02-22 18:40:07'; +id select_type table type possible_keys key key_len ref rows filtered Extra +1 SIMPLE t1 ref AtTime AtTime 9 const 1 100.00 Using where +Warnings: +Note 1003 select `test`.`t1`.`Id` AS `Id`,`test`.`t1`.`AtTime` AS `AtTime` from `test`.`t1` FORCE INDEX (`attime`) where (`test`.`t1`.`AtTime` = '2010-02-22 18:40:07') +DROP TABLE t1; +SET NAMES latin1; +# +# End of 5.5 tests +# === modified file 'mysql-test/t/type_datetime.test' --- a/mysql-test/t/type_datetime.test 2009-02-13 18:07:03 +0000 +++ b/mysql-test/t/type_datetime.test 2010-05-05 09:28:37 +0000 @@ -446,3 +446,21 @@ SELECT CAST(CAST('00000002006-000008-000 SELECT CAST(CAST('2008-07-29T10:42:51.1234567' AS DateTime) AS DECIMAL(30,7)); --echo End of 5.1 tests + +--echo # +--echo # Start of 5.5 tests +--echo # + +--echo # +--echo # Bug#52849 datetime index not work +--echo # +CREATE TABLE t1 (Id INT, AtTime DATETIME, KEY AtTime (AtTime)); +SET NAMES CP850; +INSERT INTO t1 VALUES (1,'2010-04-12 22:30:12'), (2,'2010-04-12 22:30:12'), (3,'2010-04-12 22:30:12'); +EXPLAIN EXTENDED SELECT * FROM t1 FORCE INDEX(attime) WHERE AtTime = '2010-02-22 18:40:07'; +DROP TABLE t1; +SET NAMES latin1; + +--echo # +--echo # End of 5.5 tests +--echo # === modified file 'sql/item.cc' --- a/sql/item.cc 2010-04-19 08:29:52 +0000 +++ b/sql/item.cc 2010-05-05 09:34:28 +0000 @@ -1796,6 +1796,24 @@ bool agg_item_set_converter(DTCollation &dummy_offset)) continue; + /* + No needs to add converter if an "arg" is NUMERIC or DATETIME + value (which is pure ASCII) and at the same time target DTCollation + is ASCII-compatible. For example, no needs to rewrite: + SELECT * FROM t1 WHERE datetime_field = '2010-01-01'; + to + SELECT * FROM t1 WHERE CONVERT(datetime_field USING cs) = '2010-01-01'; + + TODO: avoid conversion of any values with + repertoire ASCII and 7bit-ASCII-compatible, + not only numeric/datetime origin. + */ + if ((*arg)->collation.derivation == DERIVATION_NUMERIC && + (*arg)->collation.repertoire == MY_REPERTOIRE_ASCII && + !((*arg)->collation.collation->state & MY_CS_NONASCII) && + !(coll.collation->state & MY_CS_NONASCII)) + continue; + if (!(conv= (*arg)->safe_charset_converter(coll.collation)) && ((*arg)->collation.repertoire == MY_REPERTOIRE_ASCII)) conv= new Item_func_conv_charset(*arg, coll.collation, 1); --===============1343946909== MIME-Version: 1.0 Content-Type: text/bzr-bundle; charset="us-ascii"; name="bzr/bar@stripped" Content-Transfer-Encoding: 7bit Content-Disposition: inline # Bazaar merge directive format 2 (Bazaar 0.90) # revision_id: bar@stripped # target_branch: file:///home/bar/mysql-bzr/mysql-next-mr-bugfixing/ # testament_sha1: 9597f27eca571a8f2a6ddf23df8d09b480dedef0 # timestamp: 2010-05-05 13:35:47 +0400 # source_branch: file:///home/bar/mysql-bzr/mysql-trunk-bugfixing/ # base_revision_id: horst.hunger@stripped\ # xd0mkt0kovg03yzj # # Begin bundle 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 --===============1343946909==--