This bug appeared after the patch for bug 21390 that had added some code
to handle outer joins with no matches after substitution of a const
table in an efficient way. That code as it is cannot be applied to the case
of nested outer join operations. Being applied to the queries with
nested outer joins the code can cause crashes or wrong result sets.
The fix blocks row substitution for const inner tables of an outer join
if the inner operand is not a single table.
mysql-test/r/join_nested.result:
Added a test case for bug #24345.
mysql-test/t/join_nested.test:
Added a test case for bug #24345.
With MySQL 3.23 and 4.0, the syntax 'LIMIT N, -1' is accepted, and returns
all the rows located after row N. This behavior, however, is not the
intended result, and defeats the purpose of LIMIT, which is to constrain
the size of a result set.
With MySQL 4.1 and later, this construct is correctly detected as a syntax
error.
This fix does not change the production code, and only adds a new test case
to improve test coverage in this area, to enforce in the test suite the
intended behavior.
mysql-test/r/select.result:
Enforce that LIMIT N, -1 is illegal.
mysql-test/t/select.test:
Enforce that LIMIT N, -1 is illegal.
into chilla.local:/home/mydev/mysql-5.0-axmrg
myisam/mi_dynrec.c:
Auto merged
myisam/mi_locking.c:
Auto merged
myisam/mi_open.c:
Auto merged
myisam/mi_update.c:
Auto merged
myisam/mi_write.c:
Auto merged
myisam/myisamdef.h:
Auto merged
sql/lock.cc:
Auto merged
sql/sql_update.cc:
Auto merged
sql/table.cc:
Auto merged
into mysql.com:/d2/hf/opt/my50-opt
myisam/mi_check.c:
Auto merged
sql/item_subselect.cc:
Auto merged
sql/item_subselect.h:
Auto merged
sql/sql_lex.cc:
Auto merged
sql/sql_udf.cc:
Auto merged
into mysql.com:/d2/hf/common/my50-common
mysql-test/t/mysqladmin.test:
Auto merged
sql/item_func.cc:
Auto merged
libmysqld/lib_sql.cc:
merging
mysql-test/t/distinct.test:
merging
sql/sql_prepare.cc:
SCCS merged
libmysqld/lib_sql.cc:
error message moved to 'stmt'
mysql-test/t/distinct.test:
temporary disabled in embedded server
mysql-test/t/mysqladmin.test:
disabled in embedded server
sql/sql_prepare.cc:
superfluous #ifndef removed
into poseidon.mysql.com:/home/tomas/mysql-5.0-ndb
ndb/src/kernel/blocks/dbtc/DbtcMain.cpp:
Auto merged
ndb/src/mgmsrv/MgmtSrvr.cpp:
Auto merged
ndb/src/ndbapi/NdbTransaction.cpp:
Auto merged
ndb/src/ndbapi/Ndbif.cpp:
Auto merged
ndb/test/ndbapi/testBasic.cpp:
Auto merged
ndb/test/ndbapi/testIndex.cpp:
Auto merged
into siva.hindu.god:/usr/home/tim/m/bk/50
Makefile.am:
Auto merged
client/mysqlbinlog.cc:
Auto merged
client/mysqltest.c:
Auto merged
include/config-win.h:
Auto merged
include/my_global.h:
Auto merged
include/my_pthread.h:
Auto merged
include/mysql.h:
Auto merged
include/typelib.h:
Auto merged
mysql-test/Makefile.am:
Auto merged
mysys/default.c:
Auto merged
mysys/my_wincond.c:
Auto merged
mysys/typelib.c:
Auto merged
server-tools/instance-manager/guardian.cc:
Auto merged
server-tools/instance-manager/instance.cc:
Auto merged
sql/field.cc:
Auto merged
sql/field.h:
Auto merged
sql/item_sum.cc:
Auto merged
sql/item_sum.h:
Auto merged
sql/net_serv.cc:
Auto merged
sql/opt_range.cc:
Auto merged
sql/share/charsets/hebrew.xml:
Auto merged
sql/sql_class.h:
Auto merged
sql/sql_parse.cc:
Auto merged
sql/sql_show.cc:
Auto merged
strings/conf_to_src.c:
Auto merged
vio/viossl.c:
Auto merged
This is for bug #22555.
mysql-test/r/func_group.result:
Round the results of std() for some calls, because Windows' sqrt() function appears to return fewer "significant" digits than the Unix implementations.
This is for bug #22555.
mysql-test/t/func_group.test:
Round the results of std() for some calls, because Windows' sqrt() function appears to return fewer "significant" digits than the Unix implementations.
This is for bug #22555.
repair it
Multi-table delete that is optimized with QUICK_RANGE reports table
corruption.
DELETE statement must not use KEYREAD optimization, and sets
table->no_keyread to 1. This was ignored in QUICK_RANGE optimization.
With this fix QUICK_RANGE optimization honors table->no_keyread
value and does not enable KEYREAD when it is requested.
mysql-test/r/index_merge.result:
Fixed a test case according to fix for bug#25048.
mysql-test/r/index_merge_ror.result:
A test case for bug#25048.
mysql-test/t/index_merge_ror.test:
A test case for bug#25048.
sql/opt_range.cc:
Do not use key read when head->no_keyread is set.
Consider double values as legal date{time} function's arguments
(i.e. allow dates in internal format YYYYMMDDHHMMSS.XXXXXX).
mysql-test/r/func_sapdb.result:
Fix for bug #23616: Week() changed behaviour between 5.0.22 and 5.0.24
- result adjusted.
mysql-test/r/func_time.result:
Fix for bug #23616: Week() changed behaviour between 5.0.22 and 5.0.24
- test result.
mysql-test/t/func_time.test:
Fix for bug #23616: Week() changed behaviour between 5.0.22 and 5.0.24
- test case.
sql-common/my_time.c:
Fix for bug #23616: Week() changed behaviour between 5.0.22 and 5.0.24
- consider '.' as an acceptable separator for dates like YYYYYMMDDHHMMSS.XXXXXX
When only one row was present, the subtraction of nearly the same number
resulted in catastropic cancellation, introducing an error in the
VARIANCE calculation near 1e-15. That was sqrt()ed to get STDDEV, the
error was escallated to near 1e-8.
The simple fix of testing for a row count of 1 and forcing that to yield
0.0 is insufficient, as two rows of the same value should also have a
variance of 0.0, yet the error would be about the same.
So, this patch changes the formula that computes the VARIANCE to be one
that is not subject to catastrophic cancellation.
In addition, it now uses only (faster-than-decimal) floating point numbers
to calculate, and renders that to other types on demand.
mysql-test/r/func_group.result:
Test that the bug is fixed, and that no unexpected behavior arises from the
changes.
mysql-test/t/func_group.test:
Test that the bug is fixed, and that no unexpected behavior arises from the
changes.
sql/item_sum.cc:
Serg's suggestion: Force all VARIANCE calculations to be done with floating-
point types. It's faster, and the SQL standard says we may implement these
functions any way we want.
Additionally, use a form of variance calculation that is not subject to
catastrophic cancellation.
http://static.flickr.com/108/311308512_5c4e1c0c3d_b.jpg
sql/item_sum.h:
Remove unused members and add a comment describing the recurrence relation.
Added definitions for the following Hebrew characters as specified by the ISO/IEC 8859-8:1999:
LEFT-TO-RIGHT MARK (LRM)
RIGHT-TO-LEFT MARK (RLM)
sql/share/charsets/hebrew.xml:
Added definitions for the following Hebrew characters as specified by the ISO/IEC 8859-8:1999:
LEFT-TO-RIGHT MARK (LRM)
RIGHT-TO-LEFT MARK (RLM)
strings/conf_to_src.c:
Added a warning comment in the generated C source file.
strings/ctype-extra.c:
Re-generated from sql/share/charsets/hebrew.xml
mysql-test/r/ctype_hebrew.result:
Added the test case for bug #24037 "Lossy Hebrew to Unicode conversion"
mysql-test/t/ctype_hebrew.test:
Added the test case for bug #24037 "Lossy Hebrew to Unicode conversion"
We use val_int() calls (followed by null_value check) to determine
nullness in some Item_sum_count' and Item_sum_count_distinct' methods,
as a side effect we get extra warnings raised in the val_int().
Fix: use is_null() instead.
mysql-test/r/func_group.result:
Fix for bug #21976: Unnecessary warning with count(decimal)
- test result.
mysql-test/t/func_group.test:
Fix for bug #21976: Unnecessary warning with count(decimal)
- test case.
sql/item.h:
Fix for bug #21976: Unnecessary warning with count(decimal)
- comment adjusted.
sql/item_sum.cc:
Fix for bug #21976: Unnecessary warning with count(decimal)
- use is_null() to determine nullness.
into siva.hindu.god:/usr/home/tim/m/bk/50
mysql-test/Makefile.am:
Auto merged
mysql-test/mysql-test-run.pl:
Auto merged
scripts/make_binary_distribution.sh:
Auto merged
scripts/mysqld_multi.sh:
Auto merged
sql/field.cc:
Auto merged
sql/field.h:
Auto merged
sql/sql_class.h:
Auto merged
- Skip tests using chmod when running as root
mysql-test/t/information_schema_chmod.test:
Use mysqltest builtin "chmode"
mysql-test/t/mysqltest.test:
Dont run as root - test chmod
mysql-test/t/rpl_rotate_logs.test:
Use mysqltest builtin "chmode"
Use 'write_file' and 'chmod' instead of system
mysql-test/t/trigger.test:
Don't run as root
Use 'write_file' and 'chmod'
mysql-test/t/varbinary.test:
Don't run as root
During optimization we replace NULL with 0 for not null
date{time} fields, so uset MODE_NO_ZERO_DATE flag for a while
as we don't want to give extra warnings.
mysql-test/r/strict.result:
Fix for bug #22824: strict, datetime, NULL, wrong warning
- test result.
mysql-test/t/strict.test:
Fix for bug #22824: strict, datetime, NULL, wrong warning
- test case.
sql/item_cmpfunc.cc:
Fix for bug #22824: strict, datetime, NULL, wrong warning
- turn off MODE_NO_ZERO_DATE in order not to get extra warinings
in the save_in_field().
An update that used a join of a table to itself and modified the
table on one side of the join reported the table as crashed or
updated wrong rows.
Fixed by creating temporary table for self-joined multi update statement.
mysql-test/r/myisam.result:
A test case for BUG#21310.
mysql-test/t/myisam.test:
A test case for BUG#21310.
sql/lock.cc:
Exclude 'table' param from check.
sql/sql_update.cc:
Disabling record cache for self-joined multi update statement is wrong.
The join must only see the table as it was at the beginning of the statement.
safe_update_on_fly check if it is safe to update first table on the fly, that is
not creating temporary table. It is possible in case a row from this table is
never read more than once. safe_update_on_fly now detect self-joined table and
refuse to update this table on the fly.
InnoDB timeout behavior (Bug #24200)
mysql-test/t/innodb_mysql-master.opt:
Set --innodb-lock-wait-timeout=2, since test for bug #24200 times out.
This *could* cause random test failures if some long-running transaction concurrency is being tested. However, such a test really should go in innodb-big or some other test file.
Handling of large signed/unsigned values was not consistent, so some string functions could return bogus results.
The current fix is to simply patch up the val_str() methods for those string items.
It would be good clean this code up in general, to make similar problems much harder to make. This is left as an exercise for the reader.
mysql-test/r/func_str.result:
Update test results for bug #24947
mysql-test/t/func_str.test:
Add test case for bug #24947
sql/item_strfunc.cc:
Adjust some string function Items' val_str() methods to handle large signed/unsigned arguments properly
into kahlann.erinye.com:/home/df/mysql/build/mysql-5.0-build-work
mysql-test/t/grant_cache.test:
Auto merged
mysql-test/t/myisam.test:
Auto merged
mysql-test/t/query_cache_notembedded.test:
Auto merged
mysql-test/t/rpl_rotate_logs.test:
Auto merged
mysql-test/t/rpl000015.test:
SCCS merged
mysql-test/t/rpl000017.test:
SCCS merged
spatial index
While executing OPTIMIZE TABLE on MyISAM tables the server re-creates the
index file(s) in order to sort them physically by the key. This cannot be
done for R-tree indexes as it makes no sense.
The server was not checking the type of the index and was accessing an
R-tree index as if it was a B-tree.
Fixed by preventing sorting the index file if it contains an R-tree index.
myisam/mi_check.c:
Bug #23578: Corruption prevents Optimize table from working properly with a
spatial index
- disable sorting the index file if it contains an R-tree index.
mysql-test/r/gis-rtree.result:
Bug #23578: Corruption prevents Optimize table from working properly with a
spatial index
- test case
mysql-test/t/gis-rtree.test:
Bug #23578: Corruption prevents Optimize table from working properly with a
spatial index
- test case