- 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
PostgreSQL扩展类型开发(5-6)
PostgreSQL扩展类型开发 北京大学遥感所 陈斌 chenbin@ 目录 开发环境安装与配置(win32平台) PostgreSQL 8.0,包括源代码 MinGW和MSYS 一个例子:complex类型 在PostgreSQL中扩展基本类型与SQL PostgreSQL中的几何类型 作业要求(第一阶段) 开发环境安装与配置win32 安装PostgreSQL 8.0 for win32 无特别注意,连续Next即可 安装MinGW – Minimalist GNU for Win32 GNU开发工具的win32版本 包括gcc,gdb和其它/bin下面的开发工具 可以编译出win32的可执行程序 开发环境安装与配置win32 安装MSYS – Minimal SYStem 一个在win32平台上实现的最小化POSIX环境,使GNU的软件可以很容易通过MinGW编译环境来移植到win32平台 实现文件系统路径的映射(win-posix) 提供一个bash shell和一些系统工具 提供文件系统操作的命令 提供文本编辑器vi 开发环境安装与配置win32 安装MSYS – Minimal SYStem 安装过程中注意指定MinGW的路径 启动MSYS图标进入 注意文件系统路径映射 /, /usr, /bin, /usr/bin, /tmp, /c, /d, /e… /home/username 常用命令 列出文件:ls 目录操作:cd, pwd, mkdir, rmdir 文本编辑器vi 功能强大,纯键盘操作,效率很高 输入模式:输入文字 编辑模式:浏览/查找、插入/添加/复制 命令模式:执行文件和文本编辑命令 make概念 用于控制从源文件生成目标,并定义目标和源之间的依赖关系 通常用于多源文件软件的编译调试 也可以用于更多目的 简单例子: main.exe: main.c cc –o main.exe main.c 安装PostgreSQL源代码 解开压缩包 到/home/username/pgsql目录 为源代码配置编译环境信息 cd pgsql configure --without-zlib PostgreSQL的类型系统 基本类型Base Type 在SQL层次更低级别上实现的数据类型 如int, char等,通过C语言实现的 分为标量类型及其对应的数组类型 复合类型Composite Type/Row Type 用户使用SQL实现的包含内部字段结构的自定义类型 字段类型是基本类型 PostgreSQL的类型系统 域Domain 用户使用SQL实现的自定义类型:带约束条件的基本类型 CREATE DOMAIN us_postal_code AS TEXT CHECK( VALUE ~ ^\d{5}$ OR VALUE ~ ^\d{5}-\d{4}$ ); PostgreSQL的类型系统 伪类型Pseudo-Type 不能出现在表定义中,也不能做复合类型的属性,可以作为函数参数和返回类型 扩展类型和SQL CREATE DOMAIN 创建域 CREATE TYPE 创建复合类型 创建基本类型 CREATE FUNCTION 用户自定义函数 CREATE OPERATOR 用户自定义操作符 扩展基本类型的步骤 按照规范编写C程序,编译通过,放在pgsql/lib目录 输入输出函数 类型操作函数 创建扩展类型的基本输入输出函数 CREATE FUNCTION 创建基本类型 CREATE TYPE 创建扩展类型的其它操作函数包括聚集函数 CREATE FUNCTION CREATE AGGREGATE 一个例子:复数complex 在pgsql中扩展复数类型,实现复数的运算、比较等 pgsql/src/tutorial/complex.* complex.c实现复数运算的规范代码 complex.source:创建类型的SQL语句 complex.c 包含头文件 #include postgres.h #include fmgr.h“ 定义内部结构 typedef struct Complex { double x; double y; } Complex; complex.c 规范的函数头说明 Datum complex_in(PG_FUNCTION_ARGS); Datum complex_out(PG_FUNCTION_ARGS); Datum complex_recv(PG_FUNCTION_ARGS); Datum complex_send(PG_FUNCTION_ARGS); Datum complex_add(PG_FUNCTION_ARGS); Datum complex_abs_lt(P
文档评论(0)