正文内容加载中...
posted @ 2014-07-09 15:47 蝴蝶忽然 阅读(1068) 评论(0) 编辑
摘要: 淘宝数据库OceanBase SQL编译器部分 源码阅读--生成物理查询计划 SQL编译解析三部曲分为:构建语法树,制定逻辑计划,生成物理执行计划。前两个步骤请参见我的博客>和>.这篇博客主要研究第三步,生成物理查询计划。 一、 什么是物理查询计划 与之前的...阅读全文
posted @ 2014-06-12 01:18 蝴蝶忽然 阅读(351) 评论(0) 编辑
摘要: 淘宝数据库OceanBase SQL编译器部分 源码阅读--生成逻辑计划 SQL编译解析三部曲分为:构建语法树,生成逻辑计划,指定物理执行计划。第一步骤,在我的上一篇博客淘宝数据库OceanBase SQL编译器部分 源码阅读--解析SQL语法树里做了介绍,这篇博客主要研究第二步,生成逻辑计划。 ...阅读全文
posted @ 2014-06-08 14:08 蝴蝶忽然 阅读(140) 评论(0) 编辑
摘要: node的实现是PostgreSQL的查询解析的基础,实现的关键是两个宏,makeNode和newNode。其他节点继承自Node节点,如果增加新的结构体,需要添加NodeTag中添加对应的枚举值,并在equal和nodetoString中添加对于的处理代码。当结构体少是很容易处理,如果结构体过多,维护会比较麻烦。PostgreSQL中大约有300个继承自node的结构体,写代码的人真是需要相当...阅读全文
posted @ 2013-11-11 20:54 蝴蝶忽然 阅读(139) 评论(0) 编辑
摘要: 一、node节点的定义源代码路径postgresql-9.2.3/src/include/nodes/nodes.h在查询解析SQL的查询部分,要用到大量的结构体,许多函数处理的逻辑类似,就是传入的结构体不同,为了处理这个问题,pg采用了一个基础结构体struct node,其他结构体的第一个字段与node的相同。通过这个字段来标识不同的结构体,而又同时能统一接口函数。pg主要采用c实现,因此没有...阅读全文
posted @ 2013-11-07 17:11 蝴蝶忽然 阅读(317) 评论(0) 编辑
摘要: 《只需倾听》读书笔记读前杂谈读完《只需倾听》,感慨颇多,深深为自己以往的那些错误的想法和不得当的行为感到后悔。生活在很多人和人之间产生的问题其实都很容易化解,只是之前我们都没有掌握到正确的方法而已。作为一个技术为主的个人,曾经认为只要有了技术,有了本事就可以,于是忽略了人和人之间沟通的重要性。以为只要手执利剑,就能保护自己心爱之人。然而,事实并非如此,等到自己长大了,经历了人生中的许多风雨,忽...阅读全文
posted @ 2013-11-01 08:54 蝴蝶忽然 阅读(516) 评论(0) 编辑
摘要: 内存管理是计算机编程的一个基本问题。如果管理不善,就会造成内存泄漏,频繁的内存申请和释放往往还会造成内存碎片。程序申请内存时需要要操作系统打交道,在系统的多进程环境下,这是一个较为耗时的操作。频率的申请甚至可能会成为系统性能的瓶颈。程序可以在3个地方申请内存,包括全局数据区,栈,堆。全局数据区分配的数据生命周期与程序的生命一样,栈上的数据由系统管理,但是大小有限。程序还可以在堆上申请内存,但是这部...阅读全文
posted @ 2013-10-29 20:12 蝴蝶忽然 阅读(90) 评论(0) 编辑