Changes per serg to http://lists.mysql.com/internals/30281
Re-enabled --delayed-insert
client/mysqldump.c:
BUG #7815
Changes per serg on patch: http://lists.mysql.com/internals/30281
1. Re-enabled --delayed-insert
- modified options, removed code that was in place until bug was
fixed
2. Moved the call to get_table_structure to dump_table
- Use added 'ignore_flag' variable to determine what exactly is
being ignored - whole table or just delayed insert ability
3. Changed return type of ignore_table to char with byte value that
determines what exactly is being ignored - the whole table, or
delayed inserts
4. Added ignore_table flags IGNORE_DATA and IGNORE_INSERT_DELAYED
5. Added logic in get_table_structure to not append INSERT data text
if the table's data isn't going to be dumped because the return
value from ignore_table is IGNORE_DATA
6. Changed the name of numFields to numfields. Studly caps aren't
consistent with the rest of the code!
7. Added inclusive list to check_if_ignore_table to set the flag to
IGNORE_INSERT_DELAYED if the table type doesn't support delayed
inserts.
8. More documentation
mysql-test/r/mysqldump.result:
BUG #7815 new results
mysql-test/r/mysqldump-max.result:
BUG #7815
New test results
mysql-test/t/mysqldump-max.test:
BUG #7815
New test for testing if insert delayed is applied to tables that support
it in mysqldump, but only if all storage engines in test have been compiled
in
Replaced the dumb in-handler/not-in-handler check with a proper recursion
check of handlers being executed.
(Re-commit in a different tree, to make push possible.)
mysql-test/r/sp.result:
New test case for BUG#6127.
mysql-test/t/sp.test:
New test case for BUG#6127.
sql/sp_head.cc:
Replaced the setting of ctx->in_handler with a enter/exit handler methods.
sql/sp_rcontext.cc:
Replaced the boolean in_handler flag with a stack of handlers being exectuted, for proper recursion check.
sql/sp_rcontext.h:
Replaced the boolean in_handler flag with a stack of handlers being exectuted, for proper recursion check.
(And added some comments in the sp_rcontext class.)
For LOCK view is opened but not prepared thus leaving 'table' field set to
NULL. invalidate_locked_for_write() wasn't checking that and call to
invalidate_table(NULL) crashes server.
To invalidate_locked_for_write() added check that ensures that table is
completely opened.
sql/sql_cache.cc:
Fix bug #13424 locking view with query cache enabled crashes server
Added check that table is completely opened.
mysql-test/t/view_query_cache.test:
Test case for bug#13424 locking view with query cache enabled crashes server
mysql-test/r/view_query_cache.result:
Test case for bug#13424 locking view with query cache enabled crashes server
Windows have no 'cat' command, use <
mysql.test:
Windows can't handle single quotes in --exec line
mysql-test/t/mysql.test:
Windows can't handle single quotes in --exec line
mysql-test/t/mysqlbinlog.test:
Windows have no 'cat' command, use <
myisam/mi_check.c:
Auto merged
myisam/myisamchk.c:
Auto merged
mysql-test/r/myisam.result:
Auto merged
mysql-test/t/func_in.test:
Auto merged
sql/ha_myisam.cc:
Auto merged
sql/mysqld.cc:
Auto merged
sql/sql_select.cc:
Manually merged.
into mysql.com:/home/mydev/mysql-5.0-5000
myisam/mi_dbug.c:
Auto merged
myisam/mi_rkey.c:
Auto merged
myisam/mi_search.c:
Auto merged
myisam/myisamdef.h:
Auto merged
mysql-test/r/merge.result:
Auto merged
mysql-test/t/merge.test:
Auto merged
into 127.(none):/home/osku/mysql/5.0/3443
innobase/dict/dict0dict.c:
Auto merged
innobase/include/trx0trx.h:
Auto merged
sql/ha_innodb.cc:
Auto merged
mysql-test/r/innodb.result:
Merge fixes.
mysql-test/t/innodb.test:
Merge fixes.
innobase/dict/dict0dict.c:
Add 'add_newline' parameter to dict_print_info_on_foreign_key_in_create_format.
innobase/include/dict0dict.h:
Add 'add_newline' parameter to dict_print_info_on_foreign_key_in_create_format.
innobase/include/os0file.h:
Add os_file_read_string.
innobase/include/trx0trx.h:
Add trx_set_detailed_error and trx_set_detailed_error_from_file functions
and a detailed_error field to trx_struct.
innobase/include/ut0mem.h:
Add ut_strlcpy.
innobase/os/os0file.c:
Add os_file_read_string.
innobase/row/row0ins.c:
Add row_ins_set_detailed function and call it when needed.
Adapt to changes in dict_print_info_on_foreign_key_in_create_format.
innobase/trx/trx0trx.c:
Add trx_set_detailed_error and trx_set_detailed_error_from_file.
Clear trx->detailed_error in trx_create.
innobase/ut/ut0mem.c:
Add ut_strlcpy.
mysql-test/r/innodb.result:
Add new tests, adapt existing ones whose output was changed.
mysql-test/t/innodb.test:
Add new tests, adapt existing ones whose output was changed.
sql/ha_innodb.cc:
Add get_error_message.
Clear trx->detailed_error in start_stmt and external_lock.
sql/ha_innodb.h:
Add get_error_message.
sql/handler.cc:
Add special case code in print_error for HA_ERR_ROW_IS_REFERENCED and
HA_ERR_NO_REFERENCED_ROW.
Change SETMSG to point to new error messages.
sql/share/errmsg.txt:
Add ER_ROW_IS_REFERENCED_2 and ER_NO_REFERENCED_ROW_2.
caused spurious test failures.
mysql-test/t/rpl_multi_delete.test:
Fixed race condition in test that caused spurious test failure.
To have predictable result from statements which are run on slave we
need to sync master and slave explicitly.
mysql-test/t/rpl_multi_update.test:
Fixed race condition in test that caused spurious test failure.
To have predictable result from statements which are run on slave we
need to sync master and slave explicitly.
mysql-test/r/loaddata.result:
Add drop tablea after test case
mysql-test/r/type_decimal.result:
Update warnings
mysql-test/r/union.result:
Miss in merge
mysql-test/t/loaddata.test:
Add drop table after test case
sql/opt_sum.cc:
Add missing }
sql/sql_load.cc:
Manual merge
not equivalent to "x=y" when item->negated == TRUE.
mysql-test/r/func_in.result:
Testcase for BUG#13419
mysql-test/t/func_in.test:
Testcase for BUG#13419
sql/sql_select.cc:
Fix for BUG#13419:
* Take into account that item=Item_func_in(x,y) is not equivalent to "x=y" when
item->negated == TRUE.
* Removed comment that is no longer true.
into mysql.com:/home/mydev/mysql-4.1-4100
myisam/mi_dbug.c:
Auto merged
myisam/mi_rkey.c:
Auto merged
myisam/mi_search.c:
Auto merged
myisam/myisamdef.h:
Auto merged
myisammrg/myrg_rkey.c:
Bug#9112 - Merge table with composite index producing invalid results with some queries
Manual merge
mysql-test/r/merge.result:
Bug#9112 - Merge table with composite index producing invalid results with some queries
Manual merge
mysql-test/t/merge.test:
Bug#9112 - Merge table with composite index producing invalid results with some queries
Manual merge
innobase/data/data0data.c:
Adapt to DICT_MAX_COL_PREFIX_LEN rename.
innobase/dict/dict0dict.c:
Adapt to DICT_MAX_COL_PREFIX_LEN rename.
innobase/include/dict0mem.h:
Rename DICT_MAX_COL_PREFIX_LEN to DICT_MAX_INDEX_COL_LEN.
innobase/include/row0mysql.h:
Add field_lengths parameter to row_create_index_for_mysql.
innobase/rem/rem0rec.c:
Adapt to DICT_MAX_COL_PREFIX_LEN rename.
innobase/row/row0mysql.c:
Add field_lengths parameter to row_create_index_for_mysql and use it to
check for too long index columns.
mysql-test/r/innodb.result:
New tests.
mysql-test/t/innodb.test:
New tests.
sql/ha_innodb.cc:
Create temporary field_lengths buffer and pass it to
row_create_index_for_mysql.
The problem was an ab-use of last_rkey_length.
Formerly we saved the packed key length (of the search key)
in this element. But in certain cases it got replaced by
the (packed) result key length.
Now we use a new element of MI_INFO to save the packed key
length of the search key.
myisam/mi_dbug.c:
Bug#9112 - Merge table with composite index producing invalid results with some queries
Fixed the recognition of NULL values in _mi_print_key().
myisam/mi_rkey.c:
Bug#9112 - Merge table with composite index producing invalid results with some queries
Saved the packed key length in a new element of MI_INFO.
myisam/mi_search.c:
Bug#9112 - Merge table with composite index producing invalid results with some queries
Added a comment and trace prints.
myisam/myisamdef.h:
Bug#9112 - Merge table with composite index producing invalid results with some queries
Added a new element to store the packed key length
for use by the MyISAMMRG engine.
myisammrg/myrg_rkey.c:
Bug#9112 - Merge table with composite index producing invalid results with some queries
Changed to use the new element of MI_INFO to get at the
packed key length.
mysql-test/r/merge.result:
Bug#9112 - Merge table with composite index producing invalid results with some queries
The test result.
mysql-test/t/merge.test:
Bug#9112 - Merge table with composite index producing invalid results with some queries
The test case.
into neptunus.(none):/home/msvensson/mysql/mysql-5.0
client/mysqltest.c:
Auto merged
myisam/myisamchk.c:
Auto merged
mysql-test/t/func_group.test:
Auto merged
mysql-test/t/loaddata.test:
Auto merged
mysql-test/t/type_decimal.test:
Auto merged
mysql-test/t/union.test:
Auto merged
sql/item_sum.cc:
Auto merged
sql/mysqld.cc:
Auto merged
sql/sql_parse.cc:
Auto merged
mysql-test/r/func_group.result:
Manual merge
mysql-test/r/loaddata.result:
Manual merge
mysql-test/r/type_decimal.result:
Manual merge
mysql-test/r/union.result:
Manual merge
sql/field_conv.cc:
aborting fix for 7589
sql/opt_sum.cc:
Manual merge
sql/sql_load.cc:
Manual merge
sql/sql_yacc.yy:
Aborting fix for 11553
into mysql.com:/opt/local/work/mysql-5.0-root
BitKeeper/etc/ignore:
auto-union
include/my_sys.h:
Auto merged
mysql-test/r/information_schema.result:
Auto merged
mysql-test/t/ctype_ujis.test:
Auto merged
sql/ha_federated.cc:
Auto merged
sql/handler.cc:
Auto merged
sql/item_func.h:
Auto merged
sql/log.cc:
Auto merged
sql/sp_head.cc:
Auto merged
sql/sp_head.h:
Auto merged
sql/sql_acl.cc:
Auto merged
sql/sql_base.cc:
Auto merged
sql/sql_class.cc:
Auto merged
sql/sql_class.h:
Auto merged
sql/sql_lex.h:
Auto merged
sql/sql_prepare.cc:
Auto merged
sql/sql_select.cc:
Auto merged
sql/sql_view.cc:
Auto merged
sql/table.cc:
Auto merged
problems which were introduced during work on WL#2787 "Add view definer/owner
to the view definition (.frm) to check privileges on used tables and stored
routines when using a VIEW."
In some cases it is better to use value from Security_context::host_or_ip
instead of value from Security_context::host since the latter can be NULL
in certain situations (When we can't resolve hostname or we have not done
this yet).
mysql-test/r/skip_name_resolve.result:
Added test for bug #13407 "Remote connecting crashes server".
mysql-test/t/skip_name_resolve.test:
Added test for bug #13407 "Remote connecting crashes server".
sql/item_strfunc.cc:
Item_func_user::val_str():
It is better to use value from Security_context::host_or_ip instead of
value from Security_context::host in the result of USER() function since
the latter can be NULL in certain situations (When we can't resolve hostname
or we have not done this yet. Reverted back to old code).
sql/mysqld.cc:
handle_connections_shared_memory():
THD::host member has moved to the Security_context class.
New THD::security_ctx member points to active security context.
sql/sql_show.cc:
mysqld_list_processes():
It is better to use value from Security_context::host_or_ip instead of
value from Security_context::host in the processlist since the latter
can be NULL in certain situations (When we can't resolve hostname or we
have not done this yet. Reverted back to old code).
mysql-test/r/func_str.result:
Add new results
mysql-test/t/func_str.test:
Add new regression test
sql/item_strfunc.cc:
Handle NULL decimal fields in FORMAT().
set auto_increment_field_not_null to true to preserve zero values
for autoincrement fields during LOAD DATA execution if
NO_AUTO_VALUE_ON_ZERO sql mode is set
mysql-test/r/loaddata.result:
Fix for bug#12053 LOAD DATA INFILE ignores NO_AUTO_VALUE_ON_ZERO setting
test case
mysql-test/t/loaddata.test:
Fix for bug#12053 LOAD DATA INFILE ignores NO_AUTO_VALUE_ON_ZERO setting
test case
into perch.ndb.mysql.com:/home/jonas/src/mysql-5.0
mysql-test/r/ndb_alter_table.result:
Auto merged
mysql-test/t/ndb_alter_table.test:
Auto merged
ndb/src/kernel/blocks/dbdict/Dbdict.cpp:
Auto merged
Fixed problems in test suite where some test failed
Fixed access to not initialized memory in federated
Fixed access to not initialized memory when using BIT fields in internal temporary tables
BitKeeper/etc/ignore:
added libmysqld/sql_cursor.h
mysql-test/r/information_schema.result:
Change view names to 'v#' to not cause massive conflict with other tests if test dies in the middlecd
mysql-test/r/information_schema_inno.result:
Remove used tables at start
mysql-test/r/multi_statement.result:
Remove used tables at start
mysql-test/r/temp_table.result:
Change view names to 'v#' to not cause massive conflict with other tests if test dies in the middle
mysql-test/r/type_bit.result:
More tests
mysql-test/t/information_schema.test:
Change view names to 'v#' to not cause massive conflict with other tests if test dies in the middle
mysql-test/t/information_schema_inno.test:
Remove used tables at start
mysql-test/t/multi_statement.test:
Remove used tables at start
mysql-test/t/temp_table.test:
Change view names to 'v#' to not cause massive conflict with other tests if test dies in the middle
mysql-test/t/type_bit.test:
More tests
mysql-test/valgrind.supp:
Removed some valgrind warnings that isn't errors
sql/ha_federated.cc:
Fixed errors discovered by valgrind:
- Socket was not initialized
- share->scheme was deleted while there was still pointer into it from the hash
sql/item_func.h:
Remove access to table object from cleanup() as the table object may have been dropped earlier (In case of temporary tables or of close_thread_tables() is run before cleanup())
This fixed a bug with access to already freed memory
sql/sql_base.cc:
Reset variables used by fulltext
sql/sql_select.cc:
Fixed various problems with bit fields when used in internal temporary tables.
Calculate space needed for bit fields correctly (previously we allocated more space than needed for rows in heap/myisam tables)
cursor is interpreted latin1 character and Bug#9819 "Cursors: Mysql Server
Crash while fetching from table with 5 million records."
A fix for a possible memory leak when fetching into an SP cursor
in a long loop.
The patch uses a common implementation of cursors in the binary protocol and
in stored procedures and implements materialized cursors.
For implementation details, see comments in sql_cursor.cc
include/my_sys.h:
- declaration for multi_alloc_root
libmysqld/Makefile.am:
- drop protocol_cursor.cc, add sql_cursor.cc (replaces the old
implementation of cursors with a new one)
mysql-test/r/ctype_ujis.result:
- test results fixed (a test case for Bug#6513)
mysql-test/r/sp-big.result:
- test results fixed (a test case for Bug#9819)
mysql-test/t/ctype_ujis.test:
Add a test case for Bug#6513 "Test Suite: Values inserted by using cursor is
interpreted latin1 character"
mysql-test/t/sp-big.test:
Add a restricted test case for Bug#9819 "Cursors: Mysql Server Crash
while fetching from table with 5 million records."
mysys/my_alloc.c:
- an implementation of multi_alloc_root; this is largely a copy-paste
from mulalloc.c, but the function is small and there is no easy way
to reuse the existing C function.
sql/Makefile.am:
- add sql_cursor.h, sql_cursor.cc (a new implementation of stored procedure
cursors) and drop protocol_cursor.cc (the old one)
sql/handler.cc:
- now TABLE object has its mem_root always initialized.
Adjust the implementation handler::ha_open
sql/item_subselect.cc:
- adjust to the changed declaration of st_select_lex_unit::prepare
sql/protocol.h:
- drop Protocol_cursor
sql/sp_head.cc:
- move juggling with Query_arena::free_list and Item::next to
sp_eval_func_item, as this is needed in 3 places already.
sql/sp_head.h:
- declare a no-op implementation for cleanup_stmt in sp_instr_cpush.
This method is needed for non-materializing cursors, which are yet not
used in stored procedures.
- declaration for sp_eval_func_item
sql/sp_rcontext.cc:
- reimplement sp_cursor using the new implementation of server side cursors.
- use sp_eval_func_item to assign values of SP variables from the
row fetched from a cursor. This should fix a possible memory leak in
the old implementation of sp_cursor::fetch
sql/sp_rcontext.h:
- reimplement sp_cursor using the new implementation of server side cursors.
sql/sql_class.cc:
- disable the functionality that closes transient cursors at commit/rollback;
transient cursors are not used in 5.0, instead we use materialized ones.
To be enabled in a later version.
sql/sql_class.h:
- adjust to the rename Cursor -> Server_side_cursor
- additional declarations of select_union used in materialized cursors
sql/sql_derived.cc:
- reuse bits of tmp table code in UNION, derived tables, and materialized
cursors
- cleanup comments
sql/sql_lex.h:
- declarations of auxiliary methods used by materialized cursors
- a cleanup in st_select_lex_unit interface
sql/sql_list.h:
- add an array operator new[] to class Sql_alloc
sql/sql_prepare.cc:
- split the tight coupling of cursors and prepared statements to reuse
the same implementation in stored procedures
- cleanups of error processing in Prepared_statement::{prepare,execute}
sql/sql_select.cc:
- move the implementation of sensitive (non-materializing) cursors to
sql_cursor.cc
- make temporary tables self-contained: the table, its record and fields
are allocated in TABLE::mem_root. This implementation is not clean
and resets thd->mem_root several times because of the way create_tmp_table
works (many additional things are done inside it).
- adjust to the changed declaration of st_select_lex_unit::prepare
sql/sql_select.h:
- move the declaration of sensitive (non-materializing) cursors to
sql_cursor.cc
sql/sql_union.cc:
- move pieces of st_select_unit::prepare to select_union and st_table
methods to be able to reuse code in the implementation of materialized
cursors
sql/sql_view.cc:
- adjust to the changed signature of st_select_lex_unit::prepare
sql/table.cc:
- implement auxiliary st_table methods for use with temporary tables
sql/table.h:
- add declarations for auxiliary methods of st_table used to work with
temporary tables
tests/mysql_client_test.c:
- if cursors are materialized, a parallel update of the table used
in the cursor may go through: update the test.
sql/sql_cursor.cc:
New BitKeeper file ``sql/sql_cursor.cc'' -- implementation of server side
cursors
sql/sql_cursor.h:
New BitKeeper file ``sql/sql_cursor.h'' - declarations for
server side cursors.
thd->allow_sum_func was left 'true' after previous statement thus allowing
sum funcs to be present in conditions.
thd->allow_sum_func should be set to 0 for each query and each prepared
statement reinitialization. This is done in lex_start() and
reset_stmt_for_execute().
sql/sql_lex.cc:
Fix bug#13180 thd->allow_sum_func wasn't reset obefore query processing.
thd->allow_sum_func is set to 0 in lex_start().
sql/sql_prepare.cc:
Fix bug#13180 thd->allow_sum_func wasn't reset obefore query processing.
thd->allow_sum_func is set to 0 in reset_stmt_for_execute().
mysql-test/t/update.test:
Test case for bug#13180 thd->allow_sum_funcs wasn't reset before query
processing.
mysql-test/r/update.result:
Test case for bug#13180 thd->allow_sum_funcs wasn't reset before query
processing.