码迷,mamicode.com
首页 > 其他好文 > 详细

oceanbase中存储过程的实现(一)语法解析部分

时间:2014-12-07 17:51:26      阅读:351      评论:0      收藏:0      [点我收藏+]

标签:blog   http   ar   os   使用   sp   on   数据   div   

原创性声明

本文出处为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_指向子节点数组的首地址。

bubuko.com,布布扣

存储过程语法树

bubuko.com,布布扣

上面部分是通过语法解析部分得到的一颗语法树。


oceanbase中存储过程的实现(一)语法解析部分

标签:blog   http   ar   os   使用   sp   on   数据   div   

原文地址:http://blog.csdn.net/zhujunxxxxx/article/details/41788693

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!