Post merge fixes: close any open statement before
the change user command and fix test case output.
client/mysqltest.c:
Close an open statement since it won't work after a change_user command.
mysql-test/r/change_user.result:
Fixed test case output.
mysql-test/t/change_user.test:
Fix test case output to return 1 or 0.
move 'table_collation' field filling outside of if(file) condition
because this field has 'OPEN_FRM_ONLY' attribute
mysql-test/r/information_schema.result:
test result
mysql-test/t/information_schema.test:
test case
sql/sql_show.cc:
move 'table_collation' field filling outside of if(file) condition
because this field has 'OPEN_FRM_ONLY' attribute
The problem was that the RETURNS column in the mysql.proc was of
CHAR(64). That was not enough for storing long-named datatypes.
The fix is to change CHAR(64) to LONGBLOB, and to throw warnings
at the time a stored routine is created if some data is truncated
during writing into mysql.proc.
mysql-test/r/sp.result:
Update test result.
mysql-test/t/sp.test:
Add a test case for BUG#24923.
scripts/mysql_system_tables.sql:
Change the data type of column 'returns' from char(64) to longblob.
scripts/mysql_system_tables_fix.sql:
Change the data type of column 'returns' from char(64) to longblob.
sql/sp.cc:
Produce warnings if any data was truncated during writing
into mysql.proc.
sql/sp.h:
Add new error code.
sql/share/errmsg.txt:
Add new error message.
sql/sql_parse.cc:
Hande
into lambda.hsd1.co.comcast.net.:/home/malff/TREE/mysql-5.1-rt-merge
mysql-test/t/sp-error.test:
Auto merged
mysql-test/t/udf.test:
Auto merged
sql/item.cc:
Auto merged
sql/sp.cc:
Auto merged
sql/sp_head.h:
Auto merged
sql/sql_parse.cc:
Auto merged
sql/sql_udf.cc:
Auto merged
mysql-test/r/sp-error.result:
failed auto merge
mysql-test/r/sp.result:
failed auto merge
mysql-test/r/udf.result:
failed auto merge
mysql-test/t/sp.test:
failed auto merge
sql/sp_head.cc:
failed auto merge
sql/sql_yacc.yy:
failed auto merge
test programs.
mysql-test/r/query_cache.result:
Reset query cache parameters to prevent dependency between test programs.
mysql-test/t/query_cache.test:
Reset query cache parameters to prevent dependency between test programs.
The problem is that currently there is no way to test the behavior
of the mysql_change_user() function using the mysqltest suite because
there is no internal command for it.
The solution is to introduce a change_user command that can be used
to test aspects of the MySQL client function mysql_change_user().
client/mysqltest.c:
Add change_user command to mysqltest.
mysql-test/r/mysqltest.result:
Add test case result for change_user command
mysql-test/t/mysqltest.test:
Add test case for change_user command
mysql-test/r/change_user.result:
Add new file with test case results for bugs 20023 and 31418.
mysql-test/t/change_user.test:
Add new file with test cases for bugs 20023 and 31418.
into polly.(none):/home/kaa/src/maint/mysql-5.0-maint
myisam/sort.c:
Auto merged
mysql-test/r/repair.result:
Auto merged
mysql-test/t/repair.test:
Auto merged
The embedded version of the server doesn't use column level grants, and
the compile directive NO_EMBEDDED_ACCESS_CHECKS should be checked instead of
the redundant HAVE_QUERY_CACHE (which is always the case) to determine if
column level grants should be compiled or not.
mysql-test/r/query_cache.result:
Updated result file
mysql-test/r/query_cache_notembedded.result:
Updated result file
mysql-test/t/query_cache.test:
Moved test with GRANT to query_cache_notembedded test.
mysql-test/t/query_cache_notembedded.test:
Moved test with GRANT to query_cache_notembedded test.
sql/sql_cache.cc:
Changed the conditional compilation directive to only compile column level grant
checks if NO_EMBEDDED_ACCESS_CHECKS isn't defined.
into mysql.com:/home/bar/mysql-work/mysql-5.1.b31081
mysql-test/r/ctype_ucs.result:
Auto merged
mysql-test/r/ctype_utf8.result:
Auto merged
mysql-test/r/func_regexp.result:
Auto merged
mysql-test/t/ctype_uca.test:
Auto merged
mysql-test/t/ctype_ucs.test:
Auto merged
mysql-test/t/ctype_utf8.test:
Auto merged
sql/item_cmpfunc.cc:
Auto merged
sql/item_cmpfunc.h:
Auto merged
into mysql.com:/home/gluh/MySQL/Merge/5.1-opt
mysql-test/r/ctype_utf8.result:
Auto merged
mysql-test/t/ctype_utf8.test:
Auto merged
sql/item.cc:
Auto merged
sql/item.h:
Auto merged
sql/sql_yacc.yy:
Auto merged
The root cause of the issue was that the CREATE FUNCTION grammar,
for User Defined Functions, was using the sp_name rule.
The sp_name rule is intended for fully qualified stored procedure names,
like either ident.ident, or just ident but with a default database
implicitly selected.
A UDF does not have a fully qualified name, only a name (ident), and should
not use the sp_name grammar fragment during parsing.
The fix is to re-organize the CREATE FUNCTION grammar, to better separate:
- creating UDF (no definer, can have AGGREGATE, simple ident)
- creating Stored Functions (definer, no AGGREGATE, fully qualified name)
With the test case provided, another issue was exposed which is also fixed:
the DROP FUNCTION statement was using sp_name and also failing when no database
is implicitly selected, when droping UDF functions.
The fix is also to change the grammar so that DROP FUNCTION works with
both the ident.ident syntax (to drop a stored function), or just the ident
syntax (to drop either a UDF or a Stored Function, in the current database)
mysql-test/r/sp-error.result:
Adjust test results
mysql-test/r/udf.result:
Adjust test results
mysql-test/t/sp-error.test:
Adjust test results
mysql-test/t/udf.test:
Adjust test results
sql/sql_parse.cc:
CREATE UDF FUNCTION does not use a fully qualified name.
sql/sql_yacc.yy:
Fix grammar for CREATE / DROP FUNCTION, FOR udf
Improve error messages for select no_such_function()
issue an error if string has illegal characters
mysql-test/r/ctype_utf8.result:
issue an error if string has illegal characters
mysql-test/t/ctype_utf8.test:
issue an error if string has illegal characters
sql/item.cc:
issue an error if string has illegal characters
sql/item.h:
issue an error if string has illegal characters
sql/sql_yacc.yy:
issue an error if string has illegal characters
into pilot.mysql.com:/data/msvensson/mysql/mysql-5.1-new-maint
libmysql/libmysql.c:
Auto merged
mysql-test/r/type_float.result:
Auto merged
mysql-test/t/type_float.test:
Auto merged
into mysql.com:/home/ram/work/b31154/b31154.5.1
mysql-test/r/func_gconcat.result:
Auto merged
mysql-test/t/func_gconcat.test:
Auto merged
sql/item_sum.cc:
Auto merged
into mysql.com:/home/ram/work/b30885/b30885.5.1
mysql-test/r/heap_btree.result:
Auto merged
mysql-test/t/heap_btree.test:
Auto merged
storage/heap/hp_hash.c:
the code was changed to use bitmaps instead of key length, so ul
mysql-test/extra/binlog_tests/mix_innodb_myisam_side_effects.test:
manual merge from 5.0
mysql-test/r/innodb.result:
results changed
mysql-test/r/multi_update.result:
results changed
mysql-test/suite/binlog/r/binlog_row_mix_innodb_myisam.result:
manual merge: results re-recorded
mysql-test/suite/binlog/r/binlog_stm_mix_innodb_myisam.result:
results changed
mysql-test/suite/manual/r/rpl_replication_delay.result:
results recorded for 5.1
mysql-test/t/innodb.test:
removing bug27716 regression test as one exists in binlog suite already.
mysql-test/t/multi_update.test:
manual merge plus refining for execution in both binlog_format.
sql/log_event.cc:
bloody manual merge;
the fact that an event is artificial is encode with setting timestamp argument to zero.
rli's last_master_timestamp won't be updated in stmt_done in such case.
sql/rpl_rli.cc:
simulation and the real fixing code.
Don't update last_master_timestamp with zero.
sql/sql_delete.cc:
manual merge
into koti.dsl.inet.fi:/home/elkin/MySQL/merge-5.1
mysql-test/t/multi_update.test:
Auto merged
sql/slave.cc:
Auto merged
sql/sql_class.h:
Auto merged
sql/sql_delete.cc:
Auto merged
sql/sql_parse.cc:
Auto merged
sql/sql_update.cc:
Auto merged
mysql-test/extra/binlog_tests/mix_innodb_myisam_binlog.test:
manual merge use local; another file has to be changed in 5_1.
mysql-test/r/innodb.result:
manual merge use local to re-record the results
mysql-test/r/multi_update.result:
manual merge use local to re-record the results
mysql-test/suite/binlog/r/binlog_stm_mix_innodb_myisam.result:
manual merge use local to re-record the results
mysql-test/t/innodb.test:
restoring bug#27716 snippet
sql/log_event.cc:
trasfering simulation to another file: rpl_rli.cc
similar to bug_27716, but it was stressed on in the synopsis on that there is another
side of the artifact affecting behaviour in transaction.
Fixed with deploying multi_delete::send_error() - otherwise never called - and refining its logic
to perform binlogging job if needed.
The changeset includes the following side effects:
- added tests to check bug_23333's scenarios on the mixture of tables for multi_update;
- fixes bug@30763 with two-liner patch and a test coinciding to one added for bug_23333.
mysql-test/r/innodb.result:
results changed
mysql-test/r/mix_innodb_myisam_binlog.result:
results changed
mysql-test/r/multi_update.result:
results changed
mysql-test/t/innodb.test:
trans table specific test added
mysql-test/t/mix_innodb_myisam_binlog.test:
multi-update and multi-delete of mixure of ta and not-ta tables tests added (relates to bug_23333).
mysql-test/t/multi_update.test:
testing another branch of mult-delete: send_eof() (binloggin there), send_error (early return)
sql/sql_class.h:
a new flag to designate the fact the statement's error has been handled.
The flag is checked by ::send_error() methods (multi_update and _delete classes)
sql/sql_delete.cc:
expanding multi_delete::send_error to
1. early return if error_handled == t
2. binlogging locally if there was a non-trans table modified side effect
sql/sql_parse.cc:
adding multi_update::send_error which can perform binlogging and rollback job in needed
sql/sql_update.cc:
issues relating to
1. bug_27716 with zeroing of `updated' to serve as the flag of early return from send_error().
The flag is changed to be a new member error_handled; also moved outside binlogging branch.
The reason for this change is that bug_23333 fixes were pushed after the bug_27716's and they
left this flaw (also no test coverage).
2. bug_30763 with assertion on trans_safe. I decide to make 2 liner fix for that bug here instead of to remove
those two assertions. This new bug test case is the same as for multi-update on the mixure of tables.
The rational for this fix:
presumption for mutli_update::trans_safe to be set to zero at
multi_update::multi_update or multi_update::initialize_tables() is incorrect.
trans_safe := false should happen only when a non-transactional table gets modified.
Therefore, at initialization the member must be be set to true.
into magare.gmz:/home/kgeorge/mysql/work/B31156-5.1-opt
mysql-test/r/func_group.result:
Auto merged
mysql-test/t/func_group.test:
Auto merged
sql/item_cmpfunc.cc:
Auto merged
sql/item_sum.cc:
Auto merged
into kindahl-laptop.dnsalias.net:/home/bkroot/mysql-5.1-rpl
sql/field.cc:
Auto merged
sql/field.h:
Auto merged
sql/log_event.cc:
Auto merged
sql/sql_show.cc:
Auto merged
sql/rpl_record.cc:
Manual merge.
into sin.intern.azundris.com:/home/tnurnberg/30951/51-30951
mysql-test/r/func_sapdb.result:
Auto merged
mysql-test/t/func_sapdb.test:
Auto merged
sql-common/my_time.c:
Auto merged
makedate() will fold years below 100 into the 1970-2069 range. CS removes code
that also wrongly folded years between 100 and 200 into that range, which should
be left unchanged. Backport from 5.1.
mysql-test/r/func_sapdb.result:
Show that makedate() works correctly for 100 <= year < 200.
mysql-test/t/func_sapdb.test:
Show that makedate() works correctly for 100 <= year < 200.
sql-common/my_time.c:
Remove unnecessary date magic. Syncs behaviour with 5.1+
and manual.