1
0
mirror of https://github.com/MariaDB/server.git synced 2025-11-15 09:02:33 +03:00
Commit Graph

14271 Commits

Author SHA1 Message Date
guilhem@gbichot3.local
57ced262da Merge gbichot3.local:/home/mysql_src/mysql-5.1-new-WL3146-handler
into  gbichot3.local:/home/mysql_src/mysql-5.1
2006-07-09 18:47:08 +02:00
guilhem@gbichot3.local
87fb4fb4a8 Manual merge of test from 5.0 (needs to be manual because the test files
were copied/split between 5.0 and 5.1).
2006-07-09 18:45:16 +02:00
guilhem@gbichot3.local
1a506b34da Merge gbichot3.local:/home/mysql_src/mysql-5.0
into  gbichot3.local:/home/mysql_src/mysql-5.1
2006-07-09 18:13:57 +02:00
guilhem@gbichot3.local
0594e1b84b WL#3146 "less locking in auto_increment":
this is a cleanup patch for our current auto_increment handling:
new names for auto_increment variables in THD, new methods to manipulate them
(see sql_class.h), some move into handler::, causing less backup/restore
work when executing substatements. 
This makes the logic hopefully clearer, less work is is needed in
mysql_insert().
By cleaning up, using different variables for different purposes (instead
of one for 3 things...), we fix those bugs, which someone may want to fix
in 5.0 too:
BUG#20339 "stored procedure using LAST_INSERT_ID() does not replicate
statement-based"
BUG#20341 "stored function inserting into one auto_increment puts bad
data in slave"
BUG#19243 "wrong LAST_INSERT_ID() after ON DUPLICATE KEY UPDATE"
(now if a row is updated, LAST_INSERT_ID() will return its id)
and re-fixes:
BUG#6880 "LAST_INSERT_ID() value changes during multi-row INSERT"
(already fixed differently by Ramil in 4.1)
Test of documented behaviour of mysql_insert_id() (there was no test).
The behaviour changes introduced are:
- LAST_INSERT_ID() now returns "the first autogenerated auto_increment value
successfully inserted", instead of "the first autogenerated auto_increment
value if any row was successfully inserted", see auto_increment.test.
Same for mysql_insert_id(), see mysql_client_test.c.
- LAST_INSERT_ID() returns the id of the updated row if ON DUPLICATE KEY
UPDATE, see auto_increment.test. Same for mysql_insert_id(), see
mysql_client_test.c.
- LAST_INSERT_ID() does not change if no autogenerated value was successfully 
inserted (it used to then be 0), see auto_increment.test.
- if in INSERT SELECT no autogenerated value was successfully inserted,
mysql_insert_id() now returns the id of the last inserted row (it already
did this for INSERT VALUES), see mysql_client_test.c.
- if INSERT SELECT uses LAST_INSERT_ID(X), mysql_insert_id() now returns X
(it already did this for INSERT VALUES), see mysql_client_test.c.
- NDB now behaves like other engines wrt SET INSERT_ID: with INSERT IGNORE,
the id passed in SET INSERT_ID is re-used until a row succeeds; SET INSERT_ID
influences not only the first row now.

Additionally, when unlocking a table we check that the thread is not keeping
a next_insert_id (as the table is unlocked that id is potentially out-of-date);
forgetting about this next_insert_id is done in a new
handler::ha_release_auto_increment().

Finally we prepare for engines capable of reserving finite-length intervals
of auto_increment values: we store such intervals in THD. The next step
(to be done by the replication team in 5.1) is to read those intervals from
THD and actually store them in the statement-based binary log. NDB
will be a good engine to test that.
2006-07-09 17:52:19 +02:00
guilhem@gbichot3.local
fdb0f85a0c * Mixed replication mode * :
1) Fix for BUG#19630 "stored function inserting into two auto_increment breaks
statement-based binlog":
a stored function inserting into two such tables may fail to replicate
(inserting wrong data in the slave's copy of the second table) if the slave's
second table had an internal auto_increment counter different from master's.
Because the auto_increment value autogenerated by master for the 2nd table
does not go into binlog, only the first does, so the slave lacks information.
To fix this, if running in mixed binlogging mode, if the stored function or
trigger plans to update two different tables both having auto_increment
columns, we switch to row-based for the whole function.
We don't have a simple solution for statement-based binlogging mode, there
the bug remains and will be documented as a known problem.
Re-enabling rpl_switch_stm_row_mixed.
2) Fix for BUG#20630 "Mixed binlogging mode does not work with stored
functions, triggers, views", which was a documented limitation (in mixed
mode, we didn't detect that a stored function's execution needed row-based
binlogging (due to some UUID() call for example); same for
triggers, same for views (a view created from a SELECT UUID(), and doing
INSERT INTO sometable SELECT theview; would not replicate row-based).
This is implemented by, after parsing a routine's body, remembering in sp_head
that this routine needs row-based binlogging. Then when this routine is used,
the caller is marked to require row-based binlogging too.
Same for views: when we parse a view and detect that its SELECT needs
row-based binary logging, we mark the calling LEX as such.
3) Fix for BUG#20499 "mixed mode with temporary table breaks binlog":
a temporary table containing e.g. UUID has its changes not binlogged,
so any query updating a permanent table with data from the temporary table
will run wrongly on slave. Solution: in mixed mode we don't switch back
from row-based to statement-based when there exists temporary tables.
4) Attempt to test mysqlbinlog on a binlog generated by mysqlbinlog;
impossible due to BUG#11312 and BUG#20329, but test is in place for when
they are fixed.
2006-07-09 17:00:47 +02:00
aelkin/elkin@dsl-hkigw8-feb1fb00-100.dhcp.inet.fi
774de06d2b BUG#19188 incorrect temporary table name of DROP query in replication
manual merge of 5.0 patch and fixing an issue with closing temp tables when no binlog or RBR.
Note, that despite temporary_tables is indeed double-linked list in 5.1 (patch for bug #19881) it is still enough to use only 'next' reference, as it was done for 5.0, when the list is sorted and 
destoyed after.
2006-07-09 00:29:33 +03:00
kostja@bodhi.local
f1d949a856 Merge bk-internal.mysql.com:/home/bk/mysql-5.0
into  bodhi.local:/opt/local/work/mysql-5.0-runtime-merge-41
2006-07-08 21:45:02 +04:00
ingo/mydev@chilla.local
d341ca941f Merge chilla.local:/home/mydev/mysql-4.1-bug17877
into  chilla.local:/home/mydev/mysql-4.1-amerge
2006-07-08 19:26:18 +02:00
ingo/mydev@chilla.local
f631765a06 Merge chilla.local:/home/mydev/mysql-5.0--main
into  chilla.local:/home/mydev/mysql-5.0-amerge
2006-07-08 16:50:50 +02:00
ingo/mydev@chilla.local
4cdb1469e0 Merge chilla.local:/home/mydev/mysql-5.1--main
into  chilla.local:/home/mydev/mysql-5.1-amerge
2006-07-08 10:54:54 +02:00
aelkin/elkin@dsl-hkigw8-feb1fb00-100.dhcp.inet.fi
d6a88d0dc0 Merge dsl-hkigw8-feb1fb00-100.dhcp.inet.fi:/usr_rh9/home/elkin.rh9/MySQL/TEAM/BARE/5.1
into  dsl-hkigw8-feb1fb00-100.dhcp.inet.fi:/usr_rh9/home/elkin.rh9/MySQL/TEAM/FIXES/5.1/bug19188_graved_temp
2006-07-08 11:03:40 +03:00
mats@romeo.(none)
5488c269be BUG#20821 (INSERT DELAYED failes to write some rows to binlog):
Fixing typo and potential memory problem.
Reducing number of concurrent mysqlslap threads since tests fail
in pushbuild due to too many threads.
2006-07-08 06:15:24 +02:00
tomas@poseidon.ndb.mysql.com
4f7df01b4f Bug #20843 tests fails randomly with assertion in completeClusterFailed
Bug #20902 Alter table invalid schema version with statement-based binlogging
(latter caused by the above)
2006-07-08 03:26:13 +02:00
kostja@bodhi.local
a2c0cdd75b Merge bodhi.local:/opt/local/work/tmp_merge
into  bodhi.local:/opt/local/work/mysql-5.0-runtime-merge-41
2006-07-08 02:30:07 +04:00
dlenev@jabberwock.site
c15805f741 Merge bk-internal.mysql.com:/home/bk/mysql-5.1-runtime
into  jabberwock.site:/home/dlenev/mysql-5.1-bg18437
2006-07-08 01:33:50 +04:00
cmiller@zippy.(none)
0a21e78ea2 Tweaks for duplicate and missing lines in tests from a huge merge. 2006-07-07 16:56:49 -04:00
kostja@bodhi.local
72c7fea1a2 Add a test case for Bug#18884 "lock table + global read lock = crash"
(the bug itself is not repeatable any more).
2006-07-08 00:26:18 +04:00
kostja@bodhi.local
96f4c10dde Cleanups: ignore more files. 2006-07-08 00:03:43 +04:00
aelkin/elkin@dsl-hkigw8-feb1fb00-100.dhcp.inet.fi
9b46bdbc20 Merge dsl-hkigw8-feb1fb00-100.dhcp.inet.fi:/usr_rh9/home/elkin.rh9/MySQL/TEAM/BARE/5.1
into  dsl-hkigw8-feb1fb00-100.dhcp.inet.fi:/usr_rh9/home/elkin.rh9/MySQL/TEAM/FIXES/5.1/bug19188_graved_temp
2006-07-07 22:25:16 +03:00
knielsen@devsrv-b.mysql.com
aebbf0ce00 Merge bk-internal:/home/bk/mysql-5.1
into  devsrv-b.mysql.com:/data0/knielsen/tmp-5.1
2006-07-07 20:33:46 +02:00
patg@govinda.patg.net
99a2489e94 BUG #19773
Small post-patch fixes
2006-07-07 11:17:50 -07:00
kostja@bodhi.local
7bf73ac3e5 Merge bodhi.local:/opt/local/work/mysql-5.0-root
into  bodhi.local:/opt/local/work/mysql-5.0-runtime
2006-07-07 22:09:43 +04:00
kroki/tomash@mysql.com/moonlight.intranet
a81c1b27e5 Bug#19207: Final parenthesis omitted for CREATE INDEX in Stored Procedure
Wrong criteria was used to distinguish the case when there was no
lookahead performed in the parser.  Bug affected only statements
ending in one-character token without any optional tail, like CREATE
INDEX and CALL.
2006-07-07 21:24:54 +04:00
knielsen@ymer.(none)
438d8cea7a BUG#20902: Test failure in ndb_alter_table3 with statement-based binlogging
Disable test cases ndb_alter_table3, ndb_autodiscover3, ndb_dd_advance,
and ndb_multi in statement-based binlogging mode until bug can be fixed.
2006-07-07 17:20:49 +02:00
cmiller@zippy.(none)
a3b2340357 Merge cleanup, with a change of verbose test status to Off. 2006-07-07 10:47:51 -04:00
bar@mysql.com
ae03358bec Merge mysql.com:/usr/home/bar/mysql-5.0
into  mysql.com:/usr/home/bar/mysql-5.0-kt
2006-07-07 17:32:26 +05:00
bar@myoffice.izhnet.ru
eec0355de2 func_str.result, func_str.test:
Adding test case.
item_strfunc.cc:
  bug#11728 string function LEFT, strange undocumented behaviour
  Fixing LEFT and RIGHT return NULL if the second
  argument is NULL.
2006-07-07 17:06:30 +05:00
dlenev@jabberwock.site
77f640b1a3 Merge bk-internal.mysql.com:/home/bk/mysql-5.1-runtime
into  jabberwock.site:/home/dlenev/mysql-5.1-bg18437
2006-07-07 14:11:35 +04:00
konstantin/kostja@bodhi.netgear
a1f7b448e4 Merge bk-internal.mysql.com:/home/bk/mysql-5.1-runtime
into  bodhi.netgear:/opt/local/work/mysql-5.1-runtime-merge-with-5.0
2006-07-07 13:51:47 +04:00
mats@romeo.(none)
f7d0091dfa Adding sleep to allow mysqlslap to finish it's job on systems under high load. 2006-07-07 09:25:12 +02:00
bar@mysql.com
2303077238 Merge abarkov@bk-internal.mysql.com:/home/bk/mysql-4.1
into  mysql.com:/usr/home/bar/mysql-4.1.b17647
2006-07-07 12:17:00 +05:00
ingo/mydev@chilla.local
49587d4b37 Merge chilla.local:/home/mydev/mysql-5.1--main
into  chilla.local:/home/mydev/mysql-5.1-amerge
2006-07-07 09:14:09 +02:00
patg@govinda.patg.net
9889ba0996 Merge govinda.patg.net:/home/patg/mysql-build/mysql-5.0-merge1
into  govinda.patg.net:/home/patg/mysql-build/mysql-5.1-merge1
2006-07-06 16:07:24 -07:00
knielsen@ymer.(none)
b5f8c6ea96 Merge ymer.(none):/usr/local/mysql/mysql-5.0-bug19951
into  ymer.(none):/usr/local/mysql/tmp-5.1
2006-07-07 00:18:03 +02:00
konstantin@bodhi.netgear
4e23f9756d Merge bk-internal.mysql.com:/home/bk/mysql-5.1
into  bodhi.netgear:/opt/local/work/mysql-5.1-runtime-merge
2006-07-07 02:18:02 +04:00
tomas@poseidon.ndb.mysql.com
5e3861cb95 removed alter table partition error test since it cannot be made predictable... name will change of created file 2006-07-07 00:18:01 +02:00
knielsen@ymer.(none)
31ddb04105 Merge ymer.(none):/usr/local/mysql/mysql-5.0-bug19951
into  ymer.(none):/usr/local/mysql/tmp-5.0
2006-07-06 23:52:05 +02:00
knielsen@ymer.(none)
5ea51287d6 BUG#19951: Race conditions in test wait_timeout.
Fix random failures in test 'wait_timeout' that depend on exact timing.

1. Force a reconnect initially if necessary, as otherwise slow startup
might have caused a connection timeout before the test can even start.

2. Explicitly disconnect the first connection to remove confusion about
which connection aborts from timeout, causing test failure.
2006-07-06 23:49:09 +02:00
igor@olga.mysql.com
f829f210b8 Added a test case with views for bug 18243 (see also func_str.test). 2006-07-06 14:41:01 -07:00
igor@olga.mysql.com
f6d6ac1e0f Merge olga.mysql.com:/home/igor/mysql-4.1-opt
into  olga.mysql.com:/home/igor/mysql-5.0-opt
2006-07-06 13:40:08 -07:00
guilhem@gbichot3.local
6ba4d22ca2 Testcase for BUG#20633 "INSERT DELAYED RAND() or @user_var does not replicate
statement-based" (bugfix was committed today):
we verify that now it works in mixed mode. And a comment.
2006-07-06 22:03:35 +02:00
konstantin@bodhi.netgear
0db71aaf98 Merge bk-internal.mysql.com:/home/bk/mysql-4.1
into  bodhi.netgear:/opt/local/work/mysql-4.1-19399
2006-07-07 00:01:05 +04:00
ingo@chilla.local
b900484346 Merge chilla.local:/home/mydev/mysql-5.0
into  chilla.local:/home/mydev/mysql-5.0-amerge
2006-07-06 21:59:48 +02:00
konstantin@bodhi.netgear
8e735d2c11 A fix and a test case for Bug#19399 "res 'Lost Connection' when
dropping/creating tables".

The bug could lead to a crash when multi-delete statements were
prepared and used with temporary tables.

The bug was caused by lack of clean-up of multi-delete tables before
re-execution of a prepared statement. In a statement like
DELETE t1 FROM t1, t2 WHERE ... the first table list (t1) is
moved to lex->auxilliary_table_list and excluded from lex->query_tables
or select_lex->tables. Thus it was unaccessible to reinit_stmt_before_use
and not cleaned up before re-execution of a prepared statement.
2006-07-06 23:59:04 +04:00
ingo@chilla.local
1a98b89334 Merge chilla.local:/home/mydev/mysql-5.1
into  chilla.local:/home/mydev/mysql-5.1-amerge
2006-07-06 21:45:15 +02:00
tomas@poseidon.ndb.mysql.com
6a6bd5b182 Merge tulin@bk-internal.mysql.com:/home/bk/mysql-5.1
into  poseidon.ndb.mysql.com:/home/tomas/mysql-5.1-ndb
2006-07-06 21:30:55 +02:00
iggy@rolltop.ignatz42.dyndns.org
1fe4159026 Merge rolltop.ignatz42.dyndns.org:/mnt/storeage/mysql-4.1-maint
into  rolltop.ignatz42.dyndns.org:/mnt/storeage/mysql-4.1_bug20328
2006-07-06 15:13:25 -04:00
iggy@rolltop.ignatz42.dyndns.org
646dd6e65c Merge rolltop.ignatz42.dyndns.org:/mnt/storeage/mysql-4.1-maint
into  rolltop.ignatz42.dyndns.org:/mnt/storeage/mysql-4.1_bug16180
2006-07-06 15:00:31 -04:00
konstantin@bodhi.netgear
01bc761690 Merge bodhi.netgear:/opt/local/work/tmp_merge
into  bodhi.netgear:/opt/local/work/mysql-5.1-runtime-merge-with-5.0
2006-07-06 22:55:48 +04:00
konstantin@bodhi.netgear
f22a50a93b Merge bodhi.netgear:/opt/local/work/mysql-5.1-root
into  bodhi.netgear:/opt/local/work/mysql-5.1-runtime-merge
2006-07-06 22:26:47 +04:00