Commit 504fcd3a authored by unknown's avatar unknown

Merge trift2.:/MySQL/M51/mysql-5.1

into  trift2.:/MySQL/M51/push-5.1
parents 93e95f82 c4b99c85
...@@ -2090,14 +2090,6 @@ v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VI ...@@ -2090,14 +2090,6 @@ v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VI
deallocate prepare abc; deallocate prepare abc;
drop view v1; drop view v1;
drop table t1; drop table t1;
create procedure proc_1() install plugin my_plug soname '/root/some_plugin.so';
call proc_1();
ERROR HY000: No paths allowed for shared library
call proc_1();
ERROR HY000: No paths allowed for shared library
call proc_1();
ERROR HY000: No paths allowed for shared library
drop procedure proc_1;
create procedure proc_1() install plugin my_plug soname 'some_plugin.so'; create procedure proc_1() install plugin my_plug soname 'some_plugin.so';
call proc_1(); call proc_1();
ERROR HY000: Can't open shared library ERROR HY000: Can't open shared library
...@@ -2112,12 +2104,6 @@ select func_1(), func_1(), func_1() from dual; ...@@ -2112,12 +2104,6 @@ select func_1(), func_1(), func_1() from dual;
ERROR 42000: FUNCTION test.func_1 does not exist ERROR 42000: FUNCTION test.func_1 does not exist
drop function func_1; drop function func_1;
ERROR 42000: FUNCTION test.func_1 does not exist ERROR 42000: FUNCTION test.func_1 does not exist
prepare abc from "install plugin my_plug soname '/root/some_plugin.so'";
execute abc;
ERROR HY000: No paths allowed for shared library
execute abc;
ERROR HY000: No paths allowed for shared library
deallocate prepare abc;
prepare abc from "install plugin my_plug soname 'some_plugin.so'"; prepare abc from "install plugin my_plug soname 'some_plugin.so'";
deallocate prepare abc; deallocate prepare abc;
create procedure proc_1() uninstall plugin my_plug; create procedure proc_1() uninstall plugin my_plug;
......
create procedure proc_1() install plugin my_plug soname '/root/some_plugin.so';
call proc_1();
ERROR HY000: No paths allowed for shared library
call proc_1();
ERROR HY000: No paths allowed for shared library
call proc_1();
ERROR HY000: No paths allowed for shared library
drop procedure proc_1;
prepare abc from "install plugin my_plug soname '/root/some_plugin.so'";
execute abc;
ERROR HY000: No paths allowed for shared library
execute abc;
ERROR HY000: No paths allowed for shared library
deallocate prepare abc;
...@@ -6,3 +6,17 @@ use prn; ...@@ -6,3 +6,17 @@ use prn;
ERROR 42000: Unknown database 'prn' ERROR 42000: Unknown database 'prn'
create table nu (a int); create table nu (a int);
drop table nu; drop table nu;
create procedure proc_1() install plugin my_plug soname '\\root\\some_plugin.dll';
call proc_1();
ERROR HY000: No paths allowed for shared library
call proc_1();
ERROR HY000: No paths allowed for shared library
call proc_1();
ERROR HY000: No paths allowed for shared library
drop procedure proc_1;
prepare abc from "install plugin my_plug soname '\\\\root\\\\some_plugin.dll'";
execute abc;
ERROR HY000: No paths allowed for shared library
execute abc;
ERROR HY000: No paths allowed for shared library
deallocate prepare abc;
...@@ -2092,14 +2092,6 @@ drop view v1; ...@@ -2092,14 +2092,6 @@ drop view v1;
drop table t1; drop table t1;
create procedure proc_1() install plugin my_plug soname '/root/some_plugin.so';
--error ER_UDF_NO_PATHS
call proc_1();
--error ER_UDF_NO_PATHS
call proc_1();
--error ER_UDF_NO_PATHS
call proc_1();
drop procedure proc_1;
create procedure proc_1() install plugin my_plug soname 'some_plugin.so'; create procedure proc_1() install plugin my_plug soname 'some_plugin.so';
--replace_regex /(Can\'t open shared library).*$/\1/ --replace_regex /(Can\'t open shared library).*$/\1/
--error ER_CANT_OPEN_LIBRARY --error ER_CANT_OPEN_LIBRARY
...@@ -2119,12 +2111,6 @@ delimiter ;| ...@@ -2119,12 +2111,6 @@ delimiter ;|
select func_1(), func_1(), func_1() from dual; select func_1(), func_1(), func_1() from dual;
--error ER_SP_DOES_NOT_EXIST --error ER_SP_DOES_NOT_EXIST
drop function func_1; drop function func_1;
prepare abc from "install plugin my_plug soname '/root/some_plugin.so'";
--error ER_UDF_NO_PATHS
execute abc;
--error ER_UDF_NO_PATHS
execute abc;
deallocate prepare abc;
prepare abc from "install plugin my_plug soname 'some_plugin.so'"; prepare abc from "install plugin my_plug soname 'some_plugin.so'";
deallocate prepare abc; deallocate prepare abc;
......
# Non-windows specific ps tests.
--source include/not_windows.inc
#
# Bug #20665: All commands supported in Stored Procedures should work in
# Prepared Statements
#
create procedure proc_1() install plugin my_plug soname '/root/some_plugin.so';
--error ER_UDF_NO_PATHS
call proc_1();
--error ER_UDF_NO_PATHS
call proc_1();
--error ER_UDF_NO_PATHS
call proc_1();
drop procedure proc_1;
prepare abc from "install plugin my_plug soname '/root/some_plugin.so'";
--error ER_UDF_NO_PATHS
execute abc;
--error ER_UDF_NO_PATHS
execute abc;
deallocate prepare abc;
...@@ -18,3 +18,25 @@ create table nu (a int); ...@@ -18,3 +18,25 @@ create table nu (a int);
drop table nu; drop table nu;
# End of 4.1 tests # End of 4.1 tests
#
# Bug #20665: All commands supported in Stored Procedures should work in
# Prepared Statements
#
create procedure proc_1() install plugin my_plug soname '\\root\\some_plugin.dll';
--error ER_UDF_NO_PATHS
call proc_1();
--error ER_UDF_NO_PATHS
call proc_1();
--error ER_UDF_NO_PATHS
call proc_1();
drop procedure proc_1;
prepare abc from "install plugin my_plug soname '\\\\root\\\\some_plugin.dll'";
--error ER_UDF_NO_PATHS
execute abc;
--error ER_UDF_NO_PATHS
execute abc;
deallocate prepare abc;
This diff is collapsed.
...@@ -79,9 +79,15 @@ void mysql_client_binlog_statement(THD* thd) ...@@ -79,9 +79,15 @@ void mysql_client_binlog_statement(THD* thd)
char const *endptr= 0; char const *endptr= 0;
int bytes_decoded= base64_decode(strptr, coded_len, buf, &endptr); int bytes_decoded= base64_decode(strptr, coded_len, buf, &endptr);
#ifndef HAVE_purify
/*
This debug printout should not be used for valgrind builds
since it will read from unassigned memory.
*/
DBUG_PRINT("info", DBUG_PRINT("info",
("bytes_decoded=%d; strptr=0x%lu; endptr=0x%lu ('%c':%d)", ("bytes_decoded=%d; strptr=0x%lu; endptr=0x%lu ('%c':%d)",
bytes_decoded, strptr, endptr, *endptr, *endptr)); bytes_decoded, strptr, endptr, *endptr, *endptr));
#endif
if (bytes_decoded < 0) if (bytes_decoded < 0)
{ {
...@@ -147,8 +153,14 @@ void mysql_client_binlog_statement(THD* thd) ...@@ -147,8 +153,14 @@ void mysql_client_binlog_statement(THD* thd)
DBUG_PRINT("info",("ev->get_type_code()=%d", ev->get_type_code())); DBUG_PRINT("info",("ev->get_type_code()=%d", ev->get_type_code()));
DBUG_PRINT("info",("bufptr+EVENT_TYPE_OFFSET=0x%lx", DBUG_PRINT("info",("bufptr+EVENT_TYPE_OFFSET=0x%lx",
bufptr+EVENT_TYPE_OFFSET)); bufptr+EVENT_TYPE_OFFSET));
#ifndef HAVE_purify
/*
This debug printout should not be used for valgrind builds
since it will read from unassigned memory.
*/
DBUG_PRINT("info", ("bytes_decoded=%d; bufptr=0x%lx; buf[EVENT_LEN_OFFSET]=%u", DBUG_PRINT("info", ("bytes_decoded=%d; bufptr=0x%lx; buf[EVENT_LEN_OFFSET]=%u",
bytes_decoded, bufptr, uint4korr(bufptr+EVENT_LEN_OFFSET))); bytes_decoded, bufptr, uint4korr(bufptr+EVENT_LEN_OFFSET)));
#endif
ev->thd= thd; ev->thd= thd;
if (int err= ev->exec_event(thd->rli_fake)) if (int err= ev->exec_event(thd->rli_fake))
{ {
......
...@@ -2728,10 +2728,16 @@ int THD::binlog_update_row(TABLE* table, bool is_trans, ...@@ -2728,10 +2728,16 @@ int THD::binlog_update_row(TABLE* table, bool is_trans,
my_size_t const after_size= pack_row(table, cols, after_row, my_size_t const after_size= pack_row(table, cols, after_row,
after_record); after_record);
/*
Don't print debug messages when running valgrind since they can
trigger false warnings.
*/
#ifndef HAVE_purify
DBUG_DUMP("before_record", (const char *)before_record, table->s->reclength); DBUG_DUMP("before_record", (const char *)before_record, table->s->reclength);
DBUG_DUMP("after_record", (const char *)after_record, table->s->reclength); DBUG_DUMP("after_record", (const char *)after_record, table->s->reclength);
DBUG_DUMP("before_row", (const char *)before_row, before_size); DBUG_DUMP("before_row", (const char *)before_row, before_size);
DBUG_DUMP("after_row", (const char *)after_row, after_size); DBUG_DUMP("after_row", (const char *)after_row, after_size);
#endif
Rows_log_event* const ev= Rows_log_event* const ev=
binlog_prepare_pending_rows_event(table, server_id, cols, colcnt, binlog_prepare_pending_rows_event(table, server_id, cols, colcnt,
......
...@@ -146,12 +146,13 @@ Ndb::~Ndb() ...@@ -146,12 +146,13 @@ Ndb::~Ndb()
} }
doDisconnect(); doDisconnect();
delete theEventBuffer; /* Disconnect from transporter to stop signals from coming in */
if (theImpl->m_transporter_facade != NULL && theNdbBlockNumber > 0){ if (theImpl->m_transporter_facade != NULL && theNdbBlockNumber > 0){
theImpl->m_transporter_facade->close(theNdbBlockNumber, theFirstTransId); theImpl->m_transporter_facade->close(theNdbBlockNumber, theFirstTransId);
} }
delete theEventBuffer;
releaseTransactionArrays(); releaseTransactionArrays();
delete []theConnectionArray; delete []theConnectionArray;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment