mysql-test/r/ndb_index_ordered.result:
ndb_index_stat_enable default = OFF
remove other ndb_index_stat% from mysqld options (too many)
sql/mysqld.cc:
ndb_index_stat_enable default = OFF
remove other ndb_index_stat% from mysqld options (too many)
into polly.local:/home/kaa/src/maint/m41-maint--07OGk
sql/item_cmpfunc.cc:
Auto merged
sql/item_cmpfunc.h:
Auto merged
sql/item_func.h:
Auto merged
sql/sql_class.h:
Auto merged
Removed changes to the Item_func_between::fix_length_and_dec() made in the fix for bug#16377
query_cache.result:
Corrected a test case after removing a fix for bug#16377
mysql-test/r/query_cache.result:
Corrected a test case after removing a fix for bug#16377
sql/item_cmpfunc.cc:
Removed changes to the Item_func_between::fix_length_and_dec() made in the fix for bug#16377
The cause of the bug was an incomplete fix for bug 18080.
The problem was that setup_tables() unconditionally reset the
name resolution context to its 'tables' argument, which pointed
to the first table of an SQL statement.
The bug fix limits resetting of the name resolution context in
setup_tables() only in the cases when the context was not set
by earlier parser/optimizer phases.
mysql-test/r/insert_select.result:
Test for BUG#21774.
mysql-test/t/insert_select.test:
Test for BUG#21774.
sql/sql_base.cc:
Do not reset the name resolution contect unconditionally.
Instead set the context to 'tables' only if it was not
set before calling setup_tables().
sql/sql_insert.cc:
Added asserts to make sure that in the case of INSERT ... VALUES ...
statements it is not necessary to reset the name resolution context
to the first table, because there is only one table in the list of
tables anyway. The actual code is not removed in order not to
confuse it with the actual bug fix.
sql/sql_parse.cc:
Removed unnecessary reset of the name resolution context.
The context is anyway unconditionally reset in mysql_insert()
and mysql_prepare_insert().
into polly.local:/tmp/20924/bug20294/my51-bug20294
mysql-test/r/case.result:
Auto merged
mysql-test/r/func_if.result:
Auto merged
mysql-test/r/func_test.result:
Auto merged
mysql-test/t/case.test:
Auto merged
sql/item_cmpfunc.cc:
Auto merged
sql/item_cmpfunc.h:
Auto merged
sql/log_event.cc:
Auto merged
sql/sql_class.h:
Auto merged
mysql-test/r/user_var.result:
Manual merge
mysql-test/t/user_var.test:
Manual merge
sql/item_func.cc:
Manual merge
sql/item_func.h:
Manual merge
(as part of the auto_increment cleanup of WL#3146; let's not be
sad, that monster push still removed serious bugs):
one problem with INSERT DELAYED (unexpected interval releases),
one with stored functions (wrong auto_inc binlogging).
These bugs were not released.
mysql-test/extra/binlog_tests/binlog_insert_delayed.test:
more tests of binlogging of INSERT DELAYED: with multi-row INSERTs.
I identified why sleeps are needed to get a repeatable row-based
binlogged: because without sleeps rows sometimes get groupped
and so generate different row based events.
mysql-test/extra/rpl_tests/rpl_foreign_key.test:
don't forget to drop tables on slave too, otherwise it leaves
an orphan innodb table leading to rpl_insert_id failing sometimes
(like in pushbuild "sapsrv2 -max").
mysql-test/extra/rpl_tests/rpl_insert_id.test:
testing that if some statement does not update any row, it does
not pollute the auto_inc binlog variables of the next statement;
the test has to use stored procedures because with plain statements,
mysql_reset_thd_for_next_command() does the resetting (and thus
there is no problem); mysql_reset_thd_for_next_command() is not
called inside routines.
mysql-test/r/binlog_row_binlog.result:
result additions
mysql-test/r/binlog_statement_insert_delayed.result:
result additions
mysql-test/r/binlog_stm_binlog.result:
result additions
mysql-test/r/rpl_insert_id.result:
result additions
mysql-test/r/rpl_loaddata.result:
With the change to log.cc reverted, the result changes and is better:
the change to log.cc had caused some INSERT_ID events to disappear
though they were necessary (but testsuite could not catch that because
it's single-threaded).
mysql-test/r/rpl_ndb_insert_ignore.result:
NDB is now like other engines regarding INSERT IGNORE: autoincrement
values which caused a duplicate key are re-used for next row, not lost.
rpl_ndb_insert_ignore.result is now identical to rpl_insert_ignore.result.
sql/log.cc:
LOAD DATA INFILE is binlogged as several events, and the last of them must
have the auto_inc id. So it's wrong to reset the auto_inc id after every
binlog write (because then it's lost after the first event of LOAD
DATA INFILE and so missing for the last one)/
Another problem: MYSQL_LOG::write() is not always called (for example
if no row was updated), so we were missing reset in some cases.
sql/sp_head.cc:
SELECT func1(),func2() generates two binlog events, so needs to
clear auto_increment binlog variables after each binlog event
(it would be more natural to clear them in the log write code,
but LOAD DATA INFILE would suffer from this see the cset comment
for log.cc). Without the clearing, the problem is:
> exec func1()
>> call cleanup_after_query() (which does not clear our vars here)
>> binlog SELECT func1()
<
> exec func2()
and so SELECT func2() is binlogged with the auto_inc of SELECT func1().
sql/sql_class.cc:
after every statement we should clear auto_inc variables used for
binlogging, except if this was a function/trigger (in which case
it may be "INSERT SELECT func()", where the cleanup_after_query()
executed in func() should not reset the auto_inc binlog variables
as they'll be necessary when binlogging the INSERT SELECT later).
sql/sql_insert.cc:
- as INSERT DELAYED uses the same TABLE object as the delayed_insert
system thread, we should not call ha_release_auto_increment()
from INSERT DELAYED (and btw it's logical as we reserve nothing
as we don't perform the insert). Calling the function caused us to
release values being used by the delayed_insert thread.
So I do the call only if this is a non-DELAYED INSERT.
- Assuming two INSERT DELAYED which get grouped by the delayed_insert
thread, the second may use values reserved by the first, which is ok
per se, but is a problem in statement-based binlogging:
the 2nd INSERT gets binlogged with the "interval start" value
of the first INSERT (=> duplicate error in slave).
- no reason to ha_release_auto_increment() after every inserted row
in INSERT SELECT; more efficient to do it only when the statement ends
sql/sql_parse.cc:
a comment
into april.(none):/home/svoj/devel/mysql/BUG20256/mysql-5.1-engines
sql/ha_myisam.cc:
Auto merged
sql/ha_myisam.h:
Auto merged
sql/handler.cc:
Auto merged
BitKeeper/deleted/.del-index_merge.result:
Auto merged
mysql-test/include/index_merge1.inc:
Manual merge.
sql/handler.h:
Manual merge.
sql/opt_range.cc:
Manual merge.
Only MyISAM tables locked with LOCK TABLES ... WRITE were affected.
A query that is optimized with index_merge doesn't reflect rows
inserted within LOCK TABLES.
MyISAM doesn't flush a state within LOCK TABLES. index_merge
optimization creates a copy of the handler, which thus gets
outdated MyISAM state.
New handler->clone() method is introduced to fix this problem.
For non-MyISAM storage engines it allocates a handler and opens
it with ha_open(). For MyISAM it additionally copies MyISAM state
pointer to cloned handler.
mysql-test/r/index_merge.result:
A test case for bug#20256.
mysql-test/t/index_merge.test:
A test case for bug#20256.
sql/ha_myisam.cc:
clone method added to handler class.
sql/ha_myisam.h:
clone method added to handler class.
sql/handler.cc:
clone method added to handler class.
sql/handler.h:
clone method added to handler class.
sql/opt_range.cc:
Use handler clone method.
- When an ALTER TABLE RENAME is performed on windows, the files are closed and their cached file
descriptors are marked invalid. Performing INSERT, UPDATE or SELECT on the associated merge
table causes a server crash on windows. This patch adds a test for bad file descriptors when a
table attempts a lock. If a bad descriptor is found an error is thrown. An additional FLUSH TABLES
will be necessary to further operate on the associated merge table.
myisam/mi_locking.c:
This patch prevents the windows built to crash if the file is closed.
mysql-test/r/windows.result:
Added test case for the windows built.
mysql-test/t/windows.test:
Added test case for the windows built.
The problem was that if after FLUSH TABLES WITH READ LOCK the user
issued DROP/ALTER PROCEDURE/FUNCTION the operation would fail (as
expected), but after UNLOCK TABLE any attempt to execute the same
operation would lead to the error 1305 "PROCEDURE/FUNCTION does not
exist", and an attempt to execute any stored function will also fail.
This happened because under FLUSH TABLES WITH READ LOCK we couldn't open
and lock mysql.proc table for update, and this fact was erroneously
remembered by setting mysql_proc_table_exists to false, so subsequent
statements believed that mysql.proc doesn't exist, and thus that there
are no functions and procedures in the database.
As a solution, we remove mysql_proc_table_exists flag completely. The
reason is that this optimization didn't work most of the time anyway.
Even if open of mysql.proc failed for some reason when we were trying to
call a function or a procedure, we were setting mysql_proc_table_exists
back to true to force table reopen for the sake of producing the same
error message (the open can fail for number of reasons). The solution
could have been to remember the reason why open failed, but that's a lot
of code for optimization of a rare case. Hence we simply remove this
optimization.
mysql-test/r/sp.result:
Add result for bug#21414: SP: Procedure undroppable, to some extent.
mysql-test/t/sp.test:
Remove no longer relevant comment.
Add test case for bug#21414: SP: Procedure undroppable, to some extent.
sql/mysql_priv.h:
Remove declaration of mysql_proc_table_exists.
sql/sp.cc:
Remove references to mysql_proc_table_exists.
sql/sql_acl.cc:
Remove reference to mysql_proc_table_exists.
into chilla.local:/home/mydev/mysql-4.1-bug14400
mysql-test/r/myisam.result:
Auto merged
mysql-test/t/myisam.test:
Auto merged
myisam/mi_rkey.c:
Bug#14400 - Query joins wrong rows from table which is subject of
"concurrent insert"
Manual merge
More specifically, the scripts/Makefile isn't created and it doesn't
translate mysql_fix_privilege_tables ".sh" . So,
mysql-test/mysql-test-run.pl doesn't find the binary and substitutes
/bin/false instead. That obviously doesn't "fix" anything and the
test fails because of it.
mysql-test/t/system_mysql_db_fix.test:
Change stolen from the -win tree.
A communication packet can also be a binlog event sent from the master to the slave.
To be sent by master dump and accepted by slave io thread both have to have
the value of max_allowed_packet bigger than one that client connection had.
In the patch there is the MAX possible replicatio header size estimation for events
in binlog that embedded user query. Only these events of query_log_event type, i.e
just plain queries, require attention.
sql/log_event.h:
MAX value of the header of the replication packet, i.e the value of exceeding
the query string part.
sql/slave.cc:
Private value of max allowed packet slave io, sql threads can accept from master.
The value is increased by the MAX possible size of replication event header.
Note, that my_net_init is redundant for slave io because the thread uses instance of
NET struct, embedded into MYSQL, as a client to server. We have left old code and even
increment, redundantly as well, thd->net.max_packet_size just for the sake of
consistency. TODO: eliminate my_net_init from execution path of slave io.
sql/sql_repl.cc:
Increasing the private max allowed packet that the dump thread reads from master
binlog and sends to net. Note, that happened prior this writting to binlog is
safe from the current artifact because it is done by steps that each chunk can not
exceed @@global.max_allowed_packet.
mysql-test/r/rpl_packet.result:
BitKeeper file /home/elkin/MySQL/TEAM/FIXES/4.1/bug19402-max_allowed/mysql-test/r/rpl_packet.result
mysql-test/t/rpl_packet-master.opt:
BitKeeper file /net/koti/usr_rh9/home/elkin.rh9/MySQL/TEAM/FIXES/4.1/bug19402-max_allowed/mysql-test/t/rpl_packet-master.opt
mysql-test/t/rpl_packet-slave.opt:
BitKeeper file /net/koti/usr_rh9/home/elkin.rh9/MySQL/TEAM/FIXES/4.1/bug19402-max_allowed/mysql-test/t/rpl_packet-slave.opt
mysql-test/t/rpl_packet.test:
test examines repliation of a max-sized query when database name is set to have
NAME_LEN bytes. This makes replication header size the maximum.
into mysql.com:/users/lthalmann/bk/MERGE/mysql-5.1-merge
BitKeeper/deleted/.del-rpl_heap.test:
Auto merged
Makefile.am:
Auto merged
mysql-test/extra/binlog_tests/binlog.test:
Auto merged
mysql-test/r/binlog_stm_binlog.result:
Auto merged
mysql-test/r/rpl_switch_stm_row_mixed.result:
Auto merged
mysql-test/t/date_formats.test:
Auto merged
mysql-test/t/mysqlbinlog.test:
Auto merged
mysql-test/t/rpl_trigger.test:
Auto merged
sql/CMakeLists.txt:
Auto merged
sql/Makefile.am:
Auto merged
sql/field.cc:
Auto merged
sql/field.h:
Auto merged
sql/log.cc:
Auto merged
sql/mysql_priv.h:
Auto merged
sql/mysqld.cc:
Auto merged
sql/sql_class.cc:
Auto merged
sql/sql_insert.cc:
Auto merged
storage/innobase/handler/ha_innodb.cc:
Auto merged
unittest/README.txt:
Auto merged
unittest/unit.pl:
Auto merged
mysql-test/t/disabled.def:
Merge (main -> rpl 5.1)
0xFF is internal separator for SET|ENUM names.
If this symbol is present in SET|ENUM names then we replace it with
','(deprecated symbol for SET|ENUM names) during frm creation
and restore to 0xFF during frm opening
mysql-test/r/type_enum.result:
Bug#20922 mysql removes a name of first column in a table
test case
mysql-test/t/type_enum.test:
Bug#20922 mysql removes a name of first column in a table
test case
sql/table.cc:
Bug#20922 mysql removes a name of first column in a table
Replace all ',' symbols with NAMES_SEP_CHAR in interval names.
sql/unireg.cc:
Bug#20922 mysql removes a name of first column in a table
if NAMES_SEP_CHAR symbols are present in interval name
then replace all NAMES_SEP_CHAR symbols with ','
storage/ndb/src/kernel/blocks/dbtup/DbtupExecQuery.cpp:
allocate separate copy tuple for delete after insert or update in same tx, instead of sharing pointer to same copy tuple. this is an easy fix independent of commit/abort order of operations
mysql-test/r/ndb_dd_basic.result:
test INS-DEL via assert in disk data code
mysql-test/t/ndb_dd_basic.test:
test INS-DEL via assert in disk data code
wrong results
Mark the containing Item(s) (Item_subselect descendant usually) of
a subselect as containing aggregate functions if it has references
to aggregates functions that are calculated outside its context.
This tels end_send_group() not to make an Item_subselect descendant in
select list a copy and causes the correct value being returned.
mysql-test/r/func_group.result:
Bug #21540: Subqueries with no from and aggregate functions return
wrong results
- test cases
mysql-test/r/subselect.result:
Bug #21540: Subqueries with no from and aggregate functions return
wrong results
- fixed the result of an existing testcase.
mysql-test/t/subselect.test:
Bug #21540: Subqueries with no from and aggregate functions return
wrong results
- test cases
sql/item_sum.cc:
Bug #21540: Subqueries with no from and aggregate functions return
wrong results
Mark the containing Item (Item_subselect descendant usually) of
a subselect as containing aggregate functions if it has references
to aggregates functions that are calculated outside its context.
This tels end_send_group() not to make an Item_subselect descendant in
select list a copy and causes the correct value being returned.
into shellback.(none):/home/msvensson/mysql/mysql-5.1-new-maint
sql/ha_innodb.cc:
Auto merged
sql/handler.cc:
Auto merged
sql/log.cc:
Auto merged
sql/mysqld.cc:
Auto merged
sql/sql_show.cc:
Auto merged
storage/csv/ha_tina.cc:
Auto merged
mysql-test/mysql-test-run.pl:
Merge
to start instance manager.
The problem was that if IM failed to start, test suite aborts.
The fix is to mark current test as failed, and continue running
test suite.
The fix affects only test suite.
mysql-test/mysql-test-run.pl:
Report IM-test as failed if IM failed to start.
The patch affects only test suite and has the following changes:
1. On starting Instance Manager -- added code for waiting for guarded
mysqld instances to create PID files;
2. Polishing;
3. Move IM-related operations out of mtr_process.pl into new dedicated
for IM file -- mtr_im.pl
mysql-test/mysql-test-run.pl:
1. Require new file with IM-related operations;
2. Added timeout to wait for PID files of guarded instances;
3. Polishing.
mysql-test/lib/mtr_process.pl:
Move IM-related operations to new file.
mysql-test/lib/mtr_im.pl:
File for IM-related operations.
Upgrade was a reserved word. Unreserve UPGRADE so it can be used in unquoted identifiers.
mysql-test/r/create.result:
Bug #21772: can not name a column 'upgrade' when create a table in version 5.0.24
- test case
mysql-test/t/create.test:
Bug #21772: can not name a column 'upgrade' when create a table in version 5.0.24
- test case
sql/sql_yacc.yy:
Bug #21772: can not name a column 'upgrade' when create a table in version 5.0.24
- unreserve UPGRADE.