ThinkChat2.0新版上线,更智能更精彩,支持会话、画图、阅读、搜索等,送10W Token,即刻开启你的AI之旅 广告
# Chapter 35\. 扩展SQL **Table of Contents** + 35.1\. 扩展性是如何实现的 + 35.2\. PostgreSQL类型系统 + 35.2.1\. 基本类型 + 35.2.2\. 复合类型 + 35.2.3\. 域 + 35.2.4\. 伪-类型 + 35.2.5\. 多态类型 + 35.3\. 用户定义的函数 + 35.4\. 查询语言(SQL)函数 + 35.4.1\. Arguments for SQL Functions + 35.4.2\. 基本类型上的SQL函数 + 35.4.3\. 复合类型上的SQL函数 + 35.4.4\. 带输出参数的SQL函数 + 35.4.5\. 带有参数可变数量的SQL + 35.4.6\. 具有参数缺省值的SQL函数 + 35.4.7\. 作为表数据源的SQL函数 + 35.4.8\. 返回集合的SQL函数 + 35.4.9\. 返回`TABLE`的SQL函数 + 35.4.10\. 多态SQL函数 + 35.4.11\. 带有排序规则的SQL函数 + 35.5\. 函数重载 + 35.6\. 函数易失性范畴 + 35.7\. 过程语言函数 + 35.8\. 内部函数 + 35.9\. C-语言函数 + 35.9.1\. 动态加载 + 35.9.2\. 基本类型的C语言函数 + 35.9.3\. 版本-0调用约定 + 35.9.4\. 版本1调用约定 + 35.9.5\. 书写代码 + 35.9.6\. 编译和链接动态加载的函数 + 35.9.7\. 复合类型参数 + 35.9.8\. 返回行(复合类型) + 35.9.9\. 返回集合 + 35.9.10\. 多态参数和返回类型 + 35.9.11\. 转换函数 + 35.9.12\. 共享内存和LWLocks + 35.9.13\. 使用C++的可扩展性 + 35.10\. 用户定义聚集 + 35.11\. 用户定义类型 + 35.12\. 用户定义操作符 + 35.13\. 操作符优化信息 + 35.13.1\. `COMMUTATOR` + 35.13.2\. `NEGATOR` + 35.13.3\. `RESTRICT` + 35.13.4\. `JOIN` + 35.13.5\. `HASHES` + 35.13.6\. `MERGES` + 35.14\. 扩展索引接口 + 35.14.1\. 索引方法和操作符类 + 35.14.2\. 索引方法策略 + 35.14.3\. 索引方法支持过程 + 35.14.4\. 例子 + 35.14.5\. 操作符类和操作符族 + 35.14.6\. 操作符类的系统相关性 + 35.14.7\. 排序操作符 + 35.14.8\. 操作符类的特殊特性 + 35.15\. 包装相关对象到一个扩展 + 35.15.1\. 扩展文件 + 35.15.2\. 扩展浮动 + 35.15.3\. 扩展配置表 + 35.15.4\. 扩展更新 + 35.15.5\. 扩展实例 + 35.16\. 扩展基础设施建设 在本章的剩余部分, 我们将讨论你如何通过增加下面几种对象来扩展PostgreSQL 的SQL查询语言: * 函数(开始于[Section 35.3](#calibre_link-737)) * 聚集(开始于[Section 35.10](#calibre_link-836)) * 数据类型(开始于[Section 35.11](#calibre_link-837)) * 操作符(开始于[Section 35.12](#calibre_link-838)) * 索引操作符类(开始于[Section 35.14](#calibre_link-54)) * 相关对象打包(开始于[Section 35.15](#calibre_link-840))