本公开一般涉及数据库领域。
背景技术:
1、可以将数据库查询提交到数据库系统以对数据库系统的关系表执行操作。数据库查询的示例包括结构化查询语言(sql)查询。
技术实现思路
1、本公开的示例性方面之一涉及一种非暂态机器可读存储介质,包括指令,所述指令在执行时使系统进行以下操作:基于以下各项来确定函数的链是否违反约束:在执行数据库操作期间启动的相应服务器进程(process)调用所述函数时访问填充有条目(entry)的跟踪结构,其中,所述跟踪结构的条目中的每个条目都标识与对应程序实例相关联的相应被调用函数,以及使用所述跟踪结构来检测形成所述链的有关的函数,如果所述有关的函数与同一程序实例相关联,则所述有关的函数被标识为有关;以及响应于确定所述函数的链违反所述约束,阻断调用要添加到所述链中的另外的函数。
1.一种非暂态机器可读存储介质,包括指令,所述指令在执行时使系统进行以下操作:
2.如权利要求1所述的非暂态机器可读存储介质,其中,所述跟踪结构的条目中的每个条目都包括标识所述对应程序实例的程序实例值,并且其中,使用所述跟踪结构中的所述程序实例值将所述有关的函数标识为有关。
3.如权利要求2所述的非暂态机器可读存储介质,其中,所述跟踪结构中的不同程序实例值标识函数为其被调用的不同程序实例。
4.如权利要求1所述的非暂态机器可读存储介质,其中,所述函数是在处理触发了所述数据库操作的数据库查询时被调用的用户定义的函数(udf)。
5.如权利要求1所述的非暂态机器可读存储介质,其中,所述服务器进程中的每个服务器进程要在单独的计算环境中执行所述函数中的相应函数。
6.如权利要求1所述的非暂态机器可读存储介质,其中,所述指令在执行时使所述系统进行以下操作:
7.如权利要求1所述的非暂态机器可读存储介质,其中,所述指令在执行时使所述系统进行以下操作:
8.如权利要求1所述的非暂态机器可读存储介质,其中,所述跟踪结构的条目中的每个条目都包括键值对,所述键值对包括标识调用了所述相应被调用函数的实体的键以及标识所述相应被调用函数的值。
9.如权利要求8所述的非暂态机器可读存储介质,其中,所述键进一步包括所述对应程序实例的标识符。
10.如权利要求8所述的非暂态机器可读存储介质,其中,调用了所述相应被调用函数的所述实体包括数据库查询中的触发器或另一个函数。
11.如权利要求1所述的非暂态机器可读存储介质,其中,所述有关的函数是包的一部分,所述包进一步包括能够被所述有关的函数访问的数据成员。
12.如权利要求11所述的非暂态机器可读存储介质,其中,所述指令在执行时使所述系统进行以下操作:
13.如权利要求12所述的非暂态机器可读存储介质,其中,所述数据成员作为键值对被存储在所述包数据结构中,所述包数据结构中的所述键值对中的每个键值对都包括包含所述包的标识符的键以及表示所述数据成员中的相应数据成员的值。
14.如权利要求13所述的非暂态机器可读存储介质,其中,所述包数据结构中的所述键值对被布置为所述缓存中的节点的树,并且所述树的每个节点都用索引标识并表示对应的数据成员值。
15.如权利要求13所述的非暂态机器可读存储介质,其中,所述包数据结构中的所述键值对被布置为所述缓存中的阵列,并且所述阵列的每个条目都用偏移量标识并表示对应的数据成员值。
16.一种分布式系统,包括:
17.如权利要求16所述的分布式系统,其中,所述监测器进程用于分析所述跟踪结构的条目,以确定所述函数的链是否违反长度约束。
18.如权利要求16所述的分布式系统,其中,所述监测器进程用于分析所述跟踪结构的条目,以确定所述函数的链是否违反循环约束。
19.一种包括多个计算节点和由所述多个计算节点执行的多个服务器进程的分布式系统的方法,所述方法包括:
20.如权利要求19所述的方法,其中,所述相应键值对中的键进一步标识调用了所述对应udf的触发器或另一个udf。