跳至主要內容

KlustronDB大约 3 分钟

第 38 章 扩展 SQL

目录

38.1. 扩展性如何工作

38.2. PostgreSQL类型系统 : 38.2.1. 基础类型

[38.2.2. 容器类型](extend-type-system.md#id-1.8.3.5.10)

[38.2.3. 域](extend-type-system.md#EXTEND-TYPE-SYSTEM-DOMAINS)

[38.2.4. 伪类型](extend-type-system.md#id-1.8.3.5.12)

[38.2.5. 多态类型](extend-type-system.md#EXTEND-TYPES-POLYMORPHIC)

38.3. 用户定义的函数

38.4. 用户定义的过程

38.5. 查询语言(SQL)函数 : 38.5.1. SQL函数的参数

[38.5.2. 基本类型上的SQL](xfunc-sql.md#XFUNC-SQL-BASE-FUNCTIONS)

[38.5.3. 组合类型上的SQL函数](xfunc-sql.md#XFUNC-SQL-COMPOSITE-FUNCTIONS)

[38.5.4. 带有输出参数的SQL函数](xfunc-sql.md#XFUNC-OUTPUT-PARAMETERS)

[38.5.5. 带有可变数量参数的SQL函数](xfunc-sql.md#XFUNC-SQL-VARIADIC-FUNCTIONS)

[38.5.6. 带有参数默认值的SQL函数](xfunc-sql.md#XFUNC-SQL-PARAMETER-DEFAULTS)

[38.5.7. SQL 函数作为表来源](xfunc-sql.md#XFUNC-SQL-TABLE-FUNCTIONS)

[38.5.8. 返回集合的SQL函数](xfunc-sql.md#XFUNC-SQL-FUNCTIONS-RETURNING-SET)

[38.5.9. 返回`TABLE`的SQL函数](xfunc-sql.md#XFUNC-SQL-FUNCTIONS-RETURNING-TABLE)

[38.5.10. 多态SQL函数](xfunc-sql.md#id-1.8.3.8.18)

[38.5.11. 带有排序规则的SQL函数](xfunc-sql.md#id-1.8.3.8.19)

38.6. 函数重载

38.7. 函数易变性分类

38.8. 过程语言函数

38.9. 内部函数

38.10. C 语言函数 : 38.10.1. 动态载入

[38.10.2. C 语言函数中的基本类型](xfunc-c.md#XFUNC-C-BASETYPE)

[38.10.3. 版本 1 的调用约定](xfunc-c.md#id-1.8.3.13.7)

[38.10.4. 编写代码](xfunc-c.md#id-1.8.3.13.8)

[38.10.5. 编译和链接动态载入的函数](xfunc-c.md#DFUNC)

[38.10.6. 组合类型参数](xfunc-c.md#id-1.8.3.13.10)

[38.10.7. 返回行(组合类型)](xfunc-c.md#id-1.8.3.13.11)

[38.10.8. 返回集合](xfunc-c.md#XFUNC-C-RETURN-SET)

[38.10.9. 多态参数和返回类型](xfunc-c.md#id-1.8.3.13.13)

[38.10.10. 转换函数](xfunc-c.md#XFUNC-TRANSFORM-FUNCTIONS)

[38.10.11. 共享内存和 LWLock](xfunc-c.md#id-1.8.3.13.15)

[38.10.12. 把 C++ 用于可扩展性](xfunc-c.md#EXTEND-CPP)

38.11. 用户定义的聚集 : 38.11.1. 移动聚集模式

[38.11.2. 多态和可变聚集](xaggr.md#XAGGR-POLYMORPHIC-AGGREGATES)

[38.11.3. 有序集聚集](xaggr.md#XAGGR-ORDERED-SET-AGGREGATES)

[38.11.4. 部分聚集](xaggr.md#XAGGR-PARTIAL-AGGREGATES)

[38.11.5. 聚集的支持函数](xaggr.md#XAGGR-SUPPORT-FUNCTIONS)

38.12. 用户定义的类型 : 38.12.1. TOAST 考量

38.13. 用户定义的操作符

38.14. 操作符优化信息 : 38.14.1. COMMUTATOR

[38.14.2. `NEGATOR`](xoper-optimization.md#id-1.8.3.17.5)

[38.14.3. `RESTRICT`](xoper-optimization.md#id-1.8.3.17.6)

[38.14.4. `JOIN`](xoper-optimization.md#id-1.8.3.17.7)

[38.14.5. `HASHES`](xoper-optimization.md#id-1.8.3.17.8)

[38.14.6. `MERGES`](xoper-optimization.md#id-1.8.3.17.9)

38.15. 索引的接口扩展 : 38.15.1. 索引方法和操作符类

[38.15.2. 索引方法策略](xindex.md#XINDEX-STRATEGIES)

[38.15.3. 索引方法支持例程](xindex.md#XINDEX-SUPPORT)

[38.15.4. 一个例子](xindex.md#XINDEX-EXAMPLE)

[38.15.5. 操作符类和操作符族](xindex.md#XINDEX-OPFAMILY)

[38.15.6. 操作符类上的系统依赖](xindex.md#XINDEX-OPCLASS-DEPENDENCIES)

[38.15.7. 排序操作符](xindex.md#XINDEX-ORDERING-OPS)

[38.15.8. 操作符类的特性](xindex.md#XINDEX-OPCLASS-FEATURES)

38.16. 打包相关对象到一个扩展中 : 38.16.1. 定义扩展对象

[38.16.2. 扩展文件](extend-extensions.md#id-1.8.3.19.12)

[38.16.3. 扩展可再定位性](extend-extensions.md#EXTEND-EXTENSIONS-RELOCATION)

[38.16.4. 扩展配置表](extend-extensions.md#EXTEND-EXTENSIONS-CONFIG-TABLES)

[38.16.5. 扩展更新](extend-extensions.md#id-1.8.3.19.15)

[38.16.6. 用更新脚本安装扩展](extend-extensions.md#id-1.8.3.19.16)

[38.16.7. 扩展实例](extend-extensions.md#EXTEND-EXTENSIONS-EXAMPLE)

38.17. 扩展的构建基础设施

在下面的小节中,我们将讨论如何通过增加各种元素来扩展PostgreSQL SQL 查询语言: