When a zero length is provided to the my_decimal_length_to_precision
function along with unsigned_flag set to false it returns a negative value.
For queries that employs temporary tables may cause failed assertion or
excessive memory consumption while temporary table creation.
Now the my_decimal_length_to_precision and the my_decimal_precision_to_length
functions take unsigned_flag into account only if the length/precision
argument is non-zero.
mysql-test/t/type_decimal.test:
Added a test case for the bug#36023: Incorrect handling of zero length caused
an assertion to fail.
mysql-test/r/type_decimal.result:
Added a test case for the bug#36023: Incorrect handling of zero length caused
an assertion to fail.
sql/my_decimal.h:
Bug#36023: Incorrect handling of zero length caused an assertion to fail.
Now the my_decimal_length_to_precision and the my_decimal_precision_to_length
functions take unsigned_flag into account only if the length/precision
argument is non-zero.
into host.loc:/home/uchum/work/5.1-bugteam
mysql-test/r/subselect.result:
Merge with 5.0-bugteam (bug#36139).
mysql-test/t/subselect.test:
Merge with 5.0-bugteam (bug#36139).
Post-commit minor cleanup of testcase (bug#36139).
mysql-test/r/subselect.result:
Post-commit minor cleanup of testcase (bug#36139).
mysql-test/t/subselect.test:
Post-commit minor cleanup of testcase (bug#36139).
into host.loc:/home/uchum/work/5.1-bugteam
mysql-test/r/ctype_gbk.result:
Auto merged
mysql-test/r/subselect3.result:
Auto merged
mysql-test/t/subselect3.test:
Auto merged
sql/sql_select.cc:
Auto merged
strings/ctype-big5.c:
Merge with 5.0-bugteam (bug#35993).
strings/ctype-gbk.c:
Merge with 5.0-bugteam (bug#35993).
The function test_if_skip_sort_order ignored any covering index used for ref
access of a table in a query with ORDER BY if this index was incompatible
with the ORDER BY list and there was another covering index compatible with
this list.
As a result sub-optimal execution plans were chosen for some queries with
ORDER BY clause.
mysql-test/r/distinct.result:
Adjusted results after the fix for bug#35844.
mysql-test/r/order_by.result:
Added a test case for bug#35844.
mysql-test/t/order_by.test:
Added a test case for bug#35844.
impossible WHERE/HAVING clause
(subselect_single_select_engine::exec).
Allocation and initialization of joined table list t1, t2... of
subqueries like:
NOT IN (SELECT ... FROM t1,t2,... WHERE 0)
is optimized out, however server tries to traverse this list.
mysql-test/r/subselect3.result:
Added test case for bug#36005.
mysql-test/t/subselect3.test:
Added test case for bug#36005.
sql/sql_select.cc:
Fixed bug#36005.
1. JOIN::prepare initializes JOIN::table counter (actually a size
of the JOIN::join_tab array) and sets it to a number of joined tables.
2. The make_join_statistics function (when called from JOIN::optimize)
allocates and fills the JOIN::join_tab array.
However, when optimizing subselect has impossible (definite false)
WHERE or HAVING clause, optimizer skips call to make_join_statistics
and leaves JOIN::join_tab == NULL.
3. subselect_single_select_engine::exec does traversal of the JOIN::join_tab
array and the server dies because array is not allocated but array
counter is greater than 0.
The JOIN::optimize method has been modified to reset the JOIN::table
counter to 0 in cause of impossible WHERE/HAVING clause.
Grouping or ordering of long values in not indexed BLOB/TEXT columns
with GBK or BIG5 charsets crashes the server.
MySQL server uses sorting (the filesort procedure) in the temporary
table to evaluate the GROUP BY clause in case of lack of suitable index.
That procedure takes into account only first @max_sort_length bytes
(system variable, usually 1024) of TEXT/BLOB sorting key string.
The my_strnxfrm_gbk and my_strnxfrm_big5 fill temporary keys
with data of whole blob length instead of @max_sort_length bytes
length. That buffer overrun has been fixed.
mysql-test/r/ctype_gbk.result:
Added test case for bug #35993.
mysql-test/t/ctype_gbk.test:
Added test case for bug #35993.
strings/ctype-big5.c:
Fixed bug #35993: memory corruption and crash with multibyte conversion.
Buffer overrun has been fixed in the my_strnxfrm_big5 function.
strings/ctype-gbk.c:
Fixed bug #35993: memory corruption and crash with multibyte conversion.
Buffer overrun has been fixed in the my_strnxfrm_gbk function.
- Make convert_zerofill_number_to_string() take into account that the
constant it is converting may evaluate to NULL.
mysql-test/r/subselect.result:
BUG#36139 "float, zerofill, crash with subquery"
- Testcase
mysql-test/t/subselect.test:
BUG#36139 "float, zerofill, crash with subquery"
- Testcase
into zippy.cornsilk.net:/home/cmiller/work/mysql/bug15776-encore/my51-bug15776-encore
sql/field.cc:
Auto merged
sql/item_create.cc:
Auto merged
sql/share/errmsg.txt:
Auto merged
sql/unireg.h:
Auto merged
mysql-test/r/type_blob.result:
manual merge.
mysql-test/t/type_blob.test:
manual merge.
sql/sql_yacc.yy:
merge by hand.
into zippy.cornsilk.net:/home/cmiller/work/mysql/bug15776/my51-bug15776
mysql-test/r/type_blob.result:
Auto merged
mysql-test/t/type_blob.test:
Auto merged
sql/field.cc:
Auto merged
sql/unireg.h:
Auto merged
Make maximum blob size to be 2**32-1, regardless of word size.
Fix failure of timestamp with size of 2**31-1. The method of
rounding up to the nearest even number would overflow.
mysql-test/r/type_blob.result:
2**32-1 is not a special case for timestamp.
Test 2**32-1 and 2**64 as the reliable test points for both 32-
and 64-bit machines. I'd like to test 2**32, but that would make
tests that vary between architectures.
I'd like to generalize the tests by pulling the max blob size from
the server, and then "eval"ing N-1, N, and N+1 instead of all these
literal numbers, but I have not found a way to get UINT_MAX.
mysql-test/t/type_blob.test:
2**32-1 is not a special case for timestamp.
Test 2**32-1 and 2**64 as the reliable test points for both 32-
and 64-bit machines. I'd like to test 2**32, but that would make
tests that vary between architectures.
I'd like to generalize the tests by pulling the max blob size from
the server, and then "eval"ing N-1, N, and N+1 instead of all these
literal numbers, but I have not found a way to get UINT_MAX.
sql/field.cc:
Fix a bug where the round-to-even code for TIMESTAMP fields
failed where the size would overflow the size to zero and then
fail.
Also, since we silently truncate the size of TIMESTAMP fields, set
the maximum size we report is allowable to be the largest parsable
number.
sql/unireg.h:
Make BLOB size the maximum that the packed value in
field_blob::get_length() allows.
#12713 Error in a stored function called from a
SELECT doesn't cause ROLLBACK of statem
mysql-test/r/func_rollback.result:
Expected results
mysql-test/t/func_rollback.test:
New test
Problem: SELECTs prohibited for a transactional SE in autocommit mode
if read_only is set.
Fix: allow them.
mysql-test/r/read_only_innodb.result:
Fix for bug #35732: read-only blocks SELECT statements in InnoDB
- test result.
mysql-test/t/read_only_innodb.test:
Fix for bug #35732: read-only blocks SELECT statements in InnoDB
- test case.
sql/handler.cc:
Fix for bug #35732: read-only blocks SELECT statements in InnoDB
- in autocommit mode thd->transaction.all list is empty thus
is_real_trans set to TRUE for any SELECTs, so using it in the
"read_only" check is insufficient.
ha_check_and_coalesce_trx_read_only() changed to return number
of engines with read-write changes. This value is used in the
"read-only" check and checks for GLOBAL READ LOCK.
sql/lock.cc:
Fix for bug #35732: read-only blocks SELECT statements in InnoDB
- added assert(protect_against_global_read_lock) before decreasing,
in order to catch (uint) 0 - 1 situation due to wrong
wait_if_global_read_lock()/start_waiting_global_read_lock() call
sequence.
Corrects build problems embedded on Windows
Makefile.am:
Install .sym or mysqld-debug if exists
query_cache_debug.test, query_cache_debug.result:
Set more resonable query cache size (bug#35749)
CMakeLists.txt:
Added missing stacktrace.c
mysql-test/r/query_cache_debug.result:
Set more resonable query cache size (bug#35749)
mysql-test/t/query_cache_debug.test:
Set more resonable query cache size (bug#35749)
libmysqld/CMakeLists.txt:
Added missing stacktrace.c
sql/Makefile.am:
Install .sym or mysqld-debug if exists
sql/mysqld.cc:
Corrects build problems embedded on Windows
Based on contributed patch from Martin Friebe, CLA from 2007-02-24.
The parser lacked support for field sizes after signed long,
when it should extend to 2**32-1.
Now, we correct that limitation, and also make the error handling
consistent for casts.
---
Fix minor complaints of Marc Alff, for patch against B-g#15776.
---
Merge zippy.cornsilk.net:/home/cmiller/work/mysql/bug15776/my50-bug15776
into zippy.cornsilk.net:/home/cmiller/work/mysql/bug15776/my51-bug15776
---
Merge zippy.cornsilk.net:/home/cmiller/work/mysql/bug15776/my51-bug15776
into zippy.cornsilk.net:/home/cmiller/work/mysql/mysql-5.1-build
---
testing
mysql-test/r/type_blob.result:
Verify that blobs may be created with the size that is already
documented.
Additionally, test the limits of several other types.
mysql-test/t/type_blob.test:
Verify that blobs may be created with the size that is already
documented.
Additionally, test the limits of several other types.
---
Drop table in case we start from a bad state.
sql/field.cc:
atoi() insufficient to gauge the length of some fields. Change
it to strtoul().
sql/item_create.cc:
atoi() insufficient to gauge the length of some fields. Change
it to strtoul().
If a casted length is too long, raise an error.
sql/share/errmsg.txt:
Change ER_TOO_BIG_FIELDLENGTH so that it can accept sizes larger
than 2**15 -- instead, 2**32.
---
Manual merge.
sql/sql_yacc.yy:
Make lengths take, in addition to NUM, LONG_NUM, ULONGLONG_NUM,
and DECIMAL_NUM.
---
yacc/bison is left-recursive, so FIXME statement is wrong.
---
Manual merge and reformatting.
sql/unireg.h:
Define new constant.
into zippy.cornsilk.net:/home/cmiller/work/mysql/bug15776/my51-bug15776
mysql-test/r/type_blob.result:
Auto merged
mysql-test/t/type_blob.test:
Auto merged
sql/field.cc:
Auto merged
sql/unireg.h:
Auto merged
sql/item_create.cc:
Manual merge.
sql/share/errmsg.txt:
Manual merge.
sql/sql_yacc.yy:
Manual merge.
mysql-test/r/rpl_packet.result:
Result change.
mysql-test/t/rpl_packet.test:
Setting net_buffer_length correctly for the test instead of relying on it
being set correctly. Waiting for slave to stop after issuing a SLAVE STOP
and waiting for slave to start when issuing a SLAVE START to prevent race
conditions causing test failure.
into magare.gmz:/home/kgeorge/mysql/work/merge-build-5.1-bugteam
sql/log.cc:
Auto merged
sql/slave.cc:
Auto merged
sql/share/errmsg.txt:
merged 5.1-main to 5.1-bugteam
into magare.gmz:/home/kgeorge/mysql/work/merge-build-5.1-bugteam
include/my_dbug.h:
Auto merged
mysys/mf_keycache.c:
Auto merged
sql/item_func.cc:
Auto merged
sql/log.cc:
Auto merged
sql/mysql_priv.h:
Auto merged
sql/mysqld.cc:
Auto merged
sql/opt_range.cc:
Auto merged
sql/set_var.cc:
Auto merged
sql/sql_select.cc:
Auto merged
storage/myisam/mi_check.c:
Auto merged
storage/myisam/mi_dynrec.c:
Auto merged
storage/myisam/mi_open.c:
Auto merged
storage/myisam/mi_packrec.c:
Auto merged
storage/myisam/mi_test1.c:
Auto merged
storage/myisam/mi_test2.c:
Auto merged
storage/myisam/mi_write.c:
Auto merged
storage/myisammrg/ha_myisammrg.cc:
Auto merged