mending windows test.
mysql-test/r/rpl_packet.result:
results changed
mysql-test/t/rpl_packet.test:
removing because of the connection with windows client can be lost instead of
the error code back (source: manual).
Bug#21025 (misleading error message when creating functions named 'x', or 'y')
Bug#22619 (Spaces considered harmful)
This change contains a fix to report warnings or errors, and multiple tests
cases.
Before this fix, name collisions between:
- Native functions
- User Defined Functions
- Stored Functions
were not systematically reported, leading to confusing behavior.
I) Native / User Defined Function
Before this fix, is was possible to create a UDF named "foo", with the same
name as a native function "foo", but it was impossible to invoke the UDF,
since the syntax "foo()" always refer to the native function.
After this fix, creating a UDF fails with an error if there is a name
collision with a native function.
II) Native / Stored Function
Before this fix, is was possible to create a SF named "db.foo", with the same
name as a native function "foo", but this was confusing since the syntax
"foo()" would refer to the native function. To refer to the Stored Function,
the user had to use the "db.foo()" syntax.
After this fix, creating a Stored Function reports a warning if there is a
name collision with a native function.
III) User Defined Function / Stored Function
Before this fix, creating a User Defined Function "foo" and a Stored Function
"db.foo" are mutually exclusive operations. Whenever the second function is
created, an error is reported. However, the test suite did not cover this
behavior.
After this fix, the behavior is unchanged, and is now covered by test cases.
Note that the code change in this patch depends on the fix for Bug 21114.
mysql-test/r/sp.result:
New test cases.
mysql-test/r/udf.result:
New test cases.
mysql-test/t/sp.test:
New test cases.
mysql-test/t/udf.test:
New test cases.
sql/sql_lex.cc:
Name collisions with native functions.
sql/sql_lex.h:
Name collisions with native functions.
sql/sql_yacc.yy:
Name collisions with native functions.
sql/share/errmsg.txt:
Name collisions with native functions.
mysql-test/r/sp_gis.result:
New test cases.
mysql-test/t/sp_gis.test:
New test cases.
The regression is caused by the fix for bug 14767. When INSERT ... SELECT
used a view in the SELECT list that was not inlined, and there was an
active transaction, the server could crash in Query_cache::invalidate.
On INSERT ... SELECT only the table being inserted into is invalidated.
Thus views that can't be inlined are skipped from invalidation.
The bug manifests itself in two ways so there is 2 test cases.
One checks that the only the table being inserted into is invalidated.
And the second one checks that there is no crash on INSERT ... SELECT.
mysql-test/t/query_cache.test:
Added a test case for bug#20045: Server crash on INSERT ... SELECT ... FROM non-mergeable view
mysql-test/r/query_cache.result:
Added a test case for bug#20045: Server crash on INSERT ... SELECT ... FROM non-mergeable view
sql/sql_parse.cc:
Bug#20045: Server crash on INSERT ... SELECT ... FROM non-mergeable view
On INSERT ... SELECT only the table being inserted into is invalidated.
mysql-test/Makefile.am:
add include/*.test to dist-hook and install-data-local targets to include the three .test files in mysql-test/include with make dist
This change set implements the DROP TRIGGER IF EXISTS functionality.
This fix is considered a bug and not a feature, because without it,
there is no known method to write a database creation script that can create
a trigger without failing, when executed on a database that may or may not
contain already a trigger of the same name.
Implementing this functionality closes an orthogonality gap between triggers
and stored procedures / stored functions (which do support the DROP IF
EXISTS syntax).
In sql_trigger.cc, in mysql_create_or_drop_trigger,
the code has been reordered to:
- perform the tests that do not depend on the file system (access()),
- get the locks (wait_if_global_read_lock, LOCK_open)
- call access()
- perform the operation
- write to the binlog
- unlock (LOCK_open, start_waiting_global_read_lock)
This is to ensure that all the code that depends on the presence of the
trigger file is executed in the same critical section,
and prevents race conditions similar to the case fixed by Bug 14262 :
- thread 1 executes DROP TRIGGER IF EXISTS, access() returns a failure
- thread 2 executes CREATE TRIGGER
- thread 2 logs CREATE TRIGGER
- thread 1 logs DROP TRIGGER IF EXISTS
The patch itself is based on code contributed by the MySQL community,
under the terms of the Contributor License Agreement (See Bug 18161).
mysql-test/r/rpl_trigger.result:
DROP TRIGGER IF EXISTS
mysql-test/r/trigger.result:
DROP TRIGGER IF EXISTS
mysql-test/t/rpl_trigger.test:
DROP TRIGGER IF EXISTS
mysql-test/t/trigger.test:
DROP TRIGGER IF EXISTS
sql/sql_trigger.cc:
DROP TRIGGER IF EXISTS
sql/sql_yacc.yy:
DROP TRIGGER IF EXISTS
this caused mysql_client_test to fail when running from binary dist
mysql-test/mysql-test-run.pl:
Modify search path for mysql_client_test to look in "bin" not to look for "bin"
into mysql.com:/home/bk/MERGE/mysql-5.1-merge
BitKeeper/triggers/post-commit:
Auto merged
mysql-test/t/func_gconcat.test:
Auto merged
sql/item_sum.cc:
Auto merged
sql/log_event.h:
Auto merged
sql/sql_repl.cc:
Auto merged
sql/slave.cc:
Manual merge
into mysql.com:/home/bk/MERGE/mysql-5.0-merge
BitKeeper/triggers/post-commit:
Auto merged
mysql-test/t/func_gconcat.test:
Auto merged
sql/item_sum.cc:
Auto merged
sql/sql_repl.cc:
Auto merged
sql/log_event.h:
Manual merge
sql/slave.cc:
Manual merge
into mysql.com:/home/bk/MERGE/mysql-5.1-merge
BitKeeper/etc/collapsed:
auto-union
mysql-test/r/view.result:
Auto merged
mysql-test/t/view.test:
Auto merged
sql/Makefile.am:
Auto merged
sql/handler.cc:
Auto merged
sql/log.cc:
Auto merged
sql/mysql_priv.h:
Auto merged
sql/mysqld.cc:
Auto merged
sql/slave.cc:
Auto merged
sql/sql_parse.cc:
Auto merged
sql/sql_select.cc:
Auto merged
sql/sql_view.cc:
Auto merged
The server sends a number of columns to the client.
It uses a limited "fast" function for that instead of the
general one. This fast function cannot send numbers larger
than 2 bytes.
This causes the client to expect smaller number of columns.
The client writes outside of the allocated memory buffer
as a result.
Fixed the server to use the general function to send column
count.
Fixed the client to check the column count before writing
column data.
mysql-test/t/mysql_client.test:
Bug #19216: Client crashes on long SELECT
- test case
sql/protocol.cc:
Bug #19216: Client crashes on long SELECT
- renamed the function for bether comprehention
and made it local
- used the right (non-local) function to transfer
the column count in Protocol::send_fields
sql/protocol.h:
Bug #19216: Client crashes on long SELECT
- made optimized net_store_length local
sql-common/client.c:
Bug #19216: Client crashes on long SELECT
- fixed the client to check for older servers (without the fix).
into mockturtle.local:/home/dlenev/src/mysql-5.1-merge
mysql-test/r/trigger.result:
Auto merged
mysql-test/t/trigger.test:
Auto merged
sql/item_func.cc:
Auto merged
stored function invoked from different connections".
Invocation of trigger which was using stored function from different
connections caused server crashes (for non-debug server this happened
in highly concurrent environment, but debug server failed on assertion
in relatively simple scenario).
Item_func_sp was not safe to use in triggers (in other words for
re-execution from different threads) as artificial TABLE object
pointed by Item_func_sp::dummy_table referenced incorrect THD
object. To fix the problem we force re-initialization of this
object for each re-execution of statement.
mysql-test/r/trigger.result:
Added test for bug#23651 "Server crashes when trigger which uses
stored function invoked from different connections".
mysql-test/t/trigger.test:
Added test for bug#23651 "Server crashes when trigger which uses
stored function invoked from different connections".
sql/item_func.cc:
To make Item_func_sp safe for usage in triggers (in other words safe
for re-execution in different threads) we need to ensure that artificial
TABLE object pointed by Item_func_sp::dummy_table references correct
THD object. To achieve this we simply force its re-initialization for
each re-execution of statement.
into bodhi.local:/opt/local/work/mysql-5.1-runtime
configure.in:
Auto merged
include/my_time.h:
Auto merged
mysql-test/r/func_time.result:
Auto merged
mysql-test/r/rename.result:
Auto merged
mysql-test/t/func_time.test:
Auto merged
mysql-test/t/im_daemon_life_cycle.imtest:
Auto merged
mysql-test/t/rename.test:
Auto merged
sql/item_timefunc.cc:
Auto merged
sql/time.cc:
Auto merged
sql-common/my_time.c:
Auto merged
into bodhi.local:/opt/local/work/mysql-5.0-runtime
configure.in:
Auto merged
include/my_time.h:
Auto merged
mysql-test/r/func_time.result:
Auto merged
mysql-test/r/rename.result:
Auto merged
mysql-test/t/func_time.test:
Auto merged
mysql-test/t/im_daemon_life_cycle.imtest:
Auto merged
sql-common/my_time.c:
Auto merged
sql/item_timefunc.cc:
Auto merged
sql/time.cc:
Auto merged
mysql-test/t/rename.test:
Use local (resolve a conflict)
into trift2.:/MySQL/M51/push-5.1
BitKeeper/deleted/.del-gcc.cpp~3d2e013cfac48838:
Auto merged
configure.in:
Auto merged
include/my_time.h:
Auto merged
mysql-test/install_test_db.sh:
Auto merged
mysql-test/mysql-test-run-shell.sh:
Auto merged
mysql-test/mysql-test-run.pl:
Auto merged
mysql-test/r/func_time.result:
Auto merged
mysql-test/r/rename.result:
Auto merged
mysql-test/t/func_time.test:
Auto merged
mysql-test/t/rename.test:
Auto merged
sql/item_timefunc.cc:
Auto merged
sql-common/my_time.c:
Auto merged
sql/mysql_priv.h:
Auto merged
sql/time.cc:
Auto merged
storage/myisam/sort.c:
Auto merged
into trift2.:/MySQL/M50/push-5.0
BitKeeper/deleted/.del-gcc.cpp~3d2e013cfac48838:
Auto merged
configure.in:
Auto merged
include/my_time.h:
Auto merged
mysql-test/install_test_db.sh:
Auto merged
mysql-test/mysql-test-run.sh:
Auto merged
mysql-test/r/func_time.result:
Auto merged
mysql-test/r/rename.result:
Auto merged
mysql-test/t/func_time.test:
Auto merged
mysql-test/t/rename.test:
Auto merged
sql/item_timefunc.cc:
Auto merged
sql/mysql_priv.h:
Auto merged
sql-common/my_time.c:
Auto merged
sql/time.cc:
Auto merged
myisam/sort.c:
Manual merge: "use local" (= 5.0 version).
mysql-test/mysql-test-run.pl:
Manual merge, part of the fix for bug#17194.
mysql-test/mysql-test-run.pl:
add --report-features
mysql-test/include/report-features.test:
test file showing server features for mysql-test-run.pl --report-features
into outpost.site:/home/cps/mysql/trees/4.1-runtime-bug9191
configure.in:
Auto merged
include/my_time.h:
Auto merged
mysql-test/r/func_time.result:
Auto merged
mysql-test/r/rename.result:
Auto merged
mysql-test/t/func_time.test:
Auto merged
sql-common/my_time.c:
Auto merged
sql/item_timefunc.cc:
Auto merged
sql/time.cc:
Auto merged
mysql-test/t/rename.test:
choose one of the race problem solutions. It was solved
differently in -runtime and mainstream
into mysql.com:/windows/Linux_space/MySQL/mysql-5.1-new-ndb
client/mysqldump.c:
Auto merged
sql/ha_ndbcluster.cc:
Auto merged
sql/sql_show.cc:
Auto merged
storage/ndb/src/ndbapi/NdbTransaction.cpp:
Auto merged
sql/sql_class.h:
Fixed indentation
into mysql.com:/windows/Linux_space/MySQL/mysql-5.1
mysql-test/t/ndb_index_unique.test:
Auto merged
mysql-test/r/ndb_index_unique.result:
Using local
will re-generate
sql/ha_ndbcluster.cc:
Using local
will merge manually
sql/ha_ndbcluster.h:
Using local
will merge manually
Added --force-restart pseudo server argument to shell version as well
mysql-test/mysql-test-run.sh:
Added --force-restart pseudo server argument to shell version as well