client/mysqlbinlog.cc:
Ensure that errors are returned to upper levels instead of just doing 'exit/die' in sub function.
sql/handler.h:
Indentation cleanup
sql/sql_insert.cc:
Indentation cleanup
Allow always DROPping of a table which is only referenced by FOREIGN KEY constraints from the same table
Many files:
Do not let REPLACE to perform internally an UPDATE if the table is referenced by a FOREIGN KEY: the manual says that REPLACE must resolve a duplicate key error semantically with DELETE(s) + INSERT, and not by an UPDATE; the internal update caused foreign key checks and cascaded operations to behave in a semantically wrong way
sql/ha_innodb.cc:
Do not let REPLACE to perform internally an UPDATE if the table is referenced by a FOREIGN KEY: the manual says that REPLACE must resolve a duplicate key error semantically with DELETE(s) + INSERT, and not by an UPDATE; the internal update caused foreign key checks and cascaded operations to behave in a semantically wrong way
sql/sql_insert.cc:
Do not let REPLACE to perform internally an UPDATE if the table is referenced by a FOREIGN KEY: the manual says that REPLACE must resolve a duplicate key error semantically with DELETE(s) + INSERT, and not by an UPDATE; the internal update caused foreign key checks and cascaded operations to behave in a semantically wrong way
sql/ha_innodb.h:
Do not let REPLACE to perform internally an UPDATE if the table is referenced by a FOREIGN KEY: the manual says that REPLACE must resolve a duplicate key error semantically with DELETE(s) + INSERT, and not by an UPDATE; the internal update caused foreign key checks and cascaded operations to behave in a semantically wrong way
sql/handler.h:
Do not let REPLACE to perform internally an UPDATE if the table is referenced by a FOREIGN KEY: the manual says that REPLACE must resolve a duplicate key error semantically with DELETE(s) + INSERT, and not by an UPDATE; the internal update caused foreign key checks and cascaded operations to behave in a semantically wrong way
innobase/dict/dict0dict.c:
Do not let REPLACE to perform internally an UPDATE if the table is referenced by a FOREIGN KEY: the manual says that REPLACE must resolve a duplicate key error semantically with DELETE(s) + INSERT, and not by an UPDATE; the internal update caused foreign key checks and cascaded operations to behave in a semantically wrong way
innobase/include/dict0dict.h:
Do not let REPLACE to perform internally an UPDATE if the table is referenced by a FOREIGN KEY: the manual says that REPLACE must resolve a duplicate key error semantically with DELETE(s) + INSERT, and not by an UPDATE; the internal update caused foreign key checks and cascaded operations to behave in a semantically wrong way
innobase/row/row0mysql.c:
Allow always DROPping of a table which is only referenced by FOREIGN KEY constraints from the same table
Fix crash in InnoDB RENAME TABLE if 'databasename/tablename' is shorter than 5 characters (Bug #2689); reported by Sergey Petrunia
innobase/row/row0mysql.c:
Fix crash in InnoDB RENAME TABLE if 'databasename/tablename' is shorter than 5 characters (Bug #2689); reported by Sergey Petrunia
Fix bug #2167: generate foreign key id's locally for each table, in the form databasename/tablename_ibfk_number; if the user gives the constraint name explicitly remember it; these changes should ensure that foreign key id's in a slave are the same as in the master, and DROP FOREIGN KEY does not break replication
sync0sync.c:
UNIV_SYNC_DEBUG caused assertion in the creation of the doublewrite buffer, if we do not allow thousands of latches per thread
innobase/dict/dict0crea.c:
Fix bug #2167: generate foreign key id's locally for each table, in the form databasename/tablename_ibfk_number; if the user gives the constraint name explicitly remember it; these changes should ensure that foreign key id's in a slave are the same as in the master, and DROP FOREIGN KEY does not break replication
innobase/dict/dict0dict.c:
Fix bug #2167: generate foreign key id's locally for each table, in the form databasename/tablename_ibfk_number; if the user gives the constraint name explicitly remember it; these changes should ensure that foreign key id's in a slave are the same as in the master, and DROP FOREIGN KEY does not break replication
innobase/include/dict0crea.h:
Fix bug #2167: generate foreign key id's locally for each table, in the form databasename/tablename_ibfk_number; if the user gives the constraint name explicitly remember it; these changes should ensure that foreign key id's in a slave are the same as in the master, and DROP FOREIGN KEY does not break replication
innobase/include/dict0dict.h:
Fix bug #2167: generate foreign key id's locally for each table, in the form databasename/tablename_ibfk_number; if the user gives the constraint name explicitly remember it; these changes should ensure that foreign key id's in a slave are the same as in the master, and DROP FOREIGN KEY does not break replication
innobase/include/ut0mem.h:
Fix bug #2167: generate foreign key id's locally for each table, in the form databasename/tablename_ibfk_number; if the user gives the constraint name explicitly remember it; these changes should ensure that foreign key id's in a slave are the same as in the master, and DROP FOREIGN KEY does not break replication
innobase/row/row0mysql.c:
Fix bug #2167: generate foreign key id's locally for each table, in the form databasename/tablename_ibfk_number; if the user gives the constraint name explicitly remember it; these changes should ensure that foreign key id's in a slave are the same as in the master, and DROP FOREIGN KEY does not break replication
innobase/sync/sync0sync.c:
UNIV_SYNC_DEBUG caused assertion in the creation of the doublewrite buffer, if we do not allow thousands of latches per thread
innobase/ut/ut0mem.c:
Fix bug #2167: generate foreign key id's locally for each table, in the form databasename/tablename_ibfk_number; if the user gives the constraint name explicitly remember it; these changes should ensure that foreign key id's in a slave are the same as in the master, and DROP FOREIGN KEY does not break replication
If AUTOCOMMIT=1, then we do not need to make a plain SELECT set shared locks even on the SERIALIZABLE isolation level, because we know the transaction is read-only: a read-only transaction can always be performed on the REPEATABLE READ level, and that does not endanger the serializability
sql/ha_innodb.cc:
If AUTOCOMMIT=1, then we do not need to make a plain SELECT set shared locks even on the SERIALIZABLE isolation level, because we know the transaction is read-only: a read-only transaction can always be performed on the REPEATABLE READ level, and that does not endanger the serializability
client/mysqlbinlog.cc:
fixed bug #1378 "mysqlbinlog for remote host is broken"
by using shared part of code for local and remote variant
(function process_event)
mysql-test/r/mysqlbinlog.result:
fixed results for remote variant
(they are the same as for local now)
mysql-test/t/mysqlbinlog.test:
discarded note 'V. Vagin should ...'
because V.Vagin done
sql/log_event.cc:
added special local_fname flag to Load_log_event for
using in Load_log_event::check_fname_outside_temp_buf
instead of ugly condition
sql/log_event.h:
added special local_fname flag to Load_log_event for
using in Load_log_event::check_fname_outside_temp_buf
instead of ugly condition
BitKeeper/etc/ignore:
auto-union
BitKeeper/etc/logging_ok:
auto-union
mysql-test/r/func_math.result:
Auto merged
mysql-test/t/func_math.test:
Auto merged
sql/item_func.cc:
Auto merged
BitKeeper/etc/logging_ok:
Logging to logging@openlogging.org accepted
mysql-test/r/alter_table.result:
Fix for bug #2628: test result fixed
mysql-test/t/alter_table.test:
Fix for bug #2628: test case added
sql/sql_table.cc:
Fix for bug #2628:
We need to take into account database name when checking if source and
destination table names are equal.
Note, that after merge to 4.0 we also need to check for
lower_case_table_names.
so it gets picked up by "make dist" and updated init_file test accordingly.
mysql-test/std_data/init_file.dat:
Rename: mysql-test/t/init_file.sql -> mysql-test/std_data/init_file.dat
mysql-test/t/init_file-master.opt:
- moved init file to std_data
mysql-test/t/init_file.test:
- updated info
DROP DATABASE now assumes RAID directories are in hex. (Bug #2627)
Don't increment 'select_full_range' and similar statistics for EXPLAIN queries. (Bug #2506)
Test in configure if pthread_key_delete() exists (to fix compile problem on SCO) (Bug #2461)
BUILD/compile-pentium-max:
Added --with-raid
configure.in:
Added testing of pthread_key_delete (to fix compile problem on SCO) (Bug #2461)
include/my_pthread.h:
Added testing of pthread_key_delete (to fix compile problem on SCO) (Bug #2461)
innobase/include/data0data.ic:
Added missing newline
mysql-test/r/raid.result:
Test of DROP DATABASE with RAID directories in hex
mysql-test/t/raid.test:
Test of DROP DATABASE with RAID directories in hex
sql/sql_db.cc:
DROP DATABASE could not drop databases with RAID tables that had
more than 9 RAID_CHUNKS because DROP DATABASE assumed raid tables where in decimal while the RAID CREATE code assumed directories was in hex.(Bug #2627)
sql/sql_select.cc:
Don't increment 'select_full_range' and similar statistics for EXPLAIN queries. (Bug #2506)
sql/sql_udf.cc:
mysqld crashed if mysql.func table didn't exists (Bug #2577)
"CC: ERROR File = item.h, Line = 401 The identifier strtoll is undefined"
(compilation failure on SGI IRIX + MIPSPro 7.41)
Compilation script implemented.
Tested in 32 and 64 bit mode
configure.in:
Fix for bug #2214: we should not reset CXXFLAGS on IRIX for build
script to work
(fixed bug #2526 "--init-file crashes MySQL if contains large select")
Such checking usually works in send_ok, send_eof, but in this case large
result causes interim flushing.
sql/sql_class.cc:
added checking for bootstrap in select_send::send_data
- more flexible removal of old cruft before creating the new binary
distribution
- more flexible globbing for the binary tarball (required for QNX, where
the file name ends on *.tgz instead of .tar.gz due to file name lenght
restrictions
Build-tools/Do-compile:
Some small enhancements:
- more flexible removal of old cruft before creating the new binary
distribution
- more flexible globbing for the binary tarball (required for QNX, where
the file name ends on *.tgz instead of .tar.gz due to file name lenght
restrictions
mysql-test/r/ctype_tis620.result:
Cleanup test
mysql-test/r/range.result:
Test problem with range optimization over overlapping ranges (#2448)
mysql-test/t/ctype_tis620.test:
Cleanup test
mysql-test/t/range.test:
Test problem with range optimization over overlapping ranges (#2448)
sql/mysqld.cc:
Remove debug statement
strings/ctype-tis620.c:
est problem with range optimization over overlapping ranges (#2448)
binary distribution and Server RPM
myisam/myisam_ftdump.c:
Rename: myisam/ft_dump.c -> myisam/myisam_ftdump.c
BitKeeper/etc/ignore:
Added myisam/myisam_ftdump to the ignore list
myisam/Makefile.am:
- renamed ft_dump to myisam_ftdump and added it to bin_PROGRAMS
scripts/make_binary_distribution.sh:
- added myisam_ftdump to the binary distribution
support-files/mysql.spec.sh:
- added myisam_ftdump to the Server package
Now one need only SELECT privilege for tables that are only read in
UPDATE statements with many tables. (Bug #2377).
sql/sql_acl.cc:
Comment cleanup
sql/sql_parse.cc:
Merged duplicate code.
Removed some outdated 'tables->db' tests.
Check privileges for multi-updates properly (Bug #2377)
sql/sql_show.cc:
Remove disabled code
sql/sql_update.cc:
Ensure that privileges are tested properly for multi-table-updates
tests/grant.pl:
Added more tests
tests/grant.res:
updated results
Marked --bdb-no-sync as deprecated
Added --sync-bdb-logs / --disable-sync-bdb-logs as a synonym / alternative.
mysys/my_getopt.c:
Changed my_getopt so that disabled_my_option can be used for
GET_BOOL type options too.
sql/mysql_priv.h:
Added opt_sync_frm
sql/mysqld.cc:
Added sync-frm / disable-sync-frm to mysqld, to be able to disable
use of my_sync() (fsync()). This defaults to behavior in 4.0.16
and before, where creating of new tables is quicker than currently.
This option is enabled by default.
Marked --bdb-no-sync as deprecated option and added another one,
--sync-bdb-logs besides. --bdb-no-sync and --disabled-sync-bdb-logs
are now synonyms.
sql/unireg.cc:
One can disable my_sync() by using --disable-sync-frm
BitKeeper/etc/logging_ok:
Logging to logging@openlogging.org accepted