3811 Martin Hansson 2012-01-31
WL#5874: CURRENT_TIMESTAMP as DEFAULT for DATETIME columns.
added:
mysql-test/include/function_defaults.inc
mysql-test/include/function_defaults_notembedded.inc
mysql-test/r/function_defaults.result
mysql-test/r/function_defaults_notembedded.result
mysql-test/std_data/onerow.xml
mysql-test/suite/rpl/r/rpl_function_defaults.result
mysql-test/suite/rpl/t/rpl_function_defaults.test
mysql-test/t/function_defaults.test
mysql-test/t/function_defaults_notembedded.test
mysql-test/wl5874_updown
sql/delayable_insert_operation.h
unittest/gunit/copy_info-t.cc
unittest/gunit/create_field-t.cc
unittest/gunit/delayable_insert_operation-t.cc
unittest/gunit/fake_table.h
unittest/gunit/field_timestamp-t.cc
unittest/gunit/item_func_now_local-t.cc
unittest/gunit/mock_create_field.h
unittest/gunit/mock_field_datetime.h
unittest/gunit/mock_field_timestamp.h
unittest/gunit/mock_field_timestampf.h
unittest/gunit/sql_table-t.cc
modified:
include/my_bitmap.h
mysql-test/r/create.result
mysql-test/r/mysqldump.result
mysql-test/r/type_temporal_fractional.result
mysql-test/r/type_timestamp.result
mysql-test/t/create.test
mysql-test/t/mysqldump.test
mysql-test/t/type_temporal_fractional.test
mysql-test/t/type_timestamp.test
mysys/my_bitmap.c
sql/event_db_repository.cc
sql/field.cc
sql/field.h
sql/field_conv.cc
sql/ha_ndbcluster.cc
sql/ha_partition.cc
sql/item.cc
sql/item.h
sql/item_timefunc.cc
sql/item_timefunc.h
sql/log_event.cc
sql/log_event_old.cc
sql/rpl_info_table.cc
sql/sp.cc
sql/sp_head.cc
sql/sql_base.cc
sql/sql_class.cc
sql/sql_class.h
sql/sql_insert.cc
sql/sql_insert.h
sql/sql_load.cc
sql/sql_parse.cc
sql/sql_partition.cc
sql/sql_show.cc
sql/sql_table.cc
sql/sql_table.h
sql/sql_update.cc
sql/table.cc
sql/table.h
sql/unireg.cc
storage/archive/ha_archive.cc
storage/csv/ha_tina.cc
storage/example/ha_example.cc
storage/federated/ha_federated.cc
storage/heap/ha_heap.cc
storage/innobase/handler/ha_innodb.cc
storage/myisam/ha_myisam.cc
storage/myisammrg/ha_myisammrg.cc
unittest/gunit/CMakeLists.txt
3810 Jorgen Loland 2012-01-31
BUG#13599013 - MAX/MIN + SUBQUERY IN WHERE CLAUSE MATCHING NO
ROWS + INDEX DOES NOT RETURN NULL
An aggregated expression of type MIN or MAX shall return NULL
if the query is implicitly grouped and there is no HAVING
clause that evaluates to FALSE. In this bug we had a query
of the form
SELECT MIN(indexed_column) FROM t1 WHERE (4) IN (SELECT 1)
No row can satisfy the WHERE condition but there is no HAVING
clause, so the query should have returned NULL (but did
return an empty set).
The problem was that when a query only selects aggregate
functions that are optimized away, JOIN::exec() goes into an
early-exit branch. This branch did not honor the requirement
stated by the definition above. The fix is to call
return_zero_rows() instead of send_eof() in this branch. If
the query selects aggregates and does not have a HAVING
clause that evaluates to false, return_zero_rows() returns
a NULL-based row before calling send_eof().
@ mysql-test/include/subquery_sj.inc
Add test for BUG#13599013
@ mysql-test/r/subquery_mat.result
Updated result of test that used to be incorrect
@ mysql-test/r/subquery_mat_none.result
Updated result of test that used to be incorrect
@ mysql-test/r/subquery_sj_all.result
Add test for BUG#13599013
@ mysql-test/r/subquery_sj_all_bka.result
Add test for BUG#13599013
@ mysql-test/r/subquery_sj_all_bka_nixbnl.result
Add test for BUG#13599013
@ mysql-test/r/subquery_sj_all_bkaunique.result
Add test for BUG#13599013
@ mysql-test/r/subquery_sj_dupsweed.result
Add test for BUG#13599013
@ mysql-test/r/subquery_sj_dupsweed_bka.result
Add test for BUG#13599013
@ mysql-test/r/subquery_sj_dupsweed_bka_nixbnl.result
Add test for BUG#13599013
@ mysql-test/r/subquery_sj_dupsweed_bkaunique.result
Add test for BUG#13599013
@ mysql-test/r/subquery_sj_firstmatch.result
Add test for BUG#13599013
@ mysql-test/r/subquery_sj_firstmatch_bka.result
Add test for BUG#13599013
@ mysql-test/r/subquery_sj_firstmatch_bka_nixbnl.result
Add test for BUG#13599013
@ mysql-test/r/subquery_sj_firstmatch_bkaunique.result
Add test for BUG#13599013
@ mysql-test/r/subquery_sj_loosescan.result
Add test for BUG#13599013
@ mysql-test/r/subquery_sj_loosescan_bka.result
Add test for BUG#13599013
@ mysql-test/r/subquery_sj_loosescan_bka_nixbnl.result
Add test for BUG#13599013
@ mysql-test/r/subquery_sj_loosescan_bkaunique.result
Add test for BUG#13599013
@ mysql-test/r/subquery_sj_mat.result
Add test for BUG#13599013
@ mysql-test/r/subquery_sj_mat_bka.result
Add test for BUG#13599013
@ mysql-test/r/subquery_sj_mat_bka_nixbnl.result
Add test for BUG#13599013
@ mysql-test/r/subquery_sj_mat_bkaunique.result
Add test for BUG#13599013
@ mysql-test/r/subquery_sj_mat_nosj.result
Add test for BUG#13599013
@ mysql-test/r/subquery_sj_none.result
Add test for BUG#13599013
@ mysql-test/r/subquery_sj_none_bka.result
Add test for BUG#13599013
@ mysql-test/r/subquery_sj_none_bka_nixbnl.result
Add test for BUG#13599013
@ mysql-test/r/subquery_sj_none_bkaunique.result
Add test for BUG#13599013
@ sql/sql_executor.cc
Call return_zero_rows() instead of send_eof() if all tables have
been optimized away and there are no matching rows.
modified:
mysql-test/include/subquery_sj.inc
mysql-test/r/subquery_mat.result
mysql-test/r/subquery_mat_none.result
mysql-test/r/subquery_sj_all.result
mysql-test/r/subquery_sj_all_bka.result
mysql-test/r/subquery_sj_all_bka_nixbnl.result
mysql-test/r/subquery_sj_all_bkaunique.result
mysql-test/r/subquery_sj_dupsweed.result
mysql-test/r/subquery_sj_dupsweed_bka.result
mysql-test/r/subquery_sj_dupsweed_bka_nixbnl.result
mysql-test/r/subquery_sj_dupsweed_bkaunique.result
mysql-test/r/subquery_sj_firstmatch.result
mysql-test/r/subquery_sj_firstmatch_bka.result
mysql-test/r/subquery_sj_firstmatch_bka_nixbnl.result
mysql-test/r/subquery_sj_firstmatch_bkaunique.result
mysql-test/r/subquery_sj_loosescan.result
mysql-test/r/subquery_sj_loosescan_bka.result
mysql-test/r/subquery_sj_loosescan_bka_nixbnl.result
mysql-test/r/subquery_sj_loosescan_bkaunique.result
mysql-test/r/subquery_sj_mat.result
mysql-test/r/subquery_sj_mat_bka.result
mysql-test/r/subquery_sj_mat_bka_nixbnl.result
mysql-test/r/subquery_sj_mat_bkaunique.result
mysql-test/r/subquery_sj_mat_nosj.result
mysql-test/r/subquery_sj_none.result
mysql-test/r/subquery_sj_none_bka.result
mysql-test/r/subquery_sj_none_bka_nixbnl.result
mysql-test/r/subquery_sj_none_bkaunique.result
sql/sql_executor.cc
Diff too large for email (11596 lines, the limit is 10000).
No bundle (reason: useless for push emails).
| Thread |
|---|
| • bzr push into mysql-trunk branch (martin.hansson:3810 to 3811) WL#5874 | Martin Hansson | 31 Jan |