(Patch from 4.0.5)
mysql-test/r/group_by.result:
Updated results
mysql-test/t/group_by.test:
Test for bug
sql/item_cmpfunc.cc:
Fixed bug in MAX() optimization when used with JOIN and ON expressions
sql/item_cmpfunc.h:
Fixed bug in MAX() optimization when used with JOIN and ON expressions
sql/opt_sum.cc:
Fixed bug in MAX() optimization when used with JOIN and ON expressions
More tests for multi-table-update & timestamp handling
mysql-test/r/innodb.result:
New multi-table-update tests
mysql-test/r/multi_update.result:
New multi-table-update tests
mysql-test/r/type_timestamp.result:
New timestamp tests
mysql-test/t/innodb.test:
New multi-table-update tests
mysql-test/t/multi_update.test:
New multi-table-update tests
mysql-test/t/type_timestamp.test:
New timestamp tests
sql/sql_select.cc:
Fixed bug in safe mode checking
sql/sql_update.cc:
Fixed bug in autocommit in multi-table-update
New (simpler) internal timestamp handling.
More debuging to heap tables.
Small cleanups to multi-table-delete
false -> 0 and true -> 1 (We should use TRUE and FALSE)
heap/_check.c:
Added checking of rows
heap/hp_delete.c:
Extra debugging
heap/hp_scan.c:
Extra debugging
heap/hp_update.c:
Extra debugging
heap/hp_write.c:
Extra debugging
include/my_base.h:
Added option to disable row cache when using updates
isam/extra.c:
Added option to disable row cache when using updates
myisam/mi_check.c:
Comment cleanup
myisam/mi_extra.c:
Added option to disable row cache when using updates
myisam/sort.c:
Indentaion cleanups
myisammrg/myrg_extra.c:
Added option to disable row cache when using updates
mysql-test/r/multi_update.result:
Updated results
mysql-test/t/multi_update.test:
Cleanup up to only use table names t1, t2,...
mysys/mf_iocache.c:
Safety fix
sql/item_cmpfunc.cc:
change true-> 1 and false -> 0
sql/mysql_priv.h:
Cleaned up SQL_LIST handling
sql/sql_base.cc:
Fixed grant checking if SELECT tablename.*
sql/sql_class.h:
Cleaned up multi-table-update
sql/sql_delete.cc:
Fixed OPTION_SAFE_UPDATE checking in multi-table-delete.
Fixed query-cache invalidation in multi-table-delete
sql/sql_insert.cc:
cleaned up timestamp handling
sql/sql_olap.cc:
false -> 0
sql/sql_parse.cc:
Optimized some list handling.
Moved multi-table-update to sql_update.cc
sql/sql_select.cc:
More comments
Fixed create_tmp_table for multi-table-update
sql/sql_select.h:
New prototypes
sql/sql_union.cc:
false -> 0
Cleaned up timestamp handling
sql/sql_update.cc:
New multi-update-table code
sql/sql_yacc.yy:
false -> 0, true -> 1
Optimized some list handling
sql/table.h:
Added union for temporary values.
Made shared int to be able to store counters.
sql/uniques.cc:
Indentation cleanup
BitKeeper/etc/ignore:
Added core.2430 to the ignore list
sql-bench/crash-me.sh:
1) restore #!@PERL@ that I (accidentally) deleted last time
2) comment order_by_remember_desc section
3) rectify WEEK test. Now it returns "EURO" ,"USA", "error" (if it returns
wrong week number), or "no" (if this function isn't supported)
4) merge 2 tests for noround() (func_extra_noround and ignoring_noround).
Now it returns yes/no/"syntax only"
5) merge 2 tests for foreign key (foreign_key and foreign_key_syntax). Now it
returns yes/no/"syntax only"
6) correct misprint in crash-me help ( --db-start-cmd instead of --start-cmd)
sql-bench/server-cfg.sh:
Misprint correction (db_Sapdb ->db_sapdb)
Make copies of all string-type start/up options in case C-sharp moves them around; remove the need to specify innodb_log_arch_dir in my.cnf, since it has no relevance anyway
sql/ha_innodb.cc:
Make copies of all string-type start/up options in case C-sharp moves them around; remove the need to specify innodb_log_arch_dir in my.cnf, since it has no relevance anyway
sql/sql_yacc.yy:
Added 29 {} at the end of clauses to make it work with bison 1.75.
Otherwise we get errors of the type
"sql_yacc.yy:666.7-672.21: type clash (`NONE' `') on default action".
for column,table and named constarints. Now constraint test produces
exactly one line in report, with "yes","no" or syntax only".
add /odbc to server-version if benchmark/crash-me works over odbc
sql-bench/crash-me.sh:
merge constraint tests with "ignoring constarint tests"
for column,table and named constarints. Now constraint test produces
exactly one line in report, with "yes","no" or syntax only".
sql-bench/server-cfg.sh:
add /odbc to server-version if benchmark/crash-me works over odbc
compatibility of the RPMs
- added "restart" action to the mysql.server init script
support-files/mysql.server.sh:
- added "restart" action
support-files/mysql.spec.sh:
- moved init script from /etc/rc.d/init.d to /etc/init.d (the majority of
Linux distributions now support this scheme as proposed by the LSB either
directly or via a compatibility symlink)
- relaxed the Perl requirements a bit
- Use new "restart" init script action instead of starting and stopping
separately
- Be more flexible in activating the automatic bootup - use insserv (on
older SuSE versions) or chkconfig (Red Hat, newer SuSE versions and
others) to create the respective symlinks
sql-bench/crash-me.sh:
- If double double quotes are allowed in identifiers.
- Rollback rolls back meta data
- NULL sort and NULL sort perserve.
- remove one check of "serial".
- (Column,Table,Named constraints) new test to crash me if the check syntax is
only supported by the parser, but not done for real.
- For all ..USER tests, (like current_user), add an extra test if
...USER() is supported.
- Add tests for constants TRUE and FALSE
- Add test of LIMIT # OFFSET (PostgreSQL syntax)
- add test a lot of new functions
sql-bench/server-cfg.sh:
add sapdb section
- reverted some incompatible/non-portable modifications
support-files/mysql.server.sh:
- reverted non-portable change ("echo -n" does not work on all platforms)
- reverted incompatible change (better fix the docs than break existing
installations)
Added CEIL as an alias for CEILING
Cleaned up CHECK constraint handling.
(We don't anymore require braces after CHECK)
Added casting to CHAR.
mysql-test/r/bigint.result:
Moved casting test to cast.test
mysql-test/r/func_time.result:
Test of new functions
mysql-test/t/bigint.test:
Moved casting test to cast.test
mysql-test/t/func_time.test:
Test of new functions
sql/item_create.cc:
Added casting to CHAR
sql/item_func.h:
Added casting to CHAR
sql/item_timefunc.h:
Added casting to CHAR
sql/lex.h:
Added new ANSI functions LOCALTIME, LOCALTIMESTAMP and CURRENT_USER
Added CEIL as an alias for CEILING
sql/sql_yacc.yy:
Cleaned up CHECK constraint handling.
His explanation:
The socket on which MySQL listens for new connections on a blocking
socket most of the time but is set to non-blocking during the
accept() of the new connection. Due to a bug in the kernel, the new
socket returned by accept() is a blocking socket but returns the
O_NONBLOCK flag when queried via fcntl(F_GETFL). That is, the file
descriptor and the underlying socket don't agree on the blocking
mode.
Since MySQL determines via fcntl(F_GETFL) that the socket is
non-blocking, it expects the first read() in my_real_read to not
block, so it doesn't enable the timeout alarm. However, the read
does block, and thus there's no timeout alarm. The thread kill
(which relies on rescheduling the timeout alarm) also does not work
as a consequence.
The bug shows itself if you build MySQL with LinuxThreads support
(needed for SMP on FreeBSD). Issuing a KILL command in MySQL won't be
"noticed" by the "killed" thread until it runs another query--that
makes KILL pretty useless. And the wait_timeout doesn't work either.
vio/vio.c:
FreeBSD patch by Jeremy Zawodny
- fixed some typos and wording (merged from 3.23 tree)
- fixed parsing the correct section in /etc/my.cnf ([mysql_server] ->
[mysql.server]) as documented in the manual
support-files/mysql.server.sh:
- fixed some typos and wording (merged from 3.23 tree)
- fixed parsing the correct section in /etc/my.cnf ([mysql_server] ->
[mysql.server]) as documented in the manual