CN113986889B - 一种实现数据库函数智能扩展的方法及系统 - Google Patents

一种实现数据库函数智能扩展的方法及系统 Download PDF

Info

Publication number
CN113986889B
CN113986889B CN202111617476.6A CN202111617476A CN113986889B CN 113986889 B CN113986889 B CN 113986889B CN 202111617476 A CN202111617476 A CN 202111617476A CN 113986889 B CN113986889 B CN 113986889B
Authority
CN
China
Prior art keywords
function
custom
custom function
function group
group
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN202111617476.6A
Other languages
English (en)
Other versions
CN113986889A (zh
Inventor
赵伟
崔杰
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Tianjin Nankai University General Data Technologies Co ltd
Original Assignee
Tianjin Nankai University General Data Technologies Co ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Tianjin Nankai University General Data Technologies Co ltd filed Critical Tianjin Nankai University General Data Technologies Co ltd
Priority to CN202111617476.6A priority Critical patent/CN113986889B/zh
Publication of CN113986889A publication Critical patent/CN113986889A/zh
Application granted granted Critical
Publication of CN113986889B publication Critical patent/CN113986889B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/21Design, administration or maintenance of databases
    • G06F16/211Schema design and management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/22Indexing; Data structures therefor; Storage structures
    • G06F16/2282Tablespace storage structures; Management thereof
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computational Linguistics (AREA)
  • Software Systems (AREA)
  • Stored Programmes (AREA)

Abstract

本发明提供了一种实现数据库函数智能扩展的方法及系统,预先设置扩展函数库及系统表;主控内核程序对自定义函数组进行生成,生成统一注册函数及自定义函数组文件;客户端创建自定义函数组,调用统一注册函数,将函数注册信息写入到系统表及内存;自定义函数组中的自定义函数的使用过程中,客户端输入自定义函数名称,确定自定义函数可执行,调用自定义函数组文件,执行自定义函数组。本发明所述的通过在数据库内设置系统表和扩展函数库,将系统表和扩展函数库与主控内核程序配合,增强数据库的扩展性,同时减少修改主控内核程序代码,减少升级风险。

Description

一种实现数据库函数智能扩展的方法及系统
技术领域
本发明属于数据库函数扩展领域,尤其是涉及一种实现数据库函数智能扩展的方法及系统。
背景技术
对于数据库用户来说,一直以来他们对于数据库所能支持的各种函数的关注度是非常高的。从两个层面来说,一则是平时使用时的便利性。越是支持的多的产品其用户友好性越高,越容易让用户产生依赖感;二则是对于用户迁移成本的控制。如果迁移到的目标数据库支持的函数比较目前使用的要少。少得越多则迁移的成本就越高,因为需要做很多的改写才能使用原有的业务。所以,这样一看函数支持情况的作用就不言而喻了。但是,从产品本身来讲支持市面上所有数据库产品的函数显然是不现实的,因此就需要考虑使用一种更加灵活和智能的方式来对用户进行基本无感知的函数扩展,从而实现不需要产品主控程序修改也不需要用户自己做任何绑定就可以实现函数的增加与扩展。
发明内容
有鉴于此,本发明旨在提出一种实现数据库函数智能扩展的方法及系统,以解决数据库支持函数少,扩展能力低,用户友友好性差的问题。
为达到上述目的,本发明的技术方案是这样实现的:
一方面,本申请提出一种实现数据库函数智能扩展的方法,具体步骤如下:
S1.预先设置存储自定义函数组的扩展函数库及用于存储自定义函数的注册信息的系统表;
S2.在主控内核程序及客户端创建自定义函数组,具体步骤如下:
S21.在主控内核程序预设置自定义函数组的调用执行文件,所述自定义函数组的调用执行文件包括与系统表建立连接的统一注册函数、主控内核程序执行自定义函数组的自定义函数组文件;
S22.在客户端执行创建自定义函数组语句,用于创建自定义函数组逻辑,自定义函数组中包括多个自定义函数,主控内核程序加载自定义函数组文件并查询自定义函数组对应的统一注册函数,若主控内核程序加载查询成功,则将统一注册函数中自定义函数组信息分别写入系统表、内存中,并给客户端返回创建自定义函数组成功的消息,若主控内核程序加载查询失败,则在客户端报错退出;
S3.客户端接收到返回创建自定义函数组成功的消息,用户调用自定义函数组方法为:
S31.在客户端输入需要从系统表中调取的自定义函数名称;
S32.主控内核程序从系统表中查询自定义函数名称是否存在,若存在,则读取系统表中自定义函数名称对应数据,若不存在,则按普通函数尝试解析,普通函数解析失败,数据库报错;
S33.对自定义函数进行合法性检测,合法则主控内核程序调用步骤S21中的自定义函数组文件,执行自定义函数组,不合法则报错退出。
进一步的,步骤S21中,设置统一注册函数具体方法:
主控内核程序调用扩展函数库中的函数注册程序,函数注册程序记录自定义函数组中每个自定义函数的注册信息,并使用数组方式为每个自定义函数记录一条数组数据,函数注册程序编写针对自定义函数组的统一注册函数;
设置自定义函数组文件具体方法:
若客户需要额外分配内存或参数合法性检测,则静态编写生成自定义函数组文件,若客户不需要额外分配内存或参数合法性检测,则主控内核程序调用自定义函数时动态生成自定义函数组文件。
进一步的,所述静态编写生成自定义函数组文件,具体方法如下:
S211.对自定义函数进行初始化代码编写,初始化代码编写内容包括分配额外内存、检测参数合法性;
S212.对自定义函数进行具体执行代码编写;
S213.对自定义函数进行反初始化代码编写,反初始化代码编写内容包括将步骤S211中分配的额外内存进行释放;
自定义函数组中每个自定义函数均执行一次步骤S211-S213,自定义函数组中全部自定义函数均执行完成步骤S211-S213后,将编写的代码译成自定义函数组文件;
步骤S211中,检测参数合法性的检测内容包括参数个数、参数类型。
进一步的,步骤S22中,创建自定义函数组语句格式为“create function group自定义函数组名称 soname‘自定义函数组文件’”;
所述主控内核程序加载自定义函数组文件并查询自定义函数组对应的统一注册函数,具体方法为:
主控内核程序加载自定义函数组文件,若加载失败则在客户端报失败;若加载成功,主控内核程序调用扩展函数库中的自定义函数对应的统一注册函数。
进一步的,步骤S33中,对自定义函数进行合法性检测,具体方法为:
在主控内核程序调用自定义函数组文件真正实现前将自定义函数的参数和返回值与系统表中自定义函数名称对应数据的参数和返回值进行对比,一致则合法,不一致则不合法报错退出。
进一步的,所述系统表设置有五列,五列内容分别是:编号、函数名、函数参数个数、函数参数信息、返回值,
所述编号列内容为自增长的整数值;
函数名列内容为支持用户在数据库中自由使用函数的人为命名名称;
函数参数个数列内容为同行对应函数支持的参数数量;
函数参数信息列内容为同行对应函数的参数类型缩写;
返回值列内容为同行对应函数的返回值类型缩写。
进一步的,步骤S3中,客户端接收到返回创建自定义函数组成功的消息,用户从客户端读取成功创建的自定义函数组中的自定义函数,
所述用户从客户端读取成功创建的自定义函数组中的自定义函数,具体方法为:在客户端输入显示自定义函数组元素的语句:show functions of 自定义函数组。
进一步的,步骤S33中,主控内核程序调用步骤S21中的自定义函数组文件,执行自定义函数组,具体步骤如下:
S331.调用执行自定义函数组文件中的初始化代码;
S332.调用执行自定义函数组中的自定义函数具体执行代码,并给出结果;
S333.调用执行自定义函数组文件中的反初始化代码。
另一方面,本申请应用如上述的一种实现数据库函数智能扩展的方法提出一种实现数据库函数智能扩展的系统,包括系统表、主控内核程序、扩展函数库,
所述主控内核程序是数据库主要控制程序,包括系统表访问器、函数注册器、资源初始化器、函数执行器、资源回收器;
所述系统表用于存储自定义函数的注册信息,主要由主控内核程序中的系统表访问器来进行系统表的读写操作;
所述扩展函数库包括初始化模块、注册函数模块、自定义函数组、反初始化模块;
所述系统表访问器负责访问数据库的系统表,并对系统表中的函数注册信息进行读写更新;
所述函数注册器负责调用扩展函数库的函数注册模块及统一注册函数;
所述函数注册模块记录自定义函数组中每个自定义函数的注册信息,并使用数组方式为每个自定义函数记录一条数组数据,编写针对自定义函数组的统一注册函数;
资源初始化器负责调用扩展函数库中的初始化模块,即调用自定义函数组文件中的初始化代码;
函数执行器是负责调用扩展函数库中的自定义函数组中的自定义函数的具体执行代码并执行;
资源回收器是负责调用扩展函数库中反初始化模块,即调用自定义函数组文件中的反初始化代码。
相对于现有技术,本发明所述的一种实现数据库函数智能扩展的方法具有以下有益效果:
(1)本发明所述的一种实现数据库函数智能扩展的方法及系统,通过在数据库内设置系统表和扩展函数库,将系统表和扩展函数库与主控内核程序配合,增强数据库的扩展性,同时减少修改主控内核程序代码,减少升级风险。
(2)本发明所述的一种实现数据库函数智能扩展的方法及系统,客户端通过一条语句create function group FUNCSP soname ‘funcsp.so’,创建自定义函数组,自定函数组可以根据需要自动生成多条自定义函数存储空间,不再像常规的需要一条一条建立自定义函数存储空间,提高效率,给用户带来无感使用的优质体验。
(3)本发明所述的一种实现数据库函数智能扩展的方法及系统,自定义函数组的创建形式,为工作人员对某一自定义函数组进行权限控制带来方便。
附图说明
构成本发明的一部分的附图用来提供对本发明的进一步理解,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1为本发明实施例所述的一种实现数据库函数智能扩展的系统方法示意图;
图2为发明实施例所述的一种实现数据库函数智能扩展的系统示意图。
具体实施方式
需要说明的是,在不冲突的情况下,本发明中的实施例及实施例中的特征可以相互组合。
在本发明的描述中,需要理解的是,术语“中心”、“纵向”、“横向”、“上”、“下”、“前”、“后”、“左”、“右”、“竖直”、“水平”、“顶”、“底”、“内”、“外”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。此外,术语“第一”、“第二”等仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”等的特征可以明示或者隐含地包括一个或者更多个该特征。在本发明的描述中,除非另有说明,“多个”的含义是两个或两个以上。
在本发明的描述中,需要说明的是,除非另有明确的规定和限定,术语“安装”、“相连”、“连接”应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通。对于本领域的普通技术人员而言,可以通过具体情况理解上述术语在本发明中的具体含义。
下面将参考附图并结合实施例来详细说明本发明。
设定两个自定义函数,分别为函数GetNodeByName和GetNodeBySubId,数据库的内嵌函数中没有函数GetNodeByName和GetNodeBySubId,
如图1所示,具体介绍如何使用本申请中一种实现数据库函数智能扩展的方法来实现函数扩展:
目标函数列表如下,使用名为FUNCGP的自定义函数组作为扩展函数的载体,
Figure 124746DEST_PATH_IMAGE001
步骤一:编写扩展函数库文件中的相关函数
1.扩展函数库的函数注册模块编写针对FUNCGP的统一注册函数:FUNCGP_register函数
函数注册模块记录函数的具体信息,使用数组方式为每一个自定义函数记录一条数据,编写针对FUNCGP的统一注册函数:FUNCGP_register函数。
以本例来讲使用数组方式为每一个自定义函数记录一条数据中的数组的布局如下:
数组元素1 13GetNodeByName1cv
数组元素2 14GetNodeBySubId2llv
数组元素定义依次为:
函数名长度、函数名称、参数个数、参数类型、返回值类型;
参数类型以缩写形式出现,例如:
Figure 595042DEST_PATH_IMAGE003
注:上表只是为了举例,因此支持的参数类型包括但是不限于上表的内容。
返回值类型是所定义函数的返回值的缩写,与参数类型的缩写形式一致,例如:
Figure 731625DEST_PATH_IMAGE005
注:上表只是为了举例,因此支持的参数类型包括但是不限于上表的内容。
综上,最终13GetNodeByName1cv和14GetNodeBySubId2llv呈现在系统表中就是如下格式:
编号 函数名 函数参数个数 函数参数信息 返回值
1 GetNodeByName 1 v v
2 GetNodeBySubId 2 ll v
2.编写GetNodeByName_init
对GetNodeByName函数的初始化模块进行代码编写,初始化代码编写内容包括分配额外内存、检测参数合法性;
3.编写GetNodeByName
是编写GetNodeByName函数具体执行代码;
4.编写GetNodeByName_deinit
对GetNodeByName函数的反初始化模块进行代码编写,主要是对GetNodeByName_init函数中分配资源的一个释放,如果没有分配的话可以写空函数;
5.编写GetNodeBySubId_init
这是对GetNodeBySubId函数的初始化模块进行代码编写,初始化代码编写内容包括分配额外内存、检测参数合法性;
6.编写GetNodeBySubId
是编写GetNodeBySubId函数具体执行代码;
7.编写GetNodeByName_deinit
对GetNodeByName函数的反初始化模块进行代码编写,主要是对GetNodeBySubId_init函数中分配资源的一个释放,如果没有分配的话可以写空函数;
上述子步骤完成后,将代码编译成FUNCGP.so文件放在GBase8a MPP数据库指定的路径中备用。
步骤二 :创建自定义函数组
1.用户使用GBase8a MPP数据库的客户端登录数据库;
2.执行create function group FUNCGP soname ‘FUNCGP.so’; 创建用户自定义函数组逻辑;
3.主控内核程序尝试加载步骤一中生成的FUNCGP.so库文件,如果没有找到则在客户端报失败;
4.加载成功后,主控内核程序的函数注册器调用扩展函数库中的统一注册函数FUNCGP_register,如果没有成功则报错退出;
5.获取到上一步返回的函数信息后,主控内核程序的系统表访问器会将信息写入到系统表中,同时在内存中保留一份。
6.给客户端返回创建自定义函数组成功。
步骤三、扩展函数的展示
客户端使用show functions of FUNCGP命令,显示出自定义函数组FUNCGP中包含的所有可用的扩展函数,这里主要是用主控内核程序调用系统表访问器将系统表中相关的信息读出并展示出来。
步骤四、扩展函数的使用
用户操作:
Select GetNodeByName(‘node1’), GetNodeBySubId(1, 50) from 表1;
系统自动化逻辑:
1)、主控内核程序使用系统表访问器将用户使用的函数名GetNodeByName、GetNodeBySubId作为参数去系统表中读数据,如果能够读取数据,将函数名GetNodeByName、GetNodeBySubId的相关数据读取出来,如果没有的话则会去按照普通函数进行解析,若普通函数解析失败,则会报错;
同时,如果系统表访问器能够从系统表中读取函数名GetNodeByName、GetNodeBySubId信息,则在主控内核程序调用库文件真正实现前将自定义函数的参数和返回值与系统表注册的参数和返回值进行对比,若函数的参数和返回值均一致则通过,若不一致,则报错;
2)、使用主控内核程序的函数初始化器去调用FUNCGP.so中的GetNodeByName和GetNodeBySubId的初始化函数模块GetNodeByName_init和GetNodeBySubId_init模块;
3)、使用主控内核程序的函数执行器去调用FUNCGP.so中的GetNodeByName和GetNodeBySubId的具体执行函数,并给出结果;
4)、使用主控内核程序的资源回收器去调用FUNCGP.so中的GetNodeByName和GetNodeBySubId的反初始化函数模块GetNodeByName_deinit和GetNodeBySubId_deinit模块;
5)、结束
步骤五、扩展函数的自动加载、更新和删除
若扩展函数的自动加载时,程序重新启动主控内核程序会自动使用系统表访问器将数据加载到内存,同时将FUNCGP.so库文件加载备用;
若扩展函数库中扩展已经有的函数需要更新实现,则需要修改其实现代码重新编译FUNCGP.so文件;
若扩展函数库中已经有的函数需要删除,执行drop function group FUNCGP.Create function group FUNCGP soname ‘FUNCGP.so’命令。
如图2所示,另一方面,本申请应用如上述的一种实现数据库函数智能扩展的方法提出一种实现数据库函数智能扩展的系统,包括系统表、主控内核程序、扩展函数库,
所述主控内核程序是数据库主要控制程序,包括系统表访问器、函数注册器、资源初始化器、函数执行器、资源回收器;
所述系统表用于存储自定义函数的注册信息,主要由主控内核程序中的系统表访问器来进行系统表的读写操作;
所述扩展函数库包括初始化模块、注册函数模块、自定义函数组、反初始化模块;
所述系统表访问器负责访问数据库的系统表,并对系统表中的函数注册信息进行读写更新;
所述函数注册器负责调用扩展函数库的函数注册模块及统一注册函数;
所述函数注册模块记录自定义函数组中每个自定义函数的注册信息,并使用数组方式为每个自定义函数记录一条数组数据,编写针对自定义函数组的统一注册函数;
资源初始化器负责调用扩展函数库中的初始化模块,即调用自定义函数组文件中的初始化代码;
函数执行器是负责调用扩展函数库中的自定义函数组中的自定义函数的具体执行代码并执行;
资源回收器是负责调用扩展函数库中反初始化模块,即调用自定义函数组文件中的反初始化代码。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (9)

1.一种实现数据库函数智能扩展的方法,其特征在于,具体步骤如下:
S1.预先设置存储自定义函数组的扩展函数库及用于存储自定义函数的注册信息的系统表;
S2.在主控内核程序及客户端创建自定义函数组,具体步骤如下:
S21.在主控内核程序预设置自定义函数组的调用执行文件,所述自定义函数组的调用执行文件包括与系统表建立连接的统一注册函数、主控内核程序执行自定义函数组的自定义函数组文件;
S22.在客户端执行创建自定义函数组语句,用于创建自定义函数组逻辑,自定义函数组中包括多个自定义函数,主控内核程序加载自定义函数组文件并查询自定义函数组对应的统一注册函数,若主控内核程序加载查询成功,则将统一注册函数中自定义函数组信息分别写入系统表、内存中,并给客户端返回创建自定义函数组成功的消息,若主控内核程序加载查询失败,则在客户端报错退出;
S3.客户端接收到返回创建自定义函数组成功的消息,用户调用自定义函数组方法为:
S31.在客户端输入需要从系统表中调取的自定义函数名称;
S32.主控内核程序从系统表中查询自定义函数名称是否存在,若存在,则读取系统表中自定义函数名称对应数据,若不存在,则按普通函数尝试解析,普通函数解析失败,数据库报错;
S33.对自定义函数进行合法性检测,合法则主控内核程序调用步骤S21中的自定义函数组文件,执行自定义函数组,不合法则报错退出。
2.根据权利要求1所述的一种实现数据库函数智能扩展的方法,其特征在于:步骤S21中,设置统一注册函数具体方法:
主控内核程序调用扩展函数库中的函数注册程序,函数注册程序记录自定义函数组中每个自定义函数的注册信息,并使用数组方式为每个自定义函数记录一条数组数据,函数注册程序编写针对自定义函数组的统一注册函数;
设置自定义函数组文件具体方法:
若客户需要额外分配内存或参数合法性检测,则静态编写生成自定义函数组文件,若客户不需要额外分配内存或参数合法性检测,则主控内核程序调用自定义函数时动态生成自定义函数组文件。
3.根据权利要求2所述的一种实现数据库函数智能扩展的方法,其特征在于:所述静态编写生成自定义函数组文件,具体方法如下:
S211.对自定义函数进行初始化代码编写,初始化代码编写内容包括分配额外内存、检测参数合法性;
S212.对自定义函数进行具体执行代码编写;
S213.对自定义函数进行反初始化代码编写,反初始化代码编写内容包括将步骤S211中分配的额外内存进行释放;
自定义函数组中每个自定义函数均执行一次步骤S211-S213,自定义函数组中全部自定义函数均执行完成步骤S211-S213后,将编写的代码译成自定义函数组文件;
步骤S211中,检测参数合法性的检测内容包括参数个数、参数类型。
4.根据权利要求1所述的一种实现数据库函数智能扩展的方法,其特征在于:步骤S22中,创建自定义函数组语句格式为“create function group 自定义函数组名称 soname‘自定义函数组文件’”;
所述主控内核程序加载自定义函数组文件并查询自定义函数组对应的统一注册函数,具体方法为:
主控内核程序加载自定义函数组文件,若加载失败则在客户端报失败;若加载成功,主控内核程序调用扩展函数库中的自定义函数对应的统一注册函数。
5.根据权利要求1所述的一种实现数据库函数智能扩展的方法,其特征在于:步骤S33中,对自定义函数进行合法性检测,具体方法为:
在主控内核程序调用自定义函数组文件真正实现前将自定义函数的参数和返回值与系统表中自定义函数名称对应数据的参数和返回值进行对比,一致则合法,不一致则不合法报错退出。
6.根据权利要求1所述的一种实现数据库函数智能扩展的方法,其特征在于:所述系统表设置有五列,五列内容分别是:编号、函数名、函数参数个数、函数参数信息、返回值,
所述编号列内容为自增长的整数值;
函数名列内容为支持用户在数据库中自由使用函数的人为命名名称;
函数参数个数列内容为同行对应函数支持的参数数量;
函数参数信息列内容为同行对应函数的参数类型缩写;
返回值列内容为同行对应函数的返回值类型缩写。
7.根据权利要求1所述的一种实现数据库函数智能扩展的方法,其特征在于:步骤S3中,客户端接收到返回创建自定义函数组成功的消息,用户从客户端读取成功创建的自定义函数组中的自定义函数,
所述用户从客户端读取成功创建的自定义函数组中的自定义函数,具体方法为:在客户端输入显示自定义函数组元素的语句:show functions of 自定义函数组。
8.根据权利要求3所述的一种实现数据库函数智能扩展的方法,其特征在于:步骤S33中,主控内核程序调用步骤S21中的自定义函数组文件,执行自定义函数组,具体步骤如下:
S331.调用执行自定义函数组文件中的初始化代码;
S332.调用执行自定义函数组中的自定义函数具体执行代码,并给出结果;
S333.调用执行自定义函数组文件中的反初始化代码。
9.一种实现数据库函数智能扩展的系统,应用如权利要求1-8任一项所述的一种实现数据库函数智能扩展的方法,其特征在于:包括系统表、主控内核程序、扩展函数库,
所述主控内核程序是数据库主要控制程序,包括系统表访问器、函数注册器、资源初始化器、函数执行器、资源回收器;
所述系统表用于存储自定义函数的注册信息,主要由主控内核程序中的系统表访问器来进行系统表的读写操作;
所述扩展函数库包括初始化模块、注册函数模块、自定义函数组、反初始化模块;
所述系统表访问器负责访问数据库的系统表,并对系统表中的函数注册信息进行读写更新;
所述函数注册器负责调用扩展函数库的函数注册模块及统一注册函数;
所述函数注册模块记录自定义函数组中每个自定义函数的注册信息,并使用数组方式为每个自定义函数记录一条数组数据,编写针对自定义函数组的统一注册函数;
资源初始化器负责调用扩展函数库中的初始化模块,即调用自定义函数组文件中的初始化代码;
函数执行器是负责调用扩展函数库中的自定义函数组中的自定义函数的具体执行代码并执行;
资源回收器是负责调用扩展函数库中反初始化模块,即调用自定义函数组文件中的反初始化代码。
CN202111617476.6A 2021-12-28 2021-12-28 一种实现数据库函数智能扩展的方法及系统 Active CN113986889B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202111617476.6A CN113986889B (zh) 2021-12-28 2021-12-28 一种实现数据库函数智能扩展的方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202111617476.6A CN113986889B (zh) 2021-12-28 2021-12-28 一种实现数据库函数智能扩展的方法及系统

Publications (2)

Publication Number Publication Date
CN113986889A CN113986889A (zh) 2022-01-28
CN113986889B true CN113986889B (zh) 2022-04-05

Family

ID=79734606

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111617476.6A Active CN113986889B (zh) 2021-12-28 2021-12-28 一种实现数据库函数智能扩展的方法及系统

Country Status (1)

Country Link
CN (1) CN113986889B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114741372B (zh) * 2022-03-24 2022-11-15 北京柏睿数据技术股份有限公司 一种库内人工智能的实现方法和数据库系统
CN116627547A (zh) * 2023-05-18 2023-08-22 弗雷森斯(苏州)科技有限公司 一种基于命令字框架的软件系统的扩展方法和系统

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2013184952A1 (en) * 2012-06-06 2013-12-12 Massively Parallel Technologies, Inc. Method for automatic extraction of designs from standard source code
CN103530552A (zh) * 2013-09-29 2014-01-22 广州华多网络科技有限公司 Native API函数重构方法及装置
CN105094865A (zh) * 2014-05-08 2015-11-25 腾讯科技(深圳)有限公司 加载自定义ie内核的方法和装置
CN105893413A (zh) * 2015-11-26 2016-08-24 乐视云计算有限公司 服务器的服务扩展方法及扩展系统
CN112231068A (zh) * 2020-12-18 2021-01-15 浙江太美医疗科技股份有限公司 使用领域专用语言的自定义逻辑方法、系统和可读介质

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109543400B (zh) * 2017-09-21 2022-08-09 华为技术有限公司 一种动态管理内核节点的方法和设备

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2013184952A1 (en) * 2012-06-06 2013-12-12 Massively Parallel Technologies, Inc. Method for automatic extraction of designs from standard source code
CN103530552A (zh) * 2013-09-29 2014-01-22 广州华多网络科技有限公司 Native API函数重构方法及装置
CN105094865A (zh) * 2014-05-08 2015-11-25 腾讯科技(深圳)有限公司 加载自定义ie内核的方法和装置
CN105893413A (zh) * 2015-11-26 2016-08-24 乐视云计算有限公司 服务器的服务扩展方法及扩展系统
CN112231068A (zh) * 2020-12-18 2021-01-15 浙江太美医疗科技股份有限公司 使用领域专用语言的自定义逻辑方法、系统和可读介质

Also Published As

Publication number Publication date
CN113986889A (zh) 2022-01-28

Similar Documents

Publication Publication Date Title
CN113986889B (zh) 一种实现数据库函数智能扩展的方法及系统
US5146593A (en) Procedure call interface
US6678885B2 (en) System and method for common code generation
US10089119B2 (en) API namespace virtualization
JP4365142B2 (ja) プロパティをオブジェクトに関連付けするための、コンピュータ可読媒体、システム、および、方法
US9558169B2 (en) Hierarchical grouping columns
US7043715B1 (en) Method and apparatus for customizing software
CN110019111B (zh) 数据处理方法、装置、存储介质以及处理器
CN114780641B (zh) 多库多表同步方法、装置、计算机设备和存储介质
CN107943466B (zh) 数据库访问语句生成方法、装置及设备
CN109960678B (zh) 一种命名处理方法及计算机处理装置
CN108241720B (zh) 数据处理方法、装置和计算机可读存储介质
KR20000052315A (ko) 컴퓨터 시스템에 있어서 하드 디스크 파티션 및 블럭 디바이스를 논리적 드라이브로 매핑하기 위한 방법 및 장치
CN105224309A (zh) 一种调取函数的方法和装置
CN112698819A (zh) 面向树化对象编程程序设计方法、装置及存储介质
JP6890557B2 (ja) 分析モデル作成システム、プログラミング装置および分析モデル作成方法
US6658425B1 (en) Generic data centric object structure and implementation
CN110806891B (zh) 嵌入式设备软件版本的生成方法及装置
CN113821557B (zh) Web页面与后端进行数据交互的方法
US8539461B2 (en) Method for identifying memory of virtual machine and computer system thereof
JP2019125042A (ja) テスト実行順序生成装置、テスト実行順序生成方法及び記憶媒体
US6941556B1 (en) Method and system for type identification for multiple object interfaces in a distributed object environment
US8793167B2 (en) Account conversion of information technology systems
CN113254040A (zh) 前端框架更新方法、装置、设备及存储介质
CN112559444A (zh) Sql文件迁移方法、装置、存储介质及设备

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant