summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--include/my_sys.h6
-rw-r--r--include/sslopt-longopts.h4
-rw-r--r--mysql-test/r/binary.result10
-rw-r--r--mysys/my_malloc.c8
-rw-r--r--sql/udf_example.cc43
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++;