libmysqld/lib_sql.cc:
Fixed compilation error in embedded library (from last pull)
sql/field.cc:
Safer timestamp year checking (as 1969 can be in timestamp)
Make ENGINE= an alias for TYPE= (Compabiltiy with 4.1)
Fix when using symlinked data files and realpath() is not working
client/mysqltest.c:
Copied mysqltest from 4.1 and modified this to compile in 4.0
This was needed to get replace_columns to work.
include/my_sys.h:
Stop compiler warnings about alloca on freebsd
myisam/mi_check.c:
Fix when using symlinked data files and realpath() is not working
mysql-test/r/handler.result:
test engine=
mysql-test/r/rpl_max_relay_size.result:
Use replace_columns to replace some 'not constant' columns
mysql-test/r/rpl_rotate_logs.result:
Use replace_columns to replace some 'not constant' columns
mysql-test/r/rpl_trunc_binlog.result:
Use replace_columns to replace some 'not constant' columns
mysql-test/t/handler.test:
test engine=
mysql-test/t/rpl_log_pos.test:
Use replace_columns to replace some 'not constant' columns
mysql-test/t/rpl_max_relay_size.test:
Use replace_columns to replace some 'not constant' columns
mysql-test/t/rpl_rotate_logs.test:
Use replace_columns to replace some 'not constant' columns
mysql-test/t/rpl_trunc_binlog.test:
Use replace_columns to replace some 'not constant' columns
mysys/my_symlink.c:
More debugging
sql/lex.h:
Make ENGINE= an alias for TYPE=
sql/mysqld.cc:
Code cleanup
strings/strto.c:
Fix for True64
strings/strtoll.c:
Fix for True64
strings/strtoull.c:
Remove not needed include file
into mysql.com:/home/mysql_src/mysql-4.0
sql/sql_acl.cc:
Auto merged
sql/sql_base.cc:
Auto merged
sql/sql_class.h:
Auto merged
sql/sql_delete.cc:
Auto merged
sql/sql_insert.cc:
Auto merged
sql/sql_parse.cc:
Auto merged
sql/sql_table.cc:
Auto merged
sql/sql_update.cc:
Auto merged
"EE_ error codes (EE_DELETE, EE_WRITE) end up in the binlog, making slave stop".
The problem was that during execution of the command on the master, an error
can occur (for example, not space left on device, then mysqld waits and when
there is space it completes successfully: so finally it worked but the error
EE_WRITE remains in thd->net.last_errno and thd->net.last_error).
To know if finally the command succeeded, we test the 'error' variable in
every place, and if it shows no failure we reset thd->net.last_err* using
the function THD::clear_error() which is backported from 4.1.
A new test to see if now only real errors get to the binlog (note: the test
uses "rm").
Also a bit of memory free/alloc saving in log_event.cc (do not free the whole
mem_root after every query in the slave SQL thread: we can keep the initial
block of it; which will be freed when the thread terminates).
sql/log_event.cc:
In the slave SQL thread, it's a waste to free the initial block of the mem_root
after every query. We can instead keep it. It will be freed when the thread
terminates (in THD::~THD()).
sql/sql_acl.cc:
clear the error in thd->net.last_errno as there was no error
sql/sql_base.cc:
clear the error in thd->net.last_errno as there was no error
sql/sql_class.h:
Backport of THD::clear_error() from 4.1:
clears the error in thd->net.last_errno
sql/sql_db.cc:
clear the error in thd->net.last_errno as there was no error
sql/sql_delete.cc:
clear the error in thd->net.last_errno as there was no error
sql/sql_insert.cc:
clear the error in thd->net.last_errno as there was no error
sql/sql_parse.cc:
clear the error in thd->net.last_errno as there was no error
sql/sql_rename.cc:
clear the error in thd->net.last_errno as there was no error
sql/sql_table.cc:
clear the error in thd->net.last_errno as there was no error
sql/sql_update.cc:
clear the error in thd->net.last_errno as there was no error
myisam/mi_dbug.c:
Added comment to warn about probabably unimportant valgrind warning
sql/opt_range.cc:
Fixed bug in last push (did not fill max string properly with end space)
sql/sql_update.cc:
Initalize not initialized variable
Don't dump data for MRG_ISAM or MRG_MYISAM tables. (Bug #1846)
Ensure that 'lower_case_table_names' is always set on case insensitive file systems. (Bug #1812)
One can now configure MySQL as windows service as a normal user. (Bug #1802)
Database names is now compared with lower case in ON clause when lower_case_table_names is set. (Bug #1736)
IGNORE ... LINES option didn't work when used with fixed length rows. (Bug #1704)
Change INSERT DELAYED ... SELECT... to INSERT .... SELECT (Bug #1983)
Safety fix for service 'mysql start' (Bug #1815)
client/mysql.cc:
Extend max_allowed_packet to 2G (Bug #2105)
client/mysqldump.c:
Extend max_allowed_packet to 2G (Bug #2105)
Don't dump data for MRG_ISAM or MRG_MYISAM tables. (Bug #1846)
configure.in:
Test for file linux/config.h
include/my_global.h:
Portability fix (Bug #1924)
mysql-test/r/insert.result:
Update test results
mysql-test/r/loaddata.result:
Update test results
mysql-test/r/lowercase_table.result:
Update test results
mysql-test/t/insert.test:
Test INSERT ... DELAYED ... SELECT
mysql-test/t/loaddata.test:
Added test of LOAD DATA INFILE ... IGNORE # LINES for fixed size tables
mysql-test/t/lowercase_table.test:
Test mixed lower/uppercase database names
sql/item.cc:
Made function not inline (to make it easier to modify it without recompilation of all files)
sql/item.h:
Moved function to item.cc
sql/mysqld.cc:
Merge pidfile create code
Ensure that 'lower_case_table_names' is always set on case insensitive file systems. (Bug #1812)
sql/nt_servc.cc:
One can now configure MySQL as windows service as a normal user. (Bug #1802)
sql/sql_base.cc:
Database names is now compared with lower case in ON clause when lower_case_table_names is set. (Bug #1736)
sql/sql_class.h:
Fixed type
sql/sql_load.cc:
IGNORE ... LINES option didn't work when used with fixed length rows. (Bug #1704)
sql/sql_parse.cc:
Change INSERT DELAYED ... SELECT... to INSERT .... SELECT
strings/ctype-tis620.c:
Ensure that memory is freed properly (Partly becasue of bug #1770)
Bar should check the proposed patch in #1770 if we can use it
support-files/mysql.server.sh:
Safety fix (Bug #1815)
Simplification of the previous fix for multi-update/delete.
sql/sql_class.h:
Simplification of the previous fix for multi-update/delete.
sql/sql_update.cc:
Simplification of the previous fix for multi-update/delete.
sql/sql_delete.cc:
Simplification of the previous fix for multi-update/delete.
Fixed problem with char > 128 in QUOTE() function. (Bug #1868)
Disable creation of symlinks if my_disable_symlink is set
Fixed searching of TEXT with end space. (Bug #1651)
Fixed caching bug in multi-table-update where same table was used twice. (Bug #1711)
Fixed problem with UNIX_TIMESTAMP() for timestamps close to 0. (Bug #1998)
Fixed timestamp.test
include/my_base.h:
Add HA_END_SPACE_KEY to mark keys that has VARCHAR/TEXT fields.
myisam/mi_check.c:
Delete not used variable
myisam/mi_key.c:
Fix autoincrement for signed columns (Bug #1366). Patch by Holyfoot
myisam/mi_open.c:
Bug fix for future (doesn't affect current code)
myisam/mi_search.c:
Ignore end space for VARCHAR/TEXT columns
mysql-test/r/auto_increment.result:
Test auto_increment with signed numbers
mysql-test/r/binary.result:
Update results (old result was wrong)
mysql-test/r/func_str.result:
Added test of QUOTE()
mysql-test/r/func_time.result:
Add test of unix_timestamp()
mysql-test/r/have_met_timezone.require:
Fixed test
mysql-test/r/innodb.result:
Add test for InnoDB behaviour with TRUNCATE
mysql-test/r/multi_update.result:
Test of multi-update bug
mysql-test/r/symlink.result:
Test of ALTER TABLE and symlinks
mysql-test/r/timezone.result:
Test of from_unixtime()
mysql-test/r/truncate.result:
Test of truncate and auto_increment
mysql-test/r/type_blob.result:
Test of key search on TEXT/VARCHAR column with end space
mysql-test/t/auto_increment.test:
Test auto_increment with signed numbers
mysql-test/t/func_str.test:
Added test of QUOTE()
mysql-test/t/func_time.test:
Add test of unix_timestamp()
mysql-test/t/innodb.test:
Add test for InnoDB behaviour with TRUNCATE
mysql-test/t/multi_update.test:
Test of multi-update bug
mysql-test/t/symlink.test:
Test of ALTER TABLE and symlinks
mysql-test/t/timezone.test:
Test of from_unixtime()
mysql-test/t/truncate.test:
Test of truncate and auto_increment
mysql-test/t/type_blob.test:
Test of key search on TEXT/VARCHAR column with end space
mysys/my_symlink2.c:
Disable creation of symlinks if my_disable_symlink is set
sql/field.h:
Indentation cleanup
sql/ha_innodb.cc:
HA_PART_KEY -> HA_PART_KEY_SEG
sql/item_strfunc.cc:
Fixed problem with char > 128 in QUOTE() function. (Bug #1868)
sql/mysql_priv.h:
Make check_dup() external
sql/opt_range.cc:
Fixed searching of TEXT with end space. (Bug #1651)
sql/records.cc:
Fixed caching bug in multi-table-update where same table was used twice.
(Bug #1711)
sql/sql_acl.cc:
Reset ip and ip_mask if hostname is NULL
sql/sql_parse.cc:
Make check_dup() global
sql/sql_select.cc:
Fixed searching of TEXT with end space. (Bug #1651)
sql/sql_table.cc:
Fixed searching of TEXT with end space. (Bug #1651)
sql/sql_update.cc:
Fixed caching bug in multi-table-update where same table was used twice.
(Bug #1711)
sql/table.cc:
Fixed searching of TEXT with end space. (Bug #1651)
sql/table.h:
Fixed caching bug in multi-table-update where same table was used twice.
(Bug #1711)
sql/time.cc:
Fixed problem with UNIX_TIMESTAMP() for timestamps close to 0. (Bug #1998)
it happens because of the LEFT JOINT optimization in add_key_part()
This optimization does exactly the same in JOIN and in WHERE conditions
Not right.
I moved that optimization one level upper.
mysql-test/r/join_outer.result:
appropriate test result
mysql-test/t/join_outer.test:
test case
sql/sql_select.cc:
optimizing of the left_join now only for WHERE conditions
and for first table in list
"SHOW TABLE STATUS very slow w/large number of tables"
Replaced old algorithm which were used in my_dir() and stored
all information about directory entries in one chunk of memory
with new one which stores file names and MY_STAT structures in
separate memroot, so now we don't need to copy this data during
reallocation of dir_entry array.
include/my_dir.h:
Changed mystat member of FILEINFO structure to pointer since
this prevents unneeded memory allocation and initialization.
Added comment about new hidden members of MY_DIR structure.
mysys/my_lib.c:
Replaced old algorithm in my_dir() which stored all information
about directory entries in one chunk of memory with new one
which stores file names and MY_STAT structures in separate
memroot. Now we don't copy this data during reallocation of
array with FILEINFO structures.
Also tuned sizes of memory chunks during first-other
reallocations (we suppose that we either have < 100 files
in the directory or > 1000 of them).
sql/sql_show.cc:
Updated only place in code where mystat member
of FILEINFO structure is used.
Fixed a bug causing a crash for multi-update/multi-delete
with impossible where (bug #1860).
sql/sql_class.h:
Fixed a bug causing a crash for multi-update/multi-delete
with impossible where (bug #1860).
sql/sql_delete.cc:
Fixed a bug causing a crash for multi-update/multi-delete
with impossible where (bug #1860).
sql/sql_update.cc:
Fixed a bug causing a crash for multi-update/multi-delete
with impossible where (bug #1860).
mysql-test/t/multi_update.test:
Fixed a bug causing a crash for multi-update/multi-delete
with impossible where (bug #1860).
mysql-test/r/multi_update.result:
Fixed a bug causing a crash for multi-update/multi-delete
with impossible where (bug #1860).
BitKeeper/etc/logging_ok:
Logging to logging@openlogging.org accepted
mysql_server_init() now returns error code if something went wrong (Bug #2062)
Don't use my_fopen() when reading symlink information as this may cause problems when a lot of files are opened.
Free thread keys with pthread_key_delete() instead of relying on automatic free. (Bug #2062)
Fixed bug in UNION statement with alias '*'. (Bug #1249)
Fixed a bug in DELETE ... ORDER BY ... LIMIT where the rows where not deleted in the proper order. (Bug #1024).
FOUND_ROWS() could return incorrect number of rows after a query with an impossible WHERE condition.
HOW DATABASES doesn't anymore show .sym files (on windows) that doesn't point to a valid directory. (Bug #1385)
include/config-win.h:
Ensure that USE_SYMDIR is set for all windows versions
(This is set in makefiles, so this is just an extra safety measure)
include/my_pthread.h:
Fixed a possible memory leak on MacOSX when using the shared libmysql.so library (Bug #2061)
include/my_sys.h:
my_init() now returns error code if something went wrong
include/mysql.h:
mysql_once_init() now returns error code if something went wrong
include/mysql_com.h:
my_init() now returns error code if something went wrong
libmysql/libmysql.c:
mysql_server_init() and mysql_once_init() now returns error code if something went wrong (Bug #2062)
mysql-test/r/limit.result:
Update results
mysql-test/r/select_found.result:
Update results
mysql-test/r/union.result:
Update results
mysql-test/t/limit.test:
Added test for DELETE ... ORDER BY ... LIMIT (bug #1024)
mysql-test/t/select_found.test:
Added test for problem with impossible WHERE (Bug #1468)
mysql-test/t/union.test:
Added test for problem with alias '*' (Bug #1249)
mysys/mf_pack.c:
Don't use my_fopen() when reading symlink information as this may cause problems when a lot of files are opened.
mysys/my_init.c:
my_init() now returns error code if something went wrong
mysys/my_lib.c:
More debug information
mysys/my_thr_init.c:
Free thread keys with pthread_key_delete() instead of relying on automatic free. (Bug #2062)
sql/sql_base.cc:
Fixed bug in UNION statement with alias '*'. (Bug #1249)
sql/sql_delete.cc:
Fixed a bug in DELETE ... ORDER BY ... LIMIT where the rows where not deleted in the proper order. (Bug #1024).
sql/sql_select.cc:
FOUND_ROWS() could return incorrect number of rows after a query with an impossible WHERE condition.
sql/sql_show.cc:
SHOW DATABASES doesn't anymore show .sym files (on windows) that doesn't point to a valid directory. (Bug #1385)
sql/sql_yacc.yy:
Allow syntax UNION DISTINCT
introduced base class Item_func_bit for bit functions
mysql-test/r/func_op.result:
test results for bug #1993 'bit functions do not return unsigned values'
mysql-test/t/func_op.test:
added tests for bug #1993 'bit functions do not return unsigned values'
SQL_BIG_RESULT used": now BIT_AND() always returns 18446744073709551615
if no rows were found.
This patch also fixes bug #1972: "BIT_AND() and BIT_OR() still return
a *signed* 64bit value"
mysql-test/r/func_group.result:
followup to fix for bug #1790 BIT_AND() result in GROUP BY different when
SQL_BIG_RESULT used": test results fixed
bug #1972 "BIT_AND() and BIT_OR() still return a *signed* 64bit value":
results of new tests
mysql-test/t/func_group.test:
added tests for bug #1972 "BIT_AND() and BIT_OR() still return a
*signed* 64bit value"
Added checking of return value from malloc() in reg_init()
client/mysqltest.c:
Added comment
dbug/dbug.c:
Removed not needed test
mysys/charset.c:
Added checking of return value from my_once_alloc()
regex/reginit.c:
Abort if out of memory in reg_init() (unlikely)
sql/item_strfunc.cc:
Added comment
Otherwise, if the previous run ended with a crash, and the PID was 1234,
and you have rebooted the machine and the new PID is 99 then in the PID
file you will have 9934.
Note: users of mysqld_safe did not have the problem because this script
deletes the PID file before starting mysqld.
The constructor of Rotate_log_event used when we are rotating our binlog or
relay log, should not assume that there is a nonzero THD available.
For example, when we are reacting to SIGHUP, the THD is 0.
In fact we don't need to use the THD in this constructor;
we can do like for Stop_log_event, and use the minimal Log_event
constructor.
If we were allowed to put Unix-specific commands in the testsuite,
I'd add a test for this (<sigh>).
sql/log.cc:
A comment to warn that thd can be 0.
The part about LOG_EVENT_FORCED_ROTATE_F is just to avoid segfault;
this flag is already removed in 4.1 anyway.
sql/log_event.cc:
A comment.
sql/log_event.h:
The constructor of Rotate_log_event used when we are rotating our binlog or
relay log, should not assume that there is a nonzero THD available.
For example, when we are reacting to SIGHUP, the THD is 0.
In fact we don't need to use the THD in this constructor;
we can do like for Stop_log_event, and use the minimal Log_event
constructor.
This fixes BUG#2045
"Sending SIGHUP to mysqld crashes it if running with --log-bin"