(back-port to 4.0)
Socket timeouts in client library were used only on Windows.
Additionally, in 4.0 write operations erroneously set read timeout.
The solution is to use socket timeouts in client library on all
systems were they are supported, and to differentiate between read
and write timeouts.
No test case is provided because it is impossible to simulate network
failure in current test suite.
include/violite.h:
Add argument to vio_timeout() to determine which timeout should be set:
for read (false) or for write (true).
libmysqld/lib_vio.c:
Add argument to vio_timeout() to determine which timeout should be set:
for read (false) or for write (true).
sql/net_serv.cc:
Add argument to vio_timeout() to determine which timeout should be set:
for read (false) or for write (true).
vio/viosocket.c:
Add argument to vio_timeout() to determine which timeout should be set:
for read (false) or for write (true).
Implement socket timeouts on POSIX systems.
The previous bug fix didn't work when using partial keys.
Don't use GNUC min/max operations are they are depricated.
Fixed valgrind warning
BitKeeper/etc/ignore:
Added */.libs/*
include/my_global.h:
Don't use GNUC min/max operations are they are depricated
myisam/mi_rkey.c:
Better bug fix for #14400 "Query joins wrong rows from table which is subject of "concurrent insert""
The previous bug fix didn't work when using partial keys.
myisam/mi_test_all.res:
Updated results to match mi_test_all.sh
myisam/mi_test_all.sh:
Removed confusing warning
mysql-test/r/myisam.result:
Added test case for #14400
mysql-test/t/myisam.test:
Added test case for #14400
sql/sql_select.cc:
Fixed valgrind warning (in field_string::val_int())
Man page for mysqld command move to section 8 (bug#21220)
configure.in:
Man page for mysqld command move to section 8 (bug#21220)
man/Makefile.am:
Man page for mysqld command move to section 8 (bug#21220)
Man page for "mysqld" command move to section 8 (bug#21220)
scripts/make_binary_distribution.sh:
Man page for "mysqld" command move to section 8 (bug#21220)
Filter out strange control characters, messes up logs
netware/BUILD/mwasmnlm:
Filter out strange control characters, messes up logs
netware/BUILD/mwccnlm:
Filter out strange control characters, messes up logs
netware/BUILD/mwldnlm:
Filter out strange control characters, messes up logs
On exactly-sized Strings, the String::c_ptr() function peeked beyond the
end of the buffer, possibly into unititialized space to see whether the
buffer was NUL-terminated.
In a place that did peek improperly, we now use a c_ptr_safe() function,
which doesn't peek where it shouldn't.
client/sql_string.h:
Back-port String::c_ptr_safe().
sql/item_func.h:
Describe side-effect behavior.
sql/item_strfunc.cc:
Use the "_safe" version of c_ptr to avoid looking for a terminating
NUL character outside the initialized memory area. Valgrind hates it
when one does that, and it theoretically could lead to a SEGV.
sql/sql_string.h:
Back-port String::c_ptr_safe().
It was possible that fetching a record by an exact key value
(including the record pointer) could return a record with a
different key value. This happened only if a concurrent insert
added a record with the searched key value after the fetching
statement locked the table for read.
The search succeded on the key value, but the record was
rejected as it was past the file length that was remembered
at start of the fetching statement. With other words it was
rejected as being a concurrently inserted record.
The action to recover from this problem was to fetch the
record that is pointed at by the next key of the index.
This was repeated until a record below the file length was
found.
I do now avoid this loop if an exact match was searched.
If this match is beyond the file length, it is now treated
as "key not found". There cannot be another key with the
same record pointer.
myisam/mi_rkey.c:
Bug#14400 - Query joins wrong rows from table which is subject of "concurrent insert"
Added a check for exact key match before searching for
the next key that was not concurrently inserted. If an
exact key match finds a concurrently inserted row, this
must be treated as "key not found".
sql/sql_class.cc:
Bug#14400 - Query joins wrong rows from table which is subject of "concurrent insert"
Fixed some DBUG_ENTER strings.
For compatibility, don't use {..,..} in pattern matching
make_binary_distribution.sh:
Added .dylib and .sl as shared library extensions
scripts/make_binary_distribution.sh:
Added .dylib and .sl as shared library extensions
scripts/make_sharedlib_distribution.sh:
For compatibility, don't use {..,..} in pattern matching
mysql-test/r/func_str.result:
Fix for bug #12728: Very strange behaviour of ELT
- test case
mysql-test/t/func_str.test:
Fix for bug #12728: Very strange behaviour of ELT
- test result
sql/item_strfunc.cc:
Fix for bug #12728: Very strange behaviour of ELT
- Item_func_elt::eq() introduced: check 'item' member as well
(to distinguish for instance elt(1, 'a', 'b') and elt(2, 'a', 'b')
sql/item_strfunc.h:
Fix for bug #12728: Very strange behaviour of ELT
- Item_func_elt::eq() introduced: check 'item' member as well
(to distinguish for instance elt(1, 'a', 'b') and elt(2, 'a', 'b')
Change mode to -rw-rw-r--
dbug_add_tags.pl:
Change mode to -rwxrwxr--
dbug/dbug_add_tags.pl:
Change mode to -rwxrwxr--
myisammrg/myrg_range.c:
Change mode to -rw-rw-r--
mysql-test/r/innodb_handler.result:
Change mode to -rw-rw-r--
mysql-test/r/repair.result:
Change mode to -rw-rw-r--
mysql-test/std_data/master-bin.001:
Change mode to -rw-rw-r--
mysql-test/std_data/trunc_binlog.001:
Change mode to -rw-rw-r--
mysql-test/t/bulk_replace.test:
Change mode to -rw-rw-r--
mysql-test/t/create_select_tmp.test:
Change mode to -rw-rw-r--
mysql-test/t/ctype_tis620.test:
Change mode to -rw-rw-r--
mysql-test/t/handler.test:
Change mode to -rw-rw-r--
mysql-test/t/innodb_handler.test:
Change mode to -rw-rw-r--
mysql-test/t/mix_innodb_myisam_binlog-master.opt:
Change mode to -rw-rw-r--
mysql-test/t/repair.test:
Change mode to -rw-rw-r--
mysql-test/t/rpl_commit_after_flush.test:
Change mode to -rw-rw-r--
mysql-test/t/rpl_free_items-slave.opt:
Change mode to -rw-rw-r--
mysql-test/t/rpl_free_items.test:
Change mode to -rw-rw-r--
scripts/mysql_secure_installation.sh:
Change mode to -rw-rw-r--
sql/sql_handler.cc:
Change mode to -rw-rw-r--
support-files/mysql-multi.server.sh:
Change mode to -rw-rw-r--
code. (Bug #13621)
configure.in:
Test whether atomic_add() and atomic_sub() are available in C++
code, since that is primarily where we will be using them.
Whenever 'myisamchk' needed to recreate a table,
the auto increment information was lost.
Now the forgotten element of the table creation
information is set correctly.
myisam/mi_check.c:
Bug#10405 - myisamchk damages auto_increment columns when changing character set
Added some DBUG statements.
Enabled 'with_auto_increment' in 'create_info'
when recreating a table.
mysql-test/mysql-test-run.sh:
Make "mysql-test-run.sh" accept (and ignore) the options "--with-ndbcluster"
and "--with-ndbcluster-only".
This is necessary because newer build tools will issue them, and the test
script should tolerate that.
Backport from 5.1 (Tomas Ulin, 2006-01-17)
Changed web address order.mysql.com to shop.mysql.com
netware/mysql_install_db.c:
Changed web address order.mysql.com to shop.mysql.com
Docs/MySQLEULA.txt:
Changed web address order.mysql.com to shop.mysql.com
scripts/mysql_install_db.sh:
Changed web address order.mysql.com to shop.mysql.com
mysql-test/mysql-test-run.sh:
Add a "--comment=<string>" option, to get it logged when the test is run.
The purpose is to allow a better analysis when generating the status page
("gen-build-status-page").
See "Do-compile" for how it is used.
Bug#16780: Extend port range to make space for 5.1 NDBCLUSTER_PORT_SLAVE
mysql-test/mysql-test-run.sh:
Bug#16780: Extend port range to make space for 5.1 NDBCLUSTER_PORT_SLAVE
When setup_fields() function finds field named '*' it expands it to the list
of all table fields. It does so by checking that the first char of
field_name is '*', but it doesn't checks that the '* is the only char.
Due to this, when updating table with a field named like '*name', such field
is wrongly treated as '*' and expanded. This leads to making list of fields
to update being longer than list of the new values. Later, the fill_record()
function crashes by dereferencing null when there is left fields to update,
but no more values.
Added check in the setup_fields() function which ensures that the field
expanding will be done only when '*' is the only char in the field name.
mysql-test/t/update.test:
Added test case for bug#16510: Updating field named like '*name' caused server crash
mysql-test/r/update.result:
Added test case for bug#16510: Updating field named like '*name' caused server crash
sql/sql_base.cc:
Fixed bug #16510: Updating field named like '*name' caused server crash.
Added check in the setup_fields() function which ensures that the field
expanding will be done only when '*' is the only char in the field name.
After-fix optimizations proposed and finally
implemented by Monty.
mysql-test/r/lock.result:
BUG#5390 - problems with merge tables
After-fix optimizations proposed and finally
implemented by Monty.
Additional test results.
mysql-test/t/lock.test:
BUG#5390 - problems with merge tables
After-fix optimizations proposed and finally
implemented by Monty.
Additional tests.
sql/lock.cc:
BUG#5390 - problems with merge tables
After-fix optimizations proposed and finally
implemented by Monty.
get_lock_data() gets a flag for storing the lock
positions in the new TABLE elements.
mysql_lock_remove() can now remove a lock faster
and more precisely as it has needed info in TABLE now.
mysql_unlock_read_tables() and mysql_lock_merge() must
now adjust the new elements of TABLE when modifying locks.
mysql_lock_have_duplicate() can now work faster on
the existing lock as the positions in the lock
arrays are known for each table.
get_lock_data() assigns the new TABLE elements
on request of the new flag.
sql/table.h:
BUG#5390 - problems with merge tables
After-fix optimizations proposed and finally
implemented by Monty.
Additional elements of TABLE.
Copyright string fixes (bug#16106)
extra/comp_err.c:
Ensure that the license spelling is as expected by the "mysql_copyright" tool.
(bug#16106)
scripts/mysqld_multi.sh:
The "mysql_copyright" tool will not change non-C files, so do not mention the license.
(bug#16106)
Changes to Netware specific mysqld_safe.c
include/config-netware.h:
NetWare specific change to increase thread stack size.
innobase/os/os0thread.c:
NetWare specific change to increase thread stack size.
netware/mysqld_safe.c:
NetWare specific change to make multiple mysqld_safe instances
work when called through a NCF file.
sql/mysqld.cc:
NetWare specific change to increase thread stack size.