The problem was due to a prior fix for BUG 9676, which limited
the rows stored in a temporary table to the LIMIT clause. This
optimization is not applicable to non-group queries with aggregate
functions. The fix disables the optimization in this case.
mysql-test/r/limit.result:
Test case for BUG#21787
mysql-test/t/limit.test:
Test case for BUG#21787
sql/sql_select.cc:
If there is an aggregate function in a non-group query,
materialize all rows in the temporary table no matter if
there is a LIMIT clause. This is necessary, since the
aggregate functions must be computed over all result rows,
not just the first LIMIT rows.
This is a post-review patch.
Fixes the typelib implementation, available only in 5.1.11.
--event-scheduler cmdline : DISABLED | ON | OFF | 0 | 1
DISABLED - makes the scheduler unavailable during the server run
(ON|1)- When the server is started the scheduler will be started. It can
be stopped and restarted by setting appropriate values to
GLOBAL event_scheduler
(OFF|0)- When the server is started, the scheduler won't be started. It
can be started and again stopped by setting appropriate values to
GLOBAL event_scheduler. _DEFAULT_ value
The GLOBAL variable event_scheduler can have the following values:
OFF | ON | 0 | 1
DISABLED is not possible and every attempt will end with an error that
it's not a valid value for the variable.
OFF | 0 - This is the pre-5.1.11 behavior - The scheduler stops, if not
already stopped, and can be started again by setting
the value of the variable to ON|1.
ON | 1 - This is the pre-5.1.11 behavior - The scheduler starts, if not
already started, and can be stopped again by setting the value
of the variable to OFF|0.
mysql-test/r/events.result:
update result
mysql-test/r/events_bugs.result:
update result
mysql-test/r/events_logs_tests.result:
update result
mysql-test/r/events_restart_phase1.result:
update result
mysql-test/r/events_restart_phase3.result:
update result
mysql-test/r/events_scheduling.result:
update result
mysql-test/r/events_stress.result:
update result
mysql-test/t/events.test:
update test:
2 -> off
1 -> on
mysql-test/t/events_bugs.test:
update test:
2 -> off
1 -> on
mysql-test/t/events_logs_tests.test:
update test:
2 -> off
1 -> on
mysql-test/t/events_restart_phase1.test:
update test:
2 -> off
1 -> on
mysql-test/t/events_restart_phase2-master.opt:
update master file : 1 => on
mysql-test/t/events_scheduling.test:
update test:
2 -> off
1 -> on
add tests for event_scheduler global variable representation from
SHOW VARIABLES.
mysql-test/t/events_stress.test:
update test:
2 -> off
1 -> on
sql/events.cc:
Implement two different TYPELIBs for --event-scheduler cmd line
option and for GLOBAL variable event_scheduler
--event-scheduler cmdline : DISABLED | ON | OFF | 0 | 1
DISABLED - makes the scheduler unavailable during the server run
(ON|1)- When the server is started the scheduler will be started. It can
be stopped and restarted by setting appropriate values to
GLOBAL event_scheduler
(OFF|0)- When the server is started, the scheduler won't be started. It
can be started and again stopped by setting appropriate values to
GLOBAL event_scheduler. _DEFAULT_ value
The GLOBAL variable event_scheduler can have the following values:
OFF | ON | 0 | 1
DISABLED is not possible and every attempt will end with an error that
it's not a valid value for the variable.
OFF | 0 - This is the pre-5.1.11 behavior - The scheduler stops, if not
already stopped, and can be started again by setting
the value of the variable to ON|1.
ON | 1 - This is the pre-5.1.11 behavior - The scheduler starts, if not
already started, and can be stopped again by setting the value
of the variable to OFF|0.
sql/events.h:
additional TYPELIB for GLOBAL event_scheduler
sql/mysqld.cc:
--event-scheduler should be checked against a TYPELIB and
therefore should be GET_STR, as well as we make the parameter optional.
When not provided OFF|0 is used.
sql/set_var.cc:
Implement typelib for event_scheduler variable.
If allows both INT_RESULT -> 0 | 1
and STRING_RESULT -> OFF | ON
The variable is shown as DISABLED | ON | OFF
sql/set_var.h:
Implement typelib, which expects both STRING and INT,
for event_scheduler.
into moonbone.local:/work/tmp_merge-5.1-mysql
sql/item.cc:
Auto merged
sql/item.h:
Auto merged
sql/item_cmpfunc.cc:
Auto merged
sql/item_func.cc:
Auto merged
sql/mysql_priv.h:
Auto merged
sql/sql_acl.cc:
Auto merged
sql/sql_class.cc:
Auto merged
sql/sql_parse.cc:
Auto merged
mysql-test/r/view.result:
SCCS merged
mysql-test/t/view.test:
SCCS merged
make st_select_lex::setup_ref_array() take into account that
Item_sum-descendant objects located within descendant SELECTs
may be added into ref_pointer_array.
sql/item_sum.cc:
BUG#21477 "memory overruns for certain kinds of subqueries":
Make SELECT_LEX::n_sum_items contain # of Item_sum-derived objects
that exist within this SELECT.
sql/sql_lex.h:
BUG#21477 "memory overruns for certain kinds of subqueries":
Add SELECT_LEX::n_sum_items and SELECT_LEXT::n_child_sum_items.
sql/sql_yacc.yy:
BUG#21477 "memory overruns for certain kinds of subqueries":
Make SELECT_LEX::n_sum_items contain # of Item_sum-derived objects
that exist within this SELECT.
into shellback.(none):/home/msvensson/mysql/mysql-5.1-new-maint
configure.in:
Auto merged
include/mysql_com.h:
Auto merged
mysql-test/lib/mtr_process.pl:
Auto merged
mysql-test/mysql-test-run.pl:
Auto merged
mysql-test/r/grant.result:
Auto merged
mysql-test/r/partition.result:
Auto merged
mysql-test/r/partition_mgm.result:
Auto merged
mysql-test/t/disabled.def:
Auto merged
mysql-test/t/grant.test:
Auto merged
sql/item_strfunc.cc:
Auto merged
sql/item_strfunc.h:
Auto merged
sql/mysqld.cc:
Auto merged
sql/sql_acl.cc:
Auto merged
sql/sql_show.cc:
Auto merged
- Dont test "encrypt" in ctype_ucs
mysql-test/r/ctype_ucs.result:
Don't test "encrypt" function in ctype_ucs.test
mysql-test/t/ctype_ucs.test:
Don't test "encrypt" function in ctype_ucs.test
Decreases test time when running a selected number of tests
mysql-test/lib/mtr_cases.pl:
Remove fixme, it's fiexd now
mysql-test/mysql-test-run.pl:
Use "--skip-innodb" if running with testcases that does not need innodb
into maint2.mysql.com:/data/localhome/tsmith/bk/50
mysql-test/r/ctype_utf8.result:
Auto merged
mysql-test/t/ctype_utf8.test:
Auto merged
sql/net_serv.cc:
Auto merged
sql/sql_lex.cc:
Auto merged
sql/sql_select.cc:
Auto merged
sql/sql_yacc.yy:
Auto merged
vio/viosocket.c:
Auto merged
client/mysql.cc:
Manual merge.
mysql-test/t/ctype_recoding.test:
Manual merge.
sql/sql_lex.h:
SCCS merged
sql/sql_table.cc:
Manual merge.
mysql-test/r/ctype_recoding.result:
Manual merge
mysql-test/t/disabled.def:
Removed disabled test since it only affects Windows
mysql-test/t/partition.test:
Removed Windows from test since bug#19107 is known to hang test
mysql-test/t/partition_mgm_err2.test:
Removed Windows from test since bug#19107 is known to hang test
into rama.(none):/home/jimw/my/mysql-5.1-clean
mysqldump.result is wrong, will need to be cleaned up.
client/mysqldump.c:
Auto merged
mysql-test/r/mysqldump.result:
Resolve conflict (probably wrong)
mysql-test/t/mysqldump.test:
Resolve conflicts, make sure all tests new to 5.1 come after 'End of 5.0 tests'
so that 4.1 and 5.0 tests are all in the right place and no tests are duplicated.
client/mysqldump.c:
Restore fix for bug 21215 accidently removed during merge
mysql-test/r/mysqldump.result:
Update results
mysql-test/t/mysqldump.test:
Fix order of tests so that all the tests new to the 5.0 tree come after
"End of 4.1 tests", and so that each leaves things in the state it found
them (particularly by returning to the 'test' database. Also remove some
tests that were duplicated.
into maint2.mysql.com:/data/localhome/tsmith/bk/50
mysql-test/r/heap_btree.result:
Auto merged
sql/set_var.cc:
Auto merged
mysql-test/t/heap_btree.test:
Manual merge.
into dator5.(none):/home/pappa/push_clone
sql/sql_show.cc:
Auto merged
storage/ndb/src/kernel/blocks/dbdih/DbdihMain.cpp:
Auto merged
mysql-test/t/disabled.def:
manual merge
CMakeLists.txt:
New BitKeeper file ``CMakeLists.txt''
bdb/CMakeLists.txt:
New BitKeeper file ``bdb/CMakeLists.txt''
client/CMakeLists.txt:
New BitKeeper file ``client/CMakeLists.txt''
dbug/CMakeLists.txt:
New BitKeeper file ``dbug/CMakeLists.txt''
extra/CMakeLists.txt:
New BitKeeper file ``extra/CMakeLists.txt''
extra/yassl/CMakeLists.txt:
New BitKeeper file ``extra/yassl/CMakeLists.txt''
extra/yassl/taocrypt/CMakeLists.txt:
New BitKeeper file ``extra/yassl/taocrypt/CMakeLists.txt''
heap/CMakeLists.txt:
New BitKeeper file ``heap/CMakeLists.txt''
innobase/CMakeLists.txt:
New BitKeeper file ``innobase/CMakeLists.txt''
libmysql/CMakeLists.txt:
New BitKeeper file ``libmysql/CMakeLists.txt''
myisam/CMakeLists.txt:
New BitKeeper file ``myisam/CMakeLists.txt''
myisammrg/CMakeLists.txt:
New BitKeeper file ``myisammrg/CMakeLists.txt''
mysys/CMakeLists.txt:
New BitKeeper file ``mysys/CMakeLists.txt''
regex/CMakeLists.txt:
New BitKeeper file ``regex/CMakeLists.txt''
server-tools/CMakeLists.txt:
New BitKeeper file ``server-tools/CMakeLists.txt''
server-tools/instance-manager/CMakeLists.txt:
New BitKeeper file ``server-tools/instance-manager/CMakeLists.txt''
sql/CMakeLists.txt:
New BitKeeper file ``sql/CMakeLists.txt''
sql/examples/CMakeLists.txt:
New BitKeeper file ``sql/examples/CMakeLists.txt''
strings/CMakeLists.txt:
New BitKeeper file ``strings/CMakeLists.txt''
tests/CMakeLists.txt:
New BitKeeper file ``tests/CMakeLists.txt''
vio/CMakeLists.txt:
New BitKeeper file ``vio/CMakeLists.txt''
win/Makefile.am:
New BitKeeper file ``win/Makefile.am''
win/README:
New BitKeeper file ``win/README''
win/build-vs71.bat:
New BitKeeper file ``win/build-vs71.bat''
win/build-vs8.bat:
New BitKeeper file ``win/build-vs8.bat''
win/build-vs8_x64.bat:
New BitKeeper file ``win/build-vs8_x64.bat''
win/configure.js:
New BitKeeper file ``win/configure.js''
zlib/CMakeLists.txt:
New BitKeeper file ``zlib/CMakeLists.txt''
This patch makes the relationship between Event_scheduler and Event_queue
unidirectional from the former to the latter.
The change is that the conditional on which the scheduler sleeped has been
moved to the Event_queue and the latter does not call anymore
Event_scheduler::queue_changed(), which in turn has be removed.
sql/event_queue.cc:
Remove dependency of Event_queue on Event_scheduler but not vice versa.
Event_scheduler polls whether there is time to execute an event.
Removed notify_observers() as the way of calling has changed.
Added Event_queue::cond_wait() similar to Event_scheduler::cond_wait().
sql/event_queue.h:
init_queue() does not need anymore Event_scheduler object because
the relationship is now one-way. Event_scheduler knows about Event_queue
but not vice versa.
get_top_execution_if_time() does by itself the waiting instead of
returning abstime. This simplifies the code in Event_scheduler::run()
get_top_execution_if_time() returns only if job_data != NULL or if
the scheduler thread was killed.
notify_observers() is no more used and therefore removed.
Added Event_queue::cond_wait() because now there is waiting on a
conditional variable in Event_queue too (like in Event_scheduler for
::stop()).
sql/event_scheduler.cc:
Change the relationship between Event_scheduler & Event_queue.
Event_queue does not know anymore about Event_scheduler. When
the scheduler calls get_top_element_if_time() it may fall asleep
on a conditional of Event_queue, if either the queue is empty or
it's still not time for activation. When the method returns it
will return a non-null address, namely an object to be executed.
If the return value is NULL, the thread was killed by a call to
Event_scheduler::stop() (we assert this).
sql/event_scheduler.h:
Remove queue_changed() as it is obsoleted by making the relationship
between Event_scheduler and Event_queue one-way, from the former to the
latter. Event_queue now does not know about Event_scheduler.
get_state() is changed to is_running(). The state enum should be private,
as it is not needed to be seen from outside anymore.
sql/events.cc:
Event_queue does not need anymore a pointer to Event_scheduler.
single file is a bad practice.
tests/mysql_client_test.c:
Replace literal characters which don't make sense in UTF8 with ubiquitously-
understood numbers.
The problem was in dummy grep on AIX and HPUX.
The fix is to use more portable patterns.
The patch is only for test suite
(i.e. does not touch server codebase).
mysql-test/r/im_instance_conf.result:
Updated result file.
mysql-test/t/disabled.def:
Fix typo.
mysql-test/t/im_instance_conf.imtest:
Make grep-pattern aix/hpux-compatible.
mysql-test/t/im_options.imtest:
Make grep-pattern aix/hpux-compatible.
mysql-test/t/im_options-im.opt:
Speedup IM-tests.
when a range condition use an invalid DATETIME constant.
Now we do not use invalid DATETIME constants to form end keys for
range intervals: range analysis just ignores predicates with such
constants.
mysql-test/r/query_cache.result:
Adjusted result warnings when adding a fix for bug #16249.
mysql-test/r/range.result:
Added a test case for bug #16249.
mysql-test/t/range.test:
Added a test case for bug #16249.