diff -C3 -r mysql-udf-orig/udf_colwidth.cc udf_colwidth.cc *** mysql-udf-orig/udf_colwidth.cc 2004-07-16 00:35:05.000000000 +0200 --- udf_colwidth.cc 2005-10-05 14:37:55.000000000 +0200 *************** *** 42,47 **** --- 42,48 ---- my_bool colwidth_init( UDF_INIT* initid, UDF_ARGS* args, char* message ); void colwidth_deinit( UDF_INIT* initid ); void colwidth_reset( UDF_INIT* initid, UDF_ARGS* args, char* is_null, char *error ); + void colwidth_clear( UDF_INIT* initid, char* is_null, char *error ); void colwidth_add( UDF_INIT* initid, UDF_ARGS* args, char* is_null, char *error ); long long colwidth( UDF_INIT* initid, UDF_ARGS* args, char* is_null, char* error ); *************** *** 93,102 **** void colwidth_reset( UDF_INIT* initid, UDF_ARGS* args, char* is_null, char* message ) { struct colwidth_data* data = (struct colwidth_data*)initid->ptr; data->maxlength=(long long) 0; - colwidth_add( initid, args, is_null, message ); } --- 94,110 ---- void colwidth_reset( UDF_INIT* initid, UDF_ARGS* args, char* is_null, char* message ) { + + colwidth_clear( initid, is_null, message ); + colwidth_add( initid, args, is_null, message ); + } + + + void colwidth_clear( UDF_INIT* initid, char* is_null, char* message ) + { struct colwidth_data* data = (struct colwidth_data*)initid->ptr; data->maxlength=(long long) 0; } diff -C3 -r mysql-udf-orig/udf_confidence_higher.cc udf_confidence_higher.cc *** mysql-udf-orig/udf_confidence_higher.cc 2004-07-15 23:39:09.000000000 +0200 --- udf_confidence_higher.cc 2005-06-01 10:19:48.000000000 +0200 *************** *** 38,43 **** --- 38,44 ---- #include #include #include + #include #ifdef HAVE_DLOPEN diff -C3 -r mysql-udf-orig/udf_confidence_lower.cc udf_confidence_lower.cc *** mysql-udf-orig/udf_confidence_lower.cc 2004-07-15 23:38:17.000000000 +0200 --- udf_confidence_lower.cc 2005-06-01 10:20:17.000000000 +0200 *************** *** 38,43 **** --- 38,44 ---- #include #include #include + #include #ifdef HAVE_DLOPEN diff -C3 -r mysql-udf-orig/udf_correlation.cc udf_correlation.cc *** mysql-udf-orig/udf_correlation.cc 2004-07-16 00:31:41.000000000 +0200 --- udf_correlation.cc 2005-10-05 14:14:22.000000000 +0200 *************** *** 36,41 **** --- 36,42 ---- #include #include #include + #include #ifdef HAVE_DLOPEN *************** *** 49,54 **** --- 50,56 ---- my_bool correlation_init( UDF_INIT* initid, UDF_ARGS* args, char* message ); void correlation_deinit( UDF_INIT* initid ); void correlation_reset( UDF_INIT* initid, UDF_ARGS* args, char* is_null, char *error ); + void correlation_clear( UDF_INIT* initid, char* is_null, char *error ); void correlation_add( UDF_INIT* initid, UDF_ARGS* args, char* is_null, char *error ); double correlation( UDF_INIT* initid, UDF_ARGS* args, char* is_null, char *error ); *************** *** 134,139 **** --- 136,147 ---- void correlation_reset( UDF_INIT* initid, UDF_ARGS* args, char* is_null, char* is_error ) { + correlation_clear( initid, is_null, is_error ); + correlation_add( initid, args, is_null, is_error ); + } + + void correlation_clear( UDF_INIT* initid, char* is_null, char* is_error ) + { regression_data *buffer = (regression_data*)initid->ptr; buffer->count = 0; buffer->abscount=0; *************** *** 156,162 **** buffer->valuesx=(double *) malloc(BUFFERSIZE*sizeof(double)); buffer->valuesy=(double *) malloc(BUFFERSIZE*sizeof(double)); - correlation_add( initid, args, is_null, is_error ); } --- 164,169 ---- diff -C3 -r mysql-udf-orig/udf_geomean.cc udf_geomean.cc *** mysql-udf-orig/udf_geomean.cc 2004-07-16 00:10:42.000000000 +0200 --- udf_geomean.cc 2005-10-05 15:06:05.000000000 +0200 *************** *** 34,39 **** --- 34,40 ---- #include #include #include + #include #ifdef HAVE_DLOPEN *************** *** 43,48 **** --- 44,50 ---- my_bool geomean_init( UDF_INIT* initid, UDF_ARGS* args, char* message ); void geomean_deinit( UDF_INIT* initid ); void geomean_reset( UDF_INIT* initid, UDF_ARGS* args, char* is_null, char *error ); + void geomean_clear( UDF_INIT* initid, char* is_null, char *error ); void geomean_add( UDF_INIT* initid, UDF_ARGS* args, char* is_null, char *error ); double geomean( UDF_INIT* initid, UDF_ARGS* args, char* is_null, char *error ); } *************** *** 104,109 **** --- 106,117 ---- void geomean_reset( UDF_INIT* initid, UDF_ARGS* args, char* is_null, char* is_error ) { + geomean_clear( initid, is_null, is_error ); + geomean_add( initid, args, is_null, is_error ); + } + + void geomean_clear( UDF_INIT* initid, char* is_null, char* is_error ) + { geomean_data *buffer = (geomean_data*)initid->ptr; buffer->count = 0; buffer->value=0; *************** *** 111,117 **** *is_null = 0; *is_error = 0; - geomean_add( initid, args, is_null, is_error ); } --- 119,124 ---- diff -C3 -r mysql-udf-orig/udf_intercept.cc udf_intercept.cc *** mysql-udf-orig/udf_intercept.cc 2004-07-16 00:29:17.000000000 +0200 --- udf_intercept.cc 2005-10-05 14:45:26.000000000 +0200 *************** *** 48,53 **** --- 48,54 ---- my_bool intercept_init( UDF_INIT* initid, UDF_ARGS* args, char* message ); void intercept_deinit( UDF_INIT* initid ); void intercept_reset( UDF_INIT* initid, UDF_ARGS* args, char* is_null, char *error ); + void intercept_clear( UDF_INIT* initid, char* is_null, char *error ); void intercept_add( UDF_INIT* initid, UDF_ARGS* args, char* is_null, char *error ); double intercept( UDF_INIT* initid, UDF_ARGS* args, char* is_null, char *error ); *************** *** 133,138 **** --- 134,145 ---- void intercept_reset( UDF_INIT* initid, UDF_ARGS* args, char* is_null, char* is_error ) { + intercept_clear( initid, is_null, is_error ); + intercept_add( initid, args, is_null, is_error ); + } + + void intercept_clear( UDF_INIT* initid, char* is_null, char* is_error ) + { regression_data *buffer = (regression_data*)initid->ptr; buffer->count = 0; buffer->abscount=0; *************** *** 155,165 **** buffer->valuesx=(double *) malloc(BUFFERSIZE*sizeof(double)); buffer->valuesy=(double *) malloc(BUFFERSIZE*sizeof(double)); - intercept_add( initid, args, is_null, is_error ); } - void intercept_add( UDF_INIT* initid, UDF_ARGS* args, char* is_null, char* is_error ) { if (args->args[0]!=NULL && args->args[1]!=NULL) --- 162,170 ---- diff -C3 -r mysql-udf-orig/udf_kurtosis.cc udf_kurtosis.cc *** mysql-udf-orig/udf_kurtosis.cc 2004-07-15 23:55:53.000000000 +0200 --- udf_kurtosis.cc 2005-10-05 14:47:25.000000000 +0200 *************** *** 34,39 **** --- 34,40 ---- #include #include #include + #include #ifdef HAVE_DLOPEN *************** *** 46,51 **** --- 47,53 ---- my_bool kurtosis_init( UDF_INIT* initid, UDF_ARGS* args, char* message ); void kurtosis_deinit( UDF_INIT* initid ); void kurtosis_reset( UDF_INIT* initid, UDF_ARGS* args, char* is_null, char *error ); + void kurtosis_clear( UDF_INIT* initid, char* is_null, char *error ); void kurtosis_add( UDF_INIT* initid, UDF_ARGS* args, char* is_null, char *error ); double kurtosis( UDF_INIT* initid, UDF_ARGS* args, char* is_null, char *error ); } *************** *** 116,121 **** --- 118,130 ---- void kurtosis_reset( UDF_INIT* initid, UDF_ARGS* args, char* is_null, char* is_error ) { + kurtosis_clear( initid, is_null, is_error ); + kurtosis_add( initid, args, is_null, is_error ); + } + + + void kurtosis_clear( UDF_INIT* initid, char* is_null, char* is_error ) + { kurtosis_data *buffer = (kurtosis_data*)initid->ptr; buffer->count = 0; buffer->abscount=0; *************** *** 131,137 **** buffer->values=(double *) malloc(BUFFERSIZE*sizeof(double)); - kurtosis_add( initid, args, is_null, is_error ); } --- 140,145 ---- diff -C3 -r mysql-udf-orig/udf_longest.cc udf_longest.cc *** mysql-udf-orig/udf_longest.cc 2004-07-16 00:34:09.000000000 +0200 --- udf_longest.cc 2005-10-05 14:48:58.000000000 +0200 *************** *** 41,46 **** --- 41,47 ---- my_bool longest_init( UDF_INIT* initid, UDF_ARGS* args, char* message ); void longest_deinit( UDF_INIT* initid ); void longest_reset( UDF_INIT* initid, UDF_ARGS* args, char* is_null, char *error ); + void longest_clear( UDF_INIT* initid, char* is_null, char *error ); void longest_add( UDF_INIT* initid, UDF_ARGS* args, char* is_null, char *error ); char *longest(UDF_INIT * initid, UDF_ARGS *args, char *result, unsigned long *length, char *is_null, char * /*error*/ ); } *************** *** 97,102 **** --- 98,109 ---- void longest_reset( UDF_INIT* initid, UDF_ARGS* args, char* is_null, char* message ) { + longest_clear( initid, is_null, message ); + longest_add( initid, args, is_null, message ); + } + + void longest_clear( UDF_INIT* initid, char* is_null, char* message ) + { struct longest_data* data = (struct longest_data*) initid->ptr; if (data->result_string != NULL) { *************** *** 105,111 **** } data->length = 0; *is_null = 0; - longest_add( initid, args, is_null, message ); } --- 112,117 ---- diff -C3 -r mysql-udf-orig/udf_median.cc udf_median.cc *** mysql-udf-orig/udf_median.cc 2004-07-16 00:11:52.000000000 +0200 --- udf_median.cc 2005-10-05 13:49:00.000000000 +0200 *************** *** 46,51 **** --- 46,52 ---- my_bool median_init( UDF_INIT* initid, UDF_ARGS* args, char* message ); void median_deinit( UDF_INIT* initid ); void median_reset( UDF_INIT* initid, UDF_ARGS* args, char* is_null, char *error ); + void median_clear( UDF_INIT* initid, char* is_null, char *error ); void median_add( UDF_INIT* initid, UDF_ARGS* args, char* is_null, char *error ); double median( UDF_INIT* initid, UDF_ARGS* args, char* is_null, char *error ); } *************** *** 116,121 **** --- 117,128 ---- void median_reset( UDF_INIT* initid, UDF_ARGS* args, char* is_null, char* is_error ) { + median_clear(initid, is_null, is_error); + median_add( initid, args, is_null, is_error ); + } + + void median_clear( UDF_INIT* initid, char* is_null, char* is_error ) + { median_data *buffer = (median_data*)initid->ptr; buffer->count = 0; buffer->abscount=0; *************** *** 131,140 **** buffer->values=(double *) malloc(BUFFERSIZE*sizeof(double)); - median_add( initid, args, is_null, is_error ); } - void median_add( UDF_INIT* initid, UDF_ARGS* args, char* is_null, char* is_error ) { if (args->args[0]!=NULL) --- 138,145 ---- diff -C3 -r mysql-udf-orig/udf_skewness.cc udf_skewness.cc *** mysql-udf-orig/udf_skewness.cc 2004-07-15 23:56:06.000000000 +0200 --- udf_skewness.cc 2005-10-05 14:51:28.000000000 +0200 *************** *** 34,39 **** --- 34,40 ---- #include #include #include + #include #ifdef HAVE_DLOPEN *************** *** 46,51 **** --- 47,53 ---- my_bool skewness_init( UDF_INIT* initid, UDF_ARGS* args, char* message ); void skewness_deinit( UDF_INIT* initid ); void skewness_reset( UDF_INIT* initid, UDF_ARGS* args, char* is_null, char *error ); + void skewness_clear( UDF_INIT* initid, char* is_null, char *error ); void skewness_add( UDF_INIT* initid, UDF_ARGS* args, char* is_null, char *error ); double skewness( UDF_INIT* initid, UDF_ARGS* args, char* is_null, char *error ); } *************** *** 116,121 **** --- 118,129 ---- void skewness_reset( UDF_INIT* initid, UDF_ARGS* args, char* is_null, char* is_error ) { + skewness_clear( initid, is_null, is_error ); + skewness_add( initid, args, is_null, is_error ); + } + + void skewness_clear( UDF_INIT* initid, char* is_null, char* is_error ) + { skewness_data *buffer = (skewness_data*)initid->ptr; buffer->count = 0; buffer->abscount=0; *************** *** 131,137 **** buffer->values=(double *) malloc(BUFFERSIZE*sizeof(double)); - skewness_add( initid, args, is_null, is_error ); } --- 139,144 ---- diff -C3 -r mysql-udf-orig/udf_slope.cc udf_slope.cc *** mysql-udf-orig/udf_slope.cc 2004-07-16 00:28:02.000000000 +0200 --- udf_slope.cc 2005-10-05 14:53:30.000000000 +0200 *************** *** 49,54 **** --- 49,55 ---- my_bool slope_init( UDF_INIT* initid, UDF_ARGS* args, char* message ); void slope_deinit( UDF_INIT* initid ); void slope_reset( UDF_INIT* initid, UDF_ARGS* args, char* is_null, char *error ); + void slope_clear( UDF_INIT* initid, char* is_null, char *error ); void slope_add( UDF_INIT* initid, UDF_ARGS* args, char* is_null, char *error ); double slope( UDF_INIT* initid, UDF_ARGS* args, char* is_null, char *error ); *************** *** 134,139 **** --- 135,146 ---- void slope_reset( UDF_INIT* initid, UDF_ARGS* args, char* is_null, char* is_error ) { + slope_clear( initid, is_null, is_error ); + slope_add( initid, args, is_null, is_error ); + } + + void slope_clear( UDF_INIT* initid, char* is_null, char* is_error ) + { regression_data *buffer = (regression_data*)initid->ptr; buffer->count = 0; buffer->abscount=0; *************** *** 156,162 **** buffer->valuesx=(double *) malloc(BUFFERSIZE*sizeof(double)); buffer->valuesy=(double *) malloc(BUFFERSIZE*sizeof(double)); - slope_add( initid, args, is_null, is_error ); } --- 163,168 ---- diff -C3 -r mysql-udf-orig/udf_stdnorm_density.cc udf_stdnorm_density.cc *** mysql-udf-orig/udf_stdnorm_density.cc 2004-07-16 00:00:20.000000000 +0200 --- udf_stdnorm_density.cc 2005-06-01 11:43:29.000000000 +0200 *************** *** 34,39 **** --- 34,40 ---- #include #include #include + #include #ifdef HAVE_DLOPEN *************** *** 42,48 **** { my_bool stdnorm_density_init(UDF_INIT *, UDF_ARGS *args, char *message); ! double stdnorm_density_(UDF_INIT *initid, UDF_ARGS *args, char *is_null,char *error); } --- 43,49 ---- { my_bool stdnorm_density_init(UDF_INIT *, UDF_ARGS *args, char *message); ! double stdnorm_density(UDF_INIT *initid, UDF_ARGS *args, char *is_null,char *error); } diff -C3 -r mysql-udf-orig/udf_weightedavg.cc udf_weightedavg.cc *** mysql-udf-orig/udf_weightedavg.cc 2004-07-29 21:15:43.000000000 +0200 --- udf_weightedavg.cc 2005-10-05 14:55:18.000000000 +0200 *************** *** 44,49 **** --- 44,50 ---- my_bool weightedavg_init( UDF_INIT* initid, UDF_ARGS* args, char* message ); void weightedavg_deinit( UDF_INIT* initid ); void weightedavg_reset( UDF_INIT* initid, UDF_ARGS* args, char* is_null, char *error ); + void weightedavg_clear( UDF_INIT* initid, char* is_null, char *error ); void weightedavg_add( UDF_INIT* initid, UDF_ARGS* args, char* is_null, char *error ); double weightedavg( UDF_INIT* initid, UDF_ARGS* args, char* is_null, char *error ); } *************** *** 111,116 **** --- 112,124 ---- void weightedavg_reset( UDF_INIT* initid, UDF_ARGS* args, char* is_null, char* is_error ) { + weightedavg_clear( initid, is_null, is_error ); + weightedavg_add( initid, args, is_null, is_error ); + } + + + void weightedavg_clear( UDF_INIT* initid, char* is_null, char* is_error ) + { weightedavg_data *buffer = (weightedavg_data*)initid->ptr; buffer->count = 0; buffer->datasum = 0; *************** *** 118,124 **** *is_null = 0; *is_error = 0; - weightedavg_add( initid, args, is_null, is_error ); } --- 126,131 ----