- Fixed some error condtion when handling dates with 'T'
- Added extra test for bug #11867 (Wrong result with "... WHERE ROW( a, b ) IN ( SELECT DISTINCT a, b WHERE ...)" to show it's not yet fixed
- Safety fixes and cleanups
mysql-test/r/subselect.result:
Added extra test case to test case for bug #11867
(Result shows that current code is not yet right and needs to be fixed)
mysql-test/r/type_datetime.result:
More tests for dates of type CCYYMMDDTHHMMSS
mysql-test/t/subselect.test:
Added extra test case to test case for bug #11867
mysql-test/t/type_datetime.test:
More tests for dates of type CCYYMMDDTHHMMSS
sql-common/my_time.c:
Fixed handling of dates of type CCYYMMDDTHHMMSS
(Old code couldn't handle 2003-0304 or 2003-0003-02)
sql/slave.cc:
Indentation cleanup
sql/sql_parse.cc:
Added test of return value of get_system_var()
sql/sql_select.cc:
Removed unnecessary call to field->table->maybe_null
sql/sql_union.cc:
Indentation fixes
In init_prepare_fake_select_lex() don't empty ftfunc_list. UNION's ORDER BY clause may
contain MATCH(...), for which fix_index() should be called.
mysql-test/r/fulltext_order_by.result:
BUG#11869 part2 : added another test case
mysql-test/t/fulltext_order_by.test:
BUG#11869 part2 : added another test case
When creating temporary table for UNION, pass TMP_TABLE_FORCE_MYISAM flag to
create_tmp_table if we will be using fulltext function(s) when reading from the
temp. table.
mysql-test/r/fulltext_order_by.result:
Testcase for BUG#11869 (cont'd, eliminating "table type doesn't support FULLTEXT" error)
mysql-test/t/fulltext_order_by.test:
Testcase for BUG#11869 (cont'd, eliminating "table type doesn't support FULLTEXT" error)
sql/mysql_priv.h:
BUG#11869 (cont'd, eliminating "table type doesn't support FULLTEXT" error):
Added TMP_TABLE_FORCE_MYISAM flag
sql/sql_select.cc:
BUG#11869 (cont'd, eliminating "table type doesn't support FULLTEXT" error):
In create_tmp_table(), honor the TMP_TABLE_FORCE_MYISAM flag
mysql-test/r/metadata.result:
Auto merged
sql/item.h:
Auto merged
sql/item_func.h:
Auto merged
sql/sql_parse.cc:
Auto merged
sql/sql_select.cc:
Auto merged
sql/sql_union.cc:
Auto merged
mysql-test/r/union.result:
SCCS merged
mysql-test/t/union.test:
SCCS merged
corrected number of fields for --enable_metadata
sql/sql_union.cc
fixed a apparent typo in assert
client/mysqltest.c:
corrected number of fields for --enable_metadata
mysql-test/r/metadata.result:
corrected number of fields for --enable_metadata
mysql-test/r/ps_1general.result:
corrected number of fields for --enable_metadata
mysql-test/r/ps_2myisam.result:
corrected number of fields for --enable_metadata
mysql-test/r/ps_3innodb.result:
corrected number of fields for --enable_metadata
mysql-test/r/ps_4heap.result:
corrected number of fields for --enable_metadata
mysql-test/r/ps_5merge.result:
corrected number of fields for --enable_metadata
mysql-test/r/type_enum.result:
corrected number of fields for --enable_metadata
sql/sql_union.cc:
fixed a apparent typo in assert
mysql-test/r/func_group.result:
new result
mysql-test/r/metadata.result:
new result
test of metadata of variables, unions and derived tables
mysql-test/r/union.result:
new results
test of union of enum
mysql-test/t/metadata.test:
test of metadata of variables, unions and derived tables
mysql-test/t/union.test:
test of union of enum
sql/field.cc:
Field type merging rules added
Fixed table name/alias returting for field made from temporary tables
sql/field.h:
removed unned field type reporting
sql/item.cc:
fixed bug in NEW_DATE type field creartion
replaced mechanism of merging types of UNION
sql/item.h:
replaced mechanism of merging types of UNION
sql/item_func.h:
new item type to make correct field type detection possible
sql/item_subselect.cc:
added table name parameter to prepare() to show right table alias for derived tables
sql/sql_derived.cc:
added table name parameter to prepare() to show right table alias for derived tables
sql/sql_lex.h:
added table name parameter to prepare() to show right table alias for derived tables
sql/sql_parse.cc:
made function for enum/set pack length calculation
sql/sql_prepare.cc:
added table name parameter to prepare() to show right table alias for derived tables
sql/sql_select.cc:
new temporary table field creation by Item_type_holder
fixed table alias for temporary table
sql/sql_union.cc:
added table name parameter to prepare() to show right table alias for derived tables
sql/sql_union.cc:
a fix for --ps-protocol (bug #6089: FOUND_ROWS returns wrong values when no table/view is used)
Don't touch options as itit's not needed.
bug#7833: Wrong datatype of aggregate column is returned
mysql-test/r/func_group.result:
Test case for bug 7833: Wrong datatype of aggregate column is returned
mysql-test/r/union.result:
Test case for bug 6931: Date Type column problem when using UNION-Table.
mysql-test/t/func_group.test:
Test case for bug 7833: Wrong datatype of aggregate column is returned
mysql-test/t/union.test:
Test case for bug 6931: Date Type column problem when using UNION-Table.
mysql-test/r/union.result:
result for a test case for the wrong examined rows with UNION's
mysql-test/t/union.test:
test case for the wrong examined rows with UNION's
sql/sql_union.cc:
a patch for the wrong examined rows with UNION's
This allows use to use INSERT IGNORE ... ON DUPLICATE ...
mysql-test/r/drop.result:
safety fix
mysql-test/t/drop.test:
safety fix
mysql-test/t/multi_update.test:
ensure we cover all possible errors
sql/log_event.cc:
Remove DUP_IGNORE from enum_duplicates and instead use a separate ignore flag
sql/log_event.h:
Remove DUP_IGNORE from enum_duplicates and instead use a separate ignore flag
sql/mysql_priv.h:
Remove DUP_IGNORE from enum_duplicates and instead use a separate ignore flag
sql/sql_class.h:
Remove DUP_IGNORE from enum_duplicates and instead use a separate ignore flag
sql/sql_delete.cc:
Remove DUP_IGNORE from enum_duplicates and instead use a separate ignore flag
sql/sql_insert.cc:
Remove DUP_IGNORE from enum_duplicates and instead use a separate ignore flag
sql/sql_lex.cc:
Remove DUP_IGNORE from enum_duplicates and instead use a separate ignore flag
sql/sql_lex.h:
Remove DUP_IGNORE from enum_duplicates and instead use a separate ignore flag
sql/sql_load.cc:
Remove DUP_IGNORE from enum_duplicates and instead use a separate ignore flag
sql/sql_parse.cc:
Remove DUP_IGNORE from enum_duplicates and instead use a separate ignore flag
sql/sql_repl.cc:
Remove DUP_IGNORE from enum_duplicates and instead use a separate ignore flag
sql/sql_repl.h:
Remove DUP_IGNORE from enum_duplicates and instead use a separate ignore flag
sql/sql_select.cc:
Remove DUP_IGNORE from enum_duplicates and instead use a separate ignore flag
sql/sql_table.cc:
Remove DUP_IGNORE from enum_duplicates and instead use a separate ignore flag
sql/sql_union.cc:
Remove DUP_IGNORE from enum_duplicates and instead use a separate ignore flag
sql/sql_update.cc:
Remove DUP_IGNORE from enum_duplicates and instead use a separate ignore flag
sql/sql_yacc.yy:
Remove DUP_IGNORE from enum_duplicates and instead use a separate ignore flag
fixed null processing in NOT operation used in ALL subquery (Bug #6247)
mysql-test/r/subselect.result:
new tests of ALL/ANY wiews
mysql-test/t/subselect.test:
new tests of ALL/ANY wiews
sql/item_cmpfunc.cc:
fixed special NOT ALL processing
fixed processing max/min optimized subqueries with empty results (added methods to detect empty results) and special NOP operation to process them for SOME/ANY sobqueries
sql/item_cmpfunc.h:
fixed processing max/min optimized subqueries with empty results (added methods to detect empty results) and special NOP operation to process them for SOME/ANY sobqueries
sql/item_subselect.cc:
reporting empty result added for max/min subqueries
sql/item_subselect.h:
reporting empty result added for max/min subqueries
sql/item_sum.cc:
reporting empty result added fox max/min aggregate functions
sql/item_sum.h:
reporting empty result added fox max/min aggregate functions
sql/sql_class.cc:
reporting empty result added for max/min subqueries
sql/sql_parse.cc:
reporting empty result added for max/min subqueries
sql/sql_union.cc:
reporting empty result added for max/min subqueries
Now thd->mem_root is a pointer to thd->main_mem_root and THR_MALLOC is a pointer to thd->mem_root.
This gives us the following benefits:
- Allow us to easily detect if arena has already been swapped before (this fixes a bug in setup_conds() where arena was swaped twice in some cases)
- Faster swaps of arenas (as we don't have to copy the whole MEM_ROOT)
- We don't anymore have to call my_pthread_setspecific_ptr(THR_MALLOC,...) to change where memory is alloced. Now it's enough to set thd->mem_root
client/mysqltest.c:
Remove some not needed defines
(Things like this should be done in config-win.h)
include/config-win.h:
Added popen() and pclose() compatibility macros
mysql-test/t/rpl_failed_optimize-master.opt:
Portability fix
sql/ha_berkeley.cc:
New thd->memroot handling
sql/item_cmpfunc.cc:
Simpler arena swapping code
sql/item_func.cc:
Simpler arena swapping code
sql/item_subselect.cc:
Simpler arena swapping code
New thd->mem_root handling
sql/item_sum.cc:
New thd->mem_root handling
sql/item_timefunc.cc:
Fixed not-initalized usage errors found by valgrind
sql/log_event.cc:
New thd->mem_root handling
sql/mysql_priv.h:
New thd->mem_root handling
sql/mysqld.cc:
New thd->mem_root handling
sql/opt_range.cc:
New thd->mem_root handling
sql/repl_failsafe.cc:
New thd->mem_root handling
sql/set_var.cc:
New thd->mem_root handling
sql/sql_acl.cc:
New thd->mem_root handling
sql/sql_base.cc:
Simpler arena swapping code
New thd->mem_root handling
sql/sql_class.cc:
New thd->mem_root handling
sql/sql_class.h:
Simpler arena swapping code
New thd->mem_root handling
sql/sql_db.cc:
New thd->mem_root handling
sql/sql_error.cc:
New thd->mem_root handling
sql/sql_help.cc:
New thd->mem_root handling
sql/sql_insert.cc:
New thd->mem_root handling
sql/sql_parse.cc:
New thd->mem_root handling
Added some extra checking of return value of new
sql/sql_prepare.cc:
New thd->mem_root handling
sql/sql_select.cc:
New thd->mem_root handling
sql/sql_select.h:
New thd->mem_root handling
sql/sql_union.cc:
Simpler arena swapping code
sql/sql_yacc.yy:
New thd->mem_root handling
sql/table.cc:
New thd->mem_root handling
sql/thr_malloc.cc:
New thd->mem_root handling
tests/client_test.c:
Added drop table to some tests
Changed some table names to 't1'
New mysqltest that can run mysqltest with PS
Added support for ZEROFILL in PS
Fixed crash when one called mysql_stmt_store_result() without a preceding mysql_stmt_bind_result()
Updated test cases to support --ps-protocol
(Some tests are still run using old protocol)
Fixed crash in PS when using SELECT * FROM t1 NATURAL JOIN t2...
Fixed crash in PS when using sub queries
Create table didn't signal when table was created. This could cause a "DROP TABLE created_table" in another thread to wait "forever"
Fixed wrong permissions check in PS and multi-table updates (one could get permission denied for legal quries)
Fix for PS and SELECT ... PROCEDURE
Reset all warnings when executing a new PS query
group_concat(...ORDER BY) didn't work with PS
Fixed problem with test suite when not using innodb
BitKeeper/deleted/.del-innodb-lock-master.opt~f76a4a1999728f87:
Delete: mysql-test/t/innodb-lock-master.opt
client/Makefile.am:
mysqltest now uses regex
client/mysqltest.c:
Added support for testing of prepared statements (with --ps-protocol)
Main code was done by Kent, I did mainly some cleanups and minor bug fixes
New test commands:
--disable_ps_protocol
--enable_ps_protocol
NOTE: new code still has some things that needs to be cleaned up.
For example run_query_stmt_handle_error() should be made more general so that same code can be used also by 'normal' queries
configure.in:
mysqltest now uses regex
libmysql/libmysql.c:
Reset warning_count after prepare (safety). In the future we should also provide warnings on prepare
integer -> string conversion now handles ZEROFILL
double -> string conversion is now closer to the one in the server
Fixed crash when one called mysql_stmt_store_result() without preceding mysql_stmt_bind_result()
libmysqld/examples/Makefile.am:
mysqltest now uses regex
mysql-test/include/have_query_cache.inc:
Fixes for --ps-protocol
mysql-test/include/ps_conv.inc:
Fixes for --ps-protocol
mysql-test/mysql-test-run.sh:
Added options --ps-protocol
mysql-test/r/ctype_utf8.result:
Fixed test case
mysql-test/r/fulltext_cache.result:
Changed output of MATCH to use round() to get same numbers with --ps-protocol
mysql-test/r/fulltext_left_join.result:
Changed output of MATCH to use round() to get same numbers with --ps-protocol
mysql-test/r/fulltext_multi.result:
Changed output of MATCH to use round() to get same numbers with --ps-protocol
mysql-test/r/innodb-lock.result:
Fixed test to work even if Innodb is not compiled in.
mysql-test/t/create.test:
Fixes for --ps-protocol
mysql-test/t/ctype_utf8.test:
Remove warnings
mysql-test/t/date_formats.test:
Fixes for --ps-protocol
mysql-test/t/fulltext_cache.test:
Changed output of MATCH to use round() to get same numbers with --ps-protocol
mysql-test/t/fulltext_left_join.test:
Changed output of MATCH to use round() to get same numbers with --ps-protocol
mysql-test/t/fulltext_multi.test:
Changed output of MATCH to use round() to get same numbers with --ps-protocol
mysql-test/t/func_group.test:
Fixes for --ps-protocol
mysql-test/t/func_sapdb.test:
Fixes for --ps-protocol
mysql-test/t/innodb-lock.test:
Fixed test to work even if Innodb is not compiled in.
mysql-test/t/insert.test:
Fixes for --ps-protocol
mysql-test/t/insert_select.test:
Fixes for --ps-protocol
mysql-test/t/insert_update.test:
Fixes for --ps-protocol
mysql-test/t/metadata.test:
Fixes for --ps-protocol
mysql-test/t/multi_statement.test:
Fixes for --ps-protocol
mysql-test/t/ps_1general.test:
Fixes for --ps-protocol
mysql-test/t/rollback.test:
Fixes for --ps-protocol
mysql-test/t/rpl_redirect.test:
Fixes for --ps-protocol
mysql-test/t/rpl_user_variables.test:
Fixes for --ps-protocol
mysql-test/t/select.test:
Fixes for --ps-protocol
mysql-test/t/status.test:
Fixes for --ps-protocol
mysql-test/t/type_blob.test:
Fixes for --ps-protocol
mysql-test/t/type_float.test:
Fixes for --ps-protocol
mysql-test/t/union.test:
Fixes for --ps-protocol
mysql-test/t/warnings.test:
Fixes for --ps-protocol
mysys/my_alloc.c:
More debugging information
sql-common/client.c:
More debugging information
sql-common/my_time.c:
TIME didn't support full range with PS
sql/field.cc:
TIME didn't support full range with PS
sql/item_cmpfunc.cc:
IN(constants,...) didn't work with PS
sql/item_subselect.cc:
Some subqueries didn't work with PS
sql/item_sum.cc:
group_concat(...ORDER BY) didn't work with PS
Removed variable warning_available as 'warning' can be used for this.
sql/item_sum.h:
Removed not needed variable
sql/protocol.cc:
TIME didn't support full range with PS
sql/set_var.cc:
Style fix
sql/sql_base.cc:
setup_wild() didn't properly restore old arena, which caused core dump in PS when using
SELECT * FROM t1 NATURAL JOIN t2...
sql/sql_class.cc:
Style fix
sql/sql_error.cc:
Style fix
sql/sql_insert.cc:
Create table didn't signal when table was created. This could cause a "DROP TABLE created_table" in another thread to wait "forever"
sql/sql_lex.h:
Fix for PS and procedures
sql/sql_parse.cc:
More debugging information
Make a copy of 'db' in PS as this may change
Fixed wrong permissions check in PS and multi-table updates
sql/sql_prepare.cc:
Fix for PS and SELECT ... PROCEDURE
Reset all warnings when executing a new query
sql/sql_union.cc:
Fixes for PS and SELECT ... PROCEDURE
Reset 'with_wild' as 'wild' is resolved on prepare
prepared statements when LIMIT is used" and post-review comments.
The fix changes the approach we calculate the need for ORDER BY
in UNION: the previous was not PS friendly, as it damaged SELECT_LEX
options in case of single select.
mysql-test/r/ps.result:
Test results fixed: the test case for Bug#6088
mysql-test/r/subselect.result:
Test results fixed: now we don't perform ORDER BY for parts of UNION
if there is no LIMIT clause.
mysql-test/t/ps.test:
A test case for Bug#6088 "FOUND_ROWS returns wrong values for
prepared statements when LIMIT is used".
sql/sql_union.cc:
The actual fix for Bug#6088:
- don't modify SELECT_LEX'es
- use boolean variable can_skip_order_by to check if we can skip
ORDER BY in UNION
sql/item.cc:
Fix valgrind errors: we need Item::name to point to PS memory
as well.
sql/item.h:
set_field no longer can be reused as is for PS purposes.
sql/sql_union.cc:
Item_field::set_field -> Item_field::reset_field.
names with ident. tables fr. diff. schemata": revise all uses of
Item_field and make them prepared-statements friendly when necessary.
mysql-test/r/ps.result:
Test results fixed: the test case for Bug#6050
mysql-test/r/ps_1general.result:
Test results fixed: in prepared statements we expand '*' to a list
of fully qualified fields (db.table.column).
mysql-test/t/ps.test:
A test for Bug#6050 "EXECUTE stmt reports ambiguous fieldnames with
ident. tables fr. diff. schemata"
sql/item.cc:
Revise all Item_field constructors: we need to make sure that no Item_field
object points to unaccessible memory in prepared statements.
sql/item.h:
Revise all Item_field constructors: we need to make sure that no Item_field
object points to unaccessible memory in prepared statements.
sql/sql_base.cc:
Item_field use changed to be prepared statements friendly.
sql/sql_class.h:
New check of Item_arena state.
sql/sql_union.cc:
Fixing the problem with name resolving in UNION and prepared statements:
In case of SELECT a, b, c FROM t1 UNION SELECT a, b, c FROM t2 the list of
selected items is represented as a List<Item_field>, where each
Item_field points to a field of temporary table.
But the temporary table is created anew on each execution of the prepared
statement. So on each subsequent execution we should reset Item_field
items to point to fields from freshly-created temporary table.
sql/table.h:
Comment TABLE member.
Noteworthy:
- New HANDLER code
- New multi-update-grant-check code
- Table lock code in ha_innodb.cc was not applied
BitKeeper/etc/logging_ok:
auto-union
BitKeeper/deleted/.del-ctype-latin1_de.c~c5d8f9208bceb98e:
Auto merged
Build-tools/mysql-copyright-2:
Auto merged
acinclude.m4:
Auto merged
client/mysqladmin.c:
Auto merged
client/mysqldump.c:
Auto merged
include/config-win.h:
Auto merged
include/my_global.h:
Auto merged
include/myisam.h:
Auto merged
innobase/btr/btr0btr.c:
Auto merged
innobase/buf/buf0buf.c:
Auto merged
ltmain.sh:
Auto merged
innobase/dict/dict0dict.c:
Auto merged
innobase/fsp/fsp0fsp.c:
Auto merged
innobase/include/dict0dict.h:
Auto merged
innobase/include/row0mysql.h:
Auto merged
innobase/log/log0log.c:
Auto merged
innobase/log/log0recv.c:
Auto merged
innobase/pars/pars0opt.c:
Auto merged
innobase/row/row0row.c:
Auto merged
innobase/sync/sync0arr.c:
Auto merged
innobase/ut/ut0dbg.c:
Auto merged
myisam/mi_check.c:
Auto merged
myisam/mi_close.c:
Auto merged
myisam/mi_create.c:
Auto merged
myisam/mi_locking.c:
Auto merged
myisam/myisampack.c:
Auto merged
mysql-test/r/delete.result:
Auto merged
mysql-test/r/func_if.result:
Auto merged
Build-tools/mysql-copyright:
Merge with 4.0 (too most of the code from 4.0)
Makefile.am:
merge
client/mysql.cc:
Used 4.1 code
configure.in:
merge
innobase/os/os0file.c:
merge
innobase/row/row0mysql.c:
merge
mysql-test/r/ctype_latin1_de.result:
merge
mysql-test/r/flush_table.result:
merge
mysql-test/r/func_str.result:
merge
mysql-test/r/handler.result:
merge
mysql-test/r/multi_update.result:
merge
mysql-test/r/type_timestamp.result:
Removed testing of 'new' mode, as this is only relevant for 4.0
mysql-test/r/update.result:
merge
mysql-test/t/delete.test:
merge
mysql-test/t/flush_table.test:
merge
mysql-test/t/func_str.test:
merge
mysql-test/t/handler.test:
merge
mysql-test/t/multi_update.test:
merge
mysql-test/t/type_timestamp.test:
Removed testing of 'new' mode, as this is only relevant for 4.0
mysql-test/t/update.test:
merge
mysys/errors.c:
merge
mysys/my_fstream.c:
merge
mysys/my_pread.c:
merge
mysys/my_write.c:
merge
mysys/mysys_priv.h:
merge
scripts/mysqlhotcopy.sh:
merge
sql/field.cc:
Keep code from 4.1
sql/field.h:
Keep code from 4.1
sql/ha_innodb.cc:
Don't merge lock code from 4.0; Heikki will look at this
sql/ha_myisam.cc:
merge
sql/handler.cc:
merge
sql/item_cmpfunc.cc:
merge
sql/item_cmpfunc.h:
merge
sql/item_strfunc.cc:
merge
sql/mysql_priv.h:
merge
sql/mysqld.cc:
merge
sql/protocol.cc:
merge
sql/records.cc:
merge
sql/repl_failsafe.cc:
merge
mysql-test/r/lock_multi.result:
merge
mysql-test/t/ctype_latin1_de.test:
merge
mysql-test/t/func_if.test:
merge
mysql-test/t/lock_multi.test:
merge
sql/repl_failsafe.h:
merge
Remove unnessessary header protection
sql/slave.h:
merge
sql/sql_acl.cc:
merge
sql/sql_base.cc:
merge
sql/sql_cache.cc:
auto merge
sql/sql_class.cc:
merge
sql/sql_class.h:
merge
sql/sql_delete.cc:
merge
sql/sql_handler.cc:
Get new HANDLER code into 4.1
sql/sql_parse.cc:
Keep old file
sql/sql_repl.cc:
merge
sql/sql_repl.h:
merge
sql/sql_show.cc:
merge
sql/sql_table.cc:
merge
sql/sql_union.cc:
Applied the examine_rows bug fix from 4.0 by hand
sql/sql_update.cc:
New multi-update-grant-check code from 4.0
sql/sql_yacc.yy:
New multi-update-grant-check code from 4.0
sql/stacktrace.c:
merge
sql/table.h:
merge
sql/sql_union.cc:
Fixing a non-critical bug in 4.0 UNION's which results in erronously
calculated number o fexamined rows. This value is displayed in the
slow query log.
This is a bug number #5879.
a second time". The bug was caused by incompatibility of
negations elimination algorithm and PS: during first statement
execute a subtree with negation was replaced with equivalent
subtree without NOTs.
The problem was that although this transformation was permanent,
items of the new subtree were created in execute-local memory.
The patch adds means to check if it is the first execute of a
prepared statement, and if this is the case, to allocate items
in memory of the prepared statement.
The implementation:
- backports Item_arena from 5.0
- adds Item_arena::is_stmt_prepare(),
Item_arena::is_first_stmt_execute().
- deletes THD::allocate_temporary_pool_for_ps_preparing(),
THD::free_temporary_pool_for_ps_preparing(); they
were redundant.
and adds a few invariants:
- thd->free_list never contains junk (= freed items)
- thd->current_arena is never null. If there is no
prepared statement, it points at the thd.
The rest of the patch contains mainly mechanical changes and
cleanups.
mysql-test/r/ps.result:
Test results updated (test case for Bug#4912)
mysql-test/t/ps.test:
A test case for Bug#4912 "mysqld crashs in case a statement is
executed a second time"
sql/item_cmpfunc.cc:
current_statement -> current_arena
sql/item_subselect.cc:
Statement -> Item_arena, current_statement -> current_arena
sql/item_subselect.h:
Item_subselect does not need to save thd->current_statement.
sql/item_sum.cc:
Statement -> Item_arena
sql/item_sum.h:
Statement -> Item_arena
sql/mysql_priv.h:
Statement -> Item_arena
sql/sql_base.cc:
current_statement -> current_arena
sql/sql_class.cc:
- Item_arena
- convenient set_n_backup_statement, restore_backup_statement
(nice idea, Sanja)
sql/sql_class.h:
- Item_arena: backport from 5.0
- allocate_temporary_pool_for_ps_preparing,
free_temporary_pool_for_ps_preparing removed.
sql/sql_derived.cc:
current_statement -> current_arena
sql/sql_lex.cc:
current_statement -> current_arena
sql/sql_parse.cc:
Deploy invariant that thd->free_list never contains junk items
(backport from 5.0).
sql/sql_prepare.cc:
- backporting Item_arena
- no need to allocate_temporary_pool_for_ps_preparing().
sql/sql_select.cc:
Fix for bug#4912 "mysqld crashs in case a statement is
executed a second time": if this is the first execute of
a prepared statement, negation elimination is
done in memory of the prepared statement.
sql/sql_union.cc:
Backporting Item_arena from 5.0.
into sanja.is.com.ua:/home/bell/mysql/bk/work-explain-4.1
mysql-test/r/func_encrypt.result:
Auto merged
sql/sql_class.h:
Auto merged
sql/sql_select.cc:
Auto merged
sql/sql_union.cc:
Auto merged
into sanja.is.com.ua:/home/bell/mysql/bk/work-explain-4.1
mysql-test/r/subselect.result:
Auto merged
mysql-test/t/subselect.test:
Auto merged
sql/sql_lex.cc:
Auto merged
sql/sql_lex.h:
Auto merged
sql/sql_select.cc:
Auto merged
sql/sql_union.cc:
Auto merged
mysql-test/r/subselect.result:
Auto merged
mysql-test/r/union.result:
Auto merged
sql/item.cc:
Auto merged
sql/sql_class.h:
Auto merged
sql/sql_lex.h:
Auto merged
sql/sql_select.cc:
Auto merged
sql/sql_union.cc:
SCCS merged
mysql-test/r/subselect.result:
ALL/ANY test
mysql-test/t/subselect.test:
ALL/ANY test
sql/item_subselect.cc:
keep old engine & JOIN if we changed subquery Item, which allow avoid second all SELECT items fix_fields call with pervios clean up (because of second setup_tables which remove table->key_use and maybe something else)
keep list when we change Item in SELECT list
processing inserted max/min function (now JOIN::prepare will be called only once)
methods of changing item for subselect engines
sql/item_subselect.h:
change item & results procedure
sql/item_sum.cc:
Item_sum_hybrid::clear moved to .cc file (to keep .h clean and to make inserving/removing debug info easy)
sql/item_sum.h:
Item_sum_hybrid::clear moved to .cc file (to keep .h clean and to make inserving/removing debug info easy)
sql/sql_lex.cc:
note about new method
sql/sql_lex.h:
method for changing result of UNION JOINs
sql/sql_select.cc:
method for changing result in JOIN
sql/sql_select.h:
method for changing result in JOIN
sql/sql_union.cc:
method for changing result in JOIN
item_list for fake_select will be created only once
(problem reported by valgrind in test_union2 fixed)
sql/sql_lex.h:
new function to keep code in one place
sql/sql_union.cc:
fake_select_lex should be prepared during PS preparation to work correctly
item_list for fake_select will be created only once
EXPLAIN of hidden SELECT of UNION
mysql-test/r/derived.result:
explain of hidden select
mysql-test/r/subselect.result:
explain of hidden select
mysql-test/r/union.result:
explain of hidden select
correct error messages on explain
mysql-test/t/subselect.test:
show eliminated costants in WHERE clause
mysql-test/t/union.test:
correct error messages on EXPLAIN with union
sql/item.cc:
fixed name constructing for global ORDER BY items
sql/sql_class.h:
select ID can be negative (for hidden SELECTs)
removed unused field
sql/sql_lex.cc:
new flag of UNION EXPLAIN
sql/sql_lex.h:
new flag of UNION EXPLAIN
select ID can be negative (for hidden SELECTs)
sql/sql_select.cc:
EXPLAIN UNION using same routing which used for execution
explain for hidden SELECT of UNION
sql/sql_union.cc:
EXPLAIN UNION using same routing which used for execution
into sanja.is.com.ua:/home/bell/mysql/bk/work-ndb-4.1
mysql-test/r/subselect.result:
Auto merged
sql/sql_lex.cc:
Auto merged
sql/sql_parse.cc:
Auto merged
sql/sql_union.cc:
Auto merged
sql/sql_update.cc:
Auto merged
SQL_SELECT_LIMIT as default will be applied only for SELECT statement if there was not explicit LIMIT clause
correct table list passed to class constructor of select_update
mysql-test/r/subselect.result:
do not show limit if it is not explicit
mysql-test/r/union.result:
test of LIMIT + ORDER
mysql-test/t/union.test:
test of LIMIT + ORDER
sql/ha_isammrg.h:
caching of queries with isammerge tables forbiden
sql/sql_cache.cc:
removed check on isammerge
sql/sql_lex.cc:
tag of explicit limit in statement
sql/sql_lex.h:
tag of explicit limit in statement
sql/sql_parse.cc:
blanks in empty line removed
no limit by default (SQL_SELECT_LIMIT as default will be applied only for SELECT statement if there was not explicit LIMIT clause)
sql/sql_union.cc:
reverted incorrect patch
sql/sql_update.cc:
reverted incorrect patch
correct table list passed to class constructor
sql/sql_yacc.yy:
explicit LIMIT marked
mysql-test/r/union.result:
Results for a test case for bug involving UNION's and
SET SQL_SELECT_LIMIT
mysql-test/t/union.test:
Test case for bug involving UNION's and
SET SQL_SELECT_LIMIT
sql/sql_union.cc:
Patch for a bug involving UNION's and SET SQL_SELECT_LIMIT
sql/sql_union.cc:
return table list of fake_select in empty state to prevent using TABLE_LIST allocated on stack in next execution of PS
tests/client_test.c:
test of UNIONS with PS
fixed IN subselect with basic constant left expression
SQLCOM_CREATE_TABLE, SQLCOM_UPDATE_MULTI, SQLCOM_REPLACE_SELECT, SQLCOM_INSERT_SELECT, QLCOM_DELETE_MULTI fixed to be compatible with PS (BUG#3398, BUG#3406)
fixed multiupdate privelege check (BUG#3408)
fixed multiupdate tables check (BUG#3411)
unchecked commands now is rejected by PS protocol to avoid serever crash
fixed cleunup procedure to be compatible sith DO/SET (BUG#3393)
include/mysqld_error.h:
new error for unsupported command in PS
mysql-test/r/multi_update.result:
test sutes (BUG#3408, BUG#3411)
mysql-test/t/multi_update.test:
test sutes (BUG#3408, BUG#3411)
sql/item_cmpfunc.cc:
fixed IN subselect with basic constant left expression
sql/mysql_priv.h:
some function frop sql_parse.h become public
sql/set_var.cc:
check for SET command via PS
sql/set_var.h:
check for SET command via PS
sql/share/czech/errmsg.txt:
new error for unsupported command in PS
sql/share/danish/errmsg.txt:
new error for unsupported command in PS
sql/share/dutch/errmsg.txt:
new error for unsupported command in PS
sql/share/english/errmsg.txt:
new error for unsupported command in PS
sql/share/estonian/errmsg.txt:
new error for unsupported command in PS
sql/share/french/errmsg.txt:
new error for unsupported command in PS
sql/share/german/errmsg.txt:
new error for unsupported command in PS
sql/share/greek/errmsg.txt:
new error for unsupported command in PS
sql/share/hungarian/errmsg.txt:
new error for unsupported command in PS
sql/share/italian/errmsg.txt:
new error for unsupported command in PS
sql/share/japanese/errmsg.txt:
new error for unsupported command in PS
sql/share/korean/errmsg.txt:
new error for unsupported command in PS
sql/share/norwegian-ny/errmsg.txt:
new error for unsupported command in PS
sql/share/norwegian/errmsg.txt:
new error for unsupported command in PS
sql/share/polish/errmsg.txt:
new error for unsupported command in PS
sql/share/portuguese/errmsg.txt:
new error for unsupported command in PS
sql/share/romanian/errmsg.txt:
new error for unsupported command in PS
sql/share/russian/errmsg.txt:
new error for unsupported command in PS
sql/share/serbian/errmsg.txt:
new error for unsupported command in PS
sql/share/slovak/errmsg.txt:
new error for unsupported command in PS
sql/share/spanish/errmsg.txt:
new error for unsupported command in PS
sql/share/swedish/errmsg.txt:
new error for unsupported command in PS
sql/share/ukrainian/errmsg.txt:
new error for unsupported command in PS
sql/sql_lex.cc:
first table unlincking procedures for CREATE command
sql/sql_lex.h:
first table unlincking procedures for CREATE command
sql/sql_parse.cc:
used function to exclude first table from list
SQLCOM_CREATE_TABLE, SQLCOM_UPDATE_MULTI, SQLCOM_REPLACE_SELECT, SQLCOM_INSERT_SELECT, QLCOM_DELETE_MULTI fixed to be compatible with PS (BUG#3398, BUG#3406)
fixed multiupdate privelege check (BUG#3408)
fixed multiupdate tables check (BUG#3411)
sql/sql_prepare.cc:
fixed a lot of commands to be compatible with PS
unchecked commands now is rejected to avoid serever crash
sql/sql_select.cc:
allow empty result for PS preparing
sql/sql_union.cc:
fixed cleunup procedure to be compatible sith DO/SET (BUG#3393)
sql/sql_update.cc:
fixed update to use correct tables lists (BUG#3408)
sql/table.h:
flag to support multi update tables check (BUG#3408)
tests/client_test.c:
removed unsupported tables
fixed show table test
added new tests
fixed aggregate functions in PS (BUG#3360)
mysql-test/r/union.result:
4.1 more correct error
sql/item_cmpfunc.h:
and_conds do not make fix fields
sql/item_sum.cc:
storing/restoring argument of aggregate function for prepared statements
restoring order list of group_concat for safety
sql/item_sum.h:
storing/restoring argument of aggregate function for prepared statements
layout fix
sql/mysql_priv.h:
just declaration
sql/sql_base.cc:
fix_fields() have to be called with temporary memory pool active
sql/sql_parse.cc:
removed hack with item pointer storing
sql/sql_prepare.cc:
debug output added
removed hack with item pointer storing
sql/sql_select.cc:
fix_fields now should be called separately
sql/sql_union.cc:
removed wrong merged check from 4.0 (4.1 have its own protection)
sql/table.h:
removed hack with item pointer storing
tests/client_test.c:
new test fo PS
mysql-test/r/alter_table.result:
Updated results after merge
mysql-test/r/drop_temp_table.result:
Updated results after merge
mysql-test/r/union.result:
Updated results after merge
sql/sql_db.cc:
optimization: Use my_stat() instead of my_dir() to test if directory exists
sql/sql_union.cc:
Fixed error in merge
BitKeeper/etc/logging_ok:
auto-union
BitKeeper/deleted/.del-libmysql.def~f5dffcb3ed925d28:
Auto merged
BitKeeper/deleted/.del-post-incoming~9f2168f531f09f3b:
Auto merged
BitKeeper/deleted/.del-post-outgoing~1dd3d8f0f6e8f3cd:
Auto merged
VC++Files/innobase/innobase.dsp:
Auto merged
VC++Files/strings/MASM6x/strings.dsp:
Auto merged
client/mysqldump.c:
Auto merged
innobase/sync/sync0sync.c:
Auto merged
myisam/mi_check.c:
Auto merged
mysql-test/t/union.test:
Auto merged
mysql-test/t/update.test:
Auto merged
mysys/mf_iocache.c:
Auto merged
sql/nt_servc.cc:
Auto merged
mysql-test/r/system_mysql_db.result:
Auto merged
sql/sql_base.cc:
Auto merged
include/mysql.h:
cleanup of load data infile patch
libmysql/libmysql.c:
cleanup of load data infile patch
myisam/mi_search.c:
Added missing assert.h
mysql-test/r/func_time.result:
Make test more secure
mysql-test/t/func_time.test:
Make test more secure
sql/item.cc:
restore to use str_value in item::save_in_field
sql/item.h:
Simple cleanup
sql/item_cmpfunc.cc:
Safety fix
sql/item_cmpfunc.h:
Simple optimization
sql/item_func.cc:
Updated comment
sql/sql_base.cc:
Simple optimization
sql/sql_select.cc:
Simple optimization
sql/sql_union.cc:
safey fixes