Commit graph

779 commits

Author SHA1 Message Date
monty@mysql.com/narttu.mysql.fi
410fc81a72 After merge fixes
Removed a lot of compiler warnings
Removed not used variables, functions and labels
Initialize some variables that could be used unitialized (fatal bugs)
%ll -> %l
2007-01-29 01:47:35 +02:00
monty@narttu.mysql.fi
8a80e36ac3 Merge mysql.com:/home/my/mysql-5.0
into  mysql.com:/home/my/mysql-5.1
Merge of 'remove compiler warnings when using -Wshadow'
2007-01-27 03:46:45 +02:00
monty@mysql.com/narttu.mysql.fi
a04157fbb3 Merge bk-internal.mysql.com:/home/bk/mysql-5.0
into  mysql.com:/home/my/mysql-5.0
2007-01-22 14:04:40 +02:00
mats@romeo.(none)
3920f529ea BUG#23171 (Illegal slave restart position):
Third patch of the bug fix where the code for skipping events and for
executing events is factored out into three functions:
- shall_skip() to decide if the event shall be skipped and the
  reason for it;
- do_apply_event(), where the event is applied to the database; and
- do_update_pos(), which updates the actual relay log position and
  group positions.
2007-01-17 15:06:37 +01:00
lars/lthalmann@dl145j.mysql.com
1e356251a0 Merge mysql.com:/nfsdisk1/lars/bkroot/mysql-5.1-new-rpl
into  mysql.com:/nfsdisk1/lars/MERGE/mysql-5.1-merge
2007-01-12 12:31:44 +01:00
cmiller@zippy.cornsilk.net
68428545a5 Merge bk-internal.mysql.com:/home/bk/mysql-5.0-community
into  zippy.cornsilk.net:/home/cmiller/work/mysql/mysql-5.0-community
2007-01-03 18:24:28 -05:00
cmiller@zippy.cornsilk.net
10cdf90bd3 Bug#24795: Add SHOW PROFILE
Patch contributed by Jeremy Cole.  CLA received Oct 2006 by Kaj Arnö

Add rudimentary query profiling support.
2007-01-03 17:15:10 -05:00
kent@kent-amd64.(none)
be15e3bc15 Merge mysql.com:/home/kent/bk/main/mysql-5.0
into  mysql.com:/home/kent/bk/main/mysql-5.1
2006-12-23 20:20:40 +01:00
kent@mysql.com/kent-amd64.(none)
226a5c833f Many files:
Changed header to GPL version 2 only
2006-12-23 20:17:15 +01:00
dli@dev3-164.dev.cn.tlan
e9fcb1e310 Merge dli@bk-internal.mysql.com:/home/bk/mysql-5.1-new-ndb-bj
into  dev3-164.dev.cn.tlan:/home/dli/mysql/mysql-5.1/mysql-5.1-bug-19896
2006-12-22 10:08:11 +08:00
dli@dev3-164.dev.cn.tlan
fcb0e53b75 ndb - fixed for BUG#19896 Last_Errno: 4294967295, Error in Write_rows event: (error number 4 billion ?)
fixed to use int instead of uint32 type to return last_slave_errno.
2006-12-22 09:59:27 +08:00
mats@romeo.(none)
8d4bddefd0 Merge romeo.(none):/home/bk/b22864-mysql-5.1-new-rpl
into  romeo.(none):/home/bk/merge-b22864-myql-5.1-new-rpl
2006-12-21 19:36:28 +01:00
mats@romeo.(none)
be9ffb12da BUG#22864 (Rollback following CREATE... SELECT discards 'CREATE TABLE'
from log):
When row-based logging is used, the CREATE-SELECT is written as two
parts: as a CREATE TABLE statement and as the rows for the table. For
both transactional and non-transactional tables, the CREATE TABLE
statement was written to the transaction cache, as were the rows, and
on statement end, the entire transaction cache was written to the binary
log if the table was non-transactional. For transactional tables, the
events were kept in the transaction cache until end of transaction (or
statement that were not part of a transaction).

For the case when AUTOCOMMIT=0 and we are creating a transactional table
using a create select, we would then keep the CREATE TABLE statement and
the rows for the CREATE-SELECT, while executing the following statements.
On a rollback, the transaction cache would then be cleared, which would
also remove the CREATE TABLE statement. Hence no table would be created
on the slave, while there is an empty table on the master.

This relates to BUG#22865 where the table being created exists on the
master, but not on the slave during insertion of rows into the newly
created table. This occurs since the CREATE TABLE statement were still
in the transaction cache until the statement finished executing, and
possibly longer if the table was transactional.

This patch changes the behaviour of the CREATE-SELECT statement by
adding an implicit commit at the end of the statement when creating
non-temporary tables. Hence, non-temporary tables will be written to the
binary log on completion, and in the even of AUTOCOMMIT=0, a new
transaction will be started. Temporary tables do not commit an ongoing
transaction: neither as a pre- not a post-commit.

The events for both transactional and non-transactional tables are
saved in the transaction cache, and written to the binary log at end
of the statement.
2006-12-21 09:29:02 +01:00
ramil/ram@mysql.com/myoffice.izhnet.ru
24f4739846 Fix for bug #10798: If relay log fails to rotate, slave will crash after
The relay log may not be open for some reason (e.g. disk error) after rotation,
and using it causes the slave crash.

Fix: check we have it open before access, return error otherwise.
2006-12-18 17:38:59 +04:00
rafal@quant.(none)
c336960463 BUG#21132 (Slave fails to reconnect on update_slave_list):
The update_slave_list() call is a remainder from attempts to implement failsafe 
replication. This code is now obsolete and not maintained (see comments in 
rpl_failsafe.cc). 

Inspecting the code one can see that this function do not interferre with normal 
slave operation and thus can be safely removed. This will solve the issue 
reported in the bug (errors on slave reconnection). 

A related issue is to remove unneccessary reconnections done by slave. This is 
handled in the patch for BUG#20435.
2006-12-15 11:32:41 +01:00
monty@mysql.com/narttu.mysql.fi
9d3fda77c8 After merge fixes:
- Remove compiler warnings
- Fix merge errors
- Indentation fixes
2006-12-15 06:21:15 +02:00
monty@mysql.com/narttu.mysql.fi
88dd873de0 Fixed compiler warnings detected by option -Wshadow and -Wunused:
- Removed not used variables and functions
- Added #ifdef around code that is not used
- Renamed variables and functions to avoid conflicts
- Removed some not used arguments

Fixed some class/struct warnings in ndb
Added define IS_LONGDATA() to simplify code in libmysql.c

I did run gcov on the changes and added 'purecov' comments on almost all lines that was not just variable name changes
2006-12-15 00:51:37 +02:00
monty@mysql.com/narttu.mysql.fi
3d40956039 Fixed portability issue in my_thr_init.c (was added in my last push)
Fixed compiler warnings (detected by VC++):
- Removed not used variables
- Added casts
- Fixed wrong assignments to bool
- Fixed wrong calls with bool arguments
- Added missing argument to store(longlong), which caused wrong store method to be called.
2006-11-30 18:25:05 +02:00
monty@mysql.com/narttu.mysql.fi
3a35c30027 Fixed compiler warnings (Mostly VC++):
- Removed not used variables
- Changed some ulong parameters/variables to ulonglong (possible serious bug)
- Added casts to get rid of safe assignment from longlong to long (and similar)
- Added casts to function parameters
- Fixed signed/unsigned compares
- Added some constructores to structures
- Removed some not portable constructs

Better fix for bug Bug #21428 "skipped 9 bytes from file: socket (3)" on "mysqladmin shutdown"
(Added new parameter to net_clear() to define when we want the communication buffer to be emptied)
2006-11-30 03:40:42 +02:00
monty@mysql.com/nosik.monty.fi
fa81a82e7f Fixed a LOT of compiler warnings
Added missing DBUG_RETURN statements (in mysqldump.c)
Added missing enums
Fixed a lot of wrong DBUG_PRINT() statements, some of which could cause crashes
Removed usage of %lld and %p in printf strings as these are not portable or produces different results on different systems.
2006-11-27 01:47:38 +02:00
monty@nosik.monty.fi
89570bf966 Merge mysql.com:/home/my/mysql-5.0
into  mysql.com:/home/my/mysql-5.1
2006-11-22 14:11:36 +02:00
monty@mysql.com/nosik.monty.fi
306b871d52 Merge bk-internal.mysql.com:/home/bk/mysql-5.0
into  mysql.com:/home/my/mysql-5.0
2006-11-20 22:46:52 +02:00
monty@mysql.com/nosik.monty.fi
e825879800 Remove compiler warnings
(Mostly in DBUG_PRINT() and unused arguments)
Fixed bug in query cache when used with traceing (--with-debug)
Fixed memory leak in mysqldump
Removed warnings from mysqltest scripts (replaced -- with #)
2006-11-20 22:42:06 +02:00
lars@black.(none)
07ac3d3a95 Merge mysql.com:/home/bk/MERGE/mysql-5.0-merge
into  mysql.com:/home/bk/MERGE/mysql-5.1-merge
2006-11-13 17:59:51 +01:00
lars@mysql.com/black.(none)
7aa562ad20 Merge mysql.com:/home/bk/MERGE/mysql-4.1-merge
into  mysql.com:/home/bk/MERGE/mysql-5.0-merge
2006-11-13 17:54:01 +01:00
lars@black.(none)
63c906f749 Merge mysql.com:/home/bkroot/mysql-5.1-new-rpl
into  mysql.com:/home/bk/MERGE/mysql-5.1-merge
2006-11-13 12:45:31 +01:00
lars@mysql.com/black.(none)
c5d56416ba Merge mysql.com:/home/bkroot/mysql-5.0-rpl
into  mysql.com:/home/bk/MERGE/mysql-5.0-merge
2006-11-13 12:44:53 +01:00
aelkin/elkin@dsl-hkibras-fe30f900-107.dhcp.inet.fi
5a20c54201 bug#19402 SQL close to the size of the max_allowed_packet fails on the slave
comments are fixed as was suggested in reviews.
2006-11-12 20:01:58 +02:00
mats@romeo.(none)
1fb9105ebd BUG#23171 (Illegal slave restart group position):
Second patch to fix skipping code. Moving relay and binary log 
position changing code from do_apply_event [old exec_event()] into
do_update_pos() and doing other changes necessary to support that.

Fixing a bug that can cause deadlock if rotating binary log when committing
a changes to a transactional table that is not inside a transaction and
cause a rotate log.
2006-11-10 15:10:41 +01:00
aelkin/elkin@dsl-hkibras-fe30f900-107.dhcp.inet.fi
7425499e8e Merge dsl-hkibras-fe30f900-107.dhcp.inet.fi:/home/elkin/MySQL/TEAM/FIXES/4.1/bug19402-max_allowed
into  dsl-hkibras-fe30f900-107.dhcp.inet.fi:/home/elkin/MySQL/TEAM/BARE/mysql-4.1-rpl
2006-11-08 09:57:20 +02:00
ramil/ram@myoffice.izhnet.ru
b784565047 Merge mysql.com:/usr/home/ram/work/mysql-5.0-maint
into  mysql.com:/usr/home/ram/work/mysql-5.1-maint
2006-11-07 12:12:59 +04:00
ramil/ram@mysql.com/myoffice.izhnet.ru
afffedc0e3 Fix for bug #19736 VIEW: column names not quoted properly when view is replicated
When we write 'query=...' string to a frm file for views on a slave, 
indentifiers are not properly quoted due to missing OPTION_QUOTE_SHOW_CREATE 
flag in the thd->options.

Fix: properly set thd->options for the slave thread.
2006-11-03 15:27:37 +04:00
lars@mysql.com/black.(none)
c06f9991b7 Refactoring: Moved master info functionality into rpl_mi.cc to
make code easier to maintain.
2006-10-31 16:51:51 +01:00
lars@mysql.com/black.(none)
1e038dc882 Refactoring: Moved rli code to new file rpl_rli.cc. The idea being that rli
should be a separate module (i.e. a class) to make it easier to maintain the 
code, e.g. by having checks within the rli checking sanity of data and making 
member variables private.  This will also ease implementation of multi-source 
and, at least in my fantasies :), make it possible in some future to have 
separate replication servers.
2006-10-31 12:23:14 +01:00
aelkin/elkin@dsl-hkigw8-feaef900-46.dhcp.inet.fi
f25db09b96 Merge dsl-hkigw8-feaef900-46.dhcp.inet.fi:/home/elkin/MySQL/TEAM/BARE/5.0-merge
into  dsl-hkigw8-feaef900-46.dhcp.inet.fi:/home/elkin/MySQL/TEAM/FIXES/merge_50
2006-10-30 13:07:36 +02:00
aelkin/elkin@dsl-hkigw8-feb9fb00-191.dhcp.inet.fi
d05db0e7ab BUG#20697 slave fails to rollback replicated transaction hang over innodb_lock_wait_timeou
Transaction on the slave sql thread got blocked against a slave's mysqld local ta's
lock. Since the default, slave-transaction-retries=10, there was replaying of the 
replicated ta. That failed because of a new started from 5.0.13 policy not to rollback
a timed-out transaction. Effectively the first round of a timed-out ta becomes committed
by the replaying's first "BEGIN".

It was decided to backport already existed method working in 5.1 implemented in
bug #16228 for handling symmetrical deadlock problem. That patch introduced end_trans
execution whenever a replicated ta deadlocks or timed-out.

Note, that this solution can be practically suboptimal - in the light of the changed behavior
due to timeout we still could replay only the last statement -  only with a high rate of timeouting
replicated transactions.
2006-10-11 10:16:37 +03:00
lars@black.(none)
0b4e65e12b Merge mysql.com:/home/bkroot/mysql-5.1-new-rpl
into  mysql.com:/home/bk/MERGE/mysql-5.1-merge
2006-10-10 21:59:23 +02:00
mats@romeo.(none)
6c3b1f6eb0 BUG#21474 (There is a rotation before the last table map):
Removing code to step the group log position and just stepping
the event log position.  If the group log position were stepped
one time too many, it might be that the group starts at a position
that is not possible, e.g., at a Rows_log_event, or between an
Intvar_log_event and the following associated Query_log_event.
2006-10-10 15:18:21 +02:00
jimw@rama.(none)
7a23b1baf7 Merge rama.(none):/home/jimw/my/mysql-5.0-clean
into  rama.(none):/home/jimw/my/mysql-5.1-clean
2006-09-28 20:20:33 -07:00
jimw@rama.(none)
caf4392f71 Merge bk-internal:/home/bk/mysql-4.1-maint
into  rama.(none):/home/jimw/my/mysql-4.1-clean
2006-09-28 18:11:29 -07:00
jimw@rama.(none)
68eadc8a79 Merge rama.(none):/home/jimw/my/mysql-4.1-clean
into  rama.(none):/home/jimw/my/mysql-5.0-clean
2006-09-28 18:09:10 -07:00
aelkin/elkin@dsl-hkigw8-fe00f800-98.dhcp.inet.fi
b4b06d7a67 BUG#19402 SQL close to the size of the max_allowed_packet fails on the slave
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.
2006-09-12 00:19:05 +03:00
cmiller@zippy.cornsilk.net
ff57b304a4 Merge zippy.cornsilk.net:/home/cmiller/work/mysql/merge/tmp_merge
into  zippy.cornsilk.net:/home/cmiller/work/mysql/merge/mysql-5.1
2006-08-21 12:55:43 -04:00
jimw@rama.(none)
cb6a084076 Bug #2717: include/my_global.h mis-defines __attribute__
Fix when __attribute__() is stubbed out, add ATTRIBUTE_FORMAT() for specifying
  __attribute__((format(...))) safely, make more use of the format attribute,
  and fix some of the warnings that this turns up (plus a bonus unrelated one).
2006-08-17 12:25:40 -07:00
iggy@rolltop.ignatz42.dyndns.org
00ab7be7b9 Merge rolltop.ignatz42.dyndns.org:/mnt/storeage/mysql-4.1-maint_20328
into  rolltop.ignatz42.dyndns.org:/mnt/storeage/mysql-5.0-merge
2006-08-16 19:31:33 -04:00
kostja@bodhi.local
04c97488f9 Merge bodhi.local:/opt/local/work/tmp_merge
into  bodhi.local:/opt/local/work/mysql-5.1-runtime-merge
2006-08-12 21:06:51 +04:00
kostja@bodhi.local
4bfc67fc3c Merge bk-internal.mysql.com:/home/bk/mysql-5.0
into  bodhi.local:/opt/local/work/mysql-5.0-runtime-merge
2006-08-02 14:13:01 +04:00
tsmith/tim@siva.hindu.god
f5764cecde Bug #20402: DROP USER failure logged as ERROR rather than WARNING
slave.cc, sql_acl.cc:
- remove sql_print_error() for events that are not server errors
2006-07-26 16:33:26 -06:00
grog@eucla.lemis.com
f50d4caa95 slave.cc:
BUG#20850: Assert during slave shutdown in many rpl_* tests
      This patch has already been applied to 5.1.
2006-07-25 20:00:18 +09:30
kostja@bodhi.local
2ce1a07c89 A fix and a test case for Bug#15752 "Lost connection to MySQL server
when calling a SP from C API"

The bug was caused by lack of checks for misuse in mysql_real_query. 
A stored procedure always returns at least one result, which is the 
status of execution of the procedure itself.
This result, or so-called OK packet, is similar to a result
returned by INSERT/UPDATE/CREATE operations: it contains the overall
status of execution, the number of affected rows and the number of
warnings. The client test program attached to the bug did not read this 
result and ivnoked the next query. In turn, libmysql had no check for 
such scenario and mysql_real_query was simply trying to send that query 
without reading the pending response, thus messing up the communication
protocol.

The fix is to return an error from mysql_real_query when it's called
prior to retrieval of all pending results.
2006-07-24 14:56:53 +04:00