during udf initialization. The bug is spotted while working on Bug 12713.
If a user-defined function was used in a SELECT statement, and an
error would occur during UDF initialization, this error would not terminate
execution of the SELECT, but rather would be converted to a warning.
The fix is to use a stack buffer to store the message from udf_init instead
of private my_error() buffer.
mysql-test/r/udf.result:
Update the result to reflect the fix for Bug#32007 select udf_function()
doesn't return an error if error during udf initialization
mysql-test/t/udf.test:
Update the test to reflect the fix for Bug #32007 select udf_function()
doesn't return an error if error during udf initialization
sql/item_func.cc:
A fix for Bug#32007.
net.last_error buffer was used to store the temporary message from udf_init.
Then, when my_error() was called, net.last_error was not empty so
my_error() would conclude that there is already an error in the error stack,
and not "overwrite" it.
However, thd->net.report_error was not set, so the the
SELECT was not aborted.
The fix is to use a stack buffer instead of thd->net.last_error
to store the message from udf_init. The message will end up in
thd->net.last_error anyway after a call to my_error.
into stella.local:/home2/mydev/mysql-5.1-axmrg
mysql-test/r/ctype_ucs.result:
Auto merged
mysql-test/t/ctype_ucs.test:
Auto merged
mysql-test/t/variables.test:
Auto merged
sql/ha_partition.cc:
Auto merged
sql/item_func.cc:
Auto merged
sql/sql_yacc.yy:
Auto merged
sql/table.cc:
Auto merged
The new default database engine for altered table was reassigned to
the old one. That's wrong thing by itself, and (as the engine
for a subpartition gets that new value) leads to DBUG_ASSERTION
in mysql_unpack_partition()
mysql-test/r/partition.result:
Bug #31893 Partitions: crash if subpartitions and engine change.
test result
mysql-test/t/partition.test:
Bug #31893 Partitions: crash if subpartitions and engine change.
test case
sql/sql_partition.cc:
Bug #31893 Partitions: crash if subpartitions and engine change.
Don't change part_info->default_engine_type if it's already set
into stella.local:/home2/mydev/mysql-5.0-axmrg
mysql-test/r/ctype_ucs.result:
Auto merged
mysql-test/t/ctype_ucs.test:
Auto merged
sql/item_func.cc:
Auto merged
The SET PASSWORD statement is non-transactional (no explicit transaction
boundaries) in nature and hence is forbidden inside stored functions and
triggers, but it weren't being effectively forbidden.
The implemented fix is to issue a implicit commit with every SET PASSWORD
statement, effectively prohibiting these statements in stored functions
and triggers.
mysql-test/r/sp-error.result:
Add test case result for Bug#30904
mysql-test/t/sp-error.test:
Add test case for Bug#30904
sql/sql_lex.h:
Add variable to set that a statement with SET PASSWORD causes a implicit
commit.
sql/sql_parse.cc:
End active transaction in SET PASSWORD.
sql/sql_yacc.yy:
Set the correct flag on SET PASSWORD if inside a SP, thus effectively
prohibiting SET PASSWORD statements in stored functions and triggers.
into magare.gmz:/home/kgeorge/mysql/work/B31884-5.1-opt
sql/item_subselect.h:
Auto merged
mysql-test/r/subselect.result:
merged the fix for bug 31884 to 5.1-opt
mysql-test/t/subselect.test:
merged the fix for bug 31884 to 5.1-opt
Item_in_subselect's only externally callable method is val_bool().
However the nullability in the wrapper class (Item_in_optimizer) is
established by calling the "forbidden" method val_int().
Fixed to use the correct method (val_bool() ) to establish nullability
of Item_in_subselect in Item_in_optimizer.
mysql-test/r/subselect.result:
Bug #31884: test case
mysql-test/t/subselect.test:
Bug #31884: test case
sql/item_subselect.h:
Bug #31884: Use the correct method to establish nullability
Fulltext boolean mode phrase search may crash server on platforms
where size of pointer is not equal to size of unsigned integer
(in other words some 64-bit platforms).
The problem was integer overflow.
Affects 4.1 only.
myisam/ft_boolean_search.c:
my_match_t::beg is unsigned int, that means type of expression
(m[0].beg - 1) has unsigned type too. It may happen that instr()
finds substring in the beggining of passed string, returning
m[0].beg equal to 0. In this case value of expression (m[0].beg - 1)
is equal to MAX_UINT.
This is not a problem on platforms where sizeof(pointer) equals to
sizeof(uint). That means ptr[(uint)-1] = ptr[(uint)MAX_UINT] = ptr - 1.
On some 64-bit platforms where sizeof(pointer) is 8 and sizeof(uint)
is 4, wrong address gets accessed. In other words ptr[(uint)-1] is
equal to ptr + MAX_UINT.
mysql-test/r/fulltext.result:
A test case for BUG#11392.
mysql-test/t/fulltext.test:
A test case for BUG#11392.
into stella.local:/home2/mydev/mysql-5.1-bug4692
mysql-test/r/myisam.result:
Bug#4692 - DISABLE/ENABLE KEYS waste a space
Manual merge
mysql-test/t/myisam.test:
Bug#4692 - DISABLE/ENABLE KEYS waste a space
Manual merge
storage/myisam/mi_check.c:
Bug#4692 - DISABLE/ENABLE KEYS waste a space
Manual merge
Item_func_inet_ntoa and Item_func_conv inherit 'maybe_null' flag from an
argument, which is wrong.
Both can be NULL with notnull arguments, so that's fixed.
mysql-test/r/func_str.result:
Bug #31758 inet_ntoa, oct crashes server with null+filesort
test case
mysql-test/t/func_str.test:
Bug #31758 inet_ntoa, oct crashes server with null+filesort
test result
sql/item_strfunc.h:
Bug #31758 inet_ntoa, oct crashes server with null+filesort
missing maybe_null flags set for Item_func_inet_ntoa and Item_func_conv
into lambda.weblab:/home/malff/TREE/mysql-5.1-rt-merge
mysql-test/include/mix1.inc:
Auto merged
mysql-test/r/innodb_mysql.result:
Auto merged
mysql-test/r/select.result:
Auto merged
sql/handler.cc:
Auto merged
sql/item.cc:
Auto merged
sql/item_func.cc:
Auto merged
sql/mysql_priv.h:
Auto merged
sql/protocol.cc:
Auto merged
sql/set_var.cc:
Auto merged
sql/sql_base.cc:
Auto merged
sql/sql_class.h:
Auto merged
sql/sql_select.cc:
Auto merged
sql/sql_table.cc:
Auto merged
rebuild the table.
The problem was that ROW_FORMAT clause in ALTER TABLE did not trigger
table reconstruction.
The fix is to rebuild a table if ROW_FORMAT is specified.
mysql-test/include/mix1.inc:
Add a test case for BUG#27610: ALTER TABLE ROW_FORMAT=... does not
rebuild the table.
mysql-test/r/innodb_mysql.result:
Update result file.
sql/sql_table.cc:
Rebuild a table if ROW_FORMAT was specified in ALTER TABLE.
into trift2.:/MySQL/M51/push-5.1
configure.in:
Auto merged
mysql-test/suite/funcs_1/r/innodb__datadict.result:
Auto merged
mysql-test/suite/funcs_1/r/memory__datadict.result:
Auto merged
mysql-test/suite/funcs_1/r/myisam__datadict.result:
Auto merged
mysql-test/r/partition.result:
Ensure test for bug number 27816 is in the merged tree.
mysql-test/t/partition.test:
Ensure test for bug number 27816 is in the merged tree.
into mysql.com:/home/gluh/MySQL/Merge/5.1-opt
mysql-test/r/type_decimal.result:
Auto merged
mysql-test/t/type_decimal.test:
Auto merged
sql/item_func.cc:
Auto merged
sql/item_func.h:
Auto merged
There are two problems with ROUND(X, D) on an exact numeric
(DECIMAL, NUMERIC type) field of a table:
1) The implementation of the ROUND function would change the number of decimal
places regardless of the value decided upon in fix_length_and_dec. When the
number of decimal places is not constant, this would cause an inconsistent
state where the number of digits was less than the number of decimal places,
which crashes filesort.
Fixed by not allowing the ROUND operation to add any more decimal places than
was decided in fix_length_and_dec.
2) fix_length_and_dec would allow the number of decimals to be greater than
the maximium configured value for constant values of D. This led to the same
crash as in (1).
Fixed by not allowing the above in fix_length_and_dec.
mysql-test/r/type_decimal.result:
Bug#30889: Test result
mysql-test/t/type_decimal.test:
Bug#30889: Test case
sql/item_func.cc:
Bug#30889:
- Avoid setting number of digits after decimal point (scale) higher than its
maximum value.
- Avoid increasing the number of decimal places in ::decimal_op
sql/item_func.h:
Bug#30889: Added comments to the declarations of Item_func_numhybrid::<type>_op
family of methods.
into mysql.com:/home/gluh/MySQL/Merge/5.1-opt
mysql-test/r/func_gconcat.result:
Auto merged
mysql-test/t/func_gconcat.test:
Auto merged
sql/item_sum.cc:
Auto merged
The fix is a copy of Martin Friebe's suggestion.
added testing for no_appended which will be false if anything,
including the empty string is in result
mysql-test/r/func_gconcat.result:
test result
mysql-test/t/func_gconcat.test:
test case
sql/item_sum.cc:
added testing for no_appended which will be False if anything,
including the empty string is in result
into polly.(none):/home/kaa/src/opt/mysql-5.1-opt
mysql-test/r/variables.result:
Auto merged
mysql-test/t/variables.test:
Auto merged
sql/mysql_priv.h:
Auto merged
sql/mysqld.cc:
Auto merged
sql/set_var.cc:
Auto merged
into polly.(none):/home/kaa/src/opt/mysql-5.0-opt
mysql-test/r/variables.result:
Auto merged
mysql-test/t/variables.test:
Auto merged
sql/mysql_priv.h:
Auto merged
sql/mysqld.cc:
Auto merged
sql/set_var.cc:
Auto merged
into gleb.loc:/home/uchum/work/bk/5.1-opt
mysql-test/r/archive.result:
Auto merged
mysql-test/t/archive.test:
Auto merged
storage/archive/azio.c:
Auto merged
into gleb.loc:/home/uchum/work/bk/5.1-opt
mysql-test/r/type_decimal.result:
Auto merged
mysql-test/t/type_decimal.test:
Auto merged
sql/item.cc:
Auto merged
1. Memory overrun have been fixed.
2. Server failure on assertion has been fixed.
storage/archive/azio.c:
Fixed bug #31036.
The ha_archive::rnd_pos function has been modified to take
into account the result of the azseek function and
to return HA_ERR_CRASHED_ON_USAGE in case of seek error.
storage/archive/ha_archive.cc:
Fixed bug #31036.
1. Memory overrun has been fixed: maximal sizes of azio_stream::inbuf
and azio_stream::outbuf was mixed.
2. Zero value of the output parameter of the azread function was
incorrectly interpreted by the azseek function: after the first
successful read attempt the execution of the azseek loop was
interrupted and negative value was returned.
(See ha_archive::rnd_pos: that negative value was silently ignored,
and an incomplete data was used, for example, as a size of a packed
record, and server failed with the assertion:
"row_len <= record_buffer->length".)
mysql-test/t/archive.test:
Added test case for bug #31036.
mysql-test/r/archive.result:
Added test case for bug #31036.
Disabling and enabling indexes on a non-empty table grows the
index file.
Disabling indexes just sets a flag per non-unique index and does not
free the index blocks of the affected indexes. Re-enabling indexes
creates new indexes with new blocks. The old blocks remain unused
in the index file.
Fixed by dropping and re-creating all indexes if non-empty disabled
indexes exist when enabling indexes. Dropping all indexes resets
the internal end-of-file marker to the end of the index file header.
It also clears the root block pointers of every index and clears the
deleted blocks chains. This way all blocks are declared as free.
myisam/mi_check.c:
Bug#4692 - DISABLE/ENABLE KEYS waste a space
Added function mi_drop_all_indexes() to support drop of all indexes
in case we want to re-enable non-empty disabled indexes.
Changed mi_repair(), mi_repair_by_sort(), and mi_repair_parallel()
to use the new function instead of duplicate drop index code.
mysql-test/r/myisam.result:
Bug#4692 - DISABLE/ENABLE KEYS waste a space
Added test result.
mysql-test/t/myisam.test:
Bug#4692 - DISABLE/ENABLE KEYS waste a space
Added test.
into gleb.loc:/home/uchum/work/bk/5.1-opt
mysql-test/r/select.result:
Auto merged
mysql-test/r/type_decimal.result:
Auto merged
mysql-test/t/select.test:
Auto merged
mysql-test/t/type_decimal.test:
Auto merged
sql/item.cc:
Auto merged
sql/sql_class.cc:
Auto merged
sql/sql_class.h:
Auto merged
sql/sql_yacc.yy:
Auto merged
sql/share/errmsg.txt:
Merge with 5.0-opt
SHOW FIELDS FROM a view with no valid definer was possible (since fix
for Bug#26817), but gave NULL as a field-type. This led to mysqldump-ing
of such views being successful, but loading such a dump with the client
failing. Patch allows SHOW FIELDS to give data-type of field in underlying
table.
mysql-test/r/information_schema_db.result:
Fix test results: SHOW FIELDS FROM a view with no valid DEFINER
gives us the field-type of the underlying table now rather than NULL.
sql/sql_base.cc:
In the case of SHOW FIELDS FROM <view>, do not require a valid
DEFINER for determining underlying data-type like we usually do.
This is needed for mysqldump.
doesn't recognize it
This is a 5.1 version of the patch.
Problem:
'log' and 'log_slow_queries' were "fixed" variables, i.e. they showed up
in SHOW VARIABLES, but could not be used in expressions like
"select @@log". Also, using them in the SET statement produced an
incorrect "unknown system variable" error.
Solution:
Since as of MySQL 5.1.12 one can enable or disable the general query log
or the slow query log at runtime by changing values of
general_log/slow_query_log, make 'log' and 'log_slow_queries" to be
synonyms for 'general_log' and 'slow_query_log' respectively. This
makes expressions using the '@@var' syntax backward compatible with
5.0 and SHOW VARIABLES output to be consistent with the SET statement.
mysql-test/r/log_state.result:
Added a test case for bug #29131.
mysql-test/t/log_state.test:
Added a test case for bug #29131.
sql/set_var.cc:
Made the 'log' and 'log_slow_queries' system variables to be synonyms for 'general_log' and 'slow_query_log'.
doesn't recognize it
This is a 5.0 version of the patch, it will be null-merged to 5.1
Problem:
'log' and 'log_slow_queries' were "fixed" variables, i.e. they showed up
in SHOW VARIABLES, but could not be used in expressions like
"select @@log". Also, using them in the SET statement produced an
incorrect "unknown system variable" error.
Solution:
Make 'log' and 'log_slow_queries' read-only dynamic variables to make
them available for use in expressions, and produce a correct error
about the variable being read-only when used in the SET statement.
mysql-test/r/variables.result:
Added a test case for bug #29131.
mysql-test/t/variables.test:
Added a test case for bug #29131.
sql/mysql_priv.h:
Changed the type of opt_log and opt_slow_log to my_bool to
align with the interfaces in set_var.cc
sql/mysqld.cc:
Changed the type of opt_log and opt_slow_log to my_bool to
align with the interfaces in set_var.cc
sql/set_var.cc:
Made 'log' and 'log_slow_queries' to be read-only dynamic system
variable, i.e. available for use in expressions with the @@var syntax.
sql/set_var.h:
Added a new system variable class representing a read-only boolean
variable.
into mysql.com:/home/svoj/devel/mysql/BUG31159/mysql-5.1-engines
include/my_sys.h:
Use local.
mysys/charset.c:
Use local.
sql/item_func.cc:
Use local.
mysql-test/r/ctype_ucs.result:
SCCS merged
mysql-test/t/ctype_ucs.test:
SCCS merged
all space column names.
The parser has been modified to check VIEW column names
with the check_column_name function and to report an error
on empty and all space column names (same as for TABLE
column names).
sql/sql_yacc.yy:
Fixed bug #27695.
The parser has been modified to check VIEW column aliases
with the check_column_name function and to report an error
on empty columns and all space columns (same as for TABLE
column names).
mysql-test/t/select.test:
Updated test case for bug #27695.
mysql-test/r/select.result:
Updated test case for bug #27695.
into mysql.com:/home/svoj/devel/mysql/BUG31159/mysql-5.0-engines
include/my_sys.h:
Auto merged
mysql-test/r/ctype_ucs.result:
Auto merged
mysql-test/t/ctype_ucs.test:
Auto merged
mysys/charset.c:
Manual merge.
sql/item_func.cc:
Manual merge.
ucs2 doesn't provide required by fulltext ctype array. Crash
happens because fulltext attempts to use unitialized ctype
array.
Fixed by converting ucs2 fields to compatible utf8 analogue.
include/my_sys.h:
Added a function to find compatible character set with ctype array
available. Currently used by fulltext search to find compatible
substitute for ucs2 collations.
mysql-test/r/ctype_ucs.result:
A test case for BUG#31159.
mysql-test/t/ctype_ucs.test:
A test case for BUG#31159.
mysys/charset.c:
Added a function to find compatible character set with ctype array
available. Currently used by fulltext search to find compatible
substitute for ucs2 collations.
sql/item_func.cc:
Convert ucs2 fields to utf8. Fulltext requires ctype array, but
ucs2 doesn't provide it.
into magare.gmz:/home/kgeorge/mysql/work/B30715-merged-5.1-opt
mysql-test/r/func_group.result:
Auto merged
mysql-test/r/type_decimal.result:
Auto merged
mysql-test/t/func_group.test:
Auto merged
mysql-test/t/type_decimal.test:
Auto merged
sql/item.cc:
Auto merged
sql/opt_sum.cc:
merge bug 30715 to 5.1-opt