注意
1、本系列课程为step by step进入PostgreSQL开发,只适用于新手。
2、教学过程中操作系统选用红帽系列(CentOS,Fedora等等)。
也可以采用其他OS,但这并不属于本次课程内容,如有问题请自行解决。
强烈建议使用虚拟机来完成整个讲座过程,以免影响个人电脑环境,推荐使用 GPL授权(非商业):,或者 商业授权:。
虽然我写过如何配置Windows开发环境的文章,但本课程强烈不建议使用Windows,因为每次编译都需要很长时间,恐怕无法跟随课程体验成果。
3、源代码采用 9.4.x,也可用其他小版本,强烈建议保持一致:
4、了解C语言基本概念,因为讲解的是PG开发,不是C语言;
5、课程设置见下,如有建议和疑问请联系:pgsql-zh-general@postgresql.org
6、开始前请准备好开发环境,不然可能无法跟随课程中的编译过程
开发环境准备
参考
网上有很多教程,请自行搜索,不一一列举。
简易编译过程:
1、源代码解压缩
tar xzvf postgresql-9.4.5.tar.gzcd postgresql-9.4.5
2、安装依赖包,需要连接互联网:
yum install gcc make flex bison perl gettext-devel openssl-devel zlib-devel libxml2-devel libxslt-devel libedit-devel
具体到个人环境可能会有所不同。
yum是RH系命令,Debian系是apt-get,请自行解决。
3、配置
./configure --prefix={自行定义} \ --enable-nls="zh_CN zh_TW" \--without-perl \--without-python \--without-tcl \--without-gssapi \--without-krb5 \--without-pam \--without-ldap \--without-bonjour \--with-openssl \--with-libxml --with-libxslt \--enable-thread-safety \--with-zlib \--without-selinux 、--with-libedit-preferred
4、编译 & 安装
makemake install
第一次 make 需要时间比较长,视机器性能。
课程设置
第一课、编译系统以及编译过程
1、configure 及预处理符
1) 改变参数会发生什么
2) 增加我们自己的preprocessor
3) 定制属于“自己”的数据库产品
2、make 概述
1) GNUmakefile与Makefile
2) 如何加入自己的源代码文件
3) make 如何识别应该编译谁
第二课、为PostgreSQL定义一个新函数
1、定义C函数
1) 参数
2) 获取参数
3) 返回结果
2、定义 BKI
1) 数据库中的初始化
2) 调用过程
3) 定义自己的初始化对象
第三课、为PostgreSQL创建新语法
1) 关键字定义
2) 词法引擎简介
3) 在语法引擎脚本中定义新语法
4) 重新生成语法引擎
5) 成果展示
第四课、数据库初始化(initdb)过程
1) 没有任何系统字典之前的数据定义
2) 基本数据定义(BKI)
3) 其他(single模式下的SQL语句)
第5课、外部插件开发
1) 魔法块(PG_MODULE_MAGIC)
2) 预加载(preload)插件
3) 简单示例
第六课、进阶(PostgreSQL高级定制演示)
1) 同时兼容多种数据库
2) 利用现代硬件(GPU)
3) 对象名默认大写
4) 自定义数据库消息
讲座形式
线上并录屏,天津本地会有现场交互
讲座时间
春节之后,尽量安排在周六白天