目录pg_amop
存储关于与访问方法操作符族相关的操作符信息。对于一个操作符族中的每一个成员即操作符都在这个目录中有一行。一个成员可以是一个搜索操作符或者一个排序操作符。一个操作符可以出现在多个族中,但在同一个组中既不能出现在多个搜索位置也不能出现在多个排序位置(虽然不太可能出现,但是允许一个操作符同时用于搜索和排序目的)。
表 51.4. pg_amop
Columns
列类型 描述 |
---|
行标识符 |
这个项所在的操作符系列 |
操作符的左手输入数据类型 |
操作符的右手输入数据类型 |
操作符策略号 |
操作符目的, |
操作符的OID |
使用此操作符系列的索引访问方法 |
如果是一个排序操作符,该项会根据这个 B树操作符族排序,如果是一个搜索操作符则为0 |
一个“搜索”操作符项意味着该操作符族的一个索引可以被搜索来查找所有满足如下条件的行: WHERE
indexed_column
operator
constant
。
显然,这样的一个操作符必须返回boolean
,且它的左手输入类型必须匹配索引列的数据类型。
一个“排序”操作符项意味着该操作符族的一个索引可以被扫描来返回以如下顺序排列的行: ORDER BY
indexed_column
operator
constant
。
这样一个操作符能够返回任何可排序数据类型,尽管它的左手输入类型必须匹配索引列的数据类型。 ORDER BY
的准确语义由amopsortfamily
列指定,它必须引用一个适合于操作符结果类型的B树操作符族。
目前,一个排序操作符的排序顺序被假设为其引用的操作符族的默认值,即ASC NULLS LAST
。未来可能会通过增加额外的列来显式地指定排序选项。
一个项的amopmethod
必须和它所包含的操作符族的opfmethod
相匹配(这里包括amopmethod
是一个为了性能原因而故意对目录结构做的反规范化)。此外,amoplefttype
和amoprighttype
也必须匹配被引用的
pg_operator
项的oprleft
和oprright
域。
一如大多数编程语言,Vimscript支持函数。让我们看看如何创建函数,然后再讨论它们的古怪之处。执行下面的命令::function meow(...
Vim有许多内置(built-in)函数来操作字符串。本章中我们将介绍一些最为重要的字符串函数。长度第一个介绍的函数是strlen。执行下...
在前四十来章中,我们讲解了许多基础方面的内容。 在本书的最后部分,我们将尝试从零开始为一门语言创造Vim插件。这不是个适合懦...
既然已经移除前进路上的绊脚石,是时候开始为我们的Potion插件写下一些有用的代码。 我们将从一些简单的语法高亮开始。在你的插...
查询缓存gdb支持对查询结果的缓存处理,常用于多读少写的查询缓存场景,并支持手动的缓存清理。需要注意的是,查询缓存仅支...