oceanbase中存储过程的实现(一)语法解析部分
来源:互联网 发布:java基础入门电子书 编辑:程序博客网 时间:2024/05/11 00:28
原创性声明
本文出处为http://blog.csdn.net/zhujunxxxxx/article/details/39251491,版权归作者所有,如需转载请注明作者,出处!
技术背景
淘宝的开源数据库oceanbase 是一个支持海量数据的高性能分布式数据库系统,实现了数千亿条记录、数百TB数据上的跨行跨表事务,由淘宝核心系统研发部开发的。
但是现在oceanbase0.4版本是不支持很多功能的,其中包括存储过程。
开发方案
淘宝数据使用的是flex&bison来进行sql语句的解析的,因此我们在做存储过程的语法也应该用它的方案实现。
我们经过语法解析过后需要用一种数据结构来存储语法树,一种方法是使用OB里面的节点设计,另一种是使用Postgrepsql的节点设计来存储它
OceanBase的语法树的节点设计
OceanBase的语法树节点结构体也只有一个,该结构体包括一个枚举类型变量type_,和PostgreSQL一样,代表该结构体对应的类型。还有两组属性,对应终止符节点,只能使用vakue_和str_value_两个字段,分别对应64位整形值和字符串值;非终止符节点使用最后两个字段,num_child_表示子节点的个数,children_指向子节点数组的首地址。
存储过程语法树
上面部分是通过语法解析部分得到的一颗语法树。
1 0
- oceanbase中存储过程的实现(一)语法解析部分
- 关于oceanbase中存储过程的设计与实现
- OceanBase SQL解析源码分析(一)
- 淘宝数据库OceanBase SQL编译器部分 源码阅读--解析SQL语法树
- 淘宝数据库OceanBase SQL编译器部分 源码阅读--解析SQL语法树
- 淘宝数据库OceanBase SQL编译器部分 源码阅读--解析SQL语法树
- 淘宝数据库OceanBase SQL编译器部分 源码阅读--解析SQL语法树
- Oracle存储过程基本语法(一)
- DB2存储过程语法解析
- SQLSERVER存储过程基本语法(中)
- MySql存储过程实例解析(一)
- 数据库中存储过程语法
- 以往的存储过程代码(部分)
- oceanbase之RootServer(一)
- OceanBase架构浅析(一)
- Oracle存储过程(一)基本概念及语法
- ORACLE中存储过程的使用(一)
- 生成表中数据的sql语法的存储过程
- Android底部菜单的封装及重用
- Android生命周期2
- Java面相对象(一)
- C语言的指针助记
- RTP协议的H.264视频传输
- oceanbase中存储过程的实现(一)语法解析部分
- 上海联通群面
- MMC卡SPI模式
- C#版三层登录小例子
- smarty模板 将php数组传递给js变量
- appium
- Linux bash 变量
- 高低位字节序
- 追求时尚,选择西安宾利婚车租赁