include/my_sys.h:
Changed safe_malloc variables to start with sf_
mysys/default.c:
Use safemalloc (as we use dynamic_arrays() that uses it inderectly anyway)
mysys/my_static.c:
Changed safe_malloc variables to start with sf_
mysys/my_static.h:
Changed safe_malloc variables to start with sf_
Changed safemalloc structure to not have to be 8 byte aligned
mysys/safemalloc.c:
Changed safemalloc structure to not have to be 8 byte aligned. (portability fix)
BIG code cleanup
sql/mysqld.cc:
Changed safe_malloc variables to start with sf_
sql/sql_parse.cc:
Changed safe_malloc variables to start with sf_
define a different niceness level in my.cnf (Bug #627)
scripts/mysqld_safe.sh:
- applied patch from Christian Hammers to be able to define a different
niceness level in my.cnf (Bug #627)
Item_extract needs special implementation for eq().
Item_func::eq doesn't work correctly because we have to compare
Item_extract::int_type parameters also
We need to propagate this to 4.1
sql/item_timefunc.cc:
Item_extract::eq implementation added
sql/item_timefunc.h:
Item_extract::eq definition added
BitKeeper/etc/logging_ok:
Logging to logging@openlogging.org accepted
support issue with an unclear message which can have N reasons for appearing.
This should help us know at which point it failed, and get the errno when
my_open was involved (as the reason for the unclear message is often a
permission problem).
RESET SLAVE resets last_error and last_errno in SHOW SLAVE STATUS (without this,
rpl_loaddata.test, which is expected to generate an error in last_error, influenced
rpl_log_pos.test).
A small test update.
Added STOP SLAVE to mysql-test-run to get rid of several stupid error messages
which are printed while the master restarts and the slave attempts/manages to
connect to it and sends it nonsense binlog requests.
mysql-test/mysql-test-run.sh:
Before running a test, stop slave threads if they exist (if they don't
the script goes on fine). This also works fine with the manager.
Before this change, when the master was stopped/restarted (which happened before
the slave server was stopped/restarted), the slave threads
noticed the stop (so printed an error message in slave.err), then managed to
reconnect (to the new master, the one that is running for the _next_ test),
and this reconnection had time to produce error messages (because, for example,
the binlog the slave thread was asking had been deleted) before the slave server
was killed. This change reduces by 10% (40 lines) slave.err in replication tests.
mysql-test/r/rpl000018.result:
Result update.
mysql-test/t/rpl000018.test:
This test does "show master logs" so should do "reset master" instead of
relying on the previous tests.
sql/slave.cc:
More error messages.
sql/sql_repl.cc:
More error messages.
RESET SLAVE resets last_error and last_errno in SHOW SLAVE STATUS.
Added option --gdb
Free memory used by replicate_xxx and binglog_xxx options
mysql-test/mysql-test-run.sh:
Added --gdb when using gdb
mysys/thr_alarm.c:
Safety check
sql/mysql_priv.h:
Don't install signal handler for SIGINT by default
sql/mysqld.cc:
Don't install signal handler for SIGINT by default
Added option --gdb
Free memory used by replicate_xxx and binglog_xxx options.
Add statistics variable for killed threads
sql/repl_failsafe.cc:
Incremented aborted_connects on failure
sql/sql_list.cc:
Added free_list() to free memory on shutdown.
we now make a distinction between if the master is < 3.23.57, 3.23 && >=57, and 4.x
(before the 2 3.23 were one). This is because in 3.23.57 we have a way to distinguish between
a Start_log_event written at server startup and one written at FLUSH LOGS, so we
have a way to know if the slave must drop old temp tables or not.
Change: mi->old_format was bool, now it's enum (to handle 3 cases). However, functions
which had 'bool old_format' as an argument have their prototypes unchanged, because
the old old_format == 0 now corresponds to the enum value BINLOG_FORMAT_CURRENT which
is equal to 0, so boolean tests are left untouched. The only case were we use mi->old_format
as an enum instead of casting it implicitly to a bool, is in Start_log_event::exec_event,
where we want to distinguish between the 3 possible enum values.
sql/log_event.cc:
Fix for bug 254 :
we now make a distinction between if the master is < 3.23.57, 3.23 && >=57, and 4.x
(before the 2 3.23 were one), to know if the slave must drop old temp tables or not.
sql/slave.cc:
Fix for bug 254 : mi->old_format is now enum.
An unrelated comment.
sql/slave.h:
fix for bug 254 : mi->old_format is now enum.
Add syntax SAVEPOINT id and ROLLBACK TO SAVEPOINT id. This is compatible with DB2 and Oracle but not with SQL Server. Savepoints do not do anything yet, this is just parsing.
sql/lex.h:
Add syntax SAVEPOINT id and ROLLBACK TO SAVEPOINT id. This is compatible with DB2 and Oracle but not with SQL Server. Savepoints do not do anything yet, this is just parsing.
sql/mysqld.cc:
Add syntax SAVEPOINT id and ROLLBACK TO SAVEPOINT id. This is compatible with DB2 and Oracle but not with SQL Server. Savepoints do not do anything yet, this is just parsing.
sql/sql_lex.h:
Add syntax SAVEPOINT id and ROLLBACK TO SAVEPOINT id. This is compatible with DB2 and Oracle but not with SQL Server. Savepoints do not do anything yet, this is just parsing.
sql/sql_parse.cc:
Add syntax SAVEPOINT id and ROLLBACK TO SAVEPOINT id. This is compatible with DB2 and Oracle but not with SQL Server. Savepoints do not do anything yet, this is just parsing.
sql/sql_yacc.yy:
Add syntax SAVEPOINT id and ROLLBACK TO SAVEPOINT id. This is compatible with DB2 and Oracle but not with SQL Server. Savepoints do not do anything yet, this is just parsing.
Revert a change to dict_mem_index_add_field which slipped prematurely into the bk tree
sql/ha_innodb.cc:
Revert a change to dict_mem_index_add_field which slipped prematurely into the bk tree
Fix the BDB crash in the previous push; to save CPU remove duplicate calls of commit in InnoDB
sql/handler.cc:
Fix the BDB crash in the previous push; to save CPU remove duplicate calls of commit in InnoDB
sql/ha_innodb.cc:
Fix the BDB crash in the previous push; to save CPU remove duplicate calls of commit in InnoDB
More debugging variables
Increment aborted_threads in case of killed or too big packet
include/thr_alarm.h:
made prototype more portable
mysys/thr_alarm.c:
Print error if we can't delete an alarm
sql/mysqld.cc:
Statistics variable (for debugging)
sql/net_serv.cc:
statistics variable (for debugging)
sql/sql_parse.cc:
Increment aborted_threads in case of killed or too big packet
to set CXX=gcc (cannot link the code with g++) - this should help to
recompile the RPM on Distributions using gcc 3
- Added a symlink /usr/sbin/rcmysql -> /etc/init.d/mysql
If the autocommit is on, let handler.cc commit or rollback the whole transaction at an updating SQL statement end. This probably fixes bug number 578. The problem was that when explicit LOCK TABLES is used, then the lock count method in autocommit does not work.
sql/handler.cc:
If the autocommit is on, let handler.cc commit or rollback the whole transaction at an updating SQL statement end. This probably fixes bug number 578. The problem was that when explicit LOCK TABLES is used, then the lock count method in autocommit does not work.
Portability fix for Windows 64
include/config-win.h:
Portability fix for Windows 64
include/my_global.h:
Portability fix for Windows 64
include/mysql_version.h.in:
Added [mysqld-base-version] as a default group for the mysqld server
innobase/include/univ.i:
Portability fix for Windows 64
sql/mysqld.cc:
Added [mysqld-base-version] as a default group for the mysqld server
Plus a changeset which I had committed but forgot to push (and this changeset is lost on
another computer, so I recreate it here). This changeset is "user-friendly SHOW BINLOG EVENTS
and CHANGE MASTER TO when log positions < 4 are used.
sql/slave.cc:
fix for bug 576 (DBUG_ASSERT failure when using CHANGE MASTER TO RELAY_LOG_POS=4).
sql/sql_repl.cc:
User-friendly SHOW BINLOG EVENTS:
SHOW BINLOG EVENTS FROM 0: currently one gets
MASTER> show binlog events from 0;
ERROR 1220: Error when executing command SHOW BINLOG EVENTS: Invalid log position
so we silently convert <4 to 4.
sql/sql_yacc.yy:
User-friendly CHANGE MASTER TO:
presently when one does CHANGE MASTER TO MASTER_LOG_POS=0 he gets
030425 10:12:41 Slave I/O thread: connected to master 'root@localhost:3306', r
eplication started in log 'gbichot-bin.013' at position 151
030425 10:12:41 Error reading packet from server: Client requested master to st
art replication from impossible position (server_errno=1236)
030425 10:12:41 Got fatal error 1236: 'Client requested master to start replica
tion from impossible position' from master when reading data from binary log
030425 10:12:41 Slave I/O thread exiting, read up to log 'gbichot-bin.013', pos
ition 151
while she/he probably just wanted to start at the beginning of the
binlog, which is 4. So we silently convert <4 to 4 in sql_yacc.yy
(i.e. in the slave code; fortunately all versions have the same
BIN_LOG_HEADER_SIZE=4 and we should not change this). See comments
for an explaination of why we have to do this in sql_yacc.yy,
not in sql_repl.cc.
Same thing for CHANGE MASTER TO RELAY_LOG_POS.
sql/unireg.h:
warning comment
Bug 571: play LOAD DATA INFILE the same way on the slave as it was on the master:
if it was with IGNORE, do it with IGNORE,
if it was with REPLACE, do it with REPLACE,
and (the change) if it was with nothing, do it with nothing (not with IGNORE !!).
Bug 573: print a proper error message in case of duplicate entry in LOAD DATA INFILE
on the slave, i.e. a message where the keyname and key value appear :
'Duplicate entry '1' for key 1' and not 'Duplicate entry '%-.64s' for key %d'
mysql-test/r/rpl_loaddata.result:
result update
mysql-test/t/rpl_loaddata.test:
check if duplicate entries on the slave trigger an error
when the slave replicates LOAD DATA INFILE (without IGNORE or REPLACE)
(bug 571).
sql/log_event.cc:
Bug 571: play LOAD DATA INFILE the same way on the slave as it was on the master:
if it was with IGNORE, do it with IGNORE,
if it was with REPLACE, do it with REPLACE,
and (the change) if it was with nothing, do it with nothing (not with IGNORE !!).
Bug 573: print a proper error message in case of duplicate entry in LOAD DATA INFILE
on the slave, i.e. a message where the keyname and key value appear :
'Duplicate entry '1' for key 1' and not 'Duplicate entry '%-.64s' for key %d'
not the master's binlog) (SW 1571).
sql/slave.cc:
Clearer error message (in the customer's case, the relay log was corrupted,
not the master's binlog).
Do not try to reserve os_sync_mutex in shutdown after it has been freed
innobase/os/os0sync.c:
Do not try to reserve os_sync_mutex in shutdown after it has been freed
Removed auto event creation because it is not needed in any MySQL/InnoDB code
innobase/com/com0shm.c:
Removed auto event creation because it is not needed in any MySQL/InnoDB code
Put back Monty's patch which the previous push accidentally erased: print also operation type in os_file_handle_error()
innobase/os/os0file.c:
Put back Monty's patch which the previous push accidentally erased: print also operation type in os_file_handle_error()
Release all event semaphores at shutdown also in Windows
srv0start.c, srv0srv.c:
make test sometimes failed because lock timeout thread exited without decrementing the InnoDB thread counter
innobase/srv/srv0srv.c:
make test sometimes failed because lock timeout thread exited without decrementing the InnoDB thread counter
innobase/srv/srv0start.c:
make test sometimes failed because lock timeout thread exited without decrementing the InnoDB thread counter
innobase/os/os0file.c:
Release all event semaphores at shutdown also in Windows
innobase/os/os0sync.c:
Release all event semaphores at shutdown also in Windows
innobase/os/os0thread.c:
Release all event semaphores at shutdown also in Windows
innobase/include/os0sync.h:
Release all event semaphores at shutdown also in Windows
innobase/include/os0sync.ic:
Release all event semaphores at shutdown also in Windows
innobase/include/os0thread.h:
Release all event semaphores at shutdown also in Windows