From: Alexander Barkov Date: May 5 2010 10:03am Subject: bzr commit into mysql-6.0-codebase-bugfixing branch (bar:3867) Bug#52849 List-Archive: http://lists.mysql.com/commits/107452 X-Bug: 52849 Message-Id: <201005051004.o45A45A9003360@bar.myoffice.izhnet.ru> MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="===============0622710939==" --===============0622710939== 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-6.0-codebase-bugfixing/ based on revid:horst.hunger@stripped 3867 Alexander Barkov 2010-05-05 [merge] Merging bug#52849 from mysql-next-mr-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-25 09:02:07 +0000 +++ b/mysql-test/r/type_datetime.result 2010-05-05 10:01:43 +0000 @@ -640,3 +640,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 +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-03-19 17:03:58 +0000 +++ b/mysql-test/t/type_datetime.test 2010-05-05 10:01:43 +0000 @@ -447,3 +447,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:49:47 +0000 +++ b/sql/item.cc 2010-05-05 10:01:43 +0000 @@ -1809,6 +1809,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); --===============0622710939== 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-6.0-codebase-\ # bugfixing/ # testament_sha1: b2e50c2a1a6601f266c884b4d29bb4b7fab9baad # timestamp: 2010-05-05 14:04:05 +0400 # source_branch: file:///home/bar/mysql-bzr/mysql-next-mr-bugfixing/ # base_revision_id: horst.hunger@stripped\ # ltzs8cq2q461jmqe # # Begin bundle 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 UxNy1AEXNDDqKXzDq5tuhtaf/xdyRThQkJ1yC5M= --===============0622710939==--