From fb71f423c4053f108048d463df64094aef32c7bc Mon Sep 17 00:00:00 2001 From: unknown Date: Sat, 4 Mar 2006 23:04:48 +0300 Subject: [PATCH 1/4] Undo the patch for Bug#16144 "mysql_stmt_attr_get type error", it breaks binary compatibility. The patch will be left intact in 5.1. Warning: this changeset should be null-merged into 5.1. A separate commit in order to push into the release clone of 5.0.19. libmysql/libmysql.c: Undo the patch for Bug#16144 tests/mysql_client_test.c: Undo the patch for Bug#16144 --- libmysql/libmysql.c | 2 +- tests/mysql_client_test.c | 19 ------------------- 2 files changed, 1 insertion(+), 20 deletions(-) diff --git a/libmysql/libmysql.c b/libmysql/libmysql.c index 99f173aa153..323ddfca36f 100644 --- a/libmysql/libmysql.c +++ b/libmysql/libmysql.c @@ -2822,7 +2822,7 @@ my_bool STDCALL mysql_stmt_attr_get(MYSQL_STMT *stmt, { switch (attr_type) { case STMT_ATTR_UPDATE_MAX_LENGTH: - *(my_bool*) value= stmt->update_max_length; + *(unsigned long *) value= stmt->update_max_length; break; case STMT_ATTR_CURSOR_TYPE: *(ulong*) value= stmt->flags; diff --git a/tests/mysql_client_test.c b/tests/mysql_client_test.c index 97511986f25..b1ea5f8ea06 100644 --- a/tests/mysql_client_test.c +++ b/tests/mysql_client_test.c @@ -14758,24 +14758,6 @@ static void test_bug16143() } -/* Bug #16144: mysql_stmt_attr_get type error */ - -static void test_bug16144() -{ - const my_bool flag_orig= (my_bool) 0xde; - my_bool flag= flag_orig; - MYSQL_STMT *stmt; - myheader("test_bug16144"); - - /* Check that attr_get returns correct data on little and big endian CPUs */ - stmt= mysql_stmt_init(mysql); - mysql_stmt_attr_set(stmt, STMT_ATTR_UPDATE_MAX_LENGTH, (const void*) &flag); - mysql_stmt_attr_get(stmt, STMT_ATTR_UPDATE_MAX_LENGTH, (void*) &flag); - DIE_UNLESS(flag == flag_orig); - - mysql_stmt_close(stmt); -} - /* Bug #15613: "libmysqlclient API function mysql_stmt_prepare returns wrong field length" @@ -15137,7 +15119,6 @@ static struct my_tests_st my_tests[]= { { "test_opt_reconnect", test_opt_reconnect }, { "test_bug12744", test_bug12744 }, { "test_bug16143", test_bug16143 }, - { "test_bug16144", test_bug16144 }, { "test_bug15613", test_bug15613 }, { "test_bug14169", test_bug14169 }, { 0, 0 } From 7ec0c0d9bc2813269c3fe50bef5b36fcdbb3b39e Mon Sep 17 00:00:00 2001 From: unknown Date: Fri, 10 Mar 2006 17:13:54 +0100 Subject: [PATCH 2/4] Include the system header file "pthread.h" even in a non-threaded build. Fixes bug#15861 include/my_no_pthread.h: Even in a non-threaded build, some modules (at least "mysys/mf_keycache.c") need some type definitions provided by the system header file "pthread.h". Rather than add complexity to the code, include the header. Fixes bug#15861 --- include/my_no_pthread.h | 28 ++++++++++++++++++++++++---- 1 file changed, 24 insertions(+), 4 deletions(-) diff --git a/include/my_no_pthread.h b/include/my_no_pthread.h index 2c9cde65e78..5691de08783 100644 --- a/include/my_no_pthread.h +++ b/include/my_no_pthread.h @@ -14,15 +14,34 @@ along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ + +#if !defined(_my_no_pthread_h) && !defined(THREAD) +#define _my_no_pthread_h + + +/* + This block is to access some thread-related type definitions + even in builds which do not need thread functions, + as some variables (based on these types) are declared + even in non-threaded builds. + Case in point: 'mf_keycache.c' +*/ +#if defined(__WIN__) || defined(OS2) + +#elif defined(HAVE_UNIXWARE7_THREADS) +/* #include Currently, not relevant. Enable if needed. */ + +#else /* Normal threads */ +#include + +#endif /* defined(__WIN__) */ + + /* This undefs some pthread mutex locks when one isn't using threads to make thread safe code, that should also work in single thread environment, easier to use. */ - -#if !defined(_my_no_pthread_h) && !defined(THREAD) -#define _my_no_pthread_h - #define pthread_mutex_init(A,B) #define pthread_mutex_lock(A) #define pthread_mutex_unlock(A) @@ -32,4 +51,5 @@ #define rw_wrlock(A) #define rw_unlock(A) #define rwlock_destroy(A) + #endif From b89bbaac9d78255d74c392abe2717a705a206482 Mon Sep 17 00:00:00 2001 From: unknown Date: Fri, 10 Mar 2006 08:54:12 -0800 Subject: [PATCH 3/4] This is a patch to test the default schema location. client/mysqlslap.c: Formating mysql-test/t/mysqlslap.test: Adding test to test for using non-default database. --- client/mysqlslap.c | 6 +++--- mysql-test/t/mysqlslap.test | 2 ++ 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/client/mysqlslap.c b/client/mysqlslap.c index 23eba64c332..e1136bd3a69 100644 --- a/client/mysqlslap.c +++ b/client/mysqlslap.c @@ -295,9 +295,9 @@ int main(int argc, char **argv) client_flag|= CLIENT_MULTI_RESULTS; if (!opt_only_print) { - if (!(mysql_real_connect(&mysql,host,user,opt_password, - argv[0],opt_mysql_port,opt_mysql_unix_port, - client_flag))) + if (!(mysql_real_connect(&mysql, host, user, opt_password, + NULL, opt_mysql_port, + opt_mysql_unix_port, client_flag))) { fprintf(stderr,"%s: %s\n",my_progname,mysql_error(&mysql)); free_defaults(defaults_argv); diff --git a/mysql-test/t/mysqlslap.test b/mysql-test/t/mysqlslap.test index fb44f5c29d5..01add0d7da8 100644 --- a/mysql-test/t/mysqlslap.test +++ b/mysql-test/t/mysqlslap.test @@ -12,3 +12,5 @@ --exec $MYSQL_SLAP --only-print --delimiter=";" --query="select * from t1;select * from t2" --create="CREATE TABLE t1 (id int, name varchar(64)); create table t2(foo1 varchar(32), foo2 varchar(32)); INSERT INTO t1 VALUES (1, 'This is a test'); insert into t2 values ('test', 'test2')" --engine="heap,myisam" --exec $MYSQL_SLAP --silent --concurrency=5 --iterations=20 --delimiter=";" --query="select * from t1;select * from t2" --create="CREATE TABLE t1 (id int, name varchar(64)); create table t2(foo1 varchar(32), foo2 varchar(32)); INSERT INTO t1 VALUES (1, 'This is a test'); insert into t2 values ('test', 'test2')" + +--exec $MYSQL_SLAP --silent --concurrency=5 --iterations=20 --number-int-cols=2 --number-char-cols=3 --auto-generate-sql --create-schema=test_env From dafa39f1c42a55af06b89e091c2b214128d8c82f Mon Sep 17 00:00:00 2001 From: unknown Date: Fri, 10 Mar 2006 22:23:04 +0300 Subject: [PATCH 4/4] Fix version of DEFINER-clause in mysqldump. Now DEFINER-clause in stored routines is expected to appear in 5.0.20 release, not in 5.0.19. as it was supposed before. client/mysqldump.c: Fixing version. mysql-test/r/mysqldump.result: Updated the result file. --- client/mysqldump.c | 2 +- mysql-test/r/mysqldump.result | 10 +++++----- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/client/mysqldump.c b/client/mysqldump.c index e0469e00031..78f12593f46 100644 --- a/client/mysqldump.c +++ b/client/mysqldump.c @@ -1342,7 +1342,7 @@ static uint dump_routines_for_db(char *db) query_str_tail= strnmov(query_str, row[2], definer_begin - row[2]); - query_str_tail= strmov(query_str_tail, "*/ /*!50019"); + query_str_tail= strmov(query_str_tail, "*/ /*!50020"); query_str_tail= strnmov(query_str_tail, definer_begin, definer_end - definer_begin); query_str_tail= strxmov(query_str_tail, "*/ /*!50003", diff --git a/mysql-test/r/mysqldump.result b/mysql-test/r/mysqldump.result index e6ac9fbc740..94bc56b6cb7 100644 --- a/mysql-test/r/mysqldump.result +++ b/mysql-test/r/mysqldump.result @@ -2210,12 +2210,12 @@ UNLOCK TABLES; DELIMITER ;; /*!50003 DROP FUNCTION IF EXISTS `bug9056_func1` */;; /*!50003 SET SESSION SQL_MODE=""*/;; -/*!50003 CREATE*/ /*!50019 DEFINER=`root`@`localhost`*/ /*!50003 FUNCTION `bug9056_func1`(a INT, b INT) RETURNS int(11) +/*!50003 CREATE*/ /*!50020 DEFINER=`root`@`localhost`*/ /*!50003 FUNCTION `bug9056_func1`(a INT, b INT) RETURNS int(11) RETURN a+b */;; /*!50003 SET SESSION SQL_MODE=@OLD_SQL_MODE*/;; /*!50003 DROP FUNCTION IF EXISTS `bug9056_func2` */;; /*!50003 SET SESSION SQL_MODE=""*/;; -/*!50003 CREATE*/ /*!50019 DEFINER=`root`@`localhost`*/ /*!50003 FUNCTION `bug9056_func2`(f1 char binary) RETURNS char(1) +/*!50003 CREATE*/ /*!50020 DEFINER=`root`@`localhost`*/ /*!50003 FUNCTION `bug9056_func2`(f1 char binary) RETURNS char(1) begin set f1= concat( 'hello', f1 ); return f1; @@ -2223,17 +2223,17 @@ end */;; /*!50003 SET SESSION SQL_MODE=@OLD_SQL_MODE*/;; /*!50003 DROP PROCEDURE IF EXISTS `a'b` */;; /*!50003 SET SESSION SQL_MODE="REAL_AS_FLOAT,PIPES_AS_CONCAT,ANSI_QUOTES,IGNORE_SPACE,ANSI"*/;; -/*!50003 CREATE*/ /*!50019 DEFINER="root"@"localhost"*/ /*!50003 PROCEDURE "a'b"() +/*!50003 CREATE*/ /*!50020 DEFINER="root"@"localhost"*/ /*!50003 PROCEDURE "a'b"() select 1 */;; /*!50003 SET SESSION SQL_MODE=@OLD_SQL_MODE*/;; /*!50003 DROP PROCEDURE IF EXISTS `bug9056_proc1` */;; /*!50003 SET SESSION SQL_MODE=""*/;; -/*!50003 CREATE*/ /*!50019 DEFINER=`root`@`localhost`*/ /*!50003 PROCEDURE `bug9056_proc1`(IN a INT, IN b INT, OUT c INT) +/*!50003 CREATE*/ /*!50020 DEFINER=`root`@`localhost`*/ /*!50003 PROCEDURE `bug9056_proc1`(IN a INT, IN b INT, OUT c INT) BEGIN SELECT a+b INTO c; end */;; /*!50003 SET SESSION SQL_MODE=@OLD_SQL_MODE*/;; /*!50003 DROP PROCEDURE IF EXISTS `bug9056_proc2` */;; /*!50003 SET SESSION SQL_MODE=""*/;; -/*!50003 CREATE*/ /*!50019 DEFINER=`root`@`localhost`*/ /*!50003 PROCEDURE `bug9056_proc2`(OUT a INT) +/*!50003 CREATE*/ /*!50020 DEFINER=`root`@`localhost`*/ /*!50003 PROCEDURE `bug9056_proc2`(OUT a INT) BEGIN select sum(id) from t1 into a; END */;;