The bug was due to a missed case in the detection of whether an index
can be used for loose scan. More precisely, the range optimizer chose
to use loose index scan for queries for which the condition(s) over
an index key part could not be pushed to the index together with the
loose scan.
As a result, loose index scan was selecting the first row in the
index with a given GROUP BY prefix, and was applying the WHERE
clause after that, while it should have inspected all rows with
the given prefix, and apply the WHERE clause to all of them.
The fix detects and skips such cases.
mysql-test/r/group_min_max.result:
Added test for BUG#16710.
mysql-test/t/group_min_max.test:
Added test for BUG#16710.
sql/item.cc:
Added new method [Item | Item_field]::find_item_in_field_list_processor.
sql/item.h:
Added new method [Item | Item_field]::find_item_in_field_list_processor.
sql/opt_range.cc:
Handle the case when there is no MIN/MAX aggregate function, and a
keypart of the index being considered, that is after the GROUP BY
prefix, is used in the WHERE clause and the condition where it is
used cannot be pushed to the index.
If this is the case, we rule out this index.
into mysql.com:/home/stewart/Documents/MySQL/5.0/bug17411-thisisaverylongnamethatshouldbewaylongerthanthe128limitthatweprivouslyhadbutireallywantotestitandseethatitdoesreallywork.nowitshouldbeabout160charslongnonow.iwonderifanythingwillchokeornotwiththisoutrageouslylongpathname
- Init sql_state in mysql_stmt_init
libmysql/libmysql.c:
Init sql_state to not_error_sql_state in mysql_init
tests/mysql_client_test.c:
Add test for mysql_stmt_sqlstate after mysql_stmt_init
Use the POSIX limits.h define of PATH_MAX for maximum path length.
This has been being hit in pushbuild
ndb/include/util/File.hpp:
use PATH_MAX for maximum filename length
ndb/src/common/portlib/NdbConfig.c:
use PATH_MAX for max path name length instead of hardcoding 128
ndb/src/common/util/File.cpp:
use PATH_MAX for maximum filename length
into neptunus.(none):/home/msvensson/mysql/mysql-5.0
client/mysqltest.c:
Auto merged
mysql-test/r/mysqltest.result:
Auto merged
mysql-test/t/mysqltest.test:
Auto merged
The Item_func_if::fix_length_and_dec() function when calculating length of
result doesn't take into account unsigned_flag. But it is taken when
calculating length of temporary field. This result in creating field that
shorter than needed. Due to this, in the reported query 40.0 converted to 9.99.
The function Item_func_if::fix_length_and_dec() now adds 1 to the max_length if
the unsigned_flag isn't set.
sql/item_cmpfunc.cc:
Fixed bug#16272: IF function with decimal args can produce wrong result
The function Item_func_if::fix_length_and_dec() now adds 1 to the max_length if
the unsigned_flag isn't set.
mysql-test/r/func_if.result:
Added test case for bug#16272: IF function with decimal args can produce wrong result
mysql-test/t/func_if.test:
Added test case for bug#16272: IF function with decimal args can produce wrong result
Backporting character_set_filesystem from 5.0 to 5.1.
sql/mysqld.cc:
Backporting character_set_filesystem from 5.0 to 5.1.
sql/set_var.cc:
Backporting character_set_filesystem from 5.0 to 5.1.
sql/set_var.h:
Backporting character_set_filesystem from 5.0 to 5.1.
sql/sql_class.cc:
Backporting character_set_filesystem from 5.0 to 5.1.
sql/sql_class.h:
Backporting character_set_filesystem from 5.0 to 5.1.
sql/sql_yacc.yy:
Backporting character_set_filesystem from 5.0 to 5.1.
mysql-test/t/variables.test:
Backporting character_set_filesystem from 5.0 to 5.1.
mysql-test/r/variables.result:
Backporting character_set_filesystem from 5.0 to 5.1.
into mysql.com:/usr_rh9/home/elkin.rh9/MySQL/Merge/5.0
client/mysql.cc:
Auto merged
mysql-test/r/mysqlbinlog.result:
Auto merged
mysql-test/t/mysqlbinlog.test:
Auto merged
sql/log_event.cc:
Auto merged
into mysql.com:/usr_rh9/home/elkin.rh9/MySQL/Merge/5.0
client/mysql.cc:
manual merge use local
mysql-test/r/mysqlbinlog.result:
manual merge use local
mysql-test/t/mysqlbinlog.test:
manual merge use local
sql/log_event.cc:
manual merge use local
into neptunus.(none):/home/msvensson/mysql/mysql-5.0
client/mysqltest.c:
Auto merged
libmysql/libmysql.c:
Auto merged
tests/mysql_client_test.c:
Auto merged
mysql-test/lib/mtr_cases.pl:
Auto merged
mysql-test/lib/mtr_process.pl:
Auto merged
mysql-test/lib/mtr_report.pl:
Auto merged
scripts/make_binary_distribution.sh:
Auto merged
sql/spatial.cc:
Auto merged
Added { ... } around float8get() macro, avoids VC7 error
message "illegal else without matching if"
mtr_report.pl:
Parse error logs to create "warnings" file
mtr_cases.pl:
Added optoion --ignore-disabled-def
Windows build now let TZ pass, removed
work around
mysql-test-run.pl, mtr_process.pl:
Back port of changes from 5.0
mysql-test/lib/mtr_process.pl:
Back port of changes from 5.0
mysql-test/mysql-test-run.pl:
Back port of changes from 5.0
mysql-test/lib/mtr_cases.pl:
Added optoion --ignore-disabled-def
Windows build now let TZ pass, removed
work around
mysql-test/lib/mtr_report.pl:
Parse error logs to create "warnings" file
sql/spatial.cc:
Added { ... } around float8get() macro, avoids VC7 error
message "illegal else without matching if"