mirror of
				https://github.com/MariaDB/server.git
				synced 2025-10-31 19:06:14 +01:00 
			
		
		
		
	
		
			
				
	
	
		
			38 lines
		
	
	
	
		
			1.3 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			38 lines
		
	
	
	
		
			1.3 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
| /***********************************************************************/
 | |
| /*  (C) Copyright to the author Olivier BERTRAND          2015         */
 | |
| /***********************************************************************/
 | |
| #include <my_global.h>
 | |
| #include <mysqld.h>
 | |
| #include <string.h>
 | |
| 
 | |
| #if defined(_WIN32)
 | |
| #define DllExport  __declspec( dllexport )
 | |
| #else   // !_WIN32
 | |
| #define DllExport
 | |
| #endif  // !_WIN32
 | |
| 
 | |
| extern "C" {
 | |
| 	DllExport my_bool noconst_init(UDF_INIT*, UDF_ARGS*, char*);
 | |
| 	DllExport char *noconst(UDF_INIT*, UDF_ARGS*, char*, unsigned long*, char*, char*);
 | |
| } // extern "C"
 | |
| 
 | |
| /***********************************************************************/
 | |
| /*  Returns its argument saying it is not a constant.                  */
 | |
| /***********************************************************************/
 | |
| my_bool noconst_init(UDF_INIT *initid, UDF_ARGS *args, char *message)
 | |
| {
 | |
|   if (args->arg_count != 1 || args->arg_type[0] != STRING_RESULT) {
 | |
|     strcpy(message, "noconst unique argument must be a string");
 | |
|     return true;
 | |
|   } // endif arg
 | |
| 
 | |
|   initid->const_item = false;   // The trick!
 | |
|   return false;
 | |
| } // end of noconst_init
 | |
| 
 | |
| char *noconst(UDF_INIT *initid, UDF_ARGS *args, char *result,
 | |
|   unsigned long *res_length, char *, char *)
 | |
| {
 | |
|   return args->args[0];
 | |
| } // end of noconst
 | |
| 
 | 
