*/

#if defined(_WIN32)

#define DLLEXP __declspec(dllexport)

#else

#define DLLEXP

#endif

#include

#include

#include

#include

#define LIBVERSION “mysqlsystems_udf_log version 0.1 beta”

#define ERR_ARG “Hiro tells you: Exactly one argument expected!”

#define ERR_MEM “Out of memory!”

#ifdef  __cplusplus

extern “C” {

#endif

/**

* mysqlsystems_udf_log

*/

DLLEXP

my_bool mysqlsystems_udf_log_init(

UDF_INIT *initid

,    UDF_ARGS *args

,    char *message

){

return 0;

}

DLLEXP

void mysqlsystems_udf_log_deinit(

UDF_INIT *initid

){}

DLLEXP

char* mysqlsystems_udf_log(

UDF_INIT *initid

,    UDF_ARGS *args

,    char* result

,    unsigned long* length

,    char *is_null

,    char *error

){

*length = strlen(LIBVERSION);

return LIBVERSION;

}

/**

* another one : log2error

*/

DLLEXP

my_bool log2error_init(

UDF_INIT *initid

,    UDF_ARGS *args

,    char *message

){

if(args->arg_count==1){

//alloc mem for format pattern:

// “%s0.xxxx\n”

// where xxxx is the max

// 7 = length of %s0.\n + trailing \0

if(!(initid->ptr = (char *)malloc(7 + 4))){

strcpy(message, ERR_MEM);

return 1;

}

args->arg_type[0] = STRING_RESULT;

initid->maybe_null = 0;

} else {

strcpy(message, ERR_ARG);

return 1;

}

return 0;

}

DLLEXP

void log2error_deinit(

UDF_INIT *initid

){

if(initid->ptr)

{

fflush(stderr);

free(initid->ptr);

}

}

DLLEXP

my_ulonglong log2error(

UDF_INIT *initid

,    UDF_ARGS *args

,    char *is_null

,    char *error

){

int numDigits;

char *fmt;

*is_null = 0;

if(args->args[0]==NULL){

fprintf(stderr, “NULL\n”);

} else {

fmt = (char *)initid->ptr;

memcpy(fmt, “%0.”, 3);

sprintf(fmt+3, “%d”, args->lengths[0]<=9998? args->lengths[0]: 9998);

numDigits = strlen(fmt + 4);

memcpy(fmt + 4 + numDigits, “s\n\0″, 3);

fprintf(stderr, fmt, args->args[0]);

}

return 0;

}

#ifdef  __cplusplus

}

#endif

mysql udf介绍_教你写MySQL UDF相关推荐

  1. 阿里云rds for mysql平台介绍_阿里云RDS for MySQL实例创建账号和数据库?

    本文介绍如何为RDS for MySQL实例创建账号和数据库. 账号类型RDS for MySQL实例支持两种数据库账号:高权限账号和普通账号.您可以在控制台管理所有账号和数据库,账号拥有的具体权限请 ...

  2. mysql udf安全_打造全功能MYSQL入侵UDF

    现在网上通过mysql获得系统权限大都通过MYSQL的用户函数接口UDF,比如Mix.dll和my_udf.dll.在Mix.dll中有一个MixConnect函数它会反弹shell,但是使用这个函数 ...

  3. linux mysql jdk路径_教大家在如何Centos7系统中安装JDK、Tomcat、Mysql(文末附马哥linux全套视频教......

    目录1.jdk的安装 2.tomcat的安装 3.mysql的安装 远程工具:SSH Secure File Transfer Client 远程工具的使用 下载地址:https://pan.baid ...

  4. mysql主从同步加密_教你构建MySQL主从结构,实现基于SSL加密的主从同步机制

    实验环境RHEL6.4 admin1.tuchao.com    192.168.1.201    主服务器 admin2.tuchao.com    192.168.1.202    从服务器 先在 ...

  5. mysql下载了解压版怎么_教你安装Mysql(解压版/非安装包)图文教程

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 my-default 的文件内容: # For advice on how to change settings please see # http:// ...

  6. mysql下载的解压包怎么用_教你安装Mysql(解压版/非安装包)图文教程

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 my-default 的文件内容: # For advice on how to change settings please see # http:// ...

  7. mysql下载的压缩包_教你安装Mysql(解压版/非安装包)图文教程

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 my-default 的文件内容: # For advice on how to change settings please see # http:// ...

  8. linux mysql内网_在Linux中mysql的一些基本操作

    在Linux中mysql的一些基本操作 下面介绍一下 一.关于在Linux中mysql的一些基本操作 1.进入mysql "mysql -uroot -p",会提示输入密码,输入密 ...

  9. mysql架构组成_第 2 章 MySQL 架构组成

    麻雀虽小,五脏俱全.MySQL 虽然以简单著称,但其内部结构并不简单.本章从MySQL物理组成.逻辑组成,以及相关工具几个角度来介绍 MySQL 的整体架构组成,希望能够让读者对 MySQL 有一个更 ...

最新文章

  1. Software development Problem
  2. python 多进程管道 消息式通信
  3. JS DOM 操作实现代码
  4. 【调参实战】那些优化方法的性能究竟如何,各自的参数应该如何选择?
  5. cycle函数python_Python执行函数的周期实现
  6. python3:对list中每个元素进行处理
  7. python归并算法
  8. php 后退按钮事件,php – 后退按钮的会话问题
  9. 如何解决testng执行用例失败自动重跑问题
  10. 工业品器械设备怎么做宣传和推广?
  11. APP如何进行通信的
  12. jbox弹窗_关于使用 jBox 对话框的提交不能弹出问题解决方法
  13. 繁星屠龙软件下载_繁星抢币有什么要求 - 天津政务网
  14. 数据结构课程设计(已完结)
  15. 纪录篇 之 我收集整理的一些网址(不断更新 ing)
  16. 摄像机标定学习笔记(1)
  17. CST Studio Suite 2020 安装教程
  18. 【SDOI2015】临行前的夜
  19. win7升级win10正式版_如何在win7系统中升级win10
  20. This experimental syntax requires enabling the parser plugin: ‘optionalChaining‘

热门文章

  1. R语言构建logistic回归模型:构建模型公式、拟合logistic回归模型、模型评估,通过混淆矩阵计算precision、enrichment、recall指标
  2. R语言使用latticeExtra包可视化双Y轴线图实战(Dual Y axis):单y轴线图、双y轴图线图、双y轴图线图(添加图例)
  3. R语言Gamma分布函数Gamma Distribution(dgamma, pgamma, qgamma rgamma)实战
  4. R语言abline函数为图像添加竖线、横线、斜线、回归线实战
  5. 深度学习时间序列预测:LSTM算法构建时间序列单变量模型预测空气质量(PM2.5)+代码实战
  6. R绘制面积图(area plot)
  7. 对于图像分类任务,相对于全连接的DNN,CNN模型的主要优点有哪些?
  8. 华为NPU卡ubuntu(无网络连接情况)驱动安装记录
  9. L1正则化为什么又叫做稀疏因子?
  10. php统计键出现的次数,php统计数组元素出现的次数