into mysql.com:/extern/mysql/work/bug16568/mysql-5.0
mysql-test/r/sp.result:
Auto merged
mysql-test/t/sp.test:
Auto merged
sql/sp_head.cc:
Auto merged
sql/sp_head.h:
Auto merged
sql/sql_parse.cc:
Auto merged
sql/sql_yacc.yy:
Auto merged
When an ambiguous field name is used in a group by clause a warning is issued
in the find_order_in_list function by a call to push_warning_printf.
An expression that was not always valid was passed to this call as the field
name parameter.
mysql-test/r/view.result:
Added a test case for bug #16382.
mysql-test/t/view.test:
Added a test case for bug #16382.
A query with a group by and having clauses could return a wrong
result set if the having condition contained a constant conjunct
evaluated to FALSE.
It happened because the pushdown condition for table with
grouping columns lost its constant conjuncts.
Pushdown conditions are always built by the function make_cond_for_table
that ignores constant conjuncts. This is apparently not correct when
constant false conjuncts are present.
mysql-test/r/having.result:
Added A test case for bug #14927.
mysql-test/t/having.test:
Added A test case for bug #14927.
sql/sql_lex.cc:
Fixed bug #14927.
Initialized fields for having conditions in st_select_lex::init_query().
sql/sql_lex.h:
Fixed bug #14927.
Added a field to restore having condititions for execution in SP and PS.
sql/sql_prepare.cc:
Fixed bug #14927.
Added code to restore havinf conditions for execution in SP and PS.
sql/sql_select.cc:
Fixed bug #14927.
Performed evaluation of constant expressions in having clauses.
If the having condition contains a constant conjunct that is always false
an empty result set is returned after the optimization phase.
In this case the corresponding EXPLAIN command now returns
"Impossible HAVING" in the last column.
Applied innodb-5.0-ss149/162 snapshots.
innobase/btr/btr0sea.c:
Applied innodb-5.0-149/162 snapshots.
Account for a race condition when dropping the adaptive hash
index for a B-tree page (Bug #16582).
btr_search_drop_page_hash_index(): Retry the operation if a
hash index with different parameters was built meanwhile.
Add diagnostics for the case that hash node pointers to
the page remain. This fix is from Heikki.
btr_search_info-update_hash(), btr_search_info_update_slow():
Document the parameter "info" as in/out.
innobase/dict/dict0dict.c:
Applied innodb-5.0-149/162 snapshots.
Do not mistake TABLENAME_ibfk_0 for auto generated id (Bug #16387).
dict_table_get_highest_foreign_id(): Ignore foreign constraint
identifiers starting with the pattern TABLENAME_ibfk_0.
innobase/dict/dict0load.c:
Applied innodb-5.0-149/162 snapshots.
dict_load_columns(): Set the charset-collation code
DATA_MYSQL_BINARY_CHARSET_COLL for those binary string columns
that lack a charset-collation code, i.e., the tables were created
with an older version of MySQL/InnoDB than 4.1.2 (Bug #16298).
innobase/fil/fil0fil.c:
Applied innodb-5.0-149/162 snapshots.
Keep track on unflushed modifications to file spaces. When there
are tens of thousands of file spaces, flushing all files in
fil_flush_file_spaces() would be very slow (Bug #15653).
fil_flush_file_spaces(): Only flush unflushed file spaces.
fil_space_t, fil_system_t: Add a list of unflushed spaces.
innobase/include/univ.i:
Applied innodb-5.0-149/162 snapshots.
Avoid breaking --with-debug builds on QNS and other systems
whose compiler pretends to be GCC 2.
Outside __WIN__ define UNIV_INLINE as static inline.
innobase/os/os0sync.c:
Applied innodb-5.0-149/162 snapshots.
Replace goto in os_event_wait with a normal loop.
innobase/srv/srv0start.c:
Applied innodb-5.0-149/162 snapshots.
Fix bug #16157, a crash when innodb_log_group_home_dir is set
to an empty string. This patch is from Heikki.
mysql-test/r/innodb.result:
Applied innodb-5.0-149/162 snapshots.
Fixed results for added test cases.
mysql-test/t/innodb.test:
Applied innodb-5.0-149/162 snapshots.
Added test cases.
sql/ha_innodb.cc:
Applied innodb-5.0-149/162 snapshots.
Remove some declarations of unused global variables and member
variables of class ha_innobase.
Added diagnostic code trx_print() to
innobase_query_caching_of_table_permitted() to find reason
why we are holding adaptive search latch.
Fixed bug #16229 MySQL/InnoDB uses full explicit table locks
in trigger processing. Take a InnoDB table lock only if user
has explicitly requested a table lock. Added some additional
comments to store_lock() and external_lock(). Fixed some
code style errors.
Remember to use noninlined versions of the functions on
ha_innodb.cc !
sql/ha_innodb.h:
Applied innodb-5.0-149/162 snapshots.
Remove some declarations of unused global variables and member
variables of class ha_innobase.
into neptunus.(none):/home/msvensson/mysql/bug15302/my50-bug15302
client/mysqltest.c:
Already in 5.0
sql/sql_db.cc:
"mysql_create_db" is already silent in 5.0
- Change "mysql_create_db" to not call "send_ok" if in silent mode i.e. called from "load_master_data"
- Change mysqltest to detect when there aren't as many warnings available as was reported.
client/mysqltest.c:
Call "die" if warnings were reported but there weren't any warnings to retrieve
sql/sql_db.cc:
Don't call "send_ok" if in silent mode.
Fix test result.
table.h, sql_show.cc:
Put I_S tables in lexical order.
sql/sql_show.cc:
Put I_S tables in lexical order.
sql/table.h:
Put I_S tables in lexical order.
mysql-test/r/information_schema.result:
Fix test result.
mysql-test/r/information_schema_db.result:
Fix test result.
We should disallow usage of RETURN statement in triggers and emit
error at parsing time (instead of crashing when trigger is fired).
mysql-test/r/trigger.result:
Added test for bug #16829 "Firing trigger with RETURN crashes the server".
mysql-test/t/trigger.test:
Added test for bug #16829 "Firing trigger with RETURN crashes the server".
sql/sql_yacc.yy:
We should disallow usage of RETURN statement in triggers and emit
error at parsing time (instead of crashing when trigger is fired).
The problem has manifested itself in the cases when we have a nested outer join
for which it can be inferred that one of the inner tables is a single row table.
mysql-test/r/join_nested.result:
Added a test case for bug #16260.
mysql-test/t/join_nested.test:
Added a test case for bug #16260.
sql/sql_select.cc:
Fixed bug #16260.
The problem has manifested itself in the cases when we have a nested outer join
for which it can be inferred that one of the inner tables is a single row table.
A table is never considered as a const table if it is used in a nested join
that serves as an inner operand of an outer join.
Added fixes to make last_insert_id() to work.
mysql-test/r/federated.result:
BUG #14768
New test results for last_insert_id()
mysql-test/t/federated.test:
BUG #14768
Tests for last_insert_id()
sql/ha_federated.cc:
BUG# 14768
* Added code to set last_insert_id()
* Added code to free share->scheme
sql/ha_federated.h:
BUG #14768
New method for setting last_insert_id()
After trying multiple inheritance (to messy and hard make it work) and
sublassing jump_if_not (worked, but ugly), decided to on this solution
instead:
Inserting an abstract sp_instr_opt_meta class as parent for all instructions
with destinations makes it possible to handle a continuation pointer for
sp_instr_set_case_expr too.
Note: No special test case; the fix is captured by the changed behaviour of
bug14643_2, and bug14498_4 (formerly disabled), in sp.test.
mysql-test/r/sp.result:
Updated results for BUG#16568 (affects results for bug14643_2 and bug14498_4)
mysql-test/t/sp.test:
Enabled test bug14498_4 for BUG#16568.
sql/sp_head.cc:
Changed type of some parameters and variables (sp_instr_opt_meta instead of sp_instr_jump*).
Added consistency check of m_ip member in instructions in sp_head::show_routine_code().
Updated print() method of, and added opt_mark() and opt_move() methods to
sp_instr_set_case_expr, to handle the new continuation destination.
sql/sp_head.h:
New abstract class between sp_instr and instructions with destinations, in particular
sp_instr_set_case_expr, for continuation destination handling.
Changed type of some parameters and variables (sp_instr_opt_meta instead of sp_instr_jump*).
Added opt_mark(), opt_move() and set_destination() methods to
sp_instr_set_case_expr.
sql/sql_parse.cc:
Fixed small bug at show_routine_code() call (tested return value the wrong way).
sql/sql_yacc.yy:
sp_instr_set_case_expr is now added to backpatch list (for the new cont. destination).
sql/sql_parse.cc:
BUG#15699,16487 merge of the fix made in 5.0
mysql-test/r/rpl_multi_update4.result:
New BitKeeper file ``mysql-test/r/rpl_multi_update4.result''
mysql-test/t/rpl_multi_update4-slave.opt:
New BitKeeper file ``mysql-test/t/rpl_multi_update4-slave.opt''
mysql-test/t/rpl_multi_update4.test:
New BitKeeper file ``mysql-test/t/rpl_multi_update4.test''
mysql-test/r/rpl_ignore_table.result:
New BitKeeper file ``mysql-test/r/rpl_ignore_table.result''
mysql-test/r/update.result:
Testcase for BUG#15935
mysql-test/t/update.test:
Testcase for BUG#15935
sql/sql_update.cc:
BUG#15935:
- Do account for the fact that used_index!=MAX_KEY is also true for cases
when quick select is used, and use quick select then (and not full index scan).
- Also removed the redundant "used_index= MAX_KEY" statement
For nested sql errno handlers (unlike sqlexception and other), we didn't stop
searching when the innermost handler was found - now make sure we do.
mysql-test/r/sp.result:
Updated result for BUG#15011.
mysql-test/t/sp.test:
New testcase for BUG#15011.
sql/sp_rcontext.cc:
Make sure we stop at the innermost sql_errno handler.
Second version.
The problem was that the optimizer didn't work correctly with forwards jumps
to "no-op" hpop and cpop instructions.
Don't generate "no-op" instructions (hpop 0 and cpop 0), it isn't actually
necessary.
mysql-test/r/sp-code.result:
Updated results for new test case (BUG#15737)
mysql-test/t/sp-code.test:
New test case (BUG#15737)
sql/sp_head.cc:
Removed backpatch methods from sp_instr_hpop/cpop, since they're not needed any more.
Added more documentation to sp_head::optimize()
sql/sp_head.h:
Removed backpatch and opt_mark methods from sp_instr_hpop/cpop, since they're not needed
any more.
Added comments to optimizer methods in sp_instr.
sql/sql_yacc.yy:
Don't generate "no-op" hpop and cpop instructions for LEAVE, it's not necessary.
Just generate them when needed.
- BUG#15166: Wrong update permissions required to execute triggers
- BUG#15196: Wrong select permission required to execute triggers
The idea of the fix is to check necessary privileges
in Item_trigger_field::fix_fields(), instead of having "special variables"
technique. To achieve this, we should pass to an Item_trigger_field instance
a flag, which will indicate the usage/access type of this trigger variable.
mysql-test/r/trigger-grant.result:
Update the result file.
mysql-test/t/trigger-grant.test:
Add test cases for BUG#15166 and BUG#15196
sql/item.cc:
Item_trigger_field: check appropriate (SELECT/UPDATE) privilege in fix_fields().
sql/item.h:
Add a flag to specify access type for trigger field.
sql/sql_trigger.cc:
"Special variable" technique of checking privileges for NEW/OLD variables
was replaced by checking table- and column-level privileges in
Item_trigger_field::fix_fields().
sql/sql_trigger.h:
"Special variable" technique of checking privileges for NEW/OLD variables
was replaced by checking table- and column-level privileges in
Item_trigger_field::fix_fields().
sql/sql_yacc.yy:
Specify access type for trigger fields.
Fill schema tables with data before filesort if it's necessary
mysql-test/r/information_schema.result:
Fix for bug#15307 GROUP_CONCAT() with ORDER BY returns empty set on information_schema(2nd ver)
test result
mysql-test/t/information_schema.test:
Fix for bug#15307 GROUP_CONCAT() with ORDER BY returns empty set on information_schema(2nd ver)
test case
Since replication rules execute after `mysql_multi_update_prepare' returns we
delay to `break' in case this functions returns non-zero (some tables are not found)
for to examine if there is an ignore rule for a not-found table. By doing that
it is guaranteed do/ignore replication rules logically preceed opening table routine.
sql/sql_parse.cc:
BUG#15699. We delay to `break' in case of unexisted tables for multi-update.
First it is checked whether an ignore rule for such a table exists.
More to the fix:
if (opt_readonly && ...' in two places got be idented because it were
enclosed explicitly into corresponding `else' groups. For that
the preceding lines with `else' were changed in to be
`else
{'.
This grouping is necessary to avoid any inattentive
insertion in between of `else' and belonging to the else
`if (opt_readonly && ...' statement.
mysql-test/r/rpl_multi_update4.result:
New BitKeeper file ``mysql-test/r/rpl_multi_update4.result''
mysql-test/t/rpl_multi_update4-slave.opt:
New BitKeeper file ``mysql-test/t/rpl_multi_update4-slave.opt''
mysql-test/t/rpl_multi_update4.test:
New BitKeeper file ``mysql-test/t/rpl_multi_update4.test''
mysql-test/ndb/ndbcluster.sh:
Auto merged
mysql-test/r/func_gconcat.result:
Auto merged
mysql-test/r/subselect.result:
Auto merged
mysql-test/t/func_math.test:
Auto merged
mysql-test/t/type_float.test:
Auto merged
sql/spatial.h:
Auto merged
mysql-test/r/type_float.result:
merging
sql/item_func.cc:
merging