• CREATE OPERATOR CLASS


    SYNOPSIS

    CREATE OPERATOR CLASS name [ DEFAULT ] FOR TYPE data_type USING index_method AS
      {  OPERATOR strategy_number operator_name [ ( op_type, op_type ) ] [ RECHECK ]
       | FUNCTION support_number funcname ( argument_type [, ...] )
       | STORAGE storage_type
      } [, ... ]
    
    

    DESCRIPTION 描述

    CREATE OPERATOR CLASS 定义一个新的操作符表。 一个操作符表定义一种特定的数据类型可以如何与一种索引一起使用。 操作符表声明特定的操作符可以为这种数据类型以及这种索引方法填充特定角色或者"策略"。 操作符表还声明索引方法在为一个索引字段选定该操作符表的时候要使用的支持过程。 所有操作符表使用的函数和操作符都必须在创建操作符表之前定义。


     如果给出了模式名字,那么操作符表就在指定的模式中创建。 否则就在当前模式中创建(在搜索路径前面的那个;参阅 CURRENT_SCHEMA())。 在同一个模式中的两个操作符表可以有同样的名字,但它们必须用于不同的索引方法。


     定义操作符表的用户成为其所有者。目前,创造者必须是超级用户。 (作这样的限制是因为一个有问题的操作符表定义会让服务器困惑,甚至崩溃。)

    CREATE OPERATOR CLASS 目前并不检查这个类定义是否包含所有索引方法需要操作符以及函数。 定义一个合法的操作符表是用户的责任。


     参考 ``Interfacing Extensions to Indexes'' 获取更多信息。

    PARAMETERS 参数

    name

     将要创建的操作符表的名字。名字可以用模式修饰。
    DEFAULT

     如果出现了这个键字,那么该操作符表将成为它的数据类型的缺省操作符表。 对于某个数据类型和访问方式而言,最多可以有一个操作符表是缺省的。
    data_type

     这个操作符表处理的字段数据类型。
    index_method

     这个操作符表处理的索引访问方式的名字。
    strategy_number

     一个操作符和这个操作符表关联的索引访问方式的策略数。
    operator_name

     一个和该操作符表关联的操作符的名字(可以用模式修饰)。
    op_type

     一个操作符的输入数据类型,或者是 NONE 表示左目或者右目操作符。 通常情况下可以省略输入数据类型,因为这个时候它们和操作符表的数据类型相同。
    RECHECK

     如果出现,那么索引对这个操作符是"lossy"(有损耗的), 因此,使用这个索引检索的行必须重新检查,以保证它们真正满足和此操作符相关的条件子句。
    support_number

     索引方法对一个与操作符表关联的函数的支持过程数。
    funcname

     一个函数的名字(可以有模式修饰),这个函数是索引访问方式对此操作符表的支持过程。
    argument_types

     函数的参数数据类型。
    storage_type

     实际存储在索引里的数据类型。通常它和字段数据类型相同, 但是一些索引方法(到目前为止只有 GIST)允许它是不同的。 除非索引方法允许使用一种不同的类型,否则必须省略 STORAGE 子句。

    OPERATOR,FUNCTION,和 STORAGE 子句可以按照任意顺序出现。

    EXAMPLES 例子


     下面的例子命令为数据类型 _int4(int4 的数组)定义了一个 GiST 索引操作符表。 参阅 contrib/intarray/ 获取完整的例子。

    CREATE OPERATOR CLASS gist__int_ops
        DEFAULT FOR TYPE _int4 USING gist AS
            OPERATOR        3       &&,
            OPERATOR        6       =       RECHECK,
            OPERATOR        7       @,
            OPERATOR        8       ~,
            OPERATOR        20      @@ (_int4, query_int),
            FUNCTION        1       g_int_consistent (internal, _int4, int4),
            FUNCTION        2       g_int_union (bytea, internal),
            FUNCTION        3       g_int_compress (internal),
            FUNCTION        4       g_int_decompress (internal),
            FUNCTION        5       g_int_penalty (internal, internal, internal),
            FUNCTION        6       g_int_picksplit (internal, internal),
            FUNCTION        7       g_int_same (_int4, _int4, internal);
    
    
  • 相关阅读:
    编程语言的简介
    ava 8 stream的详细用法
    Java 8 Steam 例子整理
    redis常用命令
    常用正则表达式
    保留一些常用文章
    tag的简单使用
    GitFlow详解教程
    Git基本命令和GitFlow工作流
    Redis 2.8.18 安装报错 error: jemalloc/jemalloc.h: No such file or directory
  • 原文地址:https://www.cnblogs.com/fanweisheng/p/11077560.html
Copyright © 2020-2023  润新知