#include #include #include #include #if defined(_WIN32) || defined(_WIN64) || defined(__WIN32__) || defined(WIN32) #define DLLEXP __declspec(dllexport) #else #define DLLEXP #endif #ifdef __cplusplus extern "C" { #endif DLLEXP my_bool udf_const_init( UDF_INIT *initid , UDF_ARGS *args , char *message ); DLLEXP void udf_const_deinit( UDF_INIT *initid ); DLLEXP long long udf_const( UDF_INIT *initid , UDF_ARGS *args , char *is_null , char *error ); #ifdef __cplusplus } #endif my_bool udf_const_init( UDF_INIT *initid , UDF_ARGS *args , char *message ){ fprintf(stdout,"enter udf_const_init\n"); fflush(stdout); my_bool status; if(args->arg_count==1){ status = 0; args->arg_type[0] = INT_RESULT; initid->const_item = 1; //((long long)*args->args[1]?1:0); } else { strcpy( message , "Expect exactly one argument." ); status = 1; } return status; } void udf_const_deinit( UDF_INIT *initid ){ fprintf(stdout,"enter udf_const_deinit\n"); fflush(stdout); } long long udf_const( UDF_INIT *initid , UDF_ARGS *args , char *is_null , char *error ){ fprintf(stdout,"udf_const row level function\n"); fflush(stdout); //return *((long long *)args->args[0]); return initid->const_item; }