mysql udf介绍_教你写MySQL UDF
*/
#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相关推荐
- 阿里云rds for mysql平台介绍_阿里云RDS for MySQL实例创建账号和数据库?
本文介绍如何为RDS for MySQL实例创建账号和数据库. 账号类型RDS for MySQL实例支持两种数据库账号:高权限账号和普通账号.您可以在控制台管理所有账号和数据库,账号拥有的具体权限请 ...
- mysql udf安全_打造全功能MYSQL入侵UDF
现在网上通过mysql获得系统权限大都通过MYSQL的用户函数接口UDF,比如Mix.dll和my_udf.dll.在Mix.dll中有一个MixConnect函数它会反弹shell,但是使用这个函数 ...
- linux mysql jdk路径_教大家在如何Centos7系统中安装JDK、Tomcat、Mysql(文末附马哥linux全套视频教......
目录1.jdk的安装 2.tomcat的安装 3.mysql的安装 远程工具:SSH Secure File Transfer Client 远程工具的使用 下载地址:https://pan.baid ...
- mysql主从同步加密_教你构建MySQL主从结构,实现基于SSL加密的主从同步机制
实验环境RHEL6.4 admin1.tuchao.com 192.168.1.201 主服务器 admin2.tuchao.com 192.168.1.202 从服务器 先在 ...
- mysql下载了解压版怎么_教你安装Mysql(解压版/非安装包)图文教程
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 my-default 的文件内容: # For advice on how to change settings please see # http:// ...
- mysql下载的解压包怎么用_教你安装Mysql(解压版/非安装包)图文教程
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 my-default 的文件内容: # For advice on how to change settings please see # http:// ...
- mysql下载的压缩包_教你安装Mysql(解压版/非安装包)图文教程
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 my-default 的文件内容: # For advice on how to change settings please see # http:// ...
- linux mysql内网_在Linux中mysql的一些基本操作
在Linux中mysql的一些基本操作 下面介绍一下 一.关于在Linux中mysql的一些基本操作 1.进入mysql "mysql -uroot -p",会提示输入密码,输入密 ...
- mysql架构组成_第 2 章 MySQL 架构组成
麻雀虽小,五脏俱全.MySQL 虽然以简单著称,但其内部结构并不简单.本章从MySQL物理组成.逻辑组成,以及相关工具几个角度来介绍 MySQL 的整体架构组成,希望能够让读者对 MySQL 有一个更 ...
最新文章
- Software development Problem
- python 多进程管道 消息式通信
- JS DOM 操作实现代码
- 【调参实战】那些优化方法的性能究竟如何,各自的参数应该如何选择?
- cycle函数python_Python执行函数的周期实现
- python3:对list中每个元素进行处理
- python归并算法
- php 后退按钮事件,php – 后退按钮的会话问题
- 如何解决testng执行用例失败自动重跑问题
- 工业品器械设备怎么做宣传和推广?
- APP如何进行通信的
- jbox弹窗_关于使用 jBox 对话框的提交不能弹出问题解决方法
- 繁星屠龙软件下载_繁星抢币有什么要求 - 天津政务网
- 数据结构课程设计(已完结)
- 纪录篇 之 我收集整理的一些网址(不断更新 ing)
- 摄像机标定学习笔记(1)
- CST Studio Suite 2020 安装教程
- 【SDOI2015】临行前的夜
- win7升级win10正式版_如何在win7系统中升级win10
- This experimental syntax requires enabling the parser plugin: ‘optionalChaining‘
热门文章
- R语言构建logistic回归模型:构建模型公式、拟合logistic回归模型、模型评估,通过混淆矩阵计算precision、enrichment、recall指标
- R语言使用latticeExtra包可视化双Y轴线图实战(Dual Y axis):单y轴线图、双y轴图线图、双y轴图线图(添加图例)
- R语言Gamma分布函数Gamma Distribution(dgamma, pgamma, qgamma rgamma)实战
- R语言abline函数为图像添加竖线、横线、斜线、回归线实战
- 深度学习时间序列预测:LSTM算法构建时间序列单变量模型预测空气质量(PM2.5)+代码实战
- R绘制面积图(area plot)
- 对于图像分类任务,相对于全连接的DNN,CNN模型的主要优点有哪些?
- 华为NPU卡ubuntu(无网络连接情况)驱动安装记录
- L1正则化为什么又叫做稀疏因子?
- php统计键出现的次数,php统计数组元素出现的次数