CN115757083A - 一种分布式数据库检测方法及装置 - Google Patents

一种分布式数据库检测方法及装置 Download PDF

Info

Publication number
CN115757083A
CN115757083A CN202111028813.8A CN202111028813A CN115757083A CN 115757083 A CN115757083 A CN 115757083A CN 202111028813 A CN202111028813 A CN 202111028813A CN 115757083 A CN115757083 A CN 115757083A
Authority
CN
China
Prior art keywords
statement
select
sql
table structure
generating
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.)
Pending
Application number
CN202111028813.8A
Other languages
English (en)
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.)
ZTE Corp
Original Assignee
ZTE Corp
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 ZTE Corp filed Critical ZTE Corp
Priority to CN202111028813.8A priority Critical patent/CN115757083A/zh
Priority to PCT/CN2022/116588 priority patent/WO2023030461A1/zh
Publication of CN115757083A publication Critical patent/CN115757083A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • 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/242Query formulation
    • 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/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Computational Linguistics (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本申请实施例提供了一种分布式数据库检测方法及装置,该方法包括:获取SQL的复杂度因子;根据该复杂度因子构造表结构;根据该复杂度因子从参数字典中获取该SQL的基本元素,并根据该表结构与该基本元素生成SQL语句;根据该表结构与该SQL语句对分布式数据库进行检测,可以解决相关技术的SQL语句无法做到枚举遍历,人工设计的SQL语法也较为简单,容易造成测试语法遗漏且无法满足实际分布式数据库复杂的应用场景的问题,根据复杂度因子构建表结构,根据表结构与基本元素生成SQL语句,实现从表结构的随机创建到对应数据的增删改查,使得可以灵活地生成SQL语句,以应对分布式数据库复杂的应用场景。

Description

一种分布式数据库检测方法及装置
技术领域
本申请实施例涉及通信领域,具体而言,涉及一种分布式数据库检测方法及装置。
背景技术
随着国产分布式数据库的快速发展,结构化查询语句(Structured QueryLanguage,简称为SQL)语法兼容性和使用方法面临巨大挑战。同时,分布式数据库使用的场景越来越多,对数据库支持的功能和性能也提出更高的要求。由于不同的业务表表结构不同,业务逻辑复杂多变,导致SQL语句的写法也是多种多样的,手动编写的测试SQL或常规SQL生成工具自动生成的SQL无法做到枚举遍历,且设计的SQL语法也较为简单,容易产生测试语法遗漏的可能无法满足实际分布式数据库复杂的应用场景。
针对相关技术的SQL语句无法做到枚举遍历,人工设计的SQL语法也较为简单,容易造成测试语法遗漏且无法满足实际分布式数据库复杂的应用场景的问题,尚未提出解决方案。
发明内容
本申请实施例提供了一种分布式数据库检测方法及装置,以至少解决相关技术的SQL语句无法做到枚举遍历,人工设计的SQL语法也较为简单,容易造成测试语法遗漏的可能且无法满足实际分布式数据库复杂的应用场景的问题。
根据本申请的一个实施例,提供了一种分布式数据库检测方法,包括:
获取SQL的复杂度因子;
根据所述复杂度因子构造表结构;
根据所述复杂度因子从参数字典中获取所述SQL的基本元素,并根据所述表结构与所述基本元素生成SQL语句;
根据所述表结构与所述SQL语句对分布式数据库进行检测。
在一实施例中,根据所述复杂度因子构造表结构包括:
从参数字典表中获取字段、字段类型、字段长度、分发策略以及分区策略;
将所述字段、所述字段类型、所述字段长度、所述分发策略以及分区策略进行组合,得到组合结果;
根据所述组合构建所述分布式数据库的表结构与异构数据库的表结构。
在一实施例中,根据所述表结构与所述SQL语句对分布式数据库进行检测包括:
将所述分布式数据库的表结构与所述SQL语句注入分布式数据库,同时将所述异构数据库的表结构与所述SQL语句所述异构数据库中,并生成所述分布式数据库的第一结果文件与所述异构数据库的第二结果文件;
将所述第一结果文件与所述第二结果文件进行对比,得到对比结果;
若所述对比结果为所述第一结果文件与所述第二结果文件相同,确定所述分布式数据库正常;
若所述对比结果为所述第一结果文件与所述第二结果文件不同,确定所述分布式数据库异常。
在一实施例中,根据所述复杂度因子从参数字典中获取所述SQL的基本元素,并根据所述表结构与所述基本元素生成SQL语句包括:
从所述参数字典中获取函数、语法规则、语法限制条件以及字段范围,其中,所述基本元素包括所述函数、所述语法规则、所述语法限制条件以及所述字段范围;
根据所述复杂度因子、所述表结构、所述函数、所述语法规则、所述语法限制条件以及所述字段范围生成所述SQL语句。
在一实施例中,根据所述复杂度因子、所述表结构、所述函数、所述语法规则、所述语法限制条件以及所述字段范围生成所述SQL语句包括:
若所述SQL语句为SELECT语句,根据所述基本元素生成第一SELECT语句;根据所述表结构与所述复杂度因子生成所述SELECT语句的SELECT LIST,其中,所述SELECT LIST为所述SELECT语句的表达式SELECT_expr的组成部分;根据所述第一SELECT语句确定所述SELECT语句的FROM,根据所述复杂度因子确定所述SELECT语句的CONDITION;根据所述SELECT语句的语法规则生成所述SELECT语句,所述SELECT语句的所述语法规则为SELECTSELECT_expr FROM tab_reference CONDITION;
若所述SQL语句为INSERT语句,根据所述复杂度因子确定INSERT语句包含的VALUE的构成,若VALUES value_list由具体值构成,根据所述表结构中字段的数据类型取值范围确定所述VALUES value_list;若VALUES value_list由SELECT查询结果确定,生成SELECT语句构成所述VALUES value_list;根据所述表结构确定tbl_name;根据INSERT语句的语法规则生成所述INSERT语句,其中,INSERT语句的语法规则为:INSERT INTO tbl_nameVALUES value_list;
若所述SQL语句为UPDATE语句,根据所述表结构确定UPDATE语句的assignment_list,其中,assignment_list对应的VALUE由具体值或者由select语句查询结果构成;确定UPDATE语句的FROM与CONDITION,根据所述UPDATE语句的语法规则生成所述UPDATE语句,所述UPDATE语句的语法规则为:update tbl_name set assignment_list where condition;
若所述SQL语句为DELETE语句,根据所述表结构确定tbl_name,确定DELETE语句的FROM与CONDITION,根据所述DELETE语句的语法规则生成所述DELETE语句,其中,所述DELETE语句的语法规则为:DELETE FROM tbl_name where CONDITION;
若所述SQL语句为DELETE语句,根据所述表结构确定tbl_name,确定DELETE语句的FROM与CONDITION,根据所述DELETE语句的语法规则生成所述DELETE语句,其中,所述DELETE语句的语法规则为:DELETE FROM tbl_name where CONDITION;
若所述SQL语句为ALTER语句,根据所述表结构确定所述ALTER语句的tbl_name;根据所述复杂度因子确定所述ALTER语句的alter_option,根据所述ALTER语句的语法规则生成所述ALTER语句,其中,ALTER语句的语法规则为ALTER TABLE tbl_name alter_option;
若所述SQL语句为DROP语句,从所述表结构中获取表名,根据DROP语句的语法规则将所述表名替换tbl_name,生成所述DROP语句,其中,所述DROP语句的语法规则为droptable tbl_name。
在一实施例中,根据所述表结构与所述复杂度因子生成所述SELECT语句的SELECTLIST包括:
若从所述表结构中选取的SELECT LIST包含嵌套子查询,根据所述复杂度因子确定嵌套层数;
根据所述嵌套层数执行SELECT嵌套,直到不包含所述嵌套子查询,组合得到所述SELECT LIST。
在一实施例中,根据所述第一SELECT语句确定所述SELECT语句的FROM包括:
根据所述SQL复杂度因子确定所述FROM的组成结构;
若所述FROM中的tab_reference为物理表,获取物理表的表名,根据物理表的表名生成所述FROM;
若FROM中的tab_reference为基于查询结果的表,在确定所述FROM涉及子查询的情况下,生成所述第一SELECT语句构成的所述FROM,将执行所述第一SELECT语句的SELECT查询结果作为所述FROM的tab_reference;在确定所述FROM包含表与表之间的关联的情况下,获取关联表信息,生成基于关联表的第二SELECT语句,生成所述第二SELECT语句构成的所述FROM。
根据本申请的另一个实施例,提供了一种分布式数据库检测装置,包括:
获取模块,用于获取SQL的复杂度因子;
构造模块,用于根据所述复杂度因子构造表结构;
生成模块,用于根据所述复杂度因子从参数字典中获取所述SQL的基本元素,并根据所述表结构与所述基本元素生成SQL语句;
检测模块,用于根据所述表结构与所述SQL语句对分布式数据库进行检测。
在一实施例中,所述构造模块包括:
第一获取子模块,用于从参数字典表中获取字段、字段类型、字段长度、分发策略以及分区策略;
组合子模块,用于将所述字段、所述字段类型、所述字段长度、所述分发策略以及分区策略进行组合,得到组合结果;
构建子模块,用于根据所述组合构建所述分布式数据库的表结构与异构数据库的表结构。
在一实施例中,所述检测模块包括:
注入子模块,用于将所述分布式数据库的表结构与所述SQL语句注入分布式数据库,同时将所述异构数据库的表结构与所述SQL语句所述异构数据库中,并生成所述分布式数据库的第一结果文件与所述异构数据库的第二结果文件;
对比子模块,用于将所述第一结果文件与所述第二结果文件进行对比,得到对比结果;
第一确定子模块,用于若所述对比结果为所述第一结果文件与所述第二结果文件相同,确定所述分布式数据库正常;
第二确定子模块,用于若所述对比结果为所述第一结果文件与所述第二结果文件不同,确定所述分布式数据库异常。
在一实施例中,所述生成模块包括:
第二获取子模块,用于从所述参数字典中获取函数、语法规则、语法限制条件以及字段范围,其中,所述基本元素包括所述函数、所述语法规则、所述语法限制条件以及所述字段范围;
生成子模块,用于根据所述复杂度因子、所述表结构、所述函数、所述语法规则、所述语法限制条件以及所述字段范围生成所述SQL语句。
在一实施例中,所述生成子模块,还用于:
若所述SQL语句为SELECT语句,根据所述基本元素生成第一SELECT语句;根据所述表结构与所述复杂度因子生成所述SELECT语句的SELECT LIST,其中,所述SELECT LIST为所述SELECT语句的表达式SELECT_expr的组成部分;根据所述第一SELECT语句确定所述SELECT语句的FROM,根据所述复杂度因子确定所述SELECT语句的CONDITION;根据所述SELECT语句的语法规则生成所述SELECT语句,所述SELECT语句的所述语法规则为SELECTSELECT_expr FROM tab_reference CONDITION。
若所述SQL语句为INSERT语句,根据所述复杂度因子确定INSERT语句包含的VALUE的构成,若VALUES value_list由具体值构成,根据所述表结构中字段的数据类型取值范围确定所述VALUES value_list;若VALUES value_list由SELECT查询结果确定,生成SELECT语句构成所述VALUES value_list;根据所述表结构确定tbl_name;根据INSERT语句的语法规则生成所述INSERT语句,其中,INSERT语句的语法规则为:INSERT INTO tbl_nameVALUES value_list;
若所述SQL语句为UPDATE语句,根据所述表结构确定UPDATE语句的assignment_list,其中,assignment_list对应的VALUE由具体值或者由select语句查询结果构成;确定UPDATE语句的FROM与CONDITION,根据所述UPDATE语句的语法规则生成所述UPDATE语句,所述UPDATE语句的语法规则为:update tbl_name set assignment_list where condition;
若所述SQL语句为DELETE语句,根据所述表结构确定tbl_name,确定DELETE语句的FROM与CONDITION,根据所述DELETE语句的语法规则生成所述DELETE语句,其中,所述DELETE语句的语法规则为:DELETE FROM tbl_name where CONDITION;
若所述SQL语句为DELETE语句,根据所述表结构确定tbl_name,确定DELETE语句的FROM与CONDITION,根据所述DELETE语句的语法规则生成所述DELETE语句,其中,所述DELETE语句的语法规则为:DELETE FROM tbl_name where CONDITION;
若所述SQL语句为ALTER语句,根据所述表结构确定所述ALTER语句的tbl_name;根据所述复杂度因子确定所述ALTER语句的alter_option,根据所述ALTER语句的语法规则生成所述ALTER语句,其中,ALTER语句的语法规则为ALTER TABLE tbl_name alter_option;
若所述SQL语句为DROP语句,从所述表结构中获取表名,根据DROP语句的语法规则将所述表名替换tbl_name,生成所述DROP语句,其中,所述DROP语句的语法规则为droptable tbl_name。
在一实施例中,所述生成子模块,还用于:
若从所述表结构中选取的SELECT LIST包含嵌套子查询,根据所述复杂度因子确定嵌套层数;
根据所述嵌套层数执行SELECT嵌套,直到不包含所述嵌套子查询,组合得到所述SELECT LIST。
在一实施例中,所述生成子模块,还用于:
根据所述SQL复杂度因子确定所述FROM的组成结构;
若所述FROM中的tab_reference为物理表,获取物理表的表名,根据物理表的表名生成所述FROM;
若FROM中的tab_reference为基于查询结果的表,在确定所述FROM涉及子查询的情况下,生成所述第一SELECT语句构成的所述FROM,将执行所述第一SELECT语句的SELECT查询结果作为所述FROM的tab_reference;在确定所述FROM包含表与表之间的关联的情况下,获取关联表信息,生成基于关联表的第二SELECT语句,生成所述第二SELECT语句构成的所述FROM。
根据本申请的又一个实施例,还提供了一种计算机可读的存储介质,所述存储介质中存储有计算机程序,其中,所述计算机程序被设置为运行时执行上述任一项方法实施例中的步骤。
根据本申请的又一个实施例,还提供了一种电子装置,包括存储器和处理器,所述存储器中存储有计算机程序,所述处理器被设置为运行所述计算机程序以执行上述任一项方法实施例中的步骤。
本申请实施例,获取SQL的复杂度因子;根据所述复杂度因子构造表结构;根据所述复杂度因子从参数字典中获取所述SQL的基本元素,并根据所述表结构与所述基本元素生成SQL语句;根据所述表结构与所述SQL语句对分布式数据库进行检测,可以解决相关技术的SQL语句无法做到枚举遍历,人工设计的SQL语法也较为简单,容易造成测试语法遗漏且无法满足实际分布式数据库复杂的应用场景的问题,根据复杂度因子随机构建表结构,根据表结构与基本元素生成随机复杂的SQL语句,实现从表结构的随机创建到对应数据的增删改查,使得可以灵活地生成SQL语句,可以应对分布式数据库复杂的应用场景。
附图说明
图1是本申请实施例的分布式数据库检测方法的移动终端的硬件结构框图;
图2是根据本申请实施例的分布式数据库检测方法的流程图;
图3是根据本实施例的SELECT语句的生成方法的流程图;
图4是根据本实施例的分布式数据库检测装置的框图;
图5是根据本优选实施例的分布式数据库检测装置的框图一;
图6是根据本优选实施例的分布式数据库检测装置的框图二;
图7是根据本优选实施例的分布式数据库检测装置的框图三。
具体实施方式
下文中将参考附图并结合实施例来详细说明本申请的实施例。
需要说明的是,本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。
本申请实施例中所提供的方法实施例可以在移动终端、计算机终端或者类似的运算装置中执行。以运行在移动终端上为例,图1是本申请实施例的分布式数据库检测方法的移动终端的硬件结构框图,如图1所示,移动终端可以包括一个或多个(图1中仅示出一个)处理器102(处理器102可以包括但不限于微处理器MCU或可编程逻辑器件FPGA等的处理装置)和用于存储数据的存储器104,其中,上述移动终端还可以包括用于通信功能的传输设备106以及输入输出设备108。本领域普通技术人员可以理解,图1所示的结构仅为示意,其并不对上述移动终端的结构造成限定。例如,移动终端还可包括比图1中所示更多或者更少的组件,或者具有与图1所示不同的配置。
存储器104可用于存储计算机程序,例如,应用软件的软件程序以及模块,如本申请实施例中的分布式数据库检测方法对应的计算机程序,处理器102通过运行存储在存储器104内的计算机程序,从而执行各种功能应用以及业务链地址池切片处理,即实现上述的方法。存储器104可包括高速随机存储器,还可包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器104可进一步包括相对于处理器102远程设置的存储器,这些远程存储器可以通过网络连接至移动终端。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
传输装置106用于经由一个网络接收或者发送数据。上述的网络具体实例可包括移动终端的通信供应商提供的无线网络。在一个实例中,传输装置106包括一个网络适配器(Network Interface Controller,简称为NIC),其可通过基站与其他网络设备相连从而可与互联网进行通讯。在一个实例中,传输装置106可以为射频(Radio Frequency,简称为RF)模块,其用于通过无线方式与互联网进行通讯。
在本实施例中提供了一种运行于上述移动终端或网络架构的分布式数据库检测方法,应用于终端,所述终端通过双连接(Dual Connection,简称为DC)接入源区域的当前主节点MN小区与当前辅节点SN小区,图2是根据本申请实施例的分布式数据库检测方法的流程图,如图2所示,该流程包括如下步骤:
步骤S202,获取SQL的复杂度因子;
步骤S204,根据所述复杂度因子构造表结构;
本实施例中,上述步骤S204具体可以包括:从参数字典表中获取字段、字段类型、字段长度、分发策略以及分区策略;将所述字段、所述字段类型、所述字段长度、所述分发策略以及分区策略进行组合,得到组合结果;根据所述组合构建所述分布式数据库的表结构与异构数据库的表结构。具体的,通过CREATE语句创建所述表结构,所述CREATE语句包括表字段、表分区、表分发键、表索引,CREATE语句为所述SQL语句的一种。Create语法规则如下:
CREATE TABLE[IF NOT EXISTS]tbl_name(create_definition,...)[partition_options][distributed_option],其中,[]表示可选,create_definition表示表定义,包括字段、字段类型、索引等,partition_options表示分区策略,distributed_option表示分发策略。
步骤S206,根据所述复杂度因子从参数字典中获取所述SQL的基本元素,并根据所述表结构与所述基本元素生成SQL语句;
步骤S208,根据所述表结构与所述SQL语句对分布式数据库进行检测。
本实施例中,上述步骤S208具体可以包括:将所述分布式数据库的表结构与所述SQL语句注入分布式数据库,同时将所述异构数据库的表结构与所述SQL语句所述异构数据库中,并生成所述分布式数据库的第一结果文件与所述异构数据库的第二结果文件;将所述第一结果文件与所述第二结果文件进行对比,得到对比结果;若所述对比结果为所述第一结果文件与所述第二结果文件相同,确定所述分布式数据库正常;若所述对比结果为所述第一结果文件与所述第二结果文件不同,确定所述分布式数据库异常。
通过上述步骤S202至S208,获取SQL的复杂度因子;根据所述复杂度因子构造表结构;根据所述复杂度因子从参数字典中获取所述SQL的基本元素,并根据所述表结构与所述基本元素生成SQL语句;根据所述表结构与所述SQL语句对分布式数据库进行检测,可以解决相关技术的SQL语句无法做到枚举遍历,人工设计的SQL语法也较为简单,容易造成测试语法遗漏且无法满足实际分布式数据库复杂的应用场景的问题,根据复杂度因子构建表结构,根据表结构与基本元素生成SQL语句,实现从表结构的随机创建到对应数据的增删改查,使得可以灵活地生成SQL语句,可以应对分布式数据库复杂的应用场景。
本实施例中,上述步骤S206具体可以包括:
S2061,从所述参数字典中获取函数、语法规则、语法限制条件以及字段范围,其中,所述基本元素包括所述函数、所述语法规则、所述语法限制条件以及所述字段范围;
S2062,根据所述复杂度因子、所述表结构、所述函数、所述语法规则、所述语法限制条件以及所述字段范围生成所述SQL语句。
在一实施例中,上述S2062具体可以包括:
若所述SQL语句为SELECT语句,根据所述基本元素生成第一SELECT语句;根据所述表结构与所述复杂度因子生成所述SELECT语句的SELECT LIST,具体的,若从所述表结构中选取的SELECT LIST包含嵌套子查询,根据所述复杂度因子确定嵌套层数;根据所述嵌套层数执行SELECT嵌套,直到不包含所述嵌套子查询,组合得到所述SELECT LIST,其中,所述SELECT LIST为所述SELECT语句的表达式SELECT_expr的组成部分;根据所述第一SELECT语句确定所述SELECT语句的FROM,具体的,根据所述SQL复杂度因子确定所述FROM的组成结构;若所述FROM中的tab_reference为物理表,获取物理表的表名,根据物理表的表名生成所述FROM;若FROM中的tab_reference为基于查询结果的表,在确定所述FROM涉及子查询的情况下,生成所述第一SELECT语句构成的所述FROM,将执行所述第一SELECT语句的SELECT查询结果作为所述FROM的tab_reference;在确定所述FROM包含表与表之间的关联的情况下,获取关联表信息,生成基于关联表的第二SELECT语句,生成所述第二SELECT语句构成的所述FROM;根据所述复杂度因子确定所述SELECT语句的CONDITION;根据所述SELECT语句的语法规则生成所述SELECT语句,所述SELECT语句的所述语法规则为SELECT SELECT_exprFROM tab_reference CONDITION;即所述SQL语句为SELECT语句,根据所述复杂度因子、所述表结构、所述函数、所述语法规则、所述语法限制条件以及所述字段范围创建所述SELECT语句,所述SELECT语句的所述语法规则为SELECT SELECT_expr FROM tab_referenceCONDITION,所述SELECT SELECT_expr包括所述函数所述CONDITION为所述语法限制条件,所述SELECT SELECT_expr与所述CONDITION包含所述函数;
若所述SQL语句为INSERT语句,根据所述复杂度因子确定INSERT语句包含的VALUE的构成,若VALUES value_list由具体值构成,根据所述表结构中字段的数据类型取值范围确定所述VALUES value_list;若VALUES value_list由SELECT查询结果确定,生成SELECT语句构成所述VALUES value_list;根据所述表结构确定tbl_name;根据INSERT语句的语法规则生成所述INSERT语句,其中,INSERT语句的语法规则为:INSERT INTO tbl_nameVALUES value_list;即所述SQL语句为INSERT语句,INSERT语句包含VALUE和SELECT,INSERT语句的语法规则为:INSERT INTO tbl_name VALUES value_list,其中,tbl_name为表名,在创建所述表结构时确定)。VALUES value_list为具体值或者由select查询语句构成。根据复杂度因子确定value的构成,若value值由具体值构成,则具体值的生成规则根据所述表结构中字段的数据类型取值范围确定,数据类型取值范围从参数字典中获取,在字段数据类型取值范围内随机生成符合要求的数值;若value值由SELECT查询结果确定,则调用SELECT生成器生成select语句构成value_list;
若所述SQL语句为UPDATE语句,根据所述表结构确定UPDATE语句的assignment_list,其中,assignment_list对应的VALUE由具体值或者由select语句查询结果构成;确定UPDATE语句的FROM与CONDITION,根据所述UPDATE语句的语法规则生成所述UPDATE语句,所述UPDATE语句的语法规则为:update tbl_name set assignment_list where condition;所述UPDATE语句由SET单元构成UPDATE语句的语法规则为:update tbl_name setassignment_list where condition,assignment_list表示列名,列名根据表结构确定,assignment_list对应的VALUE由具体值或者由select语句查询结果构成,若为select语句查询结果得到,则调用步骤S5,condition调用步骤S4,然后组成一条完整的UPDATE语句;
若所述SQL语句为DELETE语句,根据所述表结构确定tbl_name,确定DELETE语句的FROM与CONDITION,确定的具体方式与SELECT语句中FROM与CONDITION确定的方式类似,在此不再赘述,根据所述DELETE语句的语法规则生成所述DELETE语句,其中,所述DELETE语句的语法规则为:DELETE FROM tbl_name where CONDITION;
若所述SQL语句为DELETE语句,根据所述表结构确定tbl_name,确定DELETE语句的FROM与CONDITION,根据所述DELETE语句的语法规则生成所述DELETE语句,其中,所述DELETE语句的语法规则为:DELETE FROM tbl_name where CONDITION;
若所述SQL语句为ALTER语句,根据所述表结构确定所述ALTER语句的tbl_name;根据所述复杂度因子确定所述ALTER语句的alter_option,根据所述ALTER语句的语法规则生成所述ALTER语句,其中,ALTER语句的语法规则为ALTER TABLE tbl_name alter_option;ALTER语句的语法规则为ALTER TABLE tbl_name alter_option,其中,tbl_name为创建所述表结构时确定的表名,alter_option包括修改所述表结构的属性,alter_option包括参数字典中的数据类型、分区、索引,根据所述复杂度因子确定增删列的个数,是否修改变列的名称,是否增删索引、分区,以生成所述ALTER语句;
若所述SQL语句为DROP语句,从所述表结构中获取表名,根据DROP语句的语法规则将所述表名替换tbl_name,生成所述DROP语句,其中,所述DROP语句的语法规则为droptable tbl_name。
本实施例中,创建参数字典,参数字典涵盖全字段类型、分发策略、分区策略、支持的所有函数、语法规则、语法限制条件、字段类型值范围。自动生成表结构方法:从参数字典表中任意获取字段、字段类型、字段长度、分发策略、分区策略进行随机组合按照分布式数据库表结构要求构建表结构,同时生成异构数据库的表结构;SELECT、INSERT、UPDATE、DELETE语句自动生成方法为:从参数字典中获取函数、语法规则、语法限制条件、字段范围,由复杂度模块生成SQL复杂度因子、由SQL生成器生成SQL。在分布式数据库根据随机生成的表结构自动创建INSERT语句,INSERT的值在边界值范围内随机获取、同时为每种字段类型添加非法值;SELECT语句随机生成方法为从参数字典中获取任意函数、函数的语法规则,结合随机生成的SELECT查询语句复杂度因子,自动生成查询SQL,查询SQL涉及简单字段组成的SELECT LIST、含有函数及表达式的SELECT LIST、含有多张表字段的SELECT LIST;UPDATE语句包含更新全表字段、遍历字段边界值。本实施例能尽可能的生成不同SQL,涵盖不同SQL语句,避免测试用例的遗漏,增加分布式数据库的可靠性。
本实施例根据SQL复杂度控制模块随机生成的复杂度因子确定SQL的复杂度,从参数字典中获取语法规则及语法规则限制条件,选取随机的字段类型及字段范围值,通过SQL生成器模块自动生成SQL。将构造出的表结构和SQL同时注入到被测对象和异构数据库并生成结果文件,结果比对器对比二者的结果比对文件确保被测对象结果的正确性。
本实施例中的SQL语句生成包括DDL、DML的生成,所述DDL生成包含分布式数据库表的CREATE、ALTER、DROP语句生成。CREATE语句包括表字段、表分区、表分发键;ALTER语句包含字段、索引、分区、表索引、列属性;DROP语句包含表名。所述DML生成包含SELECT、UPDATE、INSERT、DELETE生成;SELECT生成包含SELECT LIST、FROM及CONDITION生成;所述SELECT生成包含子查询和函数,所述FROM生成包含子查询和关联表,所述CONDITION生成包含子查询;
若SQL语句为SELECT语句,图3是根据本实施例的SELECT语句的生成方法的流程图,如图3所示,包括如下步骤:
步骤S301,获取SQL复杂度因子,控制SQL复杂度,SQL生成器根据复杂度因子从参数字典中获取SQL基本元素,生成SELECT语句(对应上述的第一SELECT语句,SELECT语句构成:SELECT SELECT_expr FROM tab_reference CONDITION);
步骤S302,根据表结构生成SELECT语句的SELECT LIST,SELECT LIST为表达式SELECT_expr的组成部分,根据复杂度因子结合从参数字典中获取的语法规则随机生成字段值、若干函数,若选取的SELECT LIST含有嵌套子查询,则嵌套执行SELECT生成,嵌套层数由复杂度因子确定,经过组合确定SELECT LIST结构,包括:列名、函数、子查询;
步骤S303,确定SELECT语句的FROM,执行FROM生成,由SQL复杂度因子确定FROM组成结构,FROM中的表tab_reference包括物理表或基于查询结果的表(虚拟的表),若为物理表,获取物理表的表名,物理表的表名生成FROM;若FROM含有基于查询结果的表,则FROM涉及子查询,则调用步骤S301,生成SELECT语句构成的FROM,将执行SELECT语句的SELECT查询结果当作FROM的tab_reference;若确定FROM包含表与表之间的关联,则从CREATE生成模块中获取关联表信息,并调用步骤S301的,生成基于关联表的SELECT语句,生成SELECT语句构成的FROM;
步骤S304,根据复杂度因子确定SQL语句的CONDITION,其中,所述SQL条件包括逻辑表达式,执行CONDITION生成,SQL条件由复杂度因子和步骤S301确定,CONDITION包括逻辑表达式,表达式中的条件由SELECT语句构成或者具体值构成,其中,具体值是根据参数字典中的字段范围直接生成的;
步骤S305,根据步骤S302生成的SELECT语句的、步骤S303确定的FROM以及步骤S304生成的CONDITION生成所有查询语句构成,并将所有语句块嵌套拼接成一条完整的SQL查询语句(对应上述第二SELECT语句)输出。
根据本申请的另一个实施例,提供了一种分布式数据库检测装置,图4是根据本实施例的分布式数据库检测装置的框图,如图4所示,包括:
获取模块42,用于获取SQL的复杂度因子;
构造模块44,用于根据所述复杂度因子构造表结构;
生成模块46,用于根据所述复杂度因子从参数字典中获取所述SQL的基本元素,并根据所述表结构与所述基本元素生成SQL语句;
检测模块48,用于根据所述表结构与所述SQL语句对分布式数据库进行检测。
图5是根据本优选实施例的分布式数据库检测装置的框图一,如图5所示,所述构造模块44包括:
第一获取子模块52,用于从参数字典表中获取字段、字段类型、字段长度、分发策略以及分区策略;
组合子模块54,用于将所述字段、所述字段类型、所述字段长度、所述分发策略以及分区策略进行组合,得到组合结果;
构建子模块56,用于根据所述组合构建所述分布式数据库的表结构与异构数据库的表结构。
图6是根据本优选实施例的分布式数据库检测装置的框图二,如图6所示,所述检测模块48包括:
注入子模块62,用于将所述分布式数据库的表结构与所述SQL语句注入分布式数据库,同时将所述异构数据库的表结构与所述SQL语句所述异构数据库中,并生成所述分布式数据库的第一结果文件与所述异构数据库的第二结果文件;
对比子模块64,用于将所述第一结果文件与所述第二结果文件进行对比,得到对比结果;
第一确定子模块66,用于若所述对比结果为所述第一结果文件与所述第二结果文件相同,确定所述分布式数据库正常;
第二确定子模块68,用于若所述对比结果为所述第一结果文件与所述第二结果文件不同,确定所述分布式数据库异常。
图7是根据本优选实施例的分布式数据库检测装置的框图三,如图7所示,所述生成模块46包括:
第二获取子模块72,用于从所述参数字典中获取函数、语法规则、语法限制条件以及字段范围,其中,所述基本元素包括所述函数、所述语法规则、所述语法限制条件以及所述字段范围;
生成子模块74,用于根据所述复杂度因子、所述表结构、所述函数、所述语法规则、所述语法限制条件以及所述字段范围生成所述SQL语句。
在一实施例中,所述生成子模块74,还用于:
若所述SQL语句为SELECT语句,根据所述基本元素生成第一SELECT语句;根据所述表结构与所述复杂度因子生成所述SELECT语句的SELECT LIST,其中,所述SELECT LIST为所述SELECT语句的表达式SELECT_expr的组成部分;根据所述第一SELECT语句确定所述SELECT语句的FROM,根据所述复杂度因子确定所述SELECT语句的CONDITION;根据所述SELECT语句的语法规则生成所述SELECT语句,所述SELECT语句的所述语法规则为SELECTSELECT_expr FROM tab_reference CONDITION。
若所述SQL语句为INSERT语句,根据所述复杂度因子确定INSERT语句包含的VALUE的构成,若VALUES value_list由具体值构成,根据所述表结构中字段的数据类型取值范围确定所述VALUES value_list;若VALUES value_list由SELECT查询结果确定,生成SELECT语句构成所述VALUES value_list;根据所述表结构确定tbl_name;根据INSERT语句的语法规则生成所述INSERT语句,其中,INSERT语句的语法规则为:INSERT INTO tbl_nameVALUES value_list;
若所述SQL语句为UPDATE语句,根据所述表结构确定UPDATE语句的assignment_list,其中,assignment_list对应的VALUE由具体值或者由select语句查询结果构成;确定UPDATE语句的FROM与CONDITION,根据所述UPDATE语句的语法规则生成所述UPDATE语句,所述UPDATE语句的语法规则为:update tbl_name set assignment_list where condition;
若所述SQL语句为DELETE语句,根据所述表结构确定tbl_name,确定DELETE语句的FROM与CONDITION,根据所述DELETE语句的语法规则生成所述DELETE语句,其中,所述DELETE语句的语法规则为:DELETE FROM tbl_name where CONDITION;
若所述SQL语句为DELETE语句,根据所述表结构确定tbl_name,确定DELETE语句的FROM与CONDITION,根据所述DELETE语句的语法规则生成所述DELETE语句,其中,所述DELETE语句的语法规则为:DELETE FROM tbl_name where CONDITION;
若所述SQL语句为ALTER语句,根据所述表结构确定所述ALTER语句的tbl_name;根据所述复杂度因子确定所述ALTER语句的alter_option,根据所述ALTER语句的语法规则生成所述ALTER语句,其中,ALTER语句的语法规则为ALTER TABLE tbl_name alter_option;
若所述SQL语句为DROP语句,从所述表结构中获取表名,根据DROP语句的语法规则将所述表名替换tbl_name,生成所述DROP语句,其中,所述DROP语句的语法规则为droptable tbl_name。
在一实施例中,所述生成子模块74,还用于:
若从所述表结构中选取的SELECT LIST包含嵌套子查询,根据所述复杂度因子确定嵌套层数;
根据所述嵌套层数执行SELECT嵌套,直到不包含所述嵌套子查询,组合得到所述SELECT LIST。
在一实施例中,所述生成子模块74,还用于:
根据所述SQL复杂度因子确定所述FROM的组成结构;
若所述FROM中的tab_reference为物理表,获取物理表的表名,根据物理表的表名生成所述FROM;
若FROM中的tab_reference为基于查询结果的表,在确定所述FROM涉及子查询的情况下,生成所述第一SELECT语句构成的所述FROM,将执行所述第一SELECT语句的SELECT查询结果作为所述FROM的tab_reference;在确定所述FROM包含表与表之间的关联的情况下,获取关联表信息,生成基于关联表的第二SELECT语句,生成所述第二SELECT语句构成的所述FROM。
本申请的实施例还提供了一种计算机可读存储介质,该计算机可读存储介质中存储有计算机程序,其中,该计算机程序被设置为运行时执行上述任一项方法实施例中的步骤。
在一个示例性实施例中,上述计算机可读存储介质可以包括但不限于:U盘、只读存储器(Read-Only Memory,简称为ROM)、随机存取存储器(Random Access Memory,简称为RAM)、移动硬盘、磁碟或者光盘等各种可以存储计算机程序的介质。
本申请的实施例还提供了一种电子装置,包括存储器和处理器,该存储器中存储有计算机程序,该处理器被设置为运行计算机程序以执行上述任一项方法实施例中的步骤。
在一个示例性实施例中,上述电子装置还可以包括传输设备以及输入输出设备,其中,该传输设备和上述处理器连接,该输入输出设备和上述处理器连接。
本实施例中的具体示例可以参考上述实施例及示例性实施方式中所描述的示例,本实施例在此不再赘述。
显然,本领域的技术人员应该明白,上述的本申请的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,并且在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本申请不限制于任何特定的硬件和软件结合。
以上所述仅为本申请的优选实施例而已,并不用于限制本申请,对于本领域的技术人员来说,本申请可以有各种更改和变化。凡在本申请的原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。

Claims (10)

1.一种分布式数据库检测方法,其特征在于,包括:
获取结构化查询语句SQL的复杂度因子;
根据所述复杂度因子构造表结构;
根据所述复杂度因子从参数字典中获取所述SQL的基本元素,并根据所述表结构与所述基本元素生成SQL语句;
根据所述表结构与所述SQL语句对分布式数据库进行检测。
2.根据权利要求1所述的方法,其特征在于,根据所述复杂度因子构造表结构包括:
从参数字典表中获取字段、字段类型、字段长度、分发策略以及分区策略;
将所述字段、所述字段类型、所述字段长度、所述分发策略以及分区策略进行组合,得到组合结果;
根据所述组合构建所述分布式数据库的表结构与异构数据库的表结构。
3.根据权利要求2所述的方法,其特征在于,根据所述表结构与所述SQL语句对分布式数据库进行检测包括:
将所述分布式数据库的表结构与所述SQL语句注入分布式数据库,同时将所述异构数据库的表结构与所述SQL语句所述异构数据库中,并生成所述分布式数据库的第一结果文件与所述异构数据库的第二结果文件;
将所述第一结果文件与所述第二结果文件进行对比,得到对比结果;
若所述对比结果为所述第一结果文件与所述第二结果文件相同,确定所述分布式数据库正常;
若所述对比结果为所述第一结果文件与所述第二结果文件不同,确定所述分布式数据库异常。
4.根据权利要求1所述的方法,其特征在于,根据所述复杂度因子从参数字典中获取所述SQL的基本元素,并根据所述表结构与所述基本元素生成SQL语句包括:
从所述参数字典中获取函数、语法规则、语法限制条件以及字段范围,其中,所述基本元素包括所述函数、所述语法规则、所述语法限制条件以及所述字段范围;
根据所述复杂度因子、所述表结构、所述函数、所述语法规则、所述语法限制条件以及所述字段范围生成所述SQL语句。
5.根据权利要求4所述的方法,其特征在于,根据所述复杂度因子、所述表结构、所述函数、所述语法规则、所述语法限制条件以及所述字段范围生成所述SQL语句包括:
若所述SQL语句为SELECT语句,根据所述基本元素生成第一SELECT语句;根据所述表结构与所述复杂度因子生成所述SELECT语句的SELECT LIST,其中,所述SELECT LIST为所述SELECT语句的表达式SELECT_expr的组成部分;根据所述第一SELECT语句确定所述SELECT语句的FROM,根据所述复杂度因子确定所述SELECT语句的CONDITION;根据所述SELECT语句的语法规则生成所述SELECT语句,所述SELECT语句的所述语法规则为SELECT SELECT_exprFROM tab_reference CONDITION;
若所述SQL语句为INSERT语句,根据所述复杂度因子确定INSERT语句包含的VALUE的构成,若VALUES value_l ist由具体值构成,根据所述表结构中字段的数据类型取值范围确定所述VALUES value_l ist;若VALUES value_l ist由SELECT查询结果确定,生成SELECT语句构成所述VALUES value_l ist;根据所述表结构确定tbl_name;根据INSERT语句的语法规则生成所述INSERT语句,其中,INSERT语句的语法规则为:INSERT INTO tbl_nameVALUES value_list;
若所述SQL语句为UPDATE语句,根据所述表结构确定UPDATE语句的assignment_l ist,其中,assignment_l ist对应的VALUE由具体值或者由select语句查询结果构成;确定UPDATE语句的FROM与CONDITION,根据所述UPDATE语句的语法规则生成所述UPDATE语句,所述UPDATE语句的语法规则为:update tbl_name set assignment_l ist wherecondition;
若所述SQL语句为DELETE语句,根据所述表结构确定tbl_name,确定DELETE语句的FROM与CONDITION,根据所述DELETE语句的语法规则生成所述DELETE语句,其中,所述DELETE语句的语法规则为:DELETE FROM tbl_name where CONDITION;
若所述SQL语句为DELETE语句,根据所述表结构确定tbl_name,确定DELETE语句的FROM与CONDITION,根据所述DELETE语句的语法规则生成所述DELETE语句,其中,所述DELETE语句的语法规则为:DELETE FROM tbl_name where CONDITION;
若所述SQL语句为ALTER语句,根据所述表结构确定所述ALTER语句的tbl_name;根据所述复杂度因子确定所述ALTER语句的alter_option,根据所述ALTER语句的语法规则生成所述ALTER语句,其中,ALTER语句的语法规则为ALTER TABLE tbl_name alter_option;
若所述SQL语句为DROP语句,从所述表结构中获取表名,根据DROP语句的语法规则将所述表名替换tbl_name,生成所述DROP语句,其中,所述DROP语句的语法规则为drop tabletbl_name。
6.根据权利要求5所述的方法,其特征在于,根据所述表结构与所述复杂度因子生成所述SELECT语句的SELECT LIST包括:
若从所述表结构中选取的SELECT LIST包含嵌套子查询,根据所述复杂度因子确定嵌套层数;
根据所述嵌套层数执行SELECT嵌套,直到不包含所述嵌套子查询,组合得到所述SELECT LIST。
7.根据权利要求5所述的方法,其特征在于,根据所述第一SELECT语句确定所述SELECT语句的FROM包括:
根据所述SQL复杂度因子确定所述FROM的组成结构;
若所述FROM中的tab_reference为物理表,获取物理表的表名,根据物理表的表名生成所述FROM;
若FROM中的tab_reference为基于查询结果的表,在确定所述FROM涉及子查询的情况下,生成所述第一SELECT语句构成的所述FROM,将执行所述第一SELECT语句作为所述FROM的tab_reference;在确定所述FROM包含表与表之间的关联的情况下,获取关联表信息,生成基于关联表的第二SELECT语句,生成所述第二SELECT语句构成的所述FROM。
8.一种分布式数据库检测装置,其特征在于,包括:
获取模块,用于获取结构化查询语句SQL的复杂度因子;
构造模块,用于根据所述复杂度因子构造表结构;
生成模块,用于根据所述复杂度因子从参数字典中获取所述SQL的基本元素,并根据所述表结构与所述基本元素生成SQL语句;
检测模块,用于根据所述表结构与所述SQL语句对分布式数据库进行检测。
9.一种计算机可读的存储介质,其特征在于,所述存储介质中存储有计算机程序,其中,所述计算机程序被设置为运行时执行所述权利要求1至7任一项中所述的方法。
10.一种电子装置,包括存储器和处理器,其特征在于,所述存储器中存储有计算机程序,所述处理器被设置为运行所述计算机程序以执行所述权利要求1至7任一项中所述的方法。
CN202111028813.8A 2021-09-02 2021-09-02 一种分布式数据库检测方法及装置 Pending CN115757083A (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN202111028813.8A CN115757083A (zh) 2021-09-02 2021-09-02 一种分布式数据库检测方法及装置
PCT/CN2022/116588 WO2023030461A1 (zh) 2021-09-02 2022-09-01 一种分布式数据库检测方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202111028813.8A CN115757083A (zh) 2021-09-02 2021-09-02 一种分布式数据库检测方法及装置

Publications (1)

Publication Number Publication Date
CN115757083A true CN115757083A (zh) 2023-03-07

Family

ID=85332342

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111028813.8A Pending CN115757083A (zh) 2021-09-02 2021-09-02 一种分布式数据库检测方法及装置

Country Status (2)

Country Link
CN (1) CN115757083A (zh)
WO (1) WO2023030461A1 (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117648326B (zh) * 2024-01-29 2024-05-10 中邮消费金融有限公司 动态分表方法、装置、设备及存储介质

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4749899B2 (ja) * 2006-03-15 2011-08-17 株式会社日立ソリューションズ テーブル構造決定及び通知システム
CN103810171B (zh) * 2012-11-06 2017-02-08 深圳市金蝶天燕中间件股份有限公司 生成限定范围的随机测试数据的方法及***
CN109614315B (zh) * 2018-11-06 2021-11-23 武汉达梦数据库股份有限公司 一种数据同步测试用例的自动生成方法及***
CN109271326B (zh) * 2018-11-28 2021-03-12 优刻得科技股份有限公司 云数据库的测试方法及其装置、设备和存储介质

Also Published As

Publication number Publication date
WO2023030461A1 (zh) 2023-03-09

Similar Documents

Publication Publication Date Title
CN112559554B (zh) 一种查询语句优化方法及装置
CN110795455B (zh) 依赖关系解析方法、电子装置、计算机设备及可读存储介质
CN108733713B (zh) 数据仓库中的数据查询方法及装置
US20170147644A1 (en) Query optimization using join cardinality
US8661023B1 (en) Optimizing search query logic to speed retrieval
US20120072412A1 (en) Evaluating execution plan changes after a wakeup threshold time
US8812492B2 (en) Automatic and dynamic design of cache groups
JP2004518226A (ja) データベースシステムおよびクエリオプティマイザ
US20140089293A1 (en) Query language to traverse a path in a graph
CN114880504B (zh) 一种图数据的查询方法、装置以及设备
US20130151561A1 (en) Fuzzy full text search
CN102799624A (zh) 基于Datalog的分布式环境下大图数据查询方法
CN109299101B (zh) 数据检索方法、装置、服务器和存储介质
CN110502532A (zh) 远程数据库对象的优化方法、装置、设备和存储介质
CN113672628A (zh) 数据血缘分析方法、终端设备及介质
CN109918369B (zh) 数据存储方法及装置
WO2023030461A1 (zh) 一种分布式数据库检测方法及装置
US9330372B2 (en) Generating an improved development infrastructure
CN114328612A (zh) 查询优化器的数据处理方法、装置及电子设备
CN110232063B (zh) 层级数据查询方法、装置、计算机设备和存储介质
CN112463814A (zh) 一种数据查询方法及装置
CN115543993A (zh) 数据处理方法、装置、电子设备及存储介质
CN114924966A (zh) 基于数据库pl语言的测试用例生成方法以及装置
CN114385864A (zh) 一种图搜索方法、装置、设备及存储介质
CN114547083A (zh) 数据处理方法、装置及电子设备

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