diff options
-rw-r--r-- | include/my_sys.h | 6 | ||||
-rw-r--r-- | include/sslopt-longopts.h | 4 | ||||
-rw-r--r-- | mysql-test/r/binary.result | 10 | ||||
-rw-r--r-- | mysys/my_malloc.c | 8 | ||||
-rw-r--r-- | sql/udf_example.cc | 43 |
5 files changed, 44 insertions, 27 deletions
diff --git a/include/my_sys.h b/include/my_sys.h index e1054d825c6..444f7ab34ee 100644 --- a/include/my_sys.h +++ b/include/my_sys.h @@ -153,9 +153,9 @@ extern gptr my_malloc(uint Size,myf MyFlags); extern gptr my_realloc(gptr oldpoint,uint Size,myf MyFlags); extern void my_no_flags_free(gptr ptr); extern gptr my_memdup(const byte *from,uint length,myf MyFlags); -extern my_string my_strdup(const char *from,myf MyFlags); -extern my_string my_strdup_with_length(const char *from,uint length, - myf MyFlags); +extern char *my_strdup(const char *from,myf MyFlags); +extern char *my_strdup_with_length(const byte *from, uint length, + myf MyFlags); #define my_free(PTR,FG) my_no_flags_free(PTR) #define CALLER_INFO_PROTO /* nothing */ #define CALLER_INFO /* nothing */ diff --git a/include/sslopt-longopts.h b/include/sslopt-longopts.h index 811fbcbbdd6..397d8baa9d6 100644 --- a/include/sslopt-longopts.h +++ b/include/sslopt-longopts.h @@ -17,8 +17,8 @@ #ifdef HAVE_OPENSSL {"ssl", OPT_SSL_SSL, - "Use SSL for connection (automatically set with other flags)", - (gptr*) &opt_use_ssl, (gptr*) &opt_use_ssl, 0, GET_BOOL, NO_ARG, 0, 0, 0, + "Enable SSL for connection (automatically enabled with other flags). Disable with --skip-ssl", + (gptr*) &opt_use_ssl, (gptr*) &opt_use_ssl, 0, GET_BOOL, NO_ARG, 0, 0, 0, 0, 0, 0}, {"ssl-key", OPT_SSL_KEY, "X509 key in PEM format (implies --ssl)", (gptr*) &opt_ssl_key, (gptr*) &opt_ssl_key, 0, GET_STR, REQUIRED_ARG, diff --git a/mysql-test/r/binary.result b/mysql-test/r/binary.result index 94b06ee4d28..325accf00e7 100644 --- a/mysql-test/r/binary.result +++ b/mysql-test/r/binary.result @@ -54,3 +54,13 @@ select * from t1 where b="hello"; a b hello hello drop table t1; +create table t1 (b char(8)); +insert into t1 values(NULL); +select b from t1 where binary b like ''; +b +select b from t1 group by binary b like ''; +b +NULL +select b from t1 having binary b like ''; +b +drop table t1; diff --git a/mysys/my_malloc.c b/mysys/my_malloc.c index fc2f22b079a..b273363aaf1 100644 --- a/mysys/my_malloc.c +++ b/mysys/my_malloc.c @@ -73,7 +73,7 @@ gptr my_memdup(const byte *from, uint length, myf MyFlags) } -my_string my_strdup(const char *from, myf MyFlags) +char *my_strdup(const char *from, myf MyFlags) { gptr ptr; uint length=(uint) strlen(from)+1; @@ -83,13 +83,13 @@ my_string my_strdup(const char *from, myf MyFlags) } -gptr my_strdup_with_length(const byte *from, uint length, myf MyFlags) +char *my_strdup_with_length(const byte *from, uint length, myf MyFlags) { gptr ptr; if ((ptr=my_malloc(length+1,MyFlags)) != 0) { memcpy((byte*) ptr, (byte*) from,(size_t) length); - ptr[length]=0; + ((char*) ptr)[length]=0; } - return(ptr); + return((char*) ptr); } diff --git a/sql/udf_example.cc b/sql/udf_example.cc index c7b8363f744..176ddeb10a3 100644 --- a/sql/udf_example.cc +++ b/sql/udf_example.cc @@ -1,4 +1,4 @@ -/* Copyright (C) 2000 MySQL AB & MySQL Finland AB & TCX DataKonsult AB +/* Copyright (C) 2002 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -111,6 +111,13 @@ #ifdef STANDARD #include <stdio.h> #include <string.h> +#ifdef __WIN__ +typedef unsigned __int64 ulonglong; /* Microsofts 64 bit types */ +typedef __int64 longlong; +#else +typedef unsigned long long ulonglong; +typedef long long longlong; +#endif /*__WIN__*/ #else #include <my_global.h> #include <my_sys.h> @@ -135,7 +142,7 @@ longlong myfunc_int(UDF_INIT *initid, UDF_ARGS *args, char *is_null, char *error); my_bool sequence_init(UDF_INIT *initid, UDF_ARGS *args, char *message); void sequence_deinit(UDF_INIT *initid); -long long sequence(UDF_INIT *initid, UDF_ARGS *args, char *is_null, +longlong sequence(UDF_INIT *initid, UDF_ARGS *args, char *is_null, char *error); my_bool avgcost_init( UDF_INIT* initid, UDF_ARGS* args, char* message ); void avgcost_deinit( UDF_INIT* initid ); @@ -558,10 +565,10 @@ double myfunc_double(UDF_INIT *initid, UDF_ARGS *args, char *is_null, /* This function returns the sum of all arguments */ -long long myfunc_int(UDF_INIT *initid, UDF_ARGS *args, char *is_null, +longlong myfunc_int(UDF_INIT *initid, UDF_ARGS *args, char *is_null, char *error) { - long long val = 0; + longlong val = 0; for (uint i = 0; i < args->arg_count; i++) { if (args->args[i] == NULL) @@ -571,10 +578,10 @@ long long myfunc_int(UDF_INIT *initid, UDF_ARGS *args, char *is_null, val += args->lengths[i]; break; case INT_RESULT: // Add numbers - val += *((long long*) args->args[i]); + val += *((longlong*) args->args[i]); break; - case REAL_RESULT: // Add numers as long long - val += (long long) *((double*) args->args[i]); + case REAL_RESULT: // Add numers as longlong + val += (longlong) *((double*) args->args[i]); break; } } @@ -617,12 +624,12 @@ void sequence_deinit(UDF_INIT *initid) free(initid->ptr); } -long long sequence(UDF_INIT *initid, UDF_ARGS *args, char *is_null, +longlong sequence(UDF_INIT *initid, UDF_ARGS *args, char *is_null, char *error) { ulonglong val=0; if (args->arg_count) - val= *((long long*) args->args[0]); + val= *((longlong*) args->args[0]); return ++ *((longlong*) initid->ptr) + val; } @@ -743,10 +750,10 @@ char *reverse_lookup(UDF_INIT *initid, UDF_ARGS *args, char *result, return 0; } sprintf(result,"%d.%d.%d.%d", - (int) *((long long*) args->args[0]), - (int) *((long long*) args->args[1]), - (int) *((long long*) args->args[2]), - (int) *((long long*) args->args[3])); + (int) *((longlong*) args->args[0]), + (int) *((longlong*) args->args[1]), + (int) *((longlong*) args->args[2]), + (int) *((longlong*) args->args[3])); } else { // string argument @@ -795,9 +802,9 @@ char *reverse_lookup(UDF_INIT *initid, UDF_ARGS *args, char *result, struct avgcost_data { - unsigned long long count; - long long totalquantity; - double totalprice; + ulonglong count; + longlong totalquantity; + double totalprice; }; @@ -871,8 +878,8 @@ avgcost_add( UDF_INIT* initid, UDF_ARGS* args, char* is_null, char* message ) if (args->args[0] && args->args[1]) { struct avgcost_data* data = (struct avgcost_data*)initid->ptr; - long long quantity = *((long long*)args->args[0]); - long long newquantity = data->totalquantity + quantity; + longlong quantity = *((longlong*)args->args[0]); + longlong newquantity = data->totalquantity + quantity; double price = *((double*)args->args[1]); data->count++; |