into bodhi.local:/opt/local/work/mysql-5.0-runtime-merge
include/mysql.h:
Auto merged
include/sql_common.h:
Auto merged
libmysql/libmysql.c:
Auto merged
mysql-test/mysql-test-run.pl:
Auto merged
mysql-test/r/mysqldump.result:
Auto merged
mysql-test/t/udf.test:
Auto merged
ndb/src/mgmsrv/ConfigInfo.cpp:
Auto merged
sql/item.cc:
Auto merged
sql/item_func.h:
Auto merged
sql/mysql_priv.h:
Auto merged
sql/slave.cc:
Auto merged
sql/sp.cc:
Auto merged
sql/sql_lex.cc:
Auto merged
sql/sql_parse.cc:
Auto merged
sql-common/client.c:
Auto merged
sql/sql_yacc.yy:
Auto merged
sql/table.h:
Auto merged
mysql-test/r/ps.result:
Manual merge.
mysql-test/r/sp.result:
Manual merge.
mysql-test/t/ps.test:
Manual merge.
mysql-test/t/sp.test:
Manual merge.
sql/sql_prepare.cc:
Manual merge.
sql/table.cc:
Manual merge.
tests/mysql_client_test.c:
Manual merge.
The problem was that the grammar allows to create a function with an optional
definer clause, and define it as a UDF with the SONAME keyword.
Such combination should be reported as an error.
The solution is to not change the grammar itself, and to introduce a
specific check in the yacc actions in 'create_function_tail' for UDF,
that now reports ER_WRONG_USAGE when using both DEFINER and SONAME.
mysql-test/r/udf.result:
Added tests for Bug#21269 (DEFINER-clause is allowed for UDF-functions)
mysql-test/t/udf.test:
Added tests for Bug#21269 (DEFINER-clause is allowed for UDF-functions)
sql/sql_yacc.yy:
Creating a UDF function with a DEFINER clause is now a syntax error.
'conc_sys' test
Concurrent execution of SELECT involing at least two INFORMATION_SCHEMA
tables, DROP DATABASE statement and DROP TABLE statement could have
resulted in stalled connection for this SELECT statement.
The problem was that for the first query of a join there was a race
between select from I_S.TABLES and DROP DATABASE, and the error (no
such database) was prepared to be send to the client, but the join
processing was continued. On second query to I_S.COLUMNS there was a
race with DROP TABLE, but this error (no such table) was downgraded to
warning, and thd->net.report_error was reset. And so neither result
nor error was sent to the client.
The solution is to stop join processing once it is clear we are going
to report a error, and also to downgrade to warnings file system errors
like 'no such database' (unless we are in the 'SHOW' command), because
I_S is designed not to use locks and the query to I_S should not abort
if something is dropped in the middle.
No test case is provided since this bug is a result of a race, and is
timing dependant. But we test that plain SHOW TABLES and SHOW COLUMNS
give a error if there is no such database or a table respectively.
mysql-test/r/show_check.result:
Add result for the test that SHOW TABLES and SHOW COLUMNS give a error
if there is no such database or a table respectively.
mysql-test/t/show_check.test:
Add test case that SHOW TABLES and SHOW COLUMNS give a error
if there is no such database or a table respectively.
sql/mysql_priv.h:
Remove prototype of mysql_find_files(), which is made static under
find_files() name.
sql/sql_show.cc:
Rename mysql_find_files() to find_files() and make it static.
Return FIND_FILES_OK for success, FIND_FILES_OOM for out of memory,
and FIND_FILES_DIR for directory reading error.
Downgrade error to warning in get_all_tables() if it is a
FIND_FILES_DIR error, and we are not in the 'SHOW' command.
Once 'result' is set to 1 in get_schema_tables_result(), there's no
need in continuing iterations, as we are about to return a error.
can be not replicable.
Now CREATE statements for writing in the binlog are created as follows:
- the beginning of the statement is re-created;
- the rest of the statement is copied from the original query.
The problem appears when there is a version-specific comment (produced by
mysqldump), started in the re-created part of the statement and closed in the
copied part -- there is closing comment-parenthesis, but there is no opening
one.
The proper fix could be to re-create original statement, but we can not
implement it in 5.0. So, for 5.0 the fix is just to cut closing
comment-parenthesis. This technique is also used for SHOW CREATE PROCEDURE
statement (so we are able to reuse existing code).
mysql-test/r/rpl_sp.result:
Updated result file.
mysql-test/r/rpl_trigger.result:
Updated result file.
mysql-test/r/rpl_view.result:
Updated result file.
mysql-test/t/rpl_sp.test:
Added test case for BUG#20438.
mysql-test/t/rpl_trigger.test:
Added test case for BUG#20438.
mysql-test/t/rpl_view.test:
Added test case for BUG#20438.
sql/sp.cc:
Trim comments at the end.
sql/sp_head.cc:
Moved this code to the separate function to be re-used.
sql/sql_lex.cc:
Added a new function.
sql/sql_lex.h:
Added a new function.
sql/sql_trigger.cc:
Trim comments at the end.
sql/sql_view.cc:
Trim comments at the end.
Fix for BUG#16676: Database CHARSET not used for stored procedures
The problem in BUG#16211 is that CHARSET-clause of the return type for
stored functions is just ignored.
The problem in BUG#16676 is that if character set is not explicitly
specified for sp-variable, the server character set is used instead
of the database one.
The fix has two parts:
- always store CHARSET-clause of the return type along with the
type definition in mysql.proc.returns column. "Always" means that
CHARSET-clause is appended even if it has not been explicitly
specified in CREATE FUNCTION statement (this affects BUG#16211 only).
Storing CHARSET-clause if it is not specified is essential to avoid
changing character set if the database character set is altered in
the future.
NOTE: this change is not backward compatible with the previous releases.
- use database default character set if CHARSET-clause is not explicitly
specified (this affects both BUG#16211 and BUG#16676).
NOTE: this also breaks backward compatibility.
mysql-test/r/mysqldump.result:
Updated result file.
mysql-test/r/sp.result:
Updated result file.
mysql-test/t/sp.test:
Provided test cases for BUG#16211, BUG#16676.
sql/mysql_priv.h:
Added two convenient functions for work with databases.
sql/sp.cc:
1. Add CHARSET-clause to CREATE-statement if it has been explicitly specified.
2. Polishing -- provided some comments.
sql/sp_head.cc:
Use database charset as default charset of sp-variable.
sql/sp_head.h:
Move init_sp_name() out of init_strings().
sql/sql_db.cc:
Two new functions created:
- load_db_opt_by_name();
- check_db_dir_existence();
sql/sql_show.cc:
Eliminate duplicated code by using
check_db_dir_existence() and load_db_opt_by_name()
sql/sql_table.cc:
Eliminate duplicated code by using
check_db_dir_existence() and load_db_opt_by_name()
sql/sql_yacc.yy:
Call sp_head::init_sp_name() to initialize stored routine name.
into moonlight.intranet:/home/tomash/src/mysql_ab/mysql-5.0-main
VC++Files/sql/mysqld.vcproj:
Auto merged
mysql-test/mysql-test-run.pl:
Auto merged
mysql-test/r/sp.result:
Auto merged
mysql-test/r/warnings.result:
Auto merged
mysql-test/t/warnings-master.opt:
Auto merged
mysql-test/t/warnings.test:
Auto merged
sql/handler.cc:
Auto merged
sql/mysql_priv.h:
Auto merged
sql/mysqld.cc:
Auto merged
sql/set_var.cc:
Auto merged
sql/sql_class.cc:
Auto merged
sql/sql_class.h:
Auto merged
sql/sql_parse.cc:
Auto merged
into siva.hindu.god:/usr/home/tim/m/bk/global-50
mysql-test/r/func_time.result:
Auto merged
mysql-test/t/func_time.test:
Auto merged
sql/field.cc:
Auto merged
CREATE PROCEDURE
The bug was fixed already. This changeset adds a test case.
mysql-test/r/sp-error.result:
Add result for bug#14702: misleading error message when syntax error
in CREATE PROCEDURE.
mysql-test/t/sp-error.test:
Add test case for bug#14702: misleading error message when syntax error
in CREATE PROCEDURE.
Fix for the bug in mysql-test-run.pl which prevents other tests succeed
after IM-test failure.
The idea of the fix of BUG#20716 is to:
1. Check each SHOW INSTANCES statement, add necessary "sleep" instruction before;
2. Move all environment checkings into the one file and include it everywhere.
mysql-test/mysql-test-run.pl:
Fix bug in mysql-test-run.pl -- kill leftovers if some
guarded mysqld-instance is still alive after IM shutdown.
mysql-test/r/im_daemon_life_cycle.result:
Updated result file.
mysql-test/r/im_life_cycle.result:
Updated result file.
mysql-test/r/im_options_set.result:
Updated result file.
mysql-test/r/im_options_unset.result:
Updated result file.
mysql-test/r/im_utils.result:
Updated result file.
mysql-test/t/im_daemon_life_cycle.imtest:
Include im_check_env.inc for the checking of environment.
mysql-test/t/im_life_cycle.imtest:
Include im_check_env.inc for the checking of environment.
mysql-test/t/im_options_set.imtest:
Include im_check_env.inc for the checking of environment.
mysql-test/t/im_options_unset.imtest:
Include im_check_env.inc for the checking of environment.
mysql-test/t/im_utils.imtest:
Include im_check_env.inc for the checking of environment.
mysql-test/include/im_check_env.inc:
A new file to be included in each IM-test.
The statements in the file ensure that starting
conditions (environment) are as expected.
"real" table fails in JOINs".
This is a regression caused by the fix for Bug 18444.
This fix removed the assignment of empty_c_string to table->db performed
in add_table_to_list, as neither me nor anyone else knew what it was
there for. Now we know it and it's covered with tests: the only case
when a table database name can be empty is when the table is a derived
table. The fix puts the assignment back but makes it a bit more explicit.
Additionally, finally drop sp.result.orig which was checked in by mistake.
BitKeeper/deleted/.del-sp.result.orig:
Delete: mysql-test/r/sp.result.orig
mysql-test/r/derived.result:
Updated result file.
mysql-test/r/sp.result:
Test results fixed (Bug#21002)
mysql-test/t/derived.test:
New error return for the case when MULTI-DELETE tries to delete from
a derived table: now derived tables belong to their own db (""), and
MUTLI-DELETE can't find the correspondent table for it in the
DELETE list, as it can't resolve tables in different dbs by alias
(See Bug#21148 for details)
mysql-test/t/sp.test:
Add a test case for Bug#21002 "Derived table not selecting from a "real"
table fails in JOINs"
sql/sp.cc:
Make empty_c_string globally accessible.
sql/sql_class.cc:
Add empty_c_string definition.
sql/sql_class.h:
Add a comment for the constructor of Table_ident which is
used for derived tables. Make sure this constructor also initializes
the database name, not only the table name.
sql/sql_parse.cc:
Don't call check_db_name for empty database.
Currently the only case when a table database name can be empty
is when the table is a derived table.
Report the right error if the database name is wrong (ER_WRONG_DB_NAME,
not ER_WRONG_TABLE_NAME).
REPLACE ... SELECT would require INSERT privileges on certain tables
when SELECT really suffices. Require INSERT only on target table.
mysql-test/r/insert_select.result:
Bug#20989: View '(null).(null)' references invalid table(s)... on SQL SECURITY INVOKER
Show that REPLACE ... SELECT requires INSERT privileges only on target table.
(revised test with more view-fu)
mysql-test/t/insert_select.test:
Bug#20989: View '(null).(null)' references invalid table(s)... on SQL SECURITY INVOKER
Show that REPLACE ... SELECT requires INSERT privileges only on target table.
(revised test with more view-fu)
sql/sql_insert.cc:
Bug#20989: View '(null).(null)' references invalid table(s)... on SQL SECURITY INVOKER
require SELECT rather than INSERT privs on tables that constitute the views we'll read
into moonbone.local:/work/tmp_merge-5.0-opt-mysql
client/mysql.cc:
Auto merged
mysql-test/r/date_formats.result:
Auto merged
mysql-test/r/func_str.result:
Auto merged
mysql-test/t/date_formats.test:
Auto merged
mysql-test/t/func_str.test:
Auto merged
sql/item_strfunc.cc:
Auto merged
sql/sql_class.cc:
Auto merged
sql/time.cc:
Auto merged
into moonbone.local:/work/tmp_merge-4.1-opt-mysql
mysql-test/r/date_formats.result:
Auto merged
mysql-test/t/date_formats.test:
Auto merged
sql/item_strfunc.cc:
Auto merged
sql/sql_class.cc:
Auto merged
into moonbone.local:/work/tmp_merge-5.0-opt-mysql
client/mysql.cc:
Auto merged
mysql-test/r/date_formats.result:
Auto merged
mysql-test/t/date_formats.test:
Auto merged
sql/time.cc:
Manual merge
into rama.(none):/home/jimw/my/mysql-5.0-17608
include/my_base.h:
Auto merged
mysql-test/r/merge.result:
Auto merged
mysql-test/t/merge.test:
Auto merged
sql/ha_myisammrg.cc:
Auto merged
sql/handler.cc:
Auto merged
Removed logic in ha_federated::write_row, which checks field query ids in the
loop which builds the query to run on the remote server.
mysql-test/r/federated.result:
"BUG #18764: Delete conditions causing inconsistencies in Federated tables"
New test results for test that verifies that one can insert to rows using
"insert into... select * from..", delete
them by id, then immediately insert them in the same way they were originally
inserted.
mysql-test/t/federated.test:
"BUG #18764: Delete conditions causing inconsistencies in Federated tables"
New test that verifies that one can insert to rows using
"insert into... select * from..", delete
them by id, then immediately insert them in the same way they were originally
inserted.
sql/ha_federated.cc:
"BUG #18764: Delete conditions causing inconsistencies in Federated tables"
Removed the logic in ha_federated::write_row which checked the query id of
each field and compared it to the thread query id.
Each field has a query id, and the problem used to be that if I did an insert
no fields specified, the field value would contain the last inserted value
for that field. The way to work around this was to see if the query id for
that field was the same as the current query id or of the rest of the field
query ids. If it wasn't, that told me the query didn't have the field value
specified.
Somewhere from when I wrote that code to now the problem went away, and there
was no longer the need for this logic.
Also removed the bool "has_fields", which needs not exist and using
table->s->fields is sufficient.
client/mysqldump.c:
When dumping more than one database, make sure that the proper database is selected before restoring that database's views.
Replaced hard-coded database name length with appropiate token.
mysql-test/r/mysqldump.result:
Added new result and corrected results for existing test cases.
mysql-test/t/mysqldump.test:
Added new case for dumping and restoring multiple databases each containing a view.
Test case for bug#10977 altered to make it work in both plain and ps-protocol modes.
mysql-test/t/select.test:
Test case for bug#10977 altered to make it work in both plain and ps-protocol modes.
mysql-test/r/select.result:
Test case for bug#10977 altered to make it work in both plain and ps-protocol modes.
and Stored Procedure
The essence of the bug was that for every re-execution of stored
routine or prepared statement new items for character set conversions
were created, thus increasing the number of items and the time of their
processing, and creating memory leak.
No test case is provided since current test suite can't cover such type
of bugs.
mysql-test/r/sp.result:
Add result for bug#21013: Performance Degrades when importing data
that uses Trigger and Stored Procedure.
mysql-test/t/sp.test:
Add test case for bug#21013: Performance Degrades when importing data
that uses Trigger and Stored Procedure.
sql/item.cc:
Switch arena only when in statement prepare mode. Subsequent executions
will use cached item tree.
Corrected the test case after fixing bug#10977
mysql-test/t/mysql.test:
Corrected the test case after fixing bug#10977
mysql-test/r/mysql.result:
Corrected the test case after fixing bug#10977
When an alias is set to a column leading spaces are removed from the alias.
But when this is done on aliases set by user this can lead to confusion.
Now Item::set_name() method issues the warning if leading spaces were removed
from an alias set by user.
New warning message is added.
mysql-test/t/select.test:
Added test case for bug#10977:No warning issued if a column name is truncated.
mysql-test/r/select.result:
Added test case for bug#10977:No warning issued if a column name is truncated.
sql/sql_yacc.yy:
Fixed bug#10977: No warning issued if a column name is truncated
The is_autogenerated_name flag is set before set_name() method call.
sql/item.cc:
Fixed bug#10977: No warning issued if a column name is truncated
Now Item::set_name() method issues the warning if leading spaces were removed
from an alias set by user.
The bug caused a crash of the server if a subquery with
ORDER BY DESC used the range access method.
The bug happened because the method QUICK_SELECT_DESC::reset
was not reworked after MRR interface had been introduced.
mysql-test/r/subselect.result:
Added a test case for bug #20869.
mysql-test/t/subselect.test:
Added a test case for bug #20869.
The bug was due to a loss happened during a refactoring made
on May 30 2005 that modified the function JOIN::reinit.
As a result of it for any subquery the value of offset_limit_cnt
was not restored for the following executions. Yet the first
execution of the subquery made it equal to 0.
The fix restores this value in the function JOIN::reinit.
mysql-test/r/subselect.result:
Added a test case fir bug #20519.
mysql-test/t/subselect.test:
Added a test case fir bug #20519.
into anubis.greendragongames.com:/home/greenman/workspace-mysql/mysql/merge-4.1_2_5.0
client/mysqldump.c:
Auto merged
mysql-test/r/mysqldump.result:
Auto merged
mysqldump did not select the correct database before trying to dump
views from it. this resulted in an empty result set, which in turn
startled mysql-dump into a core-dump. this only happened for views,
not for tables, and was only visible with multiple databases that
weren't by sheer luck in the order mysqldump required, anyway. this
fixes by selecting the correct database before dumping views; it also
catches the empty set-condition if it should occur for other reasons.
client/mysqldump.c:
Bug#21014: Segmentation fault of mysqldump on view
failsafe: if "select ... from information_schema.views" returns an
empty set, don't deref NULL; throw an error instead.
fix: select the correct database not only before dumping tables, but
before dumping views, as well.
mysql-test/r/mysqldump.result:
Bug#21014: Segmentation fault of mysqldump on view
show that mysqldump selects the correct database before trying to dump
views from it.
mysql-test/t/mysqldump.test:
Bug#21014: Segmentation fault of mysqldump on view
show that mysqldump selects the correct database before trying to dump
views from it.
into macbook.gmz:/Users/kgeorge/mysql/work/B17212-5.0-opt
mysql-test/r/innodb_mysql.result:
Merge 4.1->5.0 for bug #17212
mysql-test/t/innodb_mysql.test:
Merge 4.1->5.0 for bug #17212
sql/sql_select.cc:
Merge 4.1->5.0 for bug #17212