DISTINCT wasn't optimized away and caused creation of tmp table in wrong
case. This result in integer overrun and running out of memory.
Fix backported from 4.1. Now if optimizer founds that in result be only 1
row it removes distinct.
sql/sql_select.cc:
Fix bug #13855 select distinct with group by caused server crash
mysql-test/r/select.result:
Test case for bug#13855 select distinct with group by caused server crash
mysql-test/t/select.test:
Test case for bug#13855 select distinct with group by caused server crash
- fixed test
mysql-test/r/rpl_multi_update2.result:
fixed setting/reseting environment
multi-update with subquery added
mysql-test/t/rpl_multi_update2.test:
fixed setting/reseting environment
multi-update with subquery added
sql/sql_update.cc:
set 'updating' in both tables list if we have two of them (because of subquery)
in short we now record whenever the slave I/O thread ignores a master's event because of its server id,
and use this info in the slave SQL thread to advance Exec_master_log_pos. Because if we
do not, this variable stays at the position of the last executed event, i.e. the last *non-ignored*
executed one, which may not be the last of the master's binlog (and so the slave *looks* behind
the master though it's data-wise it's not).
mysql-test/t/rpl_dual_pos_advance-master.opt:
empty; its goal is just to trigger a server restart after running the test,
so that the master forgets that it was a slave (otherwise it affects the following tests).
sql/log.cc:
No more default arguments for Rotate_log_event constructor.
MYSQL_LOG::appendv() is now called without mutex.
sql/log_event.cc:
Moving one Rotate_log_event constructor from log_event.h. Support for on-demand choice of
duplicating the string argument of the constructor or not (because there now are needs for both
alternatives, see slave.cc).
sql/log_event.h:
We now have a case where a Rotate_log_event is executed by the slave SQL thread while
not being in the relay log, so it needs to pretend its length is 0: a ZERO_LEN flag for that;
a flag DUP_NAME (replaces "bool alloced") to be able to choose if we want the constructor
to duplicate the string argument or not.
sql/slave.cc:
A comment for BUG#13861 (to be fixed). llstr() instead of %ld as the number is ulonglong.
mi->rli becomes rli in some places.
Fix for BUG#13023:
- in the slave I/O thread, whenever we ignore an event because of its server id we update
a couple of coordinates in memory
- in the slave SQL thread, whenever we bump into the end of the latest relay log, we check
this couple of coordinates to see if we should advance our Exec_master_log_pos.
- when the slave I/O thread terminates it saves these in-memory coordinates into a Rotate event
in the relay log, so that they are durable.
sql/slave.h:
A couple of coordinates in RELAY_LOG_INFO to keep track of the last ignored events received
by the slave I/O thread (ignored because of the server id).
mysql-test/r/rpl_dual_pos_advance.result:
New BitKeeper file ``mysql-test/r/rpl_dual_pos_advance.result''
mysql-test/t/rpl_dual_pos_advance.test:
Test for BUG#13023 (with a part, disabled, to test BUG#13861 when I fix it).
Before the fix, this test used to hang.
Bug #10308: Parse 'purge master logs' with subselect correctly.
subselect.test:
Bug #10308: Test for 'purge master logs' with subselect.
subselect.result:
Bug #10308: Test result for 'purge master logs' with subselect.
mysql-test/r/subselect.result:
Bug #10308: Test result for 'purge master logs' with subselect.
mysql-test/t/subselect.test:
Bug #10308: Test for 'purge master logs' with subselect.
sql/sql_yacc.yy:
Bug #10308: Parse 'purge master logs' with subselect correctly.
signal handlers are set up, the blocking flags for sockets are set,
and which thread-related functions are used. (Bug #8731)
configure.in:
Fix flags for Darwin 6 and later. Simplify Darwin 7-9 blocks to simply
be a catch-all for *darwin* so that future Darwin releases get the
latest flags.
include/config-win.h:
Define my_sigset() instead of sigset().
include/my_pthread.h:
Define my_sigset() instead of trying to monkey with sigset(), and favor
an implementation based on sigaction().
mysys/my_pthread.c:
Remove pthread_signal(), which is identical to the new my_sigset() macro.
mysys/thr_alarm.c:
Use my_sigset() instead of sigset().
sql/mysqld.cc:
Use my_sigset() instead of signal() and sigset(), remove unnecessary
definition of sigset on __amiga__. Remove unused THREAD_SPECIFIC_SIGPIPE
code.
A future improvement would be to re-assess the use of sigaction() here
and convert its usage to use my_sigset().
vio/vio.c:
Always call fcntl() to initialize flags of socket in initialization to
avoid problems on systems that don't report the flags on a socket
correctly right after it has been returned from accept(), such as
FreeBSD, Mac OS X, and possibly other BSD-derived systems.
vio/viosocket.c:
If fcntl() fails in vio_blocking(), restore the flags stored in the
vio struct.
mysql-test/r/wait_timeout.result:
New BitKeeper file ``mysql-test/r/wait_timeout.result''
mysql-test/t/wait_timeout-master.opt:
New BitKeeper file ``mysql-test/t/wait_timeout-master.opt''
mysql-test/t/wait_timeout.test:
New BitKeeper file ``mysql-test/t/wait_timeout.test''
The fix is needed to perform locking on shared data structures
This is modification of patch proposed by Leandro Santi
(see http://webs.sinectis.com.ar/lesanti/misc/mysql-4.0.23a-openssl_locking.patch)
sql/mysqld.cc:
Fix for bug#9270 multiple SSL race conditions (for 5.0 tree)
The fix is needed to perform locking on shared data structures
mysql-test/r/variables.result:
Add new results
mysql-test/t/variables.test:
Add new regression test
sql/mysqld.cc:
Fix minimum value of query_prealloc_size to be the same as its default.
mysql-test/r/rpl_multi_update3.result:
New test case
mysql-test/t/rpl_multi_update3.test:
New test case
sql/sql_parse.cc:
Removed fake locking
Changed so that filtering is done later for multi-update
Removed redundant code
sql/sql_update.cc:
Moved call to sql_parse.cc
When fixing Item_func_plus in ORDER BY clause field c is searched in all
opened tables, but because c is an alias it wasn't found there.
This patch adds a flag to select_lex which allows Item_field::fix_fields()
to look up in select's item_list to find aliased fields.
sql/item.cc:
Fix bug#7672 Unknown column error in order clause
When fixing fields in ORDER BY clause allow Item_field::fix_fields() to look up items in select's item list to find aliased fields.
sql/sql_lex.cc:
Fix bug#7672 Unknown column error in order clause
sql/sql_lex.h:
Fix bug#7672 Unknown column error in order clause
Added flag to select_lex allowing Item_field::fix_fields to look up items in select's item list.
sql/sql_select.cc:
Fix bug#7672 Unknown column error in order clause
mysql-test/t/select.test:
Test case for bug#7672 Unknown column error in order clause
mysql-test/r/select.result:
Test case for bug#7672 Unknown column error in order clause
Adding test case.
item_func.cc:
Bug#13751 find_in_set: Illegal mix of collations.
Character set conversion was forgotten in find_in_set.
sql/item_func.cc:
Bug#13751 find_in_set: Illegal mix of collations.
Character set conversion was forgotten in find_in_set.
mysql-test/t/ctype_utf8.test:
Adding test case.
mysql-test/r/ctype_utf8.result:
Adding test case.
- Use %lx instead of %p as %p is not portable
- Don't replace ROW item with Item_null
myisam/mi_rkey.c:
Use %lx instead of %p as %p is not portable
myisam/mi_search.c:
Use %lx instead of %p as %p is not portable
mysql-test/r/select.result:
More test for ROW comparison
mysql-test/t/select.test:
More test for ROW comparison
sql/item.cc:
We can't replace a ROW item with Item_null because:
- Arg_comparator is still using the orignal row items and it's not good to have args[0] different from what is actually compared
- If we are using the <=> comparator, NULL can still be compared as true
- We would break things if we would ever use resolve_const_item() for operators like >, < etc.
mysql-test/r/func_crypt.result:
Add new results
mysql-test/t/func_crypt.test:
Add new regression test
sql/item_strfunc.cc:
Handle NULL result from call to crypt().
After SHOW TABLE STATUS last_insert_id wasn't cleaned, and next select
erroneously rewrites WHERE condition and returs a row;
5.0 isn't affected because of different SHOW TABLE STATUS handling.
last_insert_id cleanup added to mysqld_extend_show_tables().
sql/sql_show.cc:
Fix bug #13535 Incorrect result from SELECT statement after SHOW TABLE STATUS
Added last_insert_id cleanup after SHOW TABLE STATUS command.
mysql-test/t/select.test:
Test case for bug #13535 Incorrect result from SELECT statement after SHOW TABLE STATUS
mysql-test/r/select.result:
Test case for bug #13535 Incorrect result from SELECT statement after SHOW TABLE STATUS
in SHOW CREATE TABLE if a temporary file cannot be created.
(Bug #13002)
sql/ha_innodb.cc:
ha_innobase::get_foreign_key_create_info(): Display an error
message to the user if a temporary file cannot be created.
New VC7 project files
des_key_file.cc:
Visual C++ wants '"' for local include
mysql.cc:
Cast my_cgets() argument for VC6 and VC7
dummy.cpp:
Added to convince VS .Net generate a lib for mysqlserver
VC++Files/mysqlserver/dummy.cpp:
Added to convince VS .Net generate a lib for mysqlserver
VC++Files/bdb/bdb.vcproj:
New VC7 project files
VC++Files/client/mysql.vcproj:
New VC7 project files
VC++Files/client/mysqladmin.vcproj:
New VC7 project files
VC++Files/client/mysqlclient.vcproj:
New VC7 project files
VC++Files/client/mysqldump.vcproj:
New VC7 project files
VC++Files/client/mysqlimport.vcproj:
New VC7 project files
VC++Files/client/mysqlshow.vcproj:
New VC7 project files
VC++Files/client/mysqltest.vcproj:
New VC7 project files
VC++Files/comp_err/comp_err.vcproj:
New VC7 project files
VC++Files/dbug/dbug.vcproj:
New VC7 project files
VC++Files/heap/heap.vcproj:
New VC7 project files
VC++Files/innobase/innobase.vcproj:
New VC7 project files
VC++Files/libmysql/libmysql.vcproj:
New VC7 project files
VC++Files/libmysqld/examples/test_libmysqld.vcproj:
New VC7 project files
VC++Files/libmysqld/libmysqld.vcproj:
New VC7 project files
VC++Files/libmysqltest/myTest.vcproj:
New VC7 project files
VC++Files/my_print_defaults/my_print_defaults.vcproj:
New VC7 project files
VC++Files/myisam/myisam.vcproj:
New VC7 project files
VC++Files/myisam_ftdump/myisam_ftdump.vcproj:
New VC7 project files
VC++Files/myisamchk/myisamchk.vcproj:
New VC7 project files
VC++Files/myisamlog/myisamlog.vcproj:
New VC7 project files
VC++Files/myisammrg/myisammrg.vcproj:
New VC7 project files
VC++Files/myisampack/myisampack.vcproj:
New VC7 project files
VC++Files/mysql-test/mysql_test_run_new.vcproj:
New VC7 project files
VC++Files/mysql.sln:
New VC7 project files
VC++Files/mysqlbinlog/mysqlbinlog.vcproj:
New VC7 project files
VC++Files/mysqlcheck/mysqlcheck.vcproj:
New VC7 project files
VC++Files/mysqldemb/mysqldemb.vcproj:
New VC7 project files
VC++Files/mysqlserver/mysqlserver.vcproj:
New VC7 project files
VC++Files/mysys/mysys.vcproj:
New VC7 project files
VC++Files/perror/perror.vcproj:
New VC7 project files
VC++Files/regex/regex.vcproj:
New VC7 project files
VC++Files/replace/replace.vcproj:
New VC7 project files
VC++Files/sql/mysqld.vcproj:
New VC7 project files
VC++Files/strings/strings.vcproj:
New VC7 project files
VC++Files/test1/test1.vcproj:
New VC7 project files
VC++Files/tests/mysql_client_test.vcproj:
New VC7 project files
VC++Files/thr_test/thr_test.vcproj:
New VC7 project files
VC++Files/vio/vio.vcproj:
New VC7 project files
VC++Files/zlib/zlib.vcproj:
New VC7 project files
client/mysql.cc:
Cast my_cgets() argument for VC6 and VC7
sql/des_key_file.cc:
Visual C++ wants '"' for local include
scripts/make_win_src_distribution.sh:
New VC7 project files
optimization: now can use index to find records to update/delete
when there is no WHERE clause.
mysql-test/r/update.result:
Testcase for BUG#12915
mysql-test/t/update.test:
Testcase for BUG#12915
sql/mysql_priv.h:
BUG#12915: Added init_read_record_idx function.
sql/opt_range.cc:
BUG#12915: Added get_index_for_order() - find an index that can be
used to get first N table records in given ordering cheaper then
one would with full table scan.
sql/opt_range.h:
BUG#12915: Added get_index_for_order() function
sql/records.cc:
BUG#12915: Added init_read_record_idx(), rr_index() that allow to scan
index using init_read_record()/read_record.read_record()
sql/sql_delete.cc:
BUG#12915: Added single-table DELETE ... ORDER BY ... LIMIT optimization:
now can use index to find records to delete when there is no WHERE clause.
sql/sql_update.cc:
BUG#12915: Added single-table UPDATE ... ORDER BY ... LIMIT optimization:
now can use index to find records to update when there is no WHERE clause.
sql/structs.h:
BUG#12915: Added init_read_record_idx(), rr_index() that allow to scan
index using init_read_record()/READ_RECORD::read_record()
sql/ha_innodb.cc:
innobase_convert_and_store_changed_col(), calc_row_difference():
Replace parameter "is_unsigned" with "prtype".
innobase_convert_and_store_changed_col():
When trimming spaces, note that UCS2 spaces are 0x0020, not 0x20.
"CHARACTER SET", "COLLATE", and "DEFAULT" are always
printed(excepting MODE_MYSQL323 and MODE_MYSQL40)
"AUTO_INCREMENT", "ON UPDATE CURRENT_TIMESTAMP" are printed only
if NO_FIELD_OPTIONS is not set.
mysql-test/r/sql_mode.result:
Fix for bug #7977 in sql_mode=ANSI, show create table ignores auto_increment
test case
mysql-test/t/sql_mode.test:
Fix for bug #7977 in sql_mode=ANSI, show create table ignores auto_increment
test case
Prefix regex functions/types with "my_" as our
library is not compatible with normal regex lib.
my_regex.h:
Rename: regex/regex.h -> regex/my_regex.h
client/mysqltest.c:
Prefix regex functions/types with "my_" as our
library is not compatible with normal regex lib.
os2/MySQL-Source.icc:
Prefix regex functions/types with "my_" as our
library is not compatible with normal regex lib.
regex/Makefile.am:
Prefix regex functions/types with "my_" as our
library is not compatible with normal regex lib.
regex/debug.c:
Prefix regex functions/types with "my_" as our
library is not compatible with normal regex lib.
regex/debug.ih:
Prefix regex functions/types with "my_" as our
library is not compatible with normal regex lib.
regex/engine.c:
Prefix regex functions/types with "my_" as our
library is not compatible with normal regex lib.
regex/engine.ih:
Prefix regex functions/types with "my_" as our
library is not compatible with normal regex lib.
regex/main.c:
Prefix regex functions/types with "my_" as our
library is not compatible with normal regex lib.
regex/main.ih:
Prefix regex functions/types with "my_" as our
library is not compatible with normal regex lib.
regex/regcomp.c:
Prefix regex functions/types with "my_" as our
library is not compatible with normal regex lib.
regex/regerror.c:
Prefix regex functions/types with "my_" as our
library is not compatible with normal regex lib.
regex/regerror.ih:
Prefix regex functions/types with "my_" as our
library is not compatible with normal regex lib.
regex/my_regex.h:
Prefix regex functions/types with "my_" as our
library is not compatible with normal regex lib.
regex/regexec.c:
Prefix regex functions/types with "my_" as our
library is not compatible with normal regex lib.
regex/regfree.c:
Prefix regex functions/types with "my_" as our
library is not compatible with normal regex lib.
regex/reginit.c:
Prefix regex functions/types with "my_" as our
library is not compatible with normal regex lib.
sql/item_cmpfunc.cc:
Prefix regex functions/types with "my_" as our
library is not compatible with normal regex lib.
sql/item_cmpfunc.h:
Prefix regex functions/types with "my_" as our
library is not compatible with normal regex lib.
sql/mysqld.cc:
Prefix regex functions/types with "my_" as our
library is not compatible with normal regex lib.
consistent read (Bug #12669).
mysql-test/r/innodb.result:
Added test results for a checksum test.
mysql-test/t/innodb.test:
Added test case for a checksum bug #12669.
sql/ha_innodb.cc:
Use consistent read for checksum table and convert MySQL lock type
to the TL_READ because at the moment MySQL uses TL_READ_NO_INSERT.