BitKeeper/etc/ignore:
added scripts/make_sharedlib_distribution
mysql-test/r/variables.result:
Add test for enum_system_variable=NULL
mysql-test/t/variables.test:
Add test for enum_system_variable=NULL
sql/set_var.cc:
Fixed bug in SET enum_system_variable=NULL
Moved some array elements to get result sorted
query_alloc_block_size, query_prealloc_size, range_alloc_block_size,transaction_alloc_block_size and transaction_prealloc_size
Add more checks for "out of memory" detection in range optimization
configure.in:
Added detection of mallinfo
mysql-test/r/variables.result:
Test of new variables
mysql-test/t/variables.test:
Test of new variables
sql/ha_berkeley.cc:
Use init_sql_alloc instead of init_alloc_root for better OOM detection
sql/log_event.cc:
Add new user variables for tuning memory usage
sql/mysql_priv.h:
Add new user variables for tuning memory usage
sql/mysqld.cc:
Add new user variables for tuning memory usage
sql/opt_ft.cc:
Add new user variables for tuning memory usage
sql/opt_ft.h:
Add new user variables for tuning memory usage
sql/opt_range.cc:
Add new user variables for tuning memory usage
Add more checks for out of memory conditions
sql/opt_range.h:
Add new user variables for tuning memory usage
sql/set_var.cc:
Add new user variables for tuning memory usage
sql/sql_acl.cc:
Add new user variables for tuning memory usage
sql/sql_class.h:
Add new user variables for tuning memory usage
sql/sql_delete.cc:
Add new user variables for tuning memory usage
sql/sql_parse.cc:
Add new user variables for tuning memory usage
sql/sql_select.cc:
Add new user variables for tuning memory usage
sql/sql_test.cc:
Add information about memory useage if system supports mallinfo()
sql/sql_udf.cc:
Add new user variables for tuning memory usage
sql/sql_update.cc:
Add new user variables for tuning memory usage
sql/table.cc:
Add new user variables for tuning memory usage
Rotate_log_event::exec_event() believed that the relay log was corrupted. Fixed it
by moving the test for corruption to Start_log_event::exec_event().
Changed Rotate_log_event::exec_event() to not increment positions when the
event is seen in the middle of a transaction.
I did a separate commit in 4.1 (so this should not be merged to 4.0) because
code is a bit different in 4.1.
A test to see if the slave detects when the master died while writing a
transaction to the binlog (uses a forged truncated binlog I made).
sql/log_event.cc:
When the I/O thread was stopped while copying a long transaction, and restarted,
Rotate_log_event::exec_event() believed that the relay log was corrupted. Fixed it
by moving the test for corruption to Start_log_event::exec_event().
Changed Rotate_log_event::exec_event() to not increment positions when the
event is seen in the middle of a transaction.
Use forced close of socket to make mysqld shutdown faster when used under valgrind
mysql-test/mysql-test-run.sh:
Added --skip-bdb for valgrind
mysql-test/r/user_var.result:
Extended test for user variables
mysql-test/t/user_var.test:
Extended test for user variables
sql/item_func.cc:
Optimized code for setting user variables with := and fixed some bugs in old code
sql/item_func.h:
Optimized code for setting user variables
sql/log.cc:
Fixed comments
sql/mysqld.cc:
Use forced close of socket to make mysqld shutdown faster when used under valgrind
sql/sql_class.h:
Optimized code for setting user variables
(a missing synchronization in the test)
mysql-test/r/drop_temp_table.result:
result update
mysql-test/t/drop_temp_table.test:
synchronize to be sure that the ending connection has finished binlogging.
Add quoting for use `database` for mysqlbinlog
Removed test ins0000001
Add support for --replace for exec in mysqltest
Don't refer to install dir in mysqlbinlog.result
BitKeeper/deleted/.del-ins000001.result~f45c599efdf8352b:
Delete: mysql-test/r/ins000001.result
BitKeeper/deleted/.del-ins000001.test~2428ee5c9b1bc483:
Delete: mysql-test/t/ins000001.test
client/mysqlbinlog.cc:
Removed random chars after filename for LOAD DATA INFILE
client/mysqltest.c:
Add support for --replace for 'exec'
mysql-test/r/drop_temp_table.result:
Updated results after quoting change
mysql-test/r/fulltext_multi.result:
Updated results after quoting change
mysql-test/r/fulltext_order_by.result:
Updated results after quoting change
mysql-test/r/insert.result:
New tests
mysql-test/r/insert_select.result:
Updated results after quoting change
mysql-test/r/mix_innodb_myisam_binlog.result:
Updated results after quoting change
mysql-test/r/mysqlbinlog.result:
Updated results after quoting change
mysql-test/r/rpl_log.result:
Updated results after quoting change
mysql-test/t/fulltext_multi.test:
Remove 'use'
mysql-test/t/fulltext_order_by.test:
Remove 'use'
mysql-test/t/insert.test:
Merge test with ins0000001.test
mysql-test/t/mysqlbinlog.test:
Don't refer to install dir in result
sql/log_event.cc:
Add quoting for use `database` for mysqlbinlog
support-files/mysql.server.sh:
Move pid_file test after arguments have been parsed
it's just backquoting the db's and table's names
when writing DROP TEMPORARY TABLE to the binlog when a connection ends.
A testcase for this.
sql/sql_base.cc:
backquote db and table name when writing DROP TEMPORARY TABLE to the binlog
when a connection ends.
"If LOAD DATA INFILE 'small_file' fails on master, slave leaves temp files"
(the bug is in the master)
mysql-test/r/rpl_loaddata.result:
result update
mysql-test/std_data/rpl_loaddata2.dat:
change to introduce a unique key violation
mysql-test/t/rpl_loaddata.test:
testcase for bug#1391.
sql/sql_load.cc:
fix for bug#1391:
for a small file, we had in the binlog only the Create_file, not the Delete_file
(the Create_file was written when the READ_INFO was destroyed).
Particularly for BUG#1340 mysqlbinlog coredumps when reading Exec
event without seeing Create_file event before
mysql-test/mysql-test-run.sh:
Now mysqlbinlog will use proper temporary directory
(kind request from the Novell team).
Note that old chmods in rpl_rotate_logs remain.
mysql-test/r/rpl000009.result:
result update
mysql-test/t/rpl000009.test:
removing my chmods so that the test can be run on non-Unix platforms.
optimiser bug patch.
mysql-test/r/distinct.result:
test results reverted
mysql-test/r/order_by.result:
test results reverted
sql/sql_select.cc:
found_constrain renamed to found_constraint
We don't perform full cartesian product in
case when JOIN BUFFER is used: it was taken
into account.
s->read_time may contain range index read time,
so to get full table scan time is necessary to
call s->table->file->scan_time().
to estimate correctly cost of full table scan we should take into
account rows read and skipped on each iteration.
mysql-test/r/distinct.result:
Fixed test suite: now full scan is used
less often
mysql-test/r/join_outer.result:
Fixed test suite: now full scan is used
less often
mysql-test/r/select_safe.result:
Fixed test suite: now full scan is used
less often
removed server options
BitKeeper/deleted/.del-query_cache-master.opt~c4daeaa5e40881:
Delete: mysql-test/t/query_cache-master.opt
mysql-test/r/query_cache.result:
test for BUG#988
mysql-test/t/query_cache.test:
test for BUG#988
removed server options
sql/sql_cache.cc:
fixed moving query block with pointers to same table in it
Now LOAD DATA FROM MASTER does not drop the database, instead it only tries to
create it, and drops/creates table-by-table.
* replicate_wild_ignore_table='db1.%' is now considered as "ignore the 'db1'
database as a whole", as it already works for CREATE DATABASE and DROP DATABASE.
mysql-test/r/rpl000009.result:
result update
mysql-test/t/rpl000009.test:
test that LOAD DATA FROM MASTER does not drop databases,
but rather table by table, thus preserving non-replicated tables.
Test that LOAD DATA FROM MASTER reports the error when a table could not
be dropped (system's "permission denied" for example).
Test that LOAD TABLE FROM MASTER reports the error when the table already exists.
sql/repl_failsafe.cc:
* replicate_wild_ignore_table='db1.%' is now considered as "ignore the 'db1'
database as a whole", as it already works for CREATE DATABASE and DROP DATABASE.
* If a db matches replicate_*_db rules, we don't drop/recreate it because this
could drop some tables in this db which could be slave-specific. Instead,
we do a CREATE DATABASE IF EXISTS, and we will drop each table which has
an equivalent on the master, table-by-table.
sql/slave.cc:
New argument to drop the table in create_table_from_dump()
(LOAD TABLE/DATA FROM MASTER are the only places where this function is used).
This is needed because LOAD DATA FROM MASTER does not drop the database anymore.
The behaviour when the table exists is unchanged: LOAD DATA silently replaces
the table, LOAD TABLE gives error.
sql/slave.h:
new argument to drop the table in fetch_master_table
sql/sql_parse.cc:
do not drop the table in LOAD TABLE FROM MASTER (this behaviour is already
true; but changes in LOAD DATA FROM MASTER made the argument needed).
Fix bug in SHOW GRANTS when there is a column privilege but no table privilege
include/mysql.h:
Make server_inited external
libmysqld/libmysqld.c:
Remove reference to (wrong) external variable
mysql-test/r/grant.result:
Fixed up grant test to not user 'user1' or 'user2'
Check for bug in SHOW GRANTS when there is a column privilege but no table privilege
mysql-test/r/mix_innodb_myisam_binlog.result:
Change to use tables t1 and t2
mysql-test/t/grant.test:
Fixed up grant test to not user 'user1' or 'user2'
Check for bug in SHOW GRANTS when there is a column privilege but no table privilege
mysql-test/t/mix_innodb_myisam_binlog.test:
Change to use tables t1 and t2
sql/sql_acl.cc:
Fix bug in SHOW GRANTS when there is a column privilege but no table privilege
sql/sql_parse.cc:
Use HAVE_REPLICATION instead of EMBEDDED_LIBRARY
myisam/mi_locking.c:
Added DBUG info
myisam/mi_open.c:
Added DBUG info
myisam/mi_update.c:
More comments
Fixed rare bug in MYISAM introduced in 4.0.3 where the index file header
was not updated directly after an UPDATE of split dynamic rows.
mysql-test/r/myisam.result:
Added test case for MyISAM UPDATE bug
mysql-test/t/myisam.test:
Added test case for MyISAM UPDATE bug
Changes like this should be done to 4.1, not to a stable release
mysql-test/r/lowercase_table.result:
Revert change of lower-case-table handling
mysql-test/t/lowercase_table.test:
Revert change of lower-case-table handling
sql/sql_class.cc:
Revert change of lower-case-table handling
sql/sql_class.h:
Revert change of lower-case-table handling
sql/sql_parse.cc:
Revert change of lower-case-table handling
sql/sql_table.cc:
Revert change of lower-case-table handling
sql/sql_yacc.yy:
Revert change of lower-case-table handling
Add pack_bits to pack_reclength for dynamic rows. This solves buffer a possible buffer overflow on update.
(This will probably solve bug #563)
Fix test for available file descriptors in mysqltest
Fixed core dump bug in replication tests when running without transactional table support
acconfig.h:
Add detection of in_addr_t
acinclude.m4:
Add detection of in_addr_t
configure.in:
Add detection of in_addr_t
extra/my_print_defaults.c:
Cleanup
extra/resolveip.c:
Add detection of in_addr_t
libmysql/dll.c:
Fixed C++ commments
myisam/mi_dynrec.c:
Add ASSERT if allocated record length is to small
myisam/mi_open.c:
Add pack_bits to pack_reclength for dynamic rows. This solves buffer a possible buffer overflow on update.
myisam/mi_test_all.sh:
Added valgrind option to make it easier to verify tests
mysql-test/include/check_var_limit.inc:
Fix test for available file descriptors
mysql-test/r/myisam.result:
More tests
mysql-test/t/myisam.test:
More tests
mysql-test/t/query_cache_merge.test:
Fix test for available file descriptors
mysys/default.c:
Cleanup
mysys/my_pthread.c:
Remove C++ comments
sql/log.cc:
Code cleanup
Fixed core dump bug in replication tests when running without transactional table support.
Change metadata info so that that MIN() and code MAX() reports that they can return NULL. Bug #324
client/mysql.cc:
Add column names for metadata when running with -T
mysql-test/r/show_check.result:
test case for bug fix
mysql-test/t/show_check.test:
test case for bug fix
sql/item_sum.cc:
Change metadata info so that that MIN() and code MAX() reports that they can return NULL. Bug #324
sql/sql_load.cc:
Removed not needed line
Added TCP/IP read/write timeout for windows
Check on windows if second server is started with same TCP/IP port
BitKeeper/deleted/.del-have_openssl_2.inc~8c9f1a45676b698f:
Delete: mysql-test/include/have_openssl_2.inc
BitKeeper/deleted/.del-have_openssl_2.require~53bbdfc136fb514:
Delete: mysql-test/r/have_openssl_2.require
BitKeeper/deleted/.del-openssl_2.test~f2dfa927f19d14f8:
Delete: mysql-test/t/openssl_2.test
BitKeeper/etc/ignore:
added libmysql/vio_priv.h libmysql_r/vio_priv.h
client/mysql.cc:
vio ssl structure renames
include/violite.h:
Cleanup violite.h interface (move things to vio_priv.h)
libmysql/Makefile.am:
Use vio_priv.h
libmysql/Makefile.shared:
Use vio_priv.h
libmysqld/lib_vio.c:
Added timeout for windows
mysys/my_getopt.c:
Indentaion cleanup
sql/item_cmpfunc.cc:
Remove compiler warnings
sql/item_func.cc:
Remove compiler warnings
sql/mini_client.cc:
vio ssl structure renames
sql/mysqld.cc:
Check on windows if second server is started with same TCP/IP port
sql/net_serv.cc:
Add read/write timeouts for windows
sql/sql_acl.cc:
vio ssl structure renames
sql/sql_show.cc:
vio ssl structure renames
vio/vio.c:
Added timeouts for windows
vio/viosocket.c:
Added timeouts for windows
vio/viossl.c:
Added timeouts for windows
Cleaned up structure element names
vio/viosslfactories.c:
Added timeouts for windows
Cleaned up structure element names
Fixed deadlock bug when doing resize of key buffer while key buffer was in active use
myisam/mi_locking.c:
Better fix for myisamchk --sort-index on windows
mysql-test/r/symlink.result:
Update results
mysql-test/t/symlink.test:
Update results
mysys/mf_keycache.c:
Fixed deadlock bug when doing resize of key buffer while key buffer was in active use
sql/ha_myisam.cc:
simple optimization
sql/sql_show.cc:
Fixed theoretical buffer overrun
Reset variable properly before calling update_create_info()
mysql-test/r/func_test.result:
Auto merged
mysql-test/r/grant.result:
Auto merged
mysql-test/t/func_test.test:
Auto merged
mysql-test/t/grant.test:
Auto merged
sql/ha_innodb.cc:
Auto merged
sql/item_cmpfunc.cc:
Auto merged
sql/mysql_priv.h:
Auto merged
sql/sql_acl.cc:
Auto merged
sql/sql_class.h:
Auto merged
sql/sql_parse.cc:
Auto merged
sql/sql_table.cc:
Auto merged
sql/sql_yacc.yy:
Auto merged
fix for BUG#1113 "INSERT into non-trans table SELECT ; ROLLBACK" does not send warning"
and
fix for BUG#873 "In transaction, INSERT to non-trans table is written too early to binlog".
Now we don't always write the non-trans update immediately to the binlog;
if there is something in the binlog cache we write it to the binlog cache
(because the non-trans update could depend on a trans table which was modified
earlier in the transaction); then in case of ROLLBACK, we write the binlog
cache to the binlog, wrapped with BEGIN/ROLLBACK.
This guarantees that the slave does the same updates.
For ROLLBACK TO SAVEPOINT: when we execute a SAVEPOINT command we write it
to the binlog cache. At ROLLBACK TO SAVEPOINT, if some non-trans table was updated,
we write ROLLBACK TO SAVEPOINT to the binlog cache; when the transaction
terminates (COMMIT/ROLLBACK), the binlog cache will be flushed to the binlog
(because of the non-trans update) so we'll have SAVEPOINT and ROLLBACK TO
SAVEPOINT in the binlog.
Apart from this rare case of updates of mixed table types in transaction, the
usual way is still clear the binlog cache at ROLLBACK, or chop it at
ROLLBACK TO SAVEPOINT (meaning the SAVEPOINT command is also chopped, which
is fine).
Note that BUG#873 encompasses subbugs 1) and 2) of BUG#333 "3 binlogging bugs when doing INSERT with mixed InnoDB/MyISAM".
client/mysqldump.c:
Minor edit: one CHANGE MASTER with 2 arguments instead of 2 CHANGE MASTER with one argument each.
mysql-test/r/rpl_loaddata.result:
result update
mysql-test/t/rpl_loaddata.test:
minor edit: simplifying the test.
sql/handler.cc:
Fix for BUG#873. See comments in code, and the description of the changeset.
sql/log.cc:
* Previously, if a query updated a non-transactional table we wrote it immediately
to the real binlog. This causes a bug when the update is done inside a transaction
and uses the content of an updated transactional table (because this makes
a wrong order of queries in the binlog). So if the binlog cache is not empty,
we write the query to the binlog cache; otherwise we can write it to the binlog.
* Previously, when we flushed the binlog cache to the binlog, we wrapped it
with BEGIN/COMMIT. Now it's also possible to wrap it with BEGIN/ROLLBACK, to handle
transactions which update both transactional and non-transactional tables.
sql/log_event.cc:
The slave thread can leave a transaction if COMMIT or if ROLLBACK.
sql/sql_class.h:
prototype
sql/sql_insert.cc:
Fix for BUG#1113:
this was because the INSERT SELECT code did not set OPTION_STATUS_NO_TRANS_UPDATE.
sql/sql_parse.cc:
Don't send ER_WARNING_NOT_COMPLETE_ROLLBACK if this is the SQL slave thread (see comments).
client/mysqltest.c:
Fix that LET can be used with queries that return multiple columns
libmysql/errmsg.c:
Extend socket name to 100 characters in error messages
libmysql/libmysql.c:
Reset some variables to make ensure that we can call mysql_server_init()/mysql_server_end() many times
mysql-test/mysql-test-run.sh:
Set open-files-limit to 1024
mysql-test/r/loaddata.result:
Add test case for LOAD DATA bug report (was not a bug)
mysql-test/r/query_cache.result:
Move test with many tables to separate test
mysql-test/r/select_safe.result:
Make test repeatable
mysql-test/t/loaddata.test:
Add test case for LOAD DATA bug report (was not a bug)
mysql-test/t/query_cache.test:
Move test with many tables to separate test
mysql-test/t/select_safe.test:
Make test repeatable
sql/field.cc:
Portability fix for gcc 3.3
sql/mysqld.cc:
Store in open_files_limit the true number of files we can open (if system supports it)
sql/sql_load.cc:
Safety fix