into dl145h.mysql.com:/data0/mkindahl/mysql-5.0-rpl-merge
client/mysql.cc:
Auto merged
mysql-test/r/ctype_ucs.result:
Auto merged
mysql-test/t/ctype_uca.test:
Auto merged
mysql-test/t/ctype_ucs.test:
Auto merged
mysql-test/t/subselect.test:
Auto merged
sql/item_cmpfunc.cc:
Auto merged
sql/mysqld.cc:
Auto merged
sql/sql_class.h:
Auto merged
into adventure.(none):/home/thek/Development/cpp/mysql-5.1-runtime
sql/mysqld.cc:
Auto merged
sql/sp_head.cc:
Auto merged
sql/sp_head.h:
Auto merged
sql/sql_base.cc:
Auto merged
sql/sql_lex.h:
Auto merged
sql/sql_prepare.cc:
Auto merged
sql/sql_yacc.yy:
Auto merged
is_last_prefix <= 0, file .\opt_range.cc.
SELECT ... GROUP BY bit field failed with an assertion if the
bit length of that field was not divisible by 8.
sql/key.cc:
Fixed bug #32556.
Copying of "uneven" bits of a bit field was duplicated in the
key_copy() and in the Field_bit::get_key_image().
So, instead of copying of the rest of a bit field,
Field_bit::get_key_image() copied "uneven" bits to key image again,
and the lowest field byte was not copied to key at all.
Duplicated code has been removed from the key_copy function.
mysql-test/t/type_bit.test:
Added test case for bug #32556.
mysql-test/r/type_bit.result:
Added test case for bug #32556.
Problem: setting Item_func_rollup_const::null_value property to argument's null_value
before (without) the argument evaluation may result in a crash due to wrong null_value.
Fix: use is_null() to set Item_func_rollup_const::null_value instead as it evaluates
the argument if necessary and returns a proper value.
mysql-test/r/olap.result:
Fix for bug #32558: group by null-returning expression with rollup causes crash
- test result.
mysql-test/t/olap.test:
Fix for bug #32558: group by null-returning expression with rollup causes crash
- test case.
sql/item_func.h:
Fix for bug #32558: group by null-returning expression with rollup causes crash
- use args[0]->is_null() to obtain Item_func_rollup_const::null_value
instead of args[0]->null_value as it's not set in advance in case of
constant functions.
Problem: even if an Item_xml_str_func successor returns NULL, it doesn't have
a corresponding property (maybe_null) set, that leads to a failed assertion.
Fix: set nullability property of Item_xml_str_func.
mysql-test/r/xml.result:
Fix for bug #32557: order by updatexml causes assertion in filesort
- test result.
mysql-test/t/xml.test:
Fix for bug #32557: order by updatexml causes assertion in filesort
- test case.
sql/item_xmlfunc.h:
Fix for bug #32557: order by updatexml causes assertion in filesort
- set Item_xml_str_func::maybe_null.
into magare.gmz:/home/kgeorge/mysql/work/B30788-5.1-opt
mysql-test/r/subselect3.result:
Auto merged
sql/item.h:
Auto merged
sql/sql_select.cc:
Auto merged
mysql-test/r/subselect.result:
merge of bug 30788 to 5.1-opt
mysql-test/t/subselect.test:
merge of bug 30788 to 5.1-opt
into adventure.(none):/home/thek/Development/cpp/bug31153/my51-bug31153
sql/mysqld.cc:
Auto merged
sql/sp_head.cc:
Auto merged
sql/sp_head.h:
Auto merged
sql/sql_prepare.cc:
Auto merged
sql/sql_yacc.yy:
Null merge.
sql/sql_base.cc:
Manual merge
sql/sql_lex.h:
Manual merge
Changed bitmaps to be written before unpinning of pages in write_block_record()
Log handler now assumes we never call it for not transactional tables
Fixed bug in ma_test_all that caused it to fail
sql/unireg.cc:
Removed 'at', as this makes it hard to find valgrind errors from the debug log
storage/maria/ma_blockrec.c:
Changed bzero() of blocks to get rid of a (non critical) valgrind error
Changed bitmaps to be written before unpinning of pages in write_block_record()
fixed that we don't log tails if table isn't transactional
storage/maria/ma_key_recover.c:
Fixed wrong log_data[] that caused us to log uninitialized data
storage/maria/ma_loghandler.c:
Replaced not needed test with DBUG_ASSERT()
storage/maria/ma_test_all.sh:
Remove control file if block size changes
into magare.gmz:/home/kgeorge/mysql/autopush/B30788-5.0-opt
sql/item.h:
Auto merged
sql/sql_select.cc:
Auto merged
mysql-test/r/subselect.result:
merge of 5.0-opt
mysql-test/t/subselect.test:
merge of 5.0-opt
Index lookup does not always guarantee that we can
simply remove the relevant conditions from the WHERE
clause. Reasons can be e.g. conversion errors,
partial indexes etc.
The optimizer was removing these parts of the WHERE
condition without any further checking.
This leads to "false positives" when using indexes.
Fixed by checking the index reference conditions
(using WHERE) when using indexes with sub-queries.
mysql-test/r/subselect.result:
Bug #30788:
- using where
- test case
mysql-test/r/subselect3.result:
Bug #30788: using where
mysql-test/t/subselect.test:
Bug #30788: test case
sql/item.h:
Bug #30788:
- Declare eq() method of Item_cache descendants : this is used in
test_if_ref()
- preserve the field that is being cached for type comparisions
sql/sql_select.cc:
Bug #30788: Don't remove the WHERE when using index lookup
with subqueries.
into adventure.(none):/home/thek/Development/cpp/mysql-5.0-runtime
sql/mysqld.cc:
Auto merged
sql/sp_head.cc:
Auto merged
sql/sp_head.h:
Auto merged
sql/sql_base.cc:
Auto merged
sql/sql_yacc.yy:
Manual merge.
Problem: caching 00000000-00000099 dates as integer values we're
improperly shifting them up twice in the get_datetime_value().
Fix: don't shift cached DATETIME values up for the second time.
mysql-test/r/type_date.result:
Fix for bug #32021: Using Date 000-00-01 in WHERE causes wrong result
- test result.
mysql-test/t/type_date.test:
Fix for bug #32021: Using Date 000-00-01 in WHERE causes wrong result
- test case.
sql/item.h:
Fix for bug #32021: Using Date 000-00-01 in WHERE causes wrong result
- Item_cache::field_type() method added.
- new Item_cache(enum_field_types) and Item_cache_int(enum_field_types)
constructors added.
sql/item_cmpfunc.cc:
Fix for bug #32021: Using Date 000-00-01 in WHERE causes wrong result
- don't shift cached DATETIME values for the second time in the
get_datetime_value():
creating new Item_cache_int set DATETIME filed type,
check the type before shifting.
into mysql.com:/home/my/mysql-maria
include/my_sys.h:
Auto merged
sql/mysqld.cc:
Auto merged
storage/maria/ma_checkpoint.c:
Auto merged
storage/maria/ma_pagecache.c:
Auto merged
storage/maria/ma_pagecache.h:
Auto merged
storage/maria/maria_chk.c:
Auto merged
storage/maria/ma_recovery.c:
SCCS merged
Fixes the following bugs:
- Bug #29560: InnoDB >= 5.0.30 hangs on adaptive hash rw-lock 'waiting for an X-lock'
Fixed a race condition in the rw_lock where an os_event_reset()
can overwrite an earlier os_event_set() triggering an indefinite
wait.
NOTE: This fix for windows is different from that for other platforms.
NOTE2: This bug is introduced in the scalability fix to the
sync0arr which was applied to 5.0 only. Therefore, it need not be
applied to the 5.1 tree. If we decide to port the scalability fix
to 5.1 then this fix should be ported as well.
- Bug #32125: Database crash due to ha_innodb.cc:3896: ulint convert_search_mode_to_innobase
When unknown find_flag is encountered in convert_search_mode_to_innobase()
do not call assert(0); instead queue a MySQL error using my_error() and
return the error code PAGE_CUR_UNSUPP. Change the functions that call
convert_search_mode_to_innobase() to handle that error code by "canceling"
execution and returning appropriate error code further upstream.
innobase/include/db0err.h:
Applied InnoDB snapshot innodb-5.0-ss2095
Revision r2091:
branches/5.0:
Merge r2088 from trunk:
log for r2088:
Fix Bug#32125 (http://bugs.mysql.com/32125)
"Database crash due to ha_innodb.cc:3896: ulint convert_search_mode_to_innobase":
When unknown find_flag is encountered in convert_search_mode_to_innobase()
do not call assert(0); instead queue a MySQL error using my_error() and
return the error code PAGE_CUR_UNSUPP. Change the functions that call
convert_search_mode_to_innobase() to handle that error code by "canceling"
execution and returning appropriate error code further upstream.
Approved by: Heikki
innobase/include/os0sync.h:
Applied InnoDB snapshot innodb-5.0-ss2095
Revision r2082:
branches/5.0: bug#29560
Fixed a race condition in the rw_lock where an os_event_reset()
can overwrite an earlier os_event_set() triggering an indefinite
wait.
NOTE: This fix for windows is different from that for other platforms.
NOTE2: This bug is introduced in the scalability fix to the
sync0arr which was applied to 5.0 only. Therefore, it need not be
applied to the 5.1 tree. If we decide to port the scalability fix
to 5.1 then this fix should be ported as well.
Reviewed by: Heikki
innobase/include/page0cur.h:
Applied InnoDB snapshot innodb-5.0-ss2095
Revision r2091:
branches/5.0:
Merge r2088 from trunk:
log for r2088:
Fix Bug#32125 (http://bugs.mysql.com/32125)
"Database crash due to ha_innodb.cc:3896: ulint convert_search_mode_to_innobase":
When unknown find_flag is encountered in convert_search_mode_to_innobase()
do not call assert(0); instead queue a MySQL error using my_error() and
return the error code PAGE_CUR_UNSUPP. Change the functions that call
convert_search_mode_to_innobase() to handle that error code by "canceling"
execution and returning appropriate error code further upstream.
Approved by: Heikki
innobase/include/sync0rw.h:
Applied InnoDB snapshot innodb-5.0-ss2095
Revision r2082:
branches/5.0: bug#29560
Fixed a race condition in the rw_lock where an os_event_reset()
can overwrite an earlier os_event_set() triggering an indefinite
wait.
NOTE: This fix for windows is different from that for other platforms.
NOTE2: This bug is introduced in the scalability fix to the
sync0arr which was applied to 5.0 only. Therefore, it need not be
applied to the 5.1 tree. If we decide to port the scalability fix
to 5.1 then this fix should be ported as well.
Reviewed by: Heikki
innobase/include/sync0rw.ic:
Applied InnoDB snapshot innodb-5.0-ss2095
Revision r2082:
branches/5.0: bug#29560
Fixed a race condition in the rw_lock where an os_event_reset()
can overwrite an earlier os_event_set() triggering an indefinite
wait.
NOTE: This fix for windows is different from that for other platforms.
NOTE2: This bug is introduced in the scalability fix to the
sync0arr which was applied to 5.0 only. Therefore, it need not be
applied to the 5.1 tree. If we decide to port the scalability fix
to 5.1 then this fix should be ported as well.
Reviewed by: Heikki
innobase/include/sync0sync.ic:
Applied InnoDB snapshot innodb-5.0-ss2095
Revision r2082:
branches/5.0: bug#29560
Fixed a race condition in the rw_lock where an os_event_reset()
can overwrite an earlier os_event_set() triggering an indefinite
wait.
NOTE: This fix for windows is different from that for other platforms.
NOTE2: This bug is introduced in the scalability fix to the
sync0arr which was applied to 5.0 only. Therefore, it need not be
applied to the 5.1 tree. If we decide to port the scalability fix
to 5.1 then this fix should be ported as well.
Reviewed by: Heikki
innobase/os/os0sync.c:
Applied InnoDB snapshot innodb-5.0-ss2095
Revision r2082:
branches/5.0: bug#29560
Fixed a race condition in the rw_lock where an os_event_reset()
can overwrite an earlier os_event_set() triggering an indefinite
wait.
NOTE: This fix for windows is different from that for other platforms.
NOTE2: This bug is introduced in the scalability fix to the
sync0arr which was applied to 5.0 only. Therefore, it need not be
applied to the 5.1 tree. If we decide to port the scalability fix
to 5.1 then this fix should be ported as well.
Reviewed by: Heikki
innobase/srv/srv0srv.c:
Applied InnoDB snapshot innodb-5.0-ss2095
Revision r2082:
branches/5.0: bug#29560
Fixed a race condition in the rw_lock where an os_event_reset()
can overwrite an earlier os_event_set() triggering an indefinite
wait.
NOTE: This fix for windows is different from that for other platforms.
NOTE2: This bug is introduced in the scalability fix to the
sync0arr which was applied to 5.0 only. Therefore, it need not be
applied to the 5.1 tree. If we decide to port the scalability fix
to 5.1 then this fix should be ported as well.
Reviewed by: Heikki
innobase/sync/sync0arr.c:
Applied InnoDB snapshot innodb-5.0-ss2095
Revision r2082:
branches/5.0: bug#29560
Fixed a race condition in the rw_lock where an os_event_reset()
can overwrite an earlier os_event_set() triggering an indefinite
wait.
NOTE: This fix for windows is different from that for other platforms.
NOTE2: This bug is introduced in the scalability fix to the
sync0arr which was applied to 5.0 only. Therefore, it need not be
applied to the 5.1 tree. If we decide to port the scalability fix
to 5.1 then this fix should be ported as well.
Reviewed by: Heikki
innobase/sync/sync0rw.c:
Applied InnoDB snapshot innodb-5.0-ss2095
Revision r2082:
branches/5.0: bug#29560
Fixed a race condition in the rw_lock where an os_event_reset()
can overwrite an earlier os_event_set() triggering an indefinite
wait.
NOTE: This fix for windows is different from that for other platforms.
NOTE2: This bug is introduced in the scalability fix to the
sync0arr which was applied to 5.0 only. Therefore, it need not be
applied to the 5.1 tree. If we decide to port the scalability fix
to 5.1 then this fix should be ported as well.
Reviewed by: Heikki
innobase/sync/sync0sync.c:
Applied InnoDB snapshot innodb-5.0-ss2095
Revision r2082:
branches/5.0: bug#29560
Fixed a race condition in the rw_lock where an os_event_reset()
can overwrite an earlier os_event_set() triggering an indefinite
wait.
NOTE: This fix for windows is different from that for other platforms.
NOTE2: This bug is introduced in the scalability fix to the
sync0arr which was applied to 5.0 only. Therefore, it need not be
applied to the 5.1 tree. If we decide to port the scalability fix
to 5.1 then this fix should be ported as well.
Reviewed by: Heikki
sql/ha_innodb.cc:
Applied InnoDB snapshot innodb-5.0-ss2095
Revision r2091:
branches/5.0:
Merge r2088 from trunk:
log for r2088:
Fix Bug#32125 (http://bugs.mysql.com/32125)
"Database crash due to ha_innodb.cc:3896: ulint convert_search_mode_to_innobase":
When unknown find_flag is encountered in convert_search_mode_to_innobase()
do not call assert(0); instead queue a MySQL error using my_error() and
return the error code PAGE_CUR_UNSUPP. Change the functions that call
convert_search_mode_to_innobase() to handle that error code by "canceling"
execution and returning appropriate error code further upstream.
Approved by: Heikki
Revision r2095:
branches/5.0: Merge r2093 from trunk:
convert_search_mode_to_innobase(): Add the missing case label
HA_READ_MBR_EQUAL that was forgotten in r2088.
only on some occasions
Referencing an element from the SELECT list in a WHERE
clause is not permitted. The namespace of the WHERE
clause is the table columns only. This was not enforced
correctly when resolving outer references in sub-queries.
Fixed by not allowing references to aliases in a
sub-query in WHERE.
mysql-test/include/ps_query.inc:
Bug #32400: fixed old test queries
mysql-test/r/ps_2myisam.result:
Bug #32400: fixed old test queries
mysql-test/r/ps_3innodb.result:
Bug #32400: fixed old test queries
mysql-test/r/ps_4heap.result:
Bug #32400: fixed old test queries
mysql-test/r/ps_5merge.result:
Bug #32400: fixed old test queries
mysql-test/r/ps_6bdb.result:
Bug #32400: fixed old test queries
mysql-test/r/ps_7ndb.result:
Bug #32400: fixed old test queries
mysql-test/r/subselect.result:
Bug #32400: test case
mysql-test/t/subselect.test:
Bug #32400: test case
sql/item.cc:
Bug #32400: don't allow references to aliases in WHERE
tests/mysql_client_test.c:
Bug #32400: fixed old test queries
The problem is that DROP TABLE and other DDL statements failed to
automatically close handlers associated with tables that were marked
for reopen (FLUSH TABLES).
The current implementation fails to properly discard handlers of
dropped tables (that were marked for reopen) because it searches
on the open handler tables list and using the current alias of the
table being dropped. The problem is that it must not use the open
handler tables list to search because the table might have been
closed (marked for reopen) by a flush tables command and also it
must not use the current table alias at all since multiple different
aliases may be associated with a single table. This is specially
visible when a user has two open handlers (using alias) of a same
table and a flush tables command is issued before the table is
dropped (see test case). Scanning the handler table list is also
useless for dropping handlers associated with temporary tables,
because temporary tables are not kept in the THD::handler_tables
list.
The solution is to simple scan the handlers hash table searching
for, and deleting all handlers with matching table names if the
reopen flag is not passed to the flush function, indicating that
the handlers should be deleted. All matching handlers are deleted
even if the associated the table is not open.
mysql-test/include/handler.inc:
Add test case for Bug#31397
mysql-test/r/handler_innodb.result:
Add test case result for Bug#31397
mysql-test/r/handler_myisam.result:
Add test case result for Bug#31397
sql/mysql_priv.h:
Rename flush functions to better match the intent of the caller and
update functions prototypes and remove unused flags.
sql/sql_base.cc:
Rename flush functions to better match the intent of the caller.
sql/sql_class.cc:
Rename the flush functions to better match the intent of the caller.
The hash_free function is moved to the cleanup.
sql/sql_handler.cc:
When dropping tables for a final close, scan the handler's hash table since
the table might not be in the handlers open table list because the table was
marked for reopen or because it's a temporary table.
sql/sql_rename.cc:
Drop handlers associated with tables that are being renamed.
sql/sql_table.cc:
Now that temporary tables are properly removed even when opened
by a SQL HANDLER, enable the assert since this branch can't be taken
outside of SF/trigger/prelocked mode.
8bit escape characters, termination and enclosed characters
were silently ignored by SELECT INTO query, but LOAD DATA INFILE
algorithm is 8bit-clean, so data was corrupted during
encoding.
sql/sql_class.cc:
Fixed bug #32533.
SELECT INTO OUTFILE encoding was not 8bit clear, it
has been fixed for a symmetry with the LOAD DATA INFILE
decoding algorithm.
mysql-test/t/outfile_loaddata.test:
Added test case for bug #32533.
mysql-test/r/outfile_loaddata.result:
Added test case for bug #32533.
Loose index scan does the grouping so the temp table does
not need to do it, even when sorting.
Fixed by checking if the grouping is already done before
doing sorting and grouping in a temp table and do only
sorting.
mysql-test/r/group_min_max.result:
Bug #32268: test case
mysql-test/t/group_min_max.test:
Bug #32268: test case
sql/sql_select.cc:
Bug #32268: don't group in the temp table if already done
into mysql.com:/home/hf/work/31868/my51-31868
BitKeeper/etc/ignore:
auto-union
libmysqld/lib_sql.cc:
Auto merged
sql/mysqld.cc:
Auto merged
sql/sql_table.cc:
Auto merged
Problem was for LINEAR HASH/KEY. Crashes because of wrong partition id
returned when creating the new altered partitions. (because of wrong
linear hash mask)
Solution: Update the linear hash mask before using it for the new
altered table.
mysql-test/r/partition_hash.result:
Bug#30822: ALTER TABLE COALESCE PARTITION causes segmentation fault
test result
mysql-test/t/partition_hash.test:
Bug#30822: ALTER TABLE COALESCE PARTITION causes segmentatition fault
test case
sql/ha_partition.cc:
Bug#30822: ALTER TABLE COALESCE PARTITION causes segmentation fault
Updating the linear hash mask before using it.
sql/sql_partition.cc:
Bug#30822: ALTER TABLE COALESCE PARTITION causes segmentation fault
exporting the set_linear_hash_mask function (static -> non static)
sql/sql_partition.h:
Bug#30822: ALTER TABLE COALESCE PARTITION causes segmentation fault
exporting the set_linear_hash_mask function (static -> non static)
The problem: ha_partition::read_range_first() could return a record that is
outside of the scanned range. If that record happened to be in the next
subsequent range, it would satisfy the WHERE and appear in the output twice.
(we would get it the second time when scanning the next subsequent range)
Fix:
Made ha_partition::read_range_first() check if the returned recod is within
the scanned range, like other read_range_first() implementations do.
mysql-test/r/partition_range.result:
BUG#30573: Ordered range scan over partitioned tables returns some rows twice
- Testcase
mysql-test/t/partition_range.test:
BUG#30573: Ordered range scan over partitioned tables returns some rows twice
- Testcase
sql/ha_partition.cc:
BUG#30573: Ordered range scan over partitioned tables returns some rows twice
- Make ha_partition::read_range_first() check if the returned record is
within the range.
led to creating corrupted index.
Corrected fix. The new method called prepare2 is added to the select_create
class. As all preparations are done by the select_create::prepare function
it doesn't do anything. Slightly changed algorithm of calling the
start_bulk_insert function. Now it's called from the select_insert::prepare2
function when the SQL_BUFFER_RESULT flags is set.
The is_bulk_insert_mode flag is removed as it is not needed anymore.
sql/sql_class.h:
Bug#30384: Having SQL_BUFFER_RESULT option in the CREATE .. KEY(..) .. SELECT
led to creating corrupted index.
Corrected fix. The new method called prepare2 is added to the select_create
class. As all preparetions are done by the select_create::prepare function
it doesn't do anything.
The is_bulk_insert_mode flag is removed as it is not needed anymore.
sql/sql_insert.cc:
Bug#30384: Having SQL_BUFFER_RESULT option in the CREATE .. KEY(..) .. SELECT
led to creating corrupted index. Slightly changed algorithm of calling the
start_bulk_insert function. Now it's called from the select_insert::prepare2
function when the SQL_BUFFER_RESULT flags is set.
Corrected fix. The is_bulk_insert_mode flag is removed as it is not needed
anymore.
This bug is actually two. The first one manifests itself on an EXPLAIN
SELECT query with nested subqueries that employs the filesort algorithm.
The whole SELECT under explain is marked as UNCACHEABLE_EXPLAIN to preserve
some temporary structures for explain. As a side-effect of this values of
nested subqueries weren't cached and subqueries were re-evaluated many
times. Each time buffer for filesort was allocated but wasn't freed because
freeing occurs at the end of topmost SELECT. Thus all available memory was
eaten up step by step and OOM event occur.
The second bug manifests itself on SELECT queries with conditions where
a subquery result is compared with a key field and the subquery itself also
has such condition. When a long chain of such nested subqueries is present
the stack overrun occur. This happens because at some point the range optimizer
temporary puts the PARAM structure on the stack. Its size if about 8K and
the stack is exhausted very fast.
Now the subselect_single_select_engine::exec function allows subquery result
caching when the UNCACHEABLE_EXPLAIN flag is set.
Now the SQL_SELECT::test_quick_select function calls the check_stack_overrun
function for stack checking purposes to prevent server crash.
mysql-test/t/subselect.test:
Added a test case for the bug#31048: Many nested subqueries may cause server crash.
mysql-test/r/subselect.result:
Added a test case for the bug#31048: Many nested subqueries may cause server crash.
sql/opt_range.cc:
Bug#31048: Many nested subqueries may cause server crash.
Now the SQL_SELECT::test_quick_select function calls the check_stack_overrun
function for stack checking purposes to preven server crash.
sql/item_subselect.cc:
Bug31048: Many nested subqueries may cause server crash.
Now the subselect_single_select_engine::exec function allows subquery result
caching when the UNCACHEABLE_EXPLAIN flag is set.
bytes length.
The server has been modified to report warnings on truncation to
65536 bytes as usual.
sql/sql_string.cc:
Fixed bug #32282.
The well_formed_copy_nchars function returned an incorrect value
of copied bytes of the truncated input string: extra length of
the first truncated character added to the *from_end_pos pointer.
That has been fixed.
mysql-test/r/type_blob.result:
Added test case for bug #32282.
mysql-test/t/type_blob.test:
Added test case for bug #32282.
When the server was out of memory it crashed because of invalid memory access.
This patch adds detection for failed memory allocations and make the server
output a proper error message.
sql/mysqld.cc:
Don't try to push_warning from within push_warning. It will cause a recursion
until the stack is consumed.
If my_net_init fails (for example: because of OOM) the temporary vio object
might have been attached to the thd object already. This will cause a double
free on the vio object when the thd object is deleted later on and the server
will crash.
sql/sp_head.cc:
Added check for out-of-memory on a 'new' operation.
Refactored reset_lex method to return a error state code instead of void.
Initialize the mem-root with init_sql_alloc to get a basic error handler for
memory allocation problems. This alone won't prevent the server from crashing,
NULL pointers have to be accounted for as well.
sql/sp_head.h:
Use the throw() clause in operator new, to indicate to the compiler that
memory allocation can fail and return NULL, so that the compiler should
generate code to check for NULL before invoking C++ constructors, to be
crash safe.
sql/sql_base.cc:
Use init_sql_alloc to get basic out-of-memory error handling.
sql/sql_lex.h:
Use the throw() clause in operator new, to indicate to the compiler that
memory allocation can fail and return NULL, so that the compiler should
generate code to check for NULL before invoking C++ constructors, to be
crash safe.
sql/sql_prepare.cc:
Use init_sql_alloc to get basic out-of-memory error handling.
sql/sql_yacc.yy:
Check for memory allocation failures where it matters.
into janus.mylan:/usr/home/serg/Abk/mysql-5.1
BitKeeper/etc/ignore:
auto-union
client/mysqldump.c:
Auto merged
mysql-test/r/innodb_mysql.result:
Auto merged
mysql-test/r/mysqldump.result:
Auto merged
mysql-test/suite/rpl/include/rpl_mixed_dml.inc:
Auto merged
mysql-test/t/mysqldump.test:
Auto merged
sql/handler.cc:
Auto merged
sql/sql_base.cc:
Auto merged
sql/sql_class.h:
Auto merged
sql/sql_lex.cc:
Auto merged
sql/sql_parse.cc:
Auto merged
sql/sql_plugin.cc:
Auto merged
sql/sql_table.cc:
Auto merged
sql/table.cc:
Auto merged
sql/table.h:
Auto merged
tests/mysql_client_test.c:
Auto merged
corrupts a MERGE table
Post-pushbuild fix for a Valgrind warning.
mysql-test/r/merge.result:
Bug#26379 - Combination of FLUSH TABLE and REPAIR TABLE
corrupts a MERGE table
Fixed test result.
mysql-test/t/merge.test:
Bug#26379 - Combination of FLUSH TABLE and REPAIR TABLE
corrupts a MERGE table
Removed unnecessary statements from test.
sql/sql_trigger.cc:
Bug#26379 - Combination of FLUSH TABLE and REPAIR TABLE
corrupts a MERGE table
Fixed usage of db and table_name for
close_data_files_and_morph_locks().
Comparison of a BIGINT NOT NULL column with a constant arithmetic
expression that evaluates to NULL caused error 1048: "Column '...'
cannot be null".
Made convert_constant_item() check if the constant expression is NULL
before attempting to store it in a field. Attempts to store NULL in a
NOT NULL field caused query errors.
sql/item_cmpfunc.cc:
Fixed bug #32335.
1. Made convert_constant_item() check if the constant expression is NULL
before attempting to store it in a field. Attempts to store NULL in
a NOT NULL field caused query errors.
2. Also minor bug has been fixed: the thd->count_cuted_fields value
was not restored in case of successful conversion.
mysql-test/t/select.test:
Added test case for bug #32335.
mysql-test/r/select.result:
Added test case for bug #32335.
post-merge fixes: some things work differently in 5.1
mysql-test/r/type_newdecimal.result:
post-merge fix: 5.1 throws different warning here
sql/sql_select.cc:
post-merge fix: signature has changed in 5.1