美文网首页
2021-01-06 举例创建UDF函数

2021-01-06 举例创建UDF函数

作者: 5A风景区 | 来源:发表于2021-01-06 11:58 被阅读0次

UDF功能可以是我们自定义mysql函数,处理相关业务需求.
例子来源淘宝数据库内核月报:http://mysql.taobao.org/monthly/2019/02/08/

创建放置udf文件的目录
mkdir -p /data1/mycode/mysql_debug/mysql-8.0.18/UDF
编写第一个udf文件(取mysqld进程id)
//文件名mysqld_pid.cpp
#include "mysql.h"
#include <sys/types.h> /* getpid() */
#include <unistd.h> /* getpid() */

extern "C" bool
mysqld_pid_init(UDF_INIT *initid __attribute__((unused)),
                UDF_ARGS *args __attribute__((unused)),
                char *message __attribute__((unused)))
{
    return false;
}

extern "C" long long
mysqld_pid(UDF_INIT *initid __attribute__((unused)),
           UDF_ARGS *args __attribute__((unused)),
           char *is_null __attribute__((unused)),
           char *error __attribute__((unused)))
{
    return getpid();
}

创建插件目录
mkdir -p /data1/mycode/mysql_debug/mysql-8.0.18/mysql_stuff/install/lib/plugin
编译.so文件
g++ -I/data1/mycode/mysql_debug/mysql-8.0.18/include  -fPIC -g -shared  -o /data1/mycode/mysql_debug/mysql-8.0.18/mysql_stuff/install/lib/plugin/libmysqld_pid.so mysqld_pid.cpp

其中编译中出现的错误


image.png

解决方法:在编译之前,注释掉mysql.h文件中的 #include "mysql_version.h"

登录mysql客户端,加载UDF函数
CREATE FUNCTION mysqld_pid RETURNS INT SONAME 'libmysqld_pid.so';
image.png
查看UDF函数
select * from performance_schema.user_defined_functions;
image.png
使用UDF函数
select mysqld_pid();
image.png

相关文章

  • 2021-01-06 举例创建UDF函数

    UDF功能可以是我们自定义mysql函数,处理相关业务需求.例子来源淘宝数据库内核月报:http://mysql....

  • Hive的UDF编程-百度坐标转换火星坐标

    今天介绍一个坐标转换的udf,包括java代码的编写的udf函数的创建 1. 编写Java代码 打开IDEA,创建...

  • sql自学笔记(九)

    自定义函数:简称UDF,是对MySQL扩展的的一种途经。创建自定义函数:CREATE TUNCTION .......

  • UDF 函数

    1. 用idea创建maven工程 , 用来编辑UDF函数. POM文件如下 , 我的hadoop是 2.6.0 ...

  • 第八章 MySQL存储过程

    课程回顾 自定义函数:简称UDF;是对MySQL扩展的一种途径 创建自定义函数:CREATE FUNCTION.....

  • Hive 自定义函数 UDF

    Hive 自定义函数 UDF UDF:用户定义(普通)函数,只对单行数值产生作用; UDF只能实现一进一出的操作。

  • hive之udf函数的使用

    简单介绍 udf的全称是User Defined Function用户自定义函数,创建后可以直接在select语句...

  • Hive函数

    自定义函数 自定义函数包括三种:UDF、UDAF、UDTF。 UDF(User-Defined-Function)...

  • Flink1.9 UDF使用教程

    UDF是什么? UDF是用户自定义函数(User Define Function)的缩写,从定义可以看出UDF是一...

  • Spark 自定义函数(udf,udaf)

    用户自定义udf 自定义udf的方式有两种 SQLContext.udf.register() 创建UserDef...

网友评论

      本文标题:2021-01-06 举例创建UDF函数

      本文链接:https://www.haomeiwen.com/subject/mqsnoktx.html