DO NOT COPY THIS CODE TO 4.0. The bugfix is better in 4.0,
but here in 3.23 we don't want to add a new error code so
we just use ER_EMPTY_QUERY. Bug was:
"If a query was ignored on the slave (because of
@code{replicate-ignore-table} and other similar rules), the slave
still checked if the query got the same error code (0, no error) as on
the master. So if the master had an error on the query (for example,
``Duplicate entry'' in a multiple-row insert), then the slave stopped
and warned that the error codes didn't match. (Bug #797)"
sql/slave.cc:
Ignore ER_EMPTY_QUERY as it is also a marker for "query was ignored because
of replicate-*-table rules".
sql/sql_parse.cc:
In a slave thread, mark an ignored query (because of replicate-*-table rules)
as empty. The caller, exec_event(), will understand this error code as "ignorable
query, don't compare the error codes on master and slave".
to be able to compile on HP-UX 10.20 (which does not have in_add_t).
extra/resolveip.c:
- backport compatibility fix from 4.0 to be able to compile on HP-UX 10.20
(which does not have in_add_t).
isam/open.c:
Fixed overflow bug when using packed tables and blobs
isam/test_all.res:
updated test results
myisam/mi_dynrec.c:
pack_bits not needed here as we do it on open
myisam/mi_open.c:
Fixed overflow bug when using packed tables and blobs
That's to make resolveip work on our FreeBSD-5.0/Sparc64 build host.
extra/resolveip.c:
Fix for 64-bit CPUs (u_long is 64 bit there, but in_addr_t is always uint32).
the bug with 3.23.
ChangeSet@1.1416.113.1, 2003-03-22 15:22:59+01:00, guilhem@mysql.com
Fix for #178 Replicating INSERT VALUES(USER()) crashes (SEGV) the slave
Now it does not SEGV, but USER() is still badly replicated
(it is replicated to ""), which is a lower priority bug.
sql/item_strfunc.cc:
Don't segfault in USER() if thd->user == 0 (system thread).
was used with NULL value on NOT NULL column. (Bug #479)
mysql-test/r/order_by.result:
Update of results
mysql-test/t/order_by.test:
Test of new code
sql/sql_select.cc:
Fixed problem with lookup on NULL
mysql-test/r/user_var.result:
added tests for user variables comparing (bug #551)
mysql-test/t/user_var.test:
added tests for user variables comparing (bug #551)
BitKeeper/etc/logging_ok:
Logging to logging@openlogging.org accepted
repository (incredible that I forgot to push, but why not).
So unfortunately the bugfix missed 3.23.57 and will be in .58 :(
Instead of looking like working (bug #198), replication between
a 3.23 slave and 4.0 master should frankly stop. Here we detect
4.0 masters in the 3.23 slave code when we see a strange Rotate
event, and in that case we print an error and stop.
4.0.13 and older masters will be "often" caught (see the patch); 4.0.14
and newer masters will always be immediately caught.
sql/slave.cc:
Instead of looking like working (bug #198), replication between
a 3.23 slave and 4.0 master should frankly stop. Here we detect
4.0 masters in the 3.23 slave code when we see a strange Rotate
event, and in that case we print an error and stop.
4.0.13 and older masters will be "often" caught (see the patch); 4.0.14
and newer masters will always be immediately caught.
Backport the clust rec bug fix from 4.0
innobase/row/row0sel.c:
Backport the clust rec bug fix from 4.0
innobase/row/row0vers.c:
Backport the clust rec bug fix from 4.0
as the already-stored timestamp. Now 'created' is used only to know if
this is a first binlog or not. And we may re-use the superfluous bytes
in 5.0 when we need room.
sql/log_event.cc:
This sort of reverts a change I made in 3.23.57. In 3.23.57 I set 'created' to 0
if this was a non-first binlog, so I made mysqlbinlog not print the "created xx"
part if created == 0. While this was sensible, as 'created' is 0 or equal to
the timestamp which is already stored in the event, we can always print
"created xx" by using the timestamp, and leaving the use of 'created' only to
know if this is a first binlog or not (which we print as "created at startup").
sql/log_event.h:
In Start_log_event, 'created' is always the same as 'when', or O.
We didn't need 4 bytes for this, a bit would have been enough (O or
"same as 'when'"). Possibly in 5.0 we will re-use the useless bytes.
Prevent on Windows starting of two mysqld instances on SAME InnoDB files: that could cause severe database corruption
innobase/os/os0file.c:
Prevent on Windows starting of two mysqld instances on SAME InnoDB files: that could cause severe database corruption
Fix a bug: a race condition could cause that the first B-tree page splits would get a corrupt page directory, whic often results in the assertion in page_dir_find_slot(); found with a test of 3000 startups/shutdowns; it is not clear that this would have caused any corruption which users have reported
innobase/page/page0page.c:
Fix a bug: a race condition could cause that the first B-tree page splits would get a corrupt page directory, whic often results in the assertion in page_dir_find_slot(); found with a test of 3000 startups/shutdowns; it is not clear that this would have caused any corruption which users have reported
Fix for bug 254 : the first Start_log_event after server startup will
have created=now(), whereas the next ones (FLUSH LOGS, auto rotation)
will have created=0. Before this, it was always now().
This way, slaves >=4.0.14 will know when they must
drop stale temp tables or not. The next task is now modify 4.0.14 to
implement this.
sql/log.cc:
Fix for bug 254 : the first Start_log_event after server startup will
have created=now(), whereas the next ones (FLUSH LOGS, auto rotation)
will have created=0. Before this, it was always now().
This way, slaves >=4.0.14 will know when they must
drop stale temp tables or not.
sql/log_event.h:
An explanation.
sql/sql_class.h:
Prototype change (see log.cc).
Prevent the InnoDB main thread from hogging CPU if a table lingers in the background drop queue (though it is essentially a bug if a table end up there at all)
innobase/srv/srv0srv.c:
Prevent the InnoDB main thread from hogging CPU if a table lingers in the background drop queue (though it is essentially a bug if a table end up there at all)