1
0
mirror of https://github.com/MariaDB/server.git synced 2025-10-16 22:27:52 +03:00
Commit Graph

16816 Commits

Author SHA1 Message Date
gbichot@dl145h.mysql.com
ba2452f092 Fix for BUG#25628: "mysqlbinlog crashes while processing binary logs".
mysqlbinlog prints all row-based events of a single statement as a
single "BINLOG" statement containing the concatenation of those events.
Big (i.e. >64k) concatenations of row-based events
(e.g. Write_rows_log_event) caused mysqlbinlog's IO_CACHE to overflow
to a temporary file but the IO_CACHE had not been inited with
open_cached_file(), so it tried to create a temporary file in
an uninitialized directory (thus failing to create, then to write;
some OS errors were printed, and it finally segfaulted).
After fixing this, it appeared that mysqlbinlog was printing only
a piece of big concatenations of row-based events (it printed
at most the size of the IO_CACHE's buffer i.e. 64k); that caused data
loss at restore. We fix and test that.
Last, mysqlbinlog's printouts looked a bit strange with the informative
header (#-prefixed) of groupped Rows_log_event all on one line,
so we insert \n. After that, a small bug in the --hexdump code appeared
(only if the string to hex-print had its length a multiple of 16),
we fix it.
2007-02-23 22:23:54 +01:00
gbichot@dl145h.mysql.com
84f875cf6e Merge dl145h.mysql.com:/users/gbichot/mysql-5.0-rpl
into  dl145h.mysql.com:/users/gbichot/mysql-5.1-rpl
2007-02-23 22:00:45 +01:00
anozdrin/alik@alik.opbmk
50e5958f28 Fix merge & update result file. 2007-02-23 23:36:25 +03:00
anozdrin/alik@alik.opbmk
fe585401ed Merge alik.opbmk:/mnt/raid/alik/MySQL/devel/5.0-rt-build
into  alik.opbmk:/mnt/raid/alik/MySQL/devel/5.1-rt-build
2007-02-23 21:55:14 +03:00
anozdrin/alik@alik.opbmk
90115eac42 Fix mysql-test-run.pl: IM in 5.0 uses old incorrect
'shutdown_delay' option name.
2007-02-23 21:51:33 +03:00
anozdrin/alik@alik.opbmk
a9e8d461e3 Fix result file. 2007-02-23 21:13:21 +03:00
cbell/Chuck@mysql_cab_desk.
9017512bd6 Merge mysql_cab_desk.:C:/source/c++/mysql-5.0-rpl
into  mysql_cab_desk.:C:/source/c++/mysql-5.0_BUG_20141
2007-02-23 13:00:08 -05:00
cbell/Chuck@mysql_cab_desk.
4c6ced9fc5 BUG#20141 "User-defined variables are not replicated properly for SF/
Triggers in SBR mode."
BUG#14914 "SP: Uses of session variables in routines are not always
           replicated"
BUG#25167 "Dupl. usage of user-variables in trigger/function is not
           replicated correctly"

User-defined variables used inside of stored functions/triggers in
statements which did not update tables directly were not replicated.
We also had problems with replication of user-defined variables which
were used in triggers (or stored functions called from table-updating
statements) more than once.

This patch addresses the first issue by enabling logging of all
references to user-defined variables in triggers/stored functions
and not only references from table-updating statements.

The second issue stemmed from the fact that for user-defined
variables used from triggers or stored functions called from
table-updating statements we were writing binlog events for each
reference instead of only one event for the first reference.
This problem is already solved for stored functions called from
non-updating statements with help of "event unioning" mechanism.
So the patch simply extends this mechanism to the case affected.
It also fixes small problem in this mechanism which caused wrong
logging of references to user-variables in cases when non-updating
statement called several stored functions which used the same
variable and some of these function calls were omitted from binlog
as they were not updating any tables.
2007-02-23 12:58:56 -05:00
anozdrin/alik@alik.opbmk
5444269805 Merge alik.opbmk:/mnt/raid/alik/MySQL/devel/5.0-rt-build
into  alik.opbmk:/mnt/raid/alik/MySQL/devel/5.1-rt-build
2007-02-23 20:53:49 +03:00
anozdrin/alik@alik.opbmk
0be4589311 Fix test for views with national characters,
which accidentally got broken during the merge
on 16-Feb-2007.
2007-02-23 20:49:01 +03:00
anozdrin/alik@alik.opbmk
13acde39ba Merge alik.opbmk:/mnt/raid/alik/MySQL/devel/5.0-rt
into  alik.opbmk:/mnt/raid/alik/MySQL/devel/5.1-rt
2007-02-23 20:27:13 +03:00
anozdrin/alik@alik.opbmk
8f5c21172c BUG#24415: im_daemon_life_cycle.imtest fails
Fix timeouts. Only test suite is changed.
2007-02-23 20:24:32 +03:00
msvensson@pilot.blaudden
aa9508fe08 Merge pilot.blaudden:/home/msvensson/mysql/mysql-5.0-maint
into  pilot.blaudden:/home/msvensson/mysql/mysql-5.1-new-maint
2007-02-23 18:10:36 +01:00
msvensson@pilot.blaudden
92c06038c0 Convert "system cp" to portable mysqltest commands 2007-02-23 18:05:32 +01:00
msvensson@pilot.blaudden
9650b6b45e Merge bk-internal:/home/bk/mysql-5.0-maint
into  pilot.blaudden:/home/msvensson/mysql/mysql-5.0-maint
2007-02-23 17:36:50 +01:00
gbichot@dl145h.mysql.com
44c6c4cc05 the fix for BUG#24432
"INSERT... ON DUPLICATE KEY UPDATE skips auto_increment values"
didn't make it into 5.0.36 and 5.1.16,
so we need to adjust the bug-detection-based-on-version-number code.
Because the rpl tree has a too old version, rpl_insert_id cannot pass,
so I disable it (like is already the case in 5.1-rpl for the same reason),
and the repl team will re-enable it when they merge 5.0 and 5.1 into
their trees (thus getting the right version number).
2007-02-23 15:32:51 +01:00
monty@mysql.com/narttu.mysql.fi
f0ae3ce9b9 Fixed compiler warnings
Fixed compile-pentium64 scripts
Fixed wrong estimate of update_with_key_prefix in sql-bench
Merge bk-internal.mysql.com:/home/bk/mysql-5.1 into mysql.com:/home/my/mysql-5.1
Fixed unsafe define of uint4korr()
Fixed that --extern works with mysql-test-run.pl
Small trivial cleanups
This also fixes a bug in counting number of rows that are updated when we have many simultanous queries
Move all connection handling and command exectuion main loop from sql_parse.cc to sql_connection.cc
Split handle_one_connection() into reusable sub functions.
Split create_new_thread() into reusable sub functions.
Added thread_scheduler; Preliminary interface code for future thread_handling code.

Use 'my_thread_id' for internal thread id's
Make thr_alarm_kill() to depend on thread_id instead of thread
Make thr_abort_locks_for_thread() depend on thread_id instead of thread
In store_globals(), set my_thread_var->id to be thd->thread_id.
Use my_thread_var->id as basis for my_thread_name()
The above changes makes the connection we have between THD and threads more soft.

Added a lot of DBUG_PRINT() and DBUG_ASSERT() functions
Fixed compiler warnings
Fixed core dumps when running with --debug
Removed setting of signal masks (was never used)
Made event code call pthread_exit() (portability fix)
Fixed that event code doesn't call DBUG_xxx functions before my_thread_init() is called.
Made handling of thread_id and thd->variables.pseudo_thread_id uniform.
Removed one common 'not freed memory' warning from mysqltest
Fixed a couple of usage of not initialized warnings (unlikely cases)
Suppress compiler warnings from bdb and (for the moment) warnings from ndb
2007-02-23 13:13:55 +02:00
msvensson@pilot.blaudden
ba3c96f507 Bug#25197 repeat function returns null when using table field directly as count
- Return empty string also if count is unsigned and value is 0
2007-02-23 10:28:50 +01:00
anozdrin/alik@alik.opbmk
8a7f5ce30d Merge alik.opbmk:/mnt/raid/alik/MySQL/devel/5.0-rt
into  alik.opbmk:/mnt/raid/alik/MySQL/devel/5.1-rt-merge
2007-02-22 21:59:43 +03:00
monty@mysql.com/narttu.mysql.fi
8f4fef291d Merge bk-internal.mysql.com:/home/bk/mysql-5.0
into  mysql.com:/home/my/mysql-5.0
2007-02-22 20:32:19 +02:00
kaa@polly.local
bedde99dbd Disable mysqlbinlog-cp932.test for row based binlog, since mysqlbinlog is also disabled. 2007-02-22 21:05:45 +03:00
mhansson@dl145s.mysql.com
bcf1596d8b Merge mhansson@bk-internal.mysql.com:/home/bk/mysql-5.0-opt
into  dl145s.mysql.com:/users/mhansson/mysql/autopush/5.0o-bug24010
2007-02-22 14:29:00 +01:00
mhansson/martin@linux-st28.site
340ab21795 Bug #24010: INSERT INTO ... SELECT fails on unique constraint with data
it doesn't select.

This bug was fixed along with bug #16861: User defined variable can 
have a wrong value if a tmp table was used.

There the fix consisted of Item_func_set_user_var overloading the method
Item::save_in_field. Consider the query from the test case:


INSERT INTO foo( bar, baz )
SELECT 
  bar,
  @newBaz := 1 + baz
FROM 
  foo
WHERE 
  quux <= 0.1;

Here the assignment expression '@newBaz := 1 + baz' is represented by an 
Item_func_set_user_var. Its member method save_in_field, which writes the 
value of this assignment into the result field, writes the val_xxx() value, 
which is not updated at this point. In the fix introduced by the patch,
the save_in_field method reads the actual variable value instead.

See also comment for 
ChangeSet@1.2368.1.3, 2007-01-09 23:24:56+03:00, evgen@moonbone.local +4 -0
and comment for
Item_func_set_user_var::save_in_field (item_func.cc)
2007-02-22 14:11:01 +01:00
kaa@polly.local
1d192c3488 Fixed the binlog_row_ctype_cp932 test failure in PB introduced by the patch for bug #18743. 2007-02-22 15:41:39 +03:00
kaa@polly.local
6d95e5dbea Merge polly.local:/home/kaa/src/maint/mysql-5.0-maint
into  polly.local:/home/kaa/src/maint/mysql-5.1-maint
2007-02-22 15:30:17 +03:00
kaa@polly.local
8aca9d9719 Force the server restart before running mysqlbinlog-cp932.test to fix PB failures introduced by the patch for bug #18743. 2007-02-22 15:28:42 +03:00
evgen@moonbone.local
76461a4442 Merge moonbone.local:/mnt/gentoo64/work/bk-trees/mysql-5.0-opt
into  moonbone.local:/mnt/gentoo64/work/23800-bug1-5.0-opt-mysql
2007-02-21 23:18:17 +03:00
evgen@moonbone.local
9a233742b8 Bug#23800: Outer fields in correlated subqueries is used in a temporary table
created for sorting.

Any outer reference in a subquery was represented by an Item_field object.
If the outer select employs a temporary table all such fields should be
replaced with fields from that temporary table in order to point to the 
actual data. This replacement wasn't done and that resulted in a wrong
subquery evaluation and a wrong result of the whole query.

Now any outer field is represented by two objects - Item_field placed in the
outer select and Item_outer_ref in the subquery. Item_field object is
processed as a normal field and the reference to it is saved in the
ref_pointer_array. Thus the Item_outer_ref is always references the correct
field. The original field is substituted for a reference in the
Item_field::fix_outer_field() function.

New function called fix_inner_refs() is added to fix fields referenced from
inner selects and to fix references (Item_ref objects) to these fields.

The new Item_outer_ref class is a descendant of the Item_direct_ref class.
It additionally stores a reference to the original field and designed to
behave more like a field.
2007-02-21 23:00:32 +03:00
monty@mysql.com/narttu.mysql.fi
6946fa682f After merge fixes
This also fixes a bug in counting number of rows that are updated when we have many simultanous queries
2007-02-21 19:38:40 +02:00
kaa@polly.local
f187430da2 Merge bk-internal.mysql.com:/home/bk/mysql-5.1-maint
into  polly.local:/home/kaa/src/maint/mysql-5.1-maint
2007-02-21 19:56:19 +03:00
kaa@polly.local
05750812d6 Moved the test requiring cp932 to a separate unit.
This is for bug #18743.
2007-02-21 19:50:48 +03:00
tomas@poseidon.mysql.com
9cae1fd7ee Merge tulin@bk-internal.mysql.com:/home/bk/mysql-5.0
into  poseidon.mysql.com:/home/tomas/mysql-5.0
2007-02-21 21:50:43 +07:00
monty@mysql.com/narttu.mysql.fi
26aa385bc5 Merge bk-internal.mysql.com:/home/bk/mysql-5.0
into  mysql.com:/home/my/mysql-5.0
2007-02-21 14:07:08 +02:00
monty@mysql.com/narttu.mysql.fi
222e128b34 Fixed unsafe define of uint4korr()
Fixed that --extern works with mysql-test-run.pl
Small trivial cleanups
2007-02-21 13:02:57 +02:00
ramil/ram@mysql.com/ramil.myoffice.izhnet.ru
049251624a Fix for bug #26038: X() value of empty NOT NULL POINT is neither NULL nor NOT NULL
Having maybe_null flag unset for geometry/spatial functions leads to
wrong Item_func_isnull::val_int()'s results.
Fix: set maybe_null flag and add is_null() methods.
2007-02-21 14:45:19 +04:00
tomas@poseidon.mysql.com
d0d1eb770c Merge mysqldev@production.mysql.com:/data0/mysqldev/my/build-200702202011-5.1.16-beta/mysql-5.1-release
into  poseidon.mysql.com:/home/tomas/mysql-5.1-new-ndb
2007-02-21 14:31:17 +07:00
tomas@poseidon.mysql.com
6cbc6d91f9 Bug #26490 duplicate cluster error code
- fixed error code
- added test program run in mysql-test-run bk version
2007-02-21 11:41:22 +07:00
kaa@polly.local
41eccda1df Merge polly.local:/tmp/maint/bug25137/my51-bug25137
into  polly.local:/home/kaa/src/maint/mysql-5.1-maint
2007-02-20 23:16:18 +03:00
msvensson@pilot.blaudden
63baad73ae Merge pilot.blaudden:/home/msvensson/mysql/mysql-5.0-maint
into  pilot.blaudden:/home/msvensson/mysql/mysql-5.1-new-maint
2007-02-20 21:02:06 +01:00
msvensson@pilot.blaudden
9da1b427a7 Test for setting general_log_file to a directory fails
since /tmp is used as the directory. It does not always
exist so let's use one that always exists MYSQLTEST_VARDIR
2007-02-20 21:00:05 +01:00
anozdrin/alik@alik.opbmk
76f813a52e Fix for BUG#24415: Instance manager test im_daemon_life_cycle fails randomly.
The cause of im_daemon_life_cycle.imtest random failures was the following
behaviour of some implementations of LINUX threads: let's suppose that a
process has several threads (in LINUX threads, there is a separate process for
each thread). When the main process gets killed, the parent receives SIGCHLD
before all threads (child processes) die. In other words, the parent receives
SIGCHLD, when its child is not completely dead.

In terms of IM, that means that IM-angel receives SIGCHLD when IM-main is not dead
and still holds some resources. After receiving SIGCHLD, IM-angel restarts
IM-main, but IM-main failed to initialize, because previous instance (copy) of
IM-main still holds server socket (TCP-port).

Another problem here was that IM-angel restarted IM-main only if it was killed
by signal. If it exited with error, IM-angel thought it's intended / graceful
shutdown and exited itself.

So, when the second instance of IM-main failed to initialize, IM-angel thought
it's intended shutdown and quit.

The fix is
  1. to change IM-angel so that it restarts IM-main if it exited with error code;
  2. to change IM-main so that it returns proper exit code in case of failure.
2007-02-20 22:31:50 +03:00
kaa@polly.local
2a2382b284 Fixed the binlog numbering after changes introduced by patch for bug18743. 2007-02-20 22:29:18 +03:00
kaa@polly.local
b7e6df7cc9 Merge polly.local:/tmp/maint/bug25137/my50-bug25137
into  polly.local:/home/kaa/src/maint/mysql-5.0-maint
2007-02-20 22:23:51 +03:00
msvensson@pilot.blaudden
cf553c4361 Use "diff_files" instead ot "exec diff" 2007-02-20 18:47:47 +01:00
msvensson@pilot.blaudden
55b7f20a80 Use a temporary file to execute SQL commands with utf-8 chararcters 2007-02-20 18:35:59 +01:00
msvensson@pilot.blaudden
c282716844 Merge pilot.blaudden:/home/msvensson/mysql/mysql-5.0-maint
into  pilot.blaudden:/home/msvensson/mysql/mysql-5.1-new-maint
2007-02-20 18:22:50 +01:00
msvensson@pilot.blaudden
0d1d91e829 Replace "exec diff" with diff_files 2007-02-20 18:22:33 +01:00
msvensson@pilot.blaudden
dd74beb6be Merge pilot.blaudden:/home/msvensson/mysql/mysql-4.1-maint
into  pilot.blaudden:/home/msvensson/mysql/mysql-5.0-maint
2007-02-20 18:21:14 +01:00
msvensson@pilot.blaudden
d6584a920b Add "diff_files" command to mysqltest 2007-02-20 18:20:58 +01:00
msvensson@pilot.blaudden
0cc2e14040 Merge pilot.blaudden:/home/msvensson/mysql/bug20166/my50-bug20166
into  pilot.blaudden:/home/msvensson/mysql/bug20166/my51-bug20166
2007-02-20 16:26:30 +01:00