postgresql/src/include/catalog/pg_amop.dat

2437 lines
123 KiB
Plaintext

#----------------------------------------------------------------------
#
# pg_amop.dat
# Initial contents of the pg_amop system catalog.
#
# Portions Copyright (c) 1996-2019, PostgreSQL Global Development Group
# Portions Copyright (c) 1994, Regents of the University of California
#
# src/include/catalog/pg_amop.dat
#
#----------------------------------------------------------------------
[
# btree integer_ops
# default operators int2
{ amopfamily => 'btree/integer_ops', amoplefttype => 'int2',
amoprighttype => 'int2', amopstrategy => '1', amopopr => '<(int2,int2)',
amopmethod => 'btree' },
{ amopfamily => 'btree/integer_ops', amoplefttype => 'int2',
amoprighttype => 'int2', amopstrategy => '2', amopopr => '<=(int2,int2)',
amopmethod => 'btree' },
{ amopfamily => 'btree/integer_ops', amoplefttype => 'int2',
amoprighttype => 'int2', amopstrategy => '3', amopopr => '=(int2,int2)',
amopmethod => 'btree' },
{ amopfamily => 'btree/integer_ops', amoplefttype => 'int2',
amoprighttype => 'int2', amopstrategy => '4', amopopr => '>=(int2,int2)',
amopmethod => 'btree' },
{ amopfamily => 'btree/integer_ops', amoplefttype => 'int2',
amoprighttype => 'int2', amopstrategy => '5', amopopr => '>(int2,int2)',
amopmethod => 'btree' },
# crosstype operators int24
{ amopfamily => 'btree/integer_ops', amoplefttype => 'int2',
amoprighttype => 'int4', amopstrategy => '1', amopopr => '<(int2,int4)',
amopmethod => 'btree' },
{ amopfamily => 'btree/integer_ops', amoplefttype => 'int2',
amoprighttype => 'int4', amopstrategy => '2', amopopr => '<=(int2,int4)',
amopmethod => 'btree' },
{ amopfamily => 'btree/integer_ops', amoplefttype => 'int2',
amoprighttype => 'int4', amopstrategy => '3', amopopr => '=(int2,int4)',
amopmethod => 'btree' },
{ amopfamily => 'btree/integer_ops', amoplefttype => 'int2',
amoprighttype => 'int4', amopstrategy => '4', amopopr => '>=(int2,int4)',
amopmethod => 'btree' },
{ amopfamily => 'btree/integer_ops', amoplefttype => 'int2',
amoprighttype => 'int4', amopstrategy => '5', amopopr => '>(int2,int4)',
amopmethod => 'btree' },
# crosstype operators int28
{ amopfamily => 'btree/integer_ops', amoplefttype => 'int2',
amoprighttype => 'int8', amopstrategy => '1', amopopr => '<(int2,int8)',
amopmethod => 'btree' },
{ amopfamily => 'btree/integer_ops', amoplefttype => 'int2',
amoprighttype => 'int8', amopstrategy => '2', amopopr => '<=(int2,int8)',
amopmethod => 'btree' },
{ amopfamily => 'btree/integer_ops', amoplefttype => 'int2',
amoprighttype => 'int8', amopstrategy => '3', amopopr => '=(int2,int8)',
amopmethod => 'btree' },
{ amopfamily => 'btree/integer_ops', amoplefttype => 'int2',
amoprighttype => 'int8', amopstrategy => '4', amopopr => '>=(int2,int8)',
amopmethod => 'btree' },
{ amopfamily => 'btree/integer_ops', amoplefttype => 'int2',
amoprighttype => 'int8', amopstrategy => '5', amopopr => '>(int2,int8)',
amopmethod => 'btree' },
# default operators int4
{ amopfamily => 'btree/integer_ops', amoplefttype => 'int4',
amoprighttype => 'int4', amopstrategy => '1', amopopr => '<(int4,int4)',
amopmethod => 'btree' },
{ amopfamily => 'btree/integer_ops', amoplefttype => 'int4',
amoprighttype => 'int4', amopstrategy => '2', amopopr => '<=(int4,int4)',
amopmethod => 'btree' },
{ amopfamily => 'btree/integer_ops', amoplefttype => 'int4',
amoprighttype => 'int4', amopstrategy => '3', amopopr => '=(int4,int4)',
amopmethod => 'btree' },
{ amopfamily => 'btree/integer_ops', amoplefttype => 'int4',
amoprighttype => 'int4', amopstrategy => '4', amopopr => '>=(int4,int4)',
amopmethod => 'btree' },
{ amopfamily => 'btree/integer_ops', amoplefttype => 'int4',
amoprighttype => 'int4', amopstrategy => '5', amopopr => '>(int4,int4)',
amopmethod => 'btree' },
# crosstype operators int42
{ amopfamily => 'btree/integer_ops', amoplefttype => 'int4',
amoprighttype => 'int2', amopstrategy => '1', amopopr => '<(int4,int2)',
amopmethod => 'btree' },
{ amopfamily => 'btree/integer_ops', amoplefttype => 'int4',
amoprighttype => 'int2', amopstrategy => '2', amopopr => '<=(int4,int2)',
amopmethod => 'btree' },
{ amopfamily => 'btree/integer_ops', amoplefttype => 'int4',
amoprighttype => 'int2', amopstrategy => '3', amopopr => '=(int4,int2)',
amopmethod => 'btree' },
{ amopfamily => 'btree/integer_ops', amoplefttype => 'int4',
amoprighttype => 'int2', amopstrategy => '4', amopopr => '>=(int4,int2)',
amopmethod => 'btree' },
{ amopfamily => 'btree/integer_ops', amoplefttype => 'int4',
amoprighttype => 'int2', amopstrategy => '5', amopopr => '>(int4,int2)',
amopmethod => 'btree' },
# crosstype operators int48
{ amopfamily => 'btree/integer_ops', amoplefttype => 'int4',
amoprighttype => 'int8', amopstrategy => '1', amopopr => '<(int4,int8)',
amopmethod => 'btree' },
{ amopfamily => 'btree/integer_ops', amoplefttype => 'int4',
amoprighttype => 'int8', amopstrategy => '2', amopopr => '<=(int4,int8)',
amopmethod => 'btree' },
{ amopfamily => 'btree/integer_ops', amoplefttype => 'int4',
amoprighttype => 'int8', amopstrategy => '3', amopopr => '=(int4,int8)',
amopmethod => 'btree' },
{ amopfamily => 'btree/integer_ops', amoplefttype => 'int4',
amoprighttype => 'int8', amopstrategy => '4', amopopr => '>=(int4,int8)',
amopmethod => 'btree' },
{ amopfamily => 'btree/integer_ops', amoplefttype => 'int4',
amoprighttype => 'int8', amopstrategy => '5', amopopr => '>(int4,int8)',
amopmethod => 'btree' },
# default operators int8
{ amopfamily => 'btree/integer_ops', amoplefttype => 'int8',
amoprighttype => 'int8', amopstrategy => '1', amopopr => '<(int8,int8)',
amopmethod => 'btree' },
{ amopfamily => 'btree/integer_ops', amoplefttype => 'int8',
amoprighttype => 'int8', amopstrategy => '2', amopopr => '<=(int8,int8)',
amopmethod => 'btree' },
{ amopfamily => 'btree/integer_ops', amoplefttype => 'int8',
amoprighttype => 'int8', amopstrategy => '3', amopopr => '=(int8,int8)',
amopmethod => 'btree' },
{ amopfamily => 'btree/integer_ops', amoplefttype => 'int8',
amoprighttype => 'int8', amopstrategy => '4', amopopr => '>=(int8,int8)',
amopmethod => 'btree' },
{ amopfamily => 'btree/integer_ops', amoplefttype => 'int8',
amoprighttype => 'int8', amopstrategy => '5', amopopr => '>(int8,int8)',
amopmethod => 'btree' },
# crosstype operators int82
{ amopfamily => 'btree/integer_ops', amoplefttype => 'int8',
amoprighttype => 'int2', amopstrategy => '1', amopopr => '<(int8,int2)',
amopmethod => 'btree' },
{ amopfamily => 'btree/integer_ops', amoplefttype => 'int8',
amoprighttype => 'int2', amopstrategy => '2', amopopr => '<=(int8,int2)',
amopmethod => 'btree' },
{ amopfamily => 'btree/integer_ops', amoplefttype => 'int8',
amoprighttype => 'int2', amopstrategy => '3', amopopr => '=(int8,int2)',
amopmethod => 'btree' },
{ amopfamily => 'btree/integer_ops', amoplefttype => 'int8',
amoprighttype => 'int2', amopstrategy => '4', amopopr => '>=(int8,int2)',
amopmethod => 'btree' },
{ amopfamily => 'btree/integer_ops', amoplefttype => 'int8',
amoprighttype => 'int2', amopstrategy => '5', amopopr => '>(int8,int2)',
amopmethod => 'btree' },
# crosstype operators int84
{ amopfamily => 'btree/integer_ops', amoplefttype => 'int8',
amoprighttype => 'int4', amopstrategy => '1', amopopr => '<(int8,int4)',
amopmethod => 'btree' },
{ amopfamily => 'btree/integer_ops', amoplefttype => 'int8',
amoprighttype => 'int4', amopstrategy => '2', amopopr => '<=(int8,int4)',
amopmethod => 'btree' },
{ amopfamily => 'btree/integer_ops', amoplefttype => 'int8',
amoprighttype => 'int4', amopstrategy => '3', amopopr => '=(int8,int4)',
amopmethod => 'btree' },
{ amopfamily => 'btree/integer_ops', amoplefttype => 'int8',
amoprighttype => 'int4', amopstrategy => '4', amopopr => '>=(int8,int4)',
amopmethod => 'btree' },
{ amopfamily => 'btree/integer_ops', amoplefttype => 'int8',
amoprighttype => 'int4', amopstrategy => '5', amopopr => '>(int8,int4)',
amopmethod => 'btree' },
# btree oid_ops
{ amopfamily => 'btree/oid_ops', amoplefttype => 'oid', amoprighttype => 'oid',
amopstrategy => '1', amopopr => '<(oid,oid)', amopmethod => 'btree' },
{ amopfamily => 'btree/oid_ops', amoplefttype => 'oid', amoprighttype => 'oid',
amopstrategy => '2', amopopr => '<=(oid,oid)', amopmethod => 'btree' },
{ amopfamily => 'btree/oid_ops', amoplefttype => 'oid', amoprighttype => 'oid',
amopstrategy => '3', amopopr => '=(oid,oid)', amopmethod => 'btree' },
{ amopfamily => 'btree/oid_ops', amoplefttype => 'oid', amoprighttype => 'oid',
amopstrategy => '4', amopopr => '>=(oid,oid)', amopmethod => 'btree' },
{ amopfamily => 'btree/oid_ops', amoplefttype => 'oid', amoprighttype => 'oid',
amopstrategy => '5', amopopr => '>(oid,oid)', amopmethod => 'btree' },
# btree tid_ops
{ amopfamily => 'btree/tid_ops', amoplefttype => 'tid', amoprighttype => 'tid',
amopstrategy => '1', amopopr => '<(tid,tid)', amopmethod => 'btree' },
{ amopfamily => 'btree/tid_ops', amoplefttype => 'tid', amoprighttype => 'tid',
amopstrategy => '2', amopopr => '<=(tid,tid)', amopmethod => 'btree' },
{ amopfamily => 'btree/tid_ops', amoplefttype => 'tid', amoprighttype => 'tid',
amopstrategy => '3', amopopr => '=(tid,tid)', amopmethod => 'btree' },
{ amopfamily => 'btree/tid_ops', amoplefttype => 'tid', amoprighttype => 'tid',
amopstrategy => '4', amopopr => '>=(tid,tid)', amopmethod => 'btree' },
{ amopfamily => 'btree/tid_ops', amoplefttype => 'tid', amoprighttype => 'tid',
amopstrategy => '5', amopopr => '>(tid,tid)', amopmethod => 'btree' },
# btree oidvector_ops
{ amopfamily => 'btree/oidvector_ops', amoplefttype => 'oidvector',
amoprighttype => 'oidvector', amopstrategy => '1',
amopopr => '<(oidvector,oidvector)', amopmethod => 'btree' },
{ amopfamily => 'btree/oidvector_ops', amoplefttype => 'oidvector',
amoprighttype => 'oidvector', amopstrategy => '2',
amopopr => '<=(oidvector,oidvector)', amopmethod => 'btree' },
{ amopfamily => 'btree/oidvector_ops', amoplefttype => 'oidvector',
amoprighttype => 'oidvector', amopstrategy => '3',
amopopr => '=(oidvector,oidvector)', amopmethod => 'btree' },
{ amopfamily => 'btree/oidvector_ops', amoplefttype => 'oidvector',
amoprighttype => 'oidvector', amopstrategy => '4',
amopopr => '>=(oidvector,oidvector)', amopmethod => 'btree' },
{ amopfamily => 'btree/oidvector_ops', amoplefttype => 'oidvector',
amoprighttype => 'oidvector', amopstrategy => '5',
amopopr => '>(oidvector,oidvector)', amopmethod => 'btree' },
# btree float_ops
# default operators float4
{ amopfamily => 'btree/float_ops', amoplefttype => 'float4',
amoprighttype => 'float4', amopstrategy => '1', amopopr => '<(float4,float4)',
amopmethod => 'btree' },
{ amopfamily => 'btree/float_ops', amoplefttype => 'float4',
amoprighttype => 'float4', amopstrategy => '2',
amopopr => '<=(float4,float4)', amopmethod => 'btree' },
{ amopfamily => 'btree/float_ops', amoplefttype => 'float4',
amoprighttype => 'float4', amopstrategy => '3', amopopr => '=(float4,float4)',
amopmethod => 'btree' },
{ amopfamily => 'btree/float_ops', amoplefttype => 'float4',
amoprighttype => 'float4', amopstrategy => '4',
amopopr => '>=(float4,float4)', amopmethod => 'btree' },
{ amopfamily => 'btree/float_ops', amoplefttype => 'float4',
amoprighttype => 'float4', amopstrategy => '5', amopopr => '>(float4,float4)',
amopmethod => 'btree' },
# crosstype operators float48
{ amopfamily => 'btree/float_ops', amoplefttype => 'float4',
amoprighttype => 'float8', amopstrategy => '1', amopopr => '<(float4,float8)',
amopmethod => 'btree' },
{ amopfamily => 'btree/float_ops', amoplefttype => 'float4',
amoprighttype => 'float8', amopstrategy => '2',
amopopr => '<=(float4,float8)', amopmethod => 'btree' },
{ amopfamily => 'btree/float_ops', amoplefttype => 'float4',
amoprighttype => 'float8', amopstrategy => '3', amopopr => '=(float4,float8)',
amopmethod => 'btree' },
{ amopfamily => 'btree/float_ops', amoplefttype => 'float4',
amoprighttype => 'float8', amopstrategy => '4',
amopopr => '>=(float4,float8)', amopmethod => 'btree' },
{ amopfamily => 'btree/float_ops', amoplefttype => 'float4',
amoprighttype => 'float8', amopstrategy => '5', amopopr => '>(float4,float8)',
amopmethod => 'btree' },
# default operators float8
{ amopfamily => 'btree/float_ops', amoplefttype => 'float8',
amoprighttype => 'float8', amopstrategy => '1', amopopr => '<(float8,float8)',
amopmethod => 'btree' },
{ amopfamily => 'btree/float_ops', amoplefttype => 'float8',
amoprighttype => 'float8', amopstrategy => '2',
amopopr => '<=(float8,float8)', amopmethod => 'btree' },
{ amopfamily => 'btree/float_ops', amoplefttype => 'float8',
amoprighttype => 'float8', amopstrategy => '3', amopopr => '=(float8,float8)',
amopmethod => 'btree' },
{ amopfamily => 'btree/float_ops', amoplefttype => 'float8',
amoprighttype => 'float8', amopstrategy => '4',
amopopr => '>=(float8,float8)', amopmethod => 'btree' },
{ amopfamily => 'btree/float_ops', amoplefttype => 'float8',
amoprighttype => 'float8', amopstrategy => '5', amopopr => '>(float8,float8)',
amopmethod => 'btree' },
# crosstype operators float84
{ amopfamily => 'btree/float_ops', amoplefttype => 'float8',
amoprighttype => 'float4', amopstrategy => '1', amopopr => '<(float8,float4)',
amopmethod => 'btree' },
{ amopfamily => 'btree/float_ops', amoplefttype => 'float8',
amoprighttype => 'float4', amopstrategy => '2',
amopopr => '<=(float8,float4)', amopmethod => 'btree' },
{ amopfamily => 'btree/float_ops', amoplefttype => 'float8',
amoprighttype => 'float4', amopstrategy => '3', amopopr => '=(float8,float4)',
amopmethod => 'btree' },
{ amopfamily => 'btree/float_ops', amoplefttype => 'float8',
amoprighttype => 'float4', amopstrategy => '4',
amopopr => '>=(float8,float4)', amopmethod => 'btree' },
{ amopfamily => 'btree/float_ops', amoplefttype => 'float8',
amoprighttype => 'float4', amopstrategy => '5', amopopr => '>(float8,float4)',
amopmethod => 'btree' },
# btree char_ops
{ amopfamily => 'btree/char_ops', amoplefttype => 'char',
amoprighttype => 'char', amopstrategy => '1', amopopr => '<(char,char)',
amopmethod => 'btree' },
{ amopfamily => 'btree/char_ops', amoplefttype => 'char',
amoprighttype => 'char', amopstrategy => '2', amopopr => '<=(char,char)',
amopmethod => 'btree' },
{ amopfamily => 'btree/char_ops', amoplefttype => 'char',
amoprighttype => 'char', amopstrategy => '3', amopopr => '=(char,char)',
amopmethod => 'btree' },
{ amopfamily => 'btree/char_ops', amoplefttype => 'char',
amoprighttype => 'char', amopstrategy => '4', amopopr => '>=(char,char)',
amopmethod => 'btree' },
{ amopfamily => 'btree/char_ops', amoplefttype => 'char',
amoprighttype => 'char', amopstrategy => '5', amopopr => '>(char,char)',
amopmethod => 'btree' },
# btree text_ops
{ amopfamily => 'btree/text_ops', amoplefttype => 'text',
amoprighttype => 'text', amopstrategy => '1', amopopr => '<(text,text)',
amopmethod => 'btree' },
{ amopfamily => 'btree/text_ops', amoplefttype => 'text',
amoprighttype => 'text', amopstrategy => '2', amopopr => '<=(text,text)',
amopmethod => 'btree' },
{ amopfamily => 'btree/text_ops', amoplefttype => 'text',
amoprighttype => 'text', amopstrategy => '3', amopopr => '=(text,text)',
amopmethod => 'btree' },
{ amopfamily => 'btree/text_ops', amoplefttype => 'text',
amoprighttype => 'text', amopstrategy => '4', amopopr => '>=(text,text)',
amopmethod => 'btree' },
{ amopfamily => 'btree/text_ops', amoplefttype => 'text',
amoprighttype => 'text', amopstrategy => '5', amopopr => '>(text,text)',
amopmethod => 'btree' },
{ amopfamily => 'btree/text_ops', amoplefttype => 'name',
amoprighttype => 'name', amopstrategy => '1', amopopr => '<(name,name)',
amopmethod => 'btree' },
{ amopfamily => 'btree/text_ops', amoplefttype => 'name',
amoprighttype => 'name', amopstrategy => '2', amopopr => '<=(name,name)',
amopmethod => 'btree' },
{ amopfamily => 'btree/text_ops', amoplefttype => 'name',
amoprighttype => 'name', amopstrategy => '3', amopopr => '=(name,name)',
amopmethod => 'btree' },
{ amopfamily => 'btree/text_ops', amoplefttype => 'name',
amoprighttype => 'name', amopstrategy => '4', amopopr => '>=(name,name)',
amopmethod => 'btree' },
{ amopfamily => 'btree/text_ops', amoplefttype => 'name',
amoprighttype => 'name', amopstrategy => '5', amopopr => '>(name,name)',
amopmethod => 'btree' },
{ amopfamily => 'btree/text_ops', amoplefttype => 'name',
amoprighttype => 'text', amopstrategy => '1', amopopr => '<(name,text)',
amopmethod => 'btree' },
{ amopfamily => 'btree/text_ops', amoplefttype => 'name',
amoprighttype => 'text', amopstrategy => '2', amopopr => '<=(name,text)',
amopmethod => 'btree' },
{ amopfamily => 'btree/text_ops', amoplefttype => 'name',
amoprighttype => 'text', amopstrategy => '3', amopopr => '=(name,text)',
amopmethod => 'btree' },
{ amopfamily => 'btree/text_ops', amoplefttype => 'name',
amoprighttype => 'text', amopstrategy => '4', amopopr => '>=(name,text)',
amopmethod => 'btree' },
{ amopfamily => 'btree/text_ops', amoplefttype => 'name',
amoprighttype => 'text', amopstrategy => '5', amopopr => '>(name,text)',
amopmethod => 'btree' },
{ amopfamily => 'btree/text_ops', amoplefttype => 'text',
amoprighttype => 'name', amopstrategy => '1', amopopr => '<(text,name)',
amopmethod => 'btree' },
{ amopfamily => 'btree/text_ops', amoplefttype => 'text',
amoprighttype => 'name', amopstrategy => '2', amopopr => '<=(text,name)',
amopmethod => 'btree' },
{ amopfamily => 'btree/text_ops', amoplefttype => 'text',
amoprighttype => 'name', amopstrategy => '3', amopopr => '=(text,name)',
amopmethod => 'btree' },
{ amopfamily => 'btree/text_ops', amoplefttype => 'text',
amoprighttype => 'name', amopstrategy => '4', amopopr => '>=(text,name)',
amopmethod => 'btree' },
{ amopfamily => 'btree/text_ops', amoplefttype => 'text',
amoprighttype => 'name', amopstrategy => '5', amopopr => '>(text,name)',
amopmethod => 'btree' },
# btree bpchar_ops
{ amopfamily => 'btree/bpchar_ops', amoplefttype => 'bpchar',
amoprighttype => 'bpchar', amopstrategy => '1', amopopr => '<(bpchar,bpchar)',
amopmethod => 'btree' },
{ amopfamily => 'btree/bpchar_ops', amoplefttype => 'bpchar',
amoprighttype => 'bpchar', amopstrategy => '2',
amopopr => '<=(bpchar,bpchar)', amopmethod => 'btree' },
{ amopfamily => 'btree/bpchar_ops', amoplefttype => 'bpchar',
amoprighttype => 'bpchar', amopstrategy => '3', amopopr => '=(bpchar,bpchar)',
amopmethod => 'btree' },
{ amopfamily => 'btree/bpchar_ops', amoplefttype => 'bpchar',
amoprighttype => 'bpchar', amopstrategy => '4',
amopopr => '>=(bpchar,bpchar)', amopmethod => 'btree' },
{ amopfamily => 'btree/bpchar_ops', amoplefttype => 'bpchar',
amoprighttype => 'bpchar', amopstrategy => '5', amopopr => '>(bpchar,bpchar)',
amopmethod => 'btree' },
# btree bytea_ops
{ amopfamily => 'btree/bytea_ops', amoplefttype => 'bytea',
amoprighttype => 'bytea', amopstrategy => '1', amopopr => '<(bytea,bytea)',
amopmethod => 'btree' },
{ amopfamily => 'btree/bytea_ops', amoplefttype => 'bytea',
amoprighttype => 'bytea', amopstrategy => '2', amopopr => '<=(bytea,bytea)',
amopmethod => 'btree' },
{ amopfamily => 'btree/bytea_ops', amoplefttype => 'bytea',
amoprighttype => 'bytea', amopstrategy => '3', amopopr => '=(bytea,bytea)',
amopmethod => 'btree' },
{ amopfamily => 'btree/bytea_ops', amoplefttype => 'bytea',
amoprighttype => 'bytea', amopstrategy => '4', amopopr => '>=(bytea,bytea)',
amopmethod => 'btree' },
{ amopfamily => 'btree/bytea_ops', amoplefttype => 'bytea',
amoprighttype => 'bytea', amopstrategy => '5', amopopr => '>(bytea,bytea)',
amopmethod => 'btree' },
# btree datetime_ops
# default operators date
{ amopfamily => 'btree/datetime_ops', amoplefttype => 'date',
amoprighttype => 'date', amopstrategy => '1', amopopr => '<(date,date)',
amopmethod => 'btree' },
{ amopfamily => 'btree/datetime_ops', amoplefttype => 'date',
amoprighttype => 'date', amopstrategy => '2', amopopr => '<=(date,date)',
amopmethod => 'btree' },
{ amopfamily => 'btree/datetime_ops', amoplefttype => 'date',
amoprighttype => 'date', amopstrategy => '3', amopopr => '=(date,date)',
amopmethod => 'btree' },
{ amopfamily => 'btree/datetime_ops', amoplefttype => 'date',
amoprighttype => 'date', amopstrategy => '4', amopopr => '>=(date,date)',
amopmethod => 'btree' },
{ amopfamily => 'btree/datetime_ops', amoplefttype => 'date',
amoprighttype => 'date', amopstrategy => '5', amopopr => '>(date,date)',
amopmethod => 'btree' },
# crosstype operators vs timestamp
{ amopfamily => 'btree/datetime_ops', amoplefttype => 'date',
amoprighttype => 'timestamp', amopstrategy => '1',
amopopr => '<(date,timestamp)', amopmethod => 'btree' },
{ amopfamily => 'btree/datetime_ops', amoplefttype => 'date',
amoprighttype => 'timestamp', amopstrategy => '2',
amopopr => '<=(date,timestamp)', amopmethod => 'btree' },
{ amopfamily => 'btree/datetime_ops', amoplefttype => 'date',
amoprighttype => 'timestamp', amopstrategy => '3',
amopopr => '=(date,timestamp)', amopmethod => 'btree' },
{ amopfamily => 'btree/datetime_ops', amoplefttype => 'date',
amoprighttype => 'timestamp', amopstrategy => '4',
amopopr => '>=(date,timestamp)', amopmethod => 'btree' },
{ amopfamily => 'btree/datetime_ops', amoplefttype => 'date',
amoprighttype => 'timestamp', amopstrategy => '5',
amopopr => '>(date,timestamp)', amopmethod => 'btree' },
# crosstype operators vs timestamptz
{ amopfamily => 'btree/datetime_ops', amoplefttype => 'date',
amoprighttype => 'timestamptz', amopstrategy => '1',
amopopr => '<(date,timestamptz)', amopmethod => 'btree' },
{ amopfamily => 'btree/datetime_ops', amoplefttype => 'date',
amoprighttype => 'timestamptz', amopstrategy => '2',
amopopr => '<=(date,timestamptz)', amopmethod => 'btree' },
{ amopfamily => 'btree/datetime_ops', amoplefttype => 'date',
amoprighttype => 'timestamptz', amopstrategy => '3',
amopopr => '=(date,timestamptz)', amopmethod => 'btree' },
{ amopfamily => 'btree/datetime_ops', amoplefttype => 'date',
amoprighttype => 'timestamptz', amopstrategy => '4',
amopopr => '>=(date,timestamptz)', amopmethod => 'btree' },
{ amopfamily => 'btree/datetime_ops', amoplefttype => 'date',
amoprighttype => 'timestamptz', amopstrategy => '5',
amopopr => '>(date,timestamptz)', amopmethod => 'btree' },
# default operators timestamp
{ amopfamily => 'btree/datetime_ops', amoplefttype => 'timestamp',
amoprighttype => 'timestamp', amopstrategy => '1',
amopopr => '<(timestamp,timestamp)', amopmethod => 'btree' },
{ amopfamily => 'btree/datetime_ops', amoplefttype => 'timestamp',
amoprighttype => 'timestamp', amopstrategy => '2',
amopopr => '<=(timestamp,timestamp)', amopmethod => 'btree' },
{ amopfamily => 'btree/datetime_ops', amoplefttype => 'timestamp',
amoprighttype => 'timestamp', amopstrategy => '3',
amopopr => '=(timestamp,timestamp)', amopmethod => 'btree' },
{ amopfamily => 'btree/datetime_ops', amoplefttype => 'timestamp',
amoprighttype => 'timestamp', amopstrategy => '4',
amopopr => '>=(timestamp,timestamp)', amopmethod => 'btree' },
{ amopfamily => 'btree/datetime_ops', amoplefttype => 'timestamp',
amoprighttype => 'timestamp', amopstrategy => '5',
amopopr => '>(timestamp,timestamp)', amopmethod => 'btree' },
# crosstype operators vs date
{ amopfamily => 'btree/datetime_ops', amoplefttype => 'timestamp',
amoprighttype => 'date', amopstrategy => '1', amopopr => '<(timestamp,date)',
amopmethod => 'btree' },
{ amopfamily => 'btree/datetime_ops', amoplefttype => 'timestamp',
amoprighttype => 'date', amopstrategy => '2', amopopr => '<=(timestamp,date)',
amopmethod => 'btree' },
{ amopfamily => 'btree/datetime_ops', amoplefttype => 'timestamp',
amoprighttype => 'date', amopstrategy => '3', amopopr => '=(timestamp,date)',
amopmethod => 'btree' },
{ amopfamily => 'btree/datetime_ops', amoplefttype => 'timestamp',
amoprighttype => 'date', amopstrategy => '4', amopopr => '>=(timestamp,date)',
amopmethod => 'btree' },
{ amopfamily => 'btree/datetime_ops', amoplefttype => 'timestamp',
amoprighttype => 'date', amopstrategy => '5', amopopr => '>(timestamp,date)',
amopmethod => 'btree' },
# crosstype operators vs timestamptz
{ amopfamily => 'btree/datetime_ops', amoplefttype => 'timestamp',
amoprighttype => 'timestamptz', amopstrategy => '1',
amopopr => '<(timestamp,timestamptz)', amopmethod => 'btree' },
{ amopfamily => 'btree/datetime_ops', amoplefttype => 'timestamp',
amoprighttype => 'timestamptz', amopstrategy => '2',
amopopr => '<=(timestamp,timestamptz)', amopmethod => 'btree' },
{ amopfamily => 'btree/datetime_ops', amoplefttype => 'timestamp',
amoprighttype => 'timestamptz', amopstrategy => '3',
amopopr => '=(timestamp,timestamptz)', amopmethod => 'btree' },
{ amopfamily => 'btree/datetime_ops', amoplefttype => 'timestamp',
amoprighttype => 'timestamptz', amopstrategy => '4',
amopopr => '>=(timestamp,timestamptz)', amopmethod => 'btree' },
{ amopfamily => 'btree/datetime_ops', amoplefttype => 'timestamp',
amoprighttype => 'timestamptz', amopstrategy => '5',
amopopr => '>(timestamp,timestamptz)', amopmethod => 'btree' },
# default operators timestamptz
{ amopfamily => 'btree/datetime_ops', amoplefttype => 'timestamptz',
amoprighttype => 'timestamptz', amopstrategy => '1',
amopopr => '<(timestamptz,timestamptz)', amopmethod => 'btree' },
{ amopfamily => 'btree/datetime_ops', amoplefttype => 'timestamptz',
amoprighttype => 'timestamptz', amopstrategy => '2',
amopopr => '<=(timestamptz,timestamptz)', amopmethod => 'btree' },
{ amopfamily => 'btree/datetime_ops', amoplefttype => 'timestamptz',
amoprighttype => 'timestamptz', amopstrategy => '3',
amopopr => '=(timestamptz,timestamptz)', amopmethod => 'btree' },
{ amopfamily => 'btree/datetime_ops', amoplefttype => 'timestamptz',
amoprighttype => 'timestamptz', amopstrategy => '4',
amopopr => '>=(timestamptz,timestamptz)', amopmethod => 'btree' },
{ amopfamily => 'btree/datetime_ops', amoplefttype => 'timestamptz',
amoprighttype => 'timestamptz', amopstrategy => '5',
amopopr => '>(timestamptz,timestamptz)', amopmethod => 'btree' },
# crosstype operators vs date
{ amopfamily => 'btree/datetime_ops', amoplefttype => 'timestamptz',
amoprighttype => 'date', amopstrategy => '1',
amopopr => '<(timestamptz,date)', amopmethod => 'btree' },
{ amopfamily => 'btree/datetime_ops', amoplefttype => 'timestamptz',
amoprighttype => 'date', amopstrategy => '2',
amopopr => '<=(timestamptz,date)', amopmethod => 'btree' },
{ amopfamily => 'btree/datetime_ops', amoplefttype => 'timestamptz',
amoprighttype => 'date', amopstrategy => '3',
amopopr => '=(timestamptz,date)', amopmethod => 'btree' },
{ amopfamily => 'btree/datetime_ops', amoplefttype => 'timestamptz',
amoprighttype => 'date', amopstrategy => '4',
amopopr => '>=(timestamptz,date)', amopmethod => 'btree' },
{ amopfamily => 'btree/datetime_ops', amoplefttype => 'timestamptz',
amoprighttype => 'date', amopstrategy => '5',
amopopr => '>(timestamptz,date)', amopmethod => 'btree' },
# crosstype operators vs timestamp
{ amopfamily => 'btree/datetime_ops', amoplefttype => 'timestamptz',
amoprighttype => 'timestamp', amopstrategy => '1',
amopopr => '<(timestamptz,timestamp)', amopmethod => 'btree' },
{ amopfamily => 'btree/datetime_ops', amoplefttype => 'timestamptz',
amoprighttype => 'timestamp', amopstrategy => '2',
amopopr => '<=(timestamptz,timestamp)', amopmethod => 'btree' },
{ amopfamily => 'btree/datetime_ops', amoplefttype => 'timestamptz',
amoprighttype => 'timestamp', amopstrategy => '3',
amopopr => '=(timestamptz,timestamp)', amopmethod => 'btree' },
{ amopfamily => 'btree/datetime_ops', amoplefttype => 'timestamptz',
amoprighttype => 'timestamp', amopstrategy => '4',
amopopr => '>=(timestamptz,timestamp)', amopmethod => 'btree' },
{ amopfamily => 'btree/datetime_ops', amoplefttype => 'timestamptz',
amoprighttype => 'timestamp', amopstrategy => '5',
amopopr => '>(timestamptz,timestamp)', amopmethod => 'btree' },
# btree time_ops
{ amopfamily => 'btree/time_ops', amoplefttype => 'time',
amoprighttype => 'time', amopstrategy => '1', amopopr => '<(time,time)',
amopmethod => 'btree' },
{ amopfamily => 'btree/time_ops', amoplefttype => 'time',
amoprighttype => 'time', amopstrategy => '2', amopopr => '<=(time,time)',
amopmethod => 'btree' },
{ amopfamily => 'btree/time_ops', amoplefttype => 'time',
amoprighttype => 'time', amopstrategy => '3', amopopr => '=(time,time)',
amopmethod => 'btree' },
{ amopfamily => 'btree/time_ops', amoplefttype => 'time',
amoprighttype => 'time', amopstrategy => '4', amopopr => '>=(time,time)',
amopmethod => 'btree' },
{ amopfamily => 'btree/time_ops', amoplefttype => 'time',
amoprighttype => 'time', amopstrategy => '5', amopopr => '>(time,time)',
amopmethod => 'btree' },
# btree timetz_ops
{ amopfamily => 'btree/timetz_ops', amoplefttype => 'timetz',
amoprighttype => 'timetz', amopstrategy => '1', amopopr => '<(timetz,timetz)',
amopmethod => 'btree' },
{ amopfamily => 'btree/timetz_ops', amoplefttype => 'timetz',
amoprighttype => 'timetz', amopstrategy => '2',
amopopr => '<=(timetz,timetz)', amopmethod => 'btree' },
{ amopfamily => 'btree/timetz_ops', amoplefttype => 'timetz',
amoprighttype => 'timetz', amopstrategy => '3', amopopr => '=(timetz,timetz)',
amopmethod => 'btree' },
{ amopfamily => 'btree/timetz_ops', amoplefttype => 'timetz',
amoprighttype => 'timetz', amopstrategy => '4',
amopopr => '>=(timetz,timetz)', amopmethod => 'btree' },
{ amopfamily => 'btree/timetz_ops', amoplefttype => 'timetz',
amoprighttype => 'timetz', amopstrategy => '5', amopopr => '>(timetz,timetz)',
amopmethod => 'btree' },
# btree interval_ops
{ amopfamily => 'btree/interval_ops', amoplefttype => 'interval',
amoprighttype => 'interval', amopstrategy => '1',
amopopr => '<(interval,interval)', amopmethod => 'btree' },
{ amopfamily => 'btree/interval_ops', amoplefttype => 'interval',
amoprighttype => 'interval', amopstrategy => '2',
amopopr => '<=(interval,interval)', amopmethod => 'btree' },
{ amopfamily => 'btree/interval_ops', amoplefttype => 'interval',
amoprighttype => 'interval', amopstrategy => '3',
amopopr => '=(interval,interval)', amopmethod => 'btree' },
{ amopfamily => 'btree/interval_ops', amoplefttype => 'interval',
amoprighttype => 'interval', amopstrategy => '4',
amopopr => '>=(interval,interval)', amopmethod => 'btree' },
{ amopfamily => 'btree/interval_ops', amoplefttype => 'interval',
amoprighttype => 'interval', amopstrategy => '5',
amopopr => '>(interval,interval)', amopmethod => 'btree' },
# btree macaddr
{ amopfamily => 'btree/macaddr_ops', amoplefttype => 'macaddr',
amoprighttype => 'macaddr', amopstrategy => '1',
amopopr => '<(macaddr,macaddr)', amopmethod => 'btree' },
{ amopfamily => 'btree/macaddr_ops', amoplefttype => 'macaddr',
amoprighttype => 'macaddr', amopstrategy => '2',
amopopr => '<=(macaddr,macaddr)', amopmethod => 'btree' },
{ amopfamily => 'btree/macaddr_ops', amoplefttype => 'macaddr',
amoprighttype => 'macaddr', amopstrategy => '3',
amopopr => '=(macaddr,macaddr)', amopmethod => 'btree' },
{ amopfamily => 'btree/macaddr_ops', amoplefttype => 'macaddr',
amoprighttype => 'macaddr', amopstrategy => '4',
amopopr => '>=(macaddr,macaddr)', amopmethod => 'btree' },
{ amopfamily => 'btree/macaddr_ops', amoplefttype => 'macaddr',
amoprighttype => 'macaddr', amopstrategy => '5',
amopopr => '>(macaddr,macaddr)', amopmethod => 'btree' },
# btree macaddr8
{ amopfamily => 'btree/macaddr8_ops', amoplefttype => 'macaddr8',
amoprighttype => 'macaddr8', amopstrategy => '1',
amopopr => '<(macaddr8,macaddr8)', amopmethod => 'btree' },
{ amopfamily => 'btree/macaddr8_ops', amoplefttype => 'macaddr8',
amoprighttype => 'macaddr8', amopstrategy => '2',
amopopr => '<=(macaddr8,macaddr8)', amopmethod => 'btree' },
{ amopfamily => 'btree/macaddr8_ops', amoplefttype => 'macaddr8',
amoprighttype => 'macaddr8', amopstrategy => '3',
amopopr => '=(macaddr8,macaddr8)', amopmethod => 'btree' },
{ amopfamily => 'btree/macaddr8_ops', amoplefttype => 'macaddr8',
amoprighttype => 'macaddr8', amopstrategy => '4',
amopopr => '>=(macaddr8,macaddr8)', amopmethod => 'btree' },
{ amopfamily => 'btree/macaddr8_ops', amoplefttype => 'macaddr8',
amoprighttype => 'macaddr8', amopstrategy => '5',
amopopr => '>(macaddr8,macaddr8)', amopmethod => 'btree' },
# btree network
{ amopfamily => 'btree/network_ops', amoplefttype => 'inet',
amoprighttype => 'inet', amopstrategy => '1', amopopr => '<(inet,inet)',
amopmethod => 'btree' },
{ amopfamily => 'btree/network_ops', amoplefttype => 'inet',
amoprighttype => 'inet', amopstrategy => '2', amopopr => '<=(inet,inet)',
amopmethod => 'btree' },
{ amopfamily => 'btree/network_ops', amoplefttype => 'inet',
amoprighttype => 'inet', amopstrategy => '3', amopopr => '=(inet,inet)',
amopmethod => 'btree' },
{ amopfamily => 'btree/network_ops', amoplefttype => 'inet',
amoprighttype => 'inet', amopstrategy => '4', amopopr => '>=(inet,inet)',
amopmethod => 'btree' },
{ amopfamily => 'btree/network_ops', amoplefttype => 'inet',
amoprighttype => 'inet', amopstrategy => '5', amopopr => '>(inet,inet)',
amopmethod => 'btree' },
# btree numeric
{ amopfamily => 'btree/numeric_ops', amoplefttype => 'numeric',
amoprighttype => 'numeric', amopstrategy => '1',
amopopr => '<(numeric,numeric)', amopmethod => 'btree' },
{ amopfamily => 'btree/numeric_ops', amoplefttype => 'numeric',
amoprighttype => 'numeric', amopstrategy => '2',
amopopr => '<=(numeric,numeric)', amopmethod => 'btree' },
{ amopfamily => 'btree/numeric_ops', amoplefttype => 'numeric',
amoprighttype => 'numeric', amopstrategy => '3',
amopopr => '=(numeric,numeric)', amopmethod => 'btree' },
{ amopfamily => 'btree/numeric_ops', amoplefttype => 'numeric',
amoprighttype => 'numeric', amopstrategy => '4',
amopopr => '>=(numeric,numeric)', amopmethod => 'btree' },
{ amopfamily => 'btree/numeric_ops', amoplefttype => 'numeric',
amoprighttype => 'numeric', amopstrategy => '5',
amopopr => '>(numeric,numeric)', amopmethod => 'btree' },
# btree bool
{ amopfamily => 'btree/bool_ops', amoplefttype => 'bool',
amoprighttype => 'bool', amopstrategy => '1', amopopr => '<(bool,bool)',
amopmethod => 'btree' },
{ amopfamily => 'btree/bool_ops', amoplefttype => 'bool',
amoprighttype => 'bool', amopstrategy => '2', amopopr => '<=(bool,bool)',
amopmethod => 'btree' },
{ amopfamily => 'btree/bool_ops', amoplefttype => 'bool',
amoprighttype => 'bool', amopstrategy => '3', amopopr => '=(bool,bool)',
amopmethod => 'btree' },
{ amopfamily => 'btree/bool_ops', amoplefttype => 'bool',
amoprighttype => 'bool', amopstrategy => '4', amopopr => '>=(bool,bool)',
amopmethod => 'btree' },
{ amopfamily => 'btree/bool_ops', amoplefttype => 'bool',
amoprighttype => 'bool', amopstrategy => '5', amopopr => '>(bool,bool)',
amopmethod => 'btree' },
# btree bit
{ amopfamily => 'btree/bit_ops', amoplefttype => 'bit', amoprighttype => 'bit',
amopstrategy => '1', amopopr => '<(bit,bit)', amopmethod => 'btree' },
{ amopfamily => 'btree/bit_ops', amoplefttype => 'bit', amoprighttype => 'bit',
amopstrategy => '2', amopopr => '<=(bit,bit)', amopmethod => 'btree' },
{ amopfamily => 'btree/bit_ops', amoplefttype => 'bit', amoprighttype => 'bit',
amopstrategy => '3', amopopr => '=(bit,bit)', amopmethod => 'btree' },
{ amopfamily => 'btree/bit_ops', amoplefttype => 'bit', amoprighttype => 'bit',
amopstrategy => '4', amopopr => '>=(bit,bit)', amopmethod => 'btree' },
{ amopfamily => 'btree/bit_ops', amoplefttype => 'bit', amoprighttype => 'bit',
amopstrategy => '5', amopopr => '>(bit,bit)', amopmethod => 'btree' },
# btree varbit
{ amopfamily => 'btree/varbit_ops', amoplefttype => 'varbit',
amoprighttype => 'varbit', amopstrategy => '1', amopopr => '<(varbit,varbit)',
amopmethod => 'btree' },
{ amopfamily => 'btree/varbit_ops', amoplefttype => 'varbit',
amoprighttype => 'varbit', amopstrategy => '2',
amopopr => '<=(varbit,varbit)', amopmethod => 'btree' },
{ amopfamily => 'btree/varbit_ops', amoplefttype => 'varbit',
amoprighttype => 'varbit', amopstrategy => '3', amopopr => '=(varbit,varbit)',
amopmethod => 'btree' },
{ amopfamily => 'btree/varbit_ops', amoplefttype => 'varbit',
amoprighttype => 'varbit', amopstrategy => '4',
amopopr => '>=(varbit,varbit)', amopmethod => 'btree' },
{ amopfamily => 'btree/varbit_ops', amoplefttype => 'varbit',
amoprighttype => 'varbit', amopstrategy => '5', amopopr => '>(varbit,varbit)',
amopmethod => 'btree' },
# btree text pattern
{ amopfamily => 'btree/text_pattern_ops', amoplefttype => 'text',
amoprighttype => 'text', amopstrategy => '1', amopopr => '~<~(text,text)',
amopmethod => 'btree' },
{ amopfamily => 'btree/text_pattern_ops', amoplefttype => 'text',
amoprighttype => 'text', amopstrategy => '2', amopopr => '~<=~(text,text)',
amopmethod => 'btree' },
{ amopfamily => 'btree/text_pattern_ops', amoplefttype => 'text',
amoprighttype => 'text', amopstrategy => '3', amopopr => '=(text,text)',
amopmethod => 'btree' },
{ amopfamily => 'btree/text_pattern_ops', amoplefttype => 'text',
amoprighttype => 'text', amopstrategy => '4', amopopr => '~>=~(text,text)',
amopmethod => 'btree' },
{ amopfamily => 'btree/text_pattern_ops', amoplefttype => 'text',
amoprighttype => 'text', amopstrategy => '5', amopopr => '~>~(text,text)',
amopmethod => 'btree' },
# btree bpchar pattern
{ amopfamily => 'btree/bpchar_pattern_ops', amoplefttype => 'bpchar',
amoprighttype => 'bpchar', amopstrategy => '1',
amopopr => '~<~(bpchar,bpchar)', amopmethod => 'btree' },
{ amopfamily => 'btree/bpchar_pattern_ops', amoplefttype => 'bpchar',
amoprighttype => 'bpchar', amopstrategy => '2',
amopopr => '~<=~(bpchar,bpchar)', amopmethod => 'btree' },
{ amopfamily => 'btree/bpchar_pattern_ops', amoplefttype => 'bpchar',
amoprighttype => 'bpchar', amopstrategy => '3', amopopr => '=(bpchar,bpchar)',
amopmethod => 'btree' },
{ amopfamily => 'btree/bpchar_pattern_ops', amoplefttype => 'bpchar',
amoprighttype => 'bpchar', amopstrategy => '4',
amopopr => '~>=~(bpchar,bpchar)', amopmethod => 'btree' },
{ amopfamily => 'btree/bpchar_pattern_ops', amoplefttype => 'bpchar',
amoprighttype => 'bpchar', amopstrategy => '5',
amopopr => '~>~(bpchar,bpchar)', amopmethod => 'btree' },
# btree money_ops
{ amopfamily => 'btree/money_ops', amoplefttype => 'money',
amoprighttype => 'money', amopstrategy => '1', amopopr => '<(money,money)',
amopmethod => 'btree' },
{ amopfamily => 'btree/money_ops', amoplefttype => 'money',
amoprighttype => 'money', amopstrategy => '2', amopopr => '<=(money,money)',
amopmethod => 'btree' },
{ amopfamily => 'btree/money_ops', amoplefttype => 'money',
amoprighttype => 'money', amopstrategy => '3', amopopr => '=(money,money)',
amopmethod => 'btree' },
{ amopfamily => 'btree/money_ops', amoplefttype => 'money',
amoprighttype => 'money', amopstrategy => '4', amopopr => '>=(money,money)',
amopmethod => 'btree' },
{ amopfamily => 'btree/money_ops', amoplefttype => 'money',
amoprighttype => 'money', amopstrategy => '5', amopopr => '>(money,money)',
amopmethod => 'btree' },
# btree array_ops
{ amopfamily => 'btree/array_ops', amoplefttype => 'anyarray',
amoprighttype => 'anyarray', amopstrategy => '1',
amopopr => '<(anyarray,anyarray)', amopmethod => 'btree' },
{ amopfamily => 'btree/array_ops', amoplefttype => 'anyarray',
amoprighttype => 'anyarray', amopstrategy => '2',
amopopr => '<=(anyarray,anyarray)', amopmethod => 'btree' },
{ amopfamily => 'btree/array_ops', amoplefttype => 'anyarray',
amoprighttype => 'anyarray', amopstrategy => '3',
amopopr => '=(anyarray,anyarray)', amopmethod => 'btree' },
{ amopfamily => 'btree/array_ops', amoplefttype => 'anyarray',
amoprighttype => 'anyarray', amopstrategy => '4',
amopopr => '>=(anyarray,anyarray)', amopmethod => 'btree' },
{ amopfamily => 'btree/array_ops', amoplefttype => 'anyarray',
amoprighttype => 'anyarray', amopstrategy => '5',
amopopr => '>(anyarray,anyarray)', amopmethod => 'btree' },
# btree record_ops
{ amopfamily => 'btree/record_ops', amoplefttype => 'record',
amoprighttype => 'record', amopstrategy => '1', amopopr => '<(record,record)',
amopmethod => 'btree' },
{ amopfamily => 'btree/record_ops', amoplefttype => 'record',
amoprighttype => 'record', amopstrategy => '2',
amopopr => '<=(record,record)', amopmethod => 'btree' },
{ amopfamily => 'btree/record_ops', amoplefttype => 'record',
amoprighttype => 'record', amopstrategy => '3', amopopr => '=(record,record)',
amopmethod => 'btree' },
{ amopfamily => 'btree/record_ops', amoplefttype => 'record',
amoprighttype => 'record', amopstrategy => '4',
amopopr => '>=(record,record)', amopmethod => 'btree' },
{ amopfamily => 'btree/record_ops', amoplefttype => 'record',
amoprighttype => 'record', amopstrategy => '5', amopopr => '>(record,record)',
amopmethod => 'btree' },
# btree record_image_ops
{ amopfamily => 'btree/record_image_ops', amoplefttype => 'record',
amoprighttype => 'record', amopstrategy => '1',
amopopr => '*<(record,record)', amopmethod => 'btree' },
{ amopfamily => 'btree/record_image_ops', amoplefttype => 'record',
amoprighttype => 'record', amopstrategy => '2',
amopopr => '*<=(record,record)', amopmethod => 'btree' },
{ amopfamily => 'btree/record_image_ops', amoplefttype => 'record',
amoprighttype => 'record', amopstrategy => '3',
amopopr => '*=(record,record)', amopmethod => 'btree' },
{ amopfamily => 'btree/record_image_ops', amoplefttype => 'record',
amoprighttype => 'record', amopstrategy => '4',
amopopr => '*>=(record,record)', amopmethod => 'btree' },
{ amopfamily => 'btree/record_image_ops', amoplefttype => 'record',
amoprighttype => 'record', amopstrategy => '5',
amopopr => '*>(record,record)', amopmethod => 'btree' },
# btree uuid_ops
{ amopfamily => 'btree/uuid_ops', amoplefttype => 'uuid',
amoprighttype => 'uuid', amopstrategy => '1', amopopr => '<(uuid,uuid)',
amopmethod => 'btree' },
{ amopfamily => 'btree/uuid_ops', amoplefttype => 'uuid',
amoprighttype => 'uuid', amopstrategy => '2', amopopr => '<=(uuid,uuid)',
amopmethod => 'btree' },
{ amopfamily => 'btree/uuid_ops', amoplefttype => 'uuid',
amoprighttype => 'uuid', amopstrategy => '3', amopopr => '=(uuid,uuid)',
amopmethod => 'btree' },
{ amopfamily => 'btree/uuid_ops', amoplefttype => 'uuid',
amoprighttype => 'uuid', amopstrategy => '4', amopopr => '>=(uuid,uuid)',
amopmethod => 'btree' },
{ amopfamily => 'btree/uuid_ops', amoplefttype => 'uuid',
amoprighttype => 'uuid', amopstrategy => '5', amopopr => '>(uuid,uuid)',
amopmethod => 'btree' },
# btree pg_lsn_ops
{ amopfamily => 'btree/pg_lsn_ops', amoplefttype => 'pg_lsn',
amoprighttype => 'pg_lsn', amopstrategy => '1', amopopr => '<(pg_lsn,pg_lsn)',
amopmethod => 'btree' },
{ amopfamily => 'btree/pg_lsn_ops', amoplefttype => 'pg_lsn',
amoprighttype => 'pg_lsn', amopstrategy => '2',
amopopr => '<=(pg_lsn,pg_lsn)', amopmethod => 'btree' },
{ amopfamily => 'btree/pg_lsn_ops', amoplefttype => 'pg_lsn',
amoprighttype => 'pg_lsn', amopstrategy => '3', amopopr => '=(pg_lsn,pg_lsn)',
amopmethod => 'btree' },
{ amopfamily => 'btree/pg_lsn_ops', amoplefttype => 'pg_lsn',
amoprighttype => 'pg_lsn', amopstrategy => '4',
amopopr => '>=(pg_lsn,pg_lsn)', amopmethod => 'btree' },
{ amopfamily => 'btree/pg_lsn_ops', amoplefttype => 'pg_lsn',
amoprighttype => 'pg_lsn', amopstrategy => '5', amopopr => '>(pg_lsn,pg_lsn)',
amopmethod => 'btree' },
# hash index_ops
# bpchar_ops
{ amopfamily => 'hash/bpchar_ops', amoplefttype => 'bpchar',
amoprighttype => 'bpchar', amopstrategy => '1', amopopr => '=(bpchar,bpchar)',
amopmethod => 'hash' },
# char_ops
{ amopfamily => 'hash/char_ops', amoplefttype => 'char',
amoprighttype => 'char', amopstrategy => '1', amopopr => '=(char,char)',
amopmethod => 'hash' },
# date_ops
{ amopfamily => 'hash/date_ops', amoplefttype => 'date',
amoprighttype => 'date', amopstrategy => '1', amopopr => '=(date,date)',
amopmethod => 'hash' },
# float_ops
{ amopfamily => 'hash/float_ops', amoplefttype => 'float4',
amoprighttype => 'float4', amopstrategy => '1', amopopr => '=(float4,float4)',
amopmethod => 'hash' },
{ amopfamily => 'hash/float_ops', amoplefttype => 'float8',
amoprighttype => 'float8', amopstrategy => '1', amopopr => '=(float8,float8)',
amopmethod => 'hash' },
{ amopfamily => 'hash/float_ops', amoplefttype => 'float4',
amoprighttype => 'float8', amopstrategy => '1', amopopr => '=(float4,float8)',
amopmethod => 'hash' },
{ amopfamily => 'hash/float_ops', amoplefttype => 'float8',
amoprighttype => 'float4', amopstrategy => '1', amopopr => '=(float8,float4)',
amopmethod => 'hash' },
# network_ops
{ amopfamily => 'hash/network_ops', amoplefttype => 'inet',
amoprighttype => 'inet', amopstrategy => '1', amopopr => '=(inet,inet)',
amopmethod => 'hash' },
# integer_ops
{ amopfamily => 'hash/integer_ops', amoplefttype => 'int2',
amoprighttype => 'int2', amopstrategy => '1', amopopr => '=(int2,int2)',
amopmethod => 'hash' },
{ amopfamily => 'hash/integer_ops', amoplefttype => 'int4',
amoprighttype => 'int4', amopstrategy => '1', amopopr => '=(int4,int4)',
amopmethod => 'hash' },
{ amopfamily => 'hash/integer_ops', amoplefttype => 'int8',
amoprighttype => 'int8', amopstrategy => '1', amopopr => '=(int8,int8)',
amopmethod => 'hash' },
{ amopfamily => 'hash/integer_ops', amoplefttype => 'int2',
amoprighttype => 'int4', amopstrategy => '1', amopopr => '=(int2,int4)',
amopmethod => 'hash' },
{ amopfamily => 'hash/integer_ops', amoplefttype => 'int2',
amoprighttype => 'int8', amopstrategy => '1', amopopr => '=(int2,int8)',
amopmethod => 'hash' },
{ amopfamily => 'hash/integer_ops', amoplefttype => 'int4',
amoprighttype => 'int2', amopstrategy => '1', amopopr => '=(int4,int2)',
amopmethod => 'hash' },
{ amopfamily => 'hash/integer_ops', amoplefttype => 'int4',
amoprighttype => 'int8', amopstrategy => '1', amopopr => '=(int4,int8)',
amopmethod => 'hash' },
{ amopfamily => 'hash/integer_ops', amoplefttype => 'int8',
amoprighttype => 'int2', amopstrategy => '1', amopopr => '=(int8,int2)',
amopmethod => 'hash' },
{ amopfamily => 'hash/integer_ops', amoplefttype => 'int8',
amoprighttype => 'int4', amopstrategy => '1', amopopr => '=(int8,int4)',
amopmethod => 'hash' },
# interval_ops
{ amopfamily => 'hash/interval_ops', amoplefttype => 'interval',
amoprighttype => 'interval', amopstrategy => '1',
amopopr => '=(interval,interval)', amopmethod => 'hash' },
# macaddr_ops
{ amopfamily => 'hash/macaddr_ops', amoplefttype => 'macaddr',
amoprighttype => 'macaddr', amopstrategy => '1',
amopopr => '=(macaddr,macaddr)', amopmethod => 'hash' },
# macaddr8_ops
{ amopfamily => 'hash/macaddr8_ops', amoplefttype => 'macaddr8',
amoprighttype => 'macaddr8', amopstrategy => '1',
amopopr => '=(macaddr8,macaddr8)', amopmethod => 'hash' },
# oid_ops
{ amopfamily => 'hash/oid_ops', amoplefttype => 'oid', amoprighttype => 'oid',
amopstrategy => '1', amopopr => '=(oid,oid)', amopmethod => 'hash' },
# oidvector_ops
{ amopfamily => 'hash/oidvector_ops', amoplefttype => 'oidvector',
amoprighttype => 'oidvector', amopstrategy => '1',
amopopr => '=(oidvector,oidvector)', amopmethod => 'hash' },
# text_ops
{ amopfamily => 'hash/text_ops', amoplefttype => 'text',
amoprighttype => 'text', amopstrategy => '1', amopopr => '=(text,text)',
amopmethod => 'hash' },
{ amopfamily => 'hash/text_ops', amoplefttype => 'name',
amoprighttype => 'name', amopstrategy => '1', amopopr => '=(name,name)',
amopmethod => 'hash' },
{ amopfamily => 'hash/text_ops', amoplefttype => 'name',
amoprighttype => 'text', amopstrategy => '1', amopopr => '=(name,text)',
amopmethod => 'hash' },
{ amopfamily => 'hash/text_ops', amoplefttype => 'text',
amoprighttype => 'name', amopstrategy => '1', amopopr => '=(text,name)',
amopmethod => 'hash' },
# time_ops
{ amopfamily => 'hash/time_ops', amoplefttype => 'time',
amoprighttype => 'time', amopstrategy => '1', amopopr => '=(time,time)',
amopmethod => 'hash' },
# timestamptz_ops
{ amopfamily => 'hash/timestamptz_ops', amoplefttype => 'timestamptz',
amoprighttype => 'timestamptz', amopstrategy => '1',
amopopr => '=(timestamptz,timestamptz)', amopmethod => 'hash' },
# timetz_ops
{ amopfamily => 'hash/timetz_ops', amoplefttype => 'timetz',
amoprighttype => 'timetz', amopstrategy => '1', amopopr => '=(timetz,timetz)',
amopmethod => 'hash' },
# timestamp_ops
{ amopfamily => 'hash/timestamp_ops', amoplefttype => 'timestamp',
amoprighttype => 'timestamp', amopstrategy => '1',
amopopr => '=(timestamp,timestamp)', amopmethod => 'hash' },
# bool_ops
{ amopfamily => 'hash/bool_ops', amoplefttype => 'bool',
amoprighttype => 'bool', amopstrategy => '1', amopopr => '=(bool,bool)',
amopmethod => 'hash' },
# bytea_ops
{ amopfamily => 'hash/bytea_ops', amoplefttype => 'bytea',
amoprighttype => 'bytea', amopstrategy => '1', amopopr => '=(bytea,bytea)',
amopmethod => 'hash' },
# xid_ops
{ amopfamily => 'hash/xid_ops', amoplefttype => 'xid', amoprighttype => 'xid',
amopstrategy => '1', amopopr => '=(xid,xid)', amopmethod => 'hash' },
# cid_ops
{ amopfamily => 'hash/cid_ops', amoplefttype => 'cid', amoprighttype => 'cid',
amopstrategy => '1', amopopr => '=(cid,cid)', amopmethod => 'hash' },
# tid_ops
{ amopfamily => 'hash/tid_ops', amoplefttype => 'tid', amoprighttype => 'tid',
amopstrategy => '1', amopopr => '=(tid,tid)', amopmethod => 'hash' },
# text_pattern_ops
{ amopfamily => 'hash/text_pattern_ops', amoplefttype => 'text',
amoprighttype => 'text', amopstrategy => '1', amopopr => '=(text,text)',
amopmethod => 'hash' },
# bpchar_pattern_ops
{ amopfamily => 'hash/bpchar_pattern_ops', amoplefttype => 'bpchar',
amoprighttype => 'bpchar', amopstrategy => '1', amopopr => '=(bpchar,bpchar)',
amopmethod => 'hash' },
# aclitem_ops
{ amopfamily => 'hash/aclitem_ops', amoplefttype => 'aclitem',
amoprighttype => 'aclitem', amopstrategy => '1',
amopopr => '=(aclitem,aclitem)', amopmethod => 'hash' },
# uuid_ops
{ amopfamily => 'hash/uuid_ops', amoplefttype => 'uuid',
amoprighttype => 'uuid', amopstrategy => '1', amopopr => '=(uuid,uuid)',
amopmethod => 'hash' },
# pg_lsn_ops
{ amopfamily => 'hash/pg_lsn_ops', amoplefttype => 'pg_lsn',
amoprighttype => 'pg_lsn', amopstrategy => '1', amopopr => '=(pg_lsn,pg_lsn)',
amopmethod => 'hash' },
# numeric_ops
{ amopfamily => 'hash/numeric_ops', amoplefttype => 'numeric',
amoprighttype => 'numeric', amopstrategy => '1',
amopopr => '=(numeric,numeric)', amopmethod => 'hash' },
# array_ops
{ amopfamily => 'hash/array_ops', amoplefttype => 'anyarray',
amoprighttype => 'anyarray', amopstrategy => '1',
amopopr => '=(anyarray,anyarray)', amopmethod => 'hash' },
# gist box_ops
{ amopfamily => 'gist/box_ops', amoplefttype => 'box', amoprighttype => 'box',
amopstrategy => '1', amopopr => '<<(box,box)', amopmethod => 'gist' },
{ amopfamily => 'gist/box_ops', amoplefttype => 'box', amoprighttype => 'box',
amopstrategy => '2', amopopr => '&<(box,box)', amopmethod => 'gist' },
{ amopfamily => 'gist/box_ops', amoplefttype => 'box', amoprighttype => 'box',
amopstrategy => '3', amopopr => '&&(box,box)', amopmethod => 'gist' },
{ amopfamily => 'gist/box_ops', amoplefttype => 'box', amoprighttype => 'box',
amopstrategy => '4', amopopr => '&>(box,box)', amopmethod => 'gist' },
{ amopfamily => 'gist/box_ops', amoplefttype => 'box', amoprighttype => 'box',
amopstrategy => '5', amopopr => '>>(box,box)', amopmethod => 'gist' },
{ amopfamily => 'gist/box_ops', amoplefttype => 'box', amoprighttype => 'box',
amopstrategy => '6', amopopr => '~=(box,box)', amopmethod => 'gist' },
{ amopfamily => 'gist/box_ops', amoplefttype => 'box', amoprighttype => 'box',
amopstrategy => '7', amopopr => '@>(box,box)', amopmethod => 'gist' },
{ amopfamily => 'gist/box_ops', amoplefttype => 'box', amoprighttype => 'box',
amopstrategy => '8', amopopr => '<@(box,box)', amopmethod => 'gist' },
{ amopfamily => 'gist/box_ops', amoplefttype => 'box', amoprighttype => 'box',
amopstrategy => '9', amopopr => '&<|(box,box)', amopmethod => 'gist' },
{ amopfamily => 'gist/box_ops', amoplefttype => 'box', amoprighttype => 'box',
amopstrategy => '10', amopopr => '<<|(box,box)', amopmethod => 'gist' },
{ amopfamily => 'gist/box_ops', amoplefttype => 'box', amoprighttype => 'box',
amopstrategy => '11', amopopr => '|>>(box,box)', amopmethod => 'gist' },
{ amopfamily => 'gist/box_ops', amoplefttype => 'box', amoprighttype => 'box',
amopstrategy => '12', amopopr => '|&>(box,box)', amopmethod => 'gist' },
{ amopfamily => 'gist/box_ops', amoplefttype => 'box', amoprighttype => 'box',
amopstrategy => '13', amopopr => '~(box,box)', amopmethod => 'gist' },
{ amopfamily => 'gist/box_ops', amoplefttype => 'box', amoprighttype => 'box',
amopstrategy => '14', amopopr => '@(box,box)', amopmethod => 'gist' },
{ amopfamily => 'gist/box_ops', amoplefttype => 'box', amoprighttype => 'point',
amopstrategy => '15', amoppurpose => 'o', amopopr => '<->(box,point)',
amopmethod => 'gist', amopsortfamily => 'btree/float_ops' },
# gist point_ops
{ amopfamily => 'gist/point_ops', amoplefttype => 'point',
amoprighttype => 'point', amopstrategy => '11', amopopr => '>^(point,point)',
amopmethod => 'gist' },
{ amopfamily => 'gist/point_ops', amoplefttype => 'point',
amoprighttype => 'point', amopstrategy => '1', amopopr => '<<(point,point)',
amopmethod => 'gist' },
{ amopfamily => 'gist/point_ops', amoplefttype => 'point',
amoprighttype => 'point', amopstrategy => '5', amopopr => '>>(point,point)',
amopmethod => 'gist' },
{ amopfamily => 'gist/point_ops', amoplefttype => 'point',
amoprighttype => 'point', amopstrategy => '10', amopopr => '<^(point,point)',
amopmethod => 'gist' },
{ amopfamily => 'gist/point_ops', amoplefttype => 'point',
amoprighttype => 'point', amopstrategy => '6', amopopr => '~=(point,point)',
amopmethod => 'gist' },
{ amopfamily => 'gist/point_ops', amoplefttype => 'point',
amoprighttype => 'point', amopstrategy => '15', amoppurpose => 'o',
amopopr => '<->(point,point)', amopmethod => 'gist',
amopsortfamily => 'btree/float_ops' },
{ amopfamily => 'gist/point_ops', amoplefttype => 'point',
amoprighttype => 'box', amopstrategy => '28', amopopr => '<@(point,box)',
amopmethod => 'gist' },
{ amopfamily => 'gist/point_ops', amoplefttype => 'point',
amoprighttype => 'polygon', amopstrategy => '48',
amopopr => '<@(point,polygon)', amopmethod => 'gist' },
{ amopfamily => 'gist/point_ops', amoplefttype => 'point',
amoprighttype => 'circle', amopstrategy => '68',
amopopr => '<@(point,circle)', amopmethod => 'gist' },
# gist poly_ops (supports polygons)
{ amopfamily => 'gist/poly_ops', amoplefttype => 'polygon',
amoprighttype => 'polygon', amopstrategy => '1',
amopopr => '<<(polygon,polygon)', amopmethod => 'gist' },
{ amopfamily => 'gist/poly_ops', amoplefttype => 'polygon',
amoprighttype => 'polygon', amopstrategy => '2',
amopopr => '&<(polygon,polygon)', amopmethod => 'gist' },
{ amopfamily => 'gist/poly_ops', amoplefttype => 'polygon',
amoprighttype => 'polygon', amopstrategy => '3',
amopopr => '&&(polygon,polygon)', amopmethod => 'gist' },
{ amopfamily => 'gist/poly_ops', amoplefttype => 'polygon',
amoprighttype => 'polygon', amopstrategy => '4',
amopopr => '&>(polygon,polygon)', amopmethod => 'gist' },
{ amopfamily => 'gist/poly_ops', amoplefttype => 'polygon',
amoprighttype => 'polygon', amopstrategy => '5',
amopopr => '>>(polygon,polygon)', amopmethod => 'gist' },
{ amopfamily => 'gist/poly_ops', amoplefttype => 'polygon',
amoprighttype => 'polygon', amopstrategy => '6',
amopopr => '~=(polygon,polygon)', amopmethod => 'gist' },
{ amopfamily => 'gist/poly_ops', amoplefttype => 'polygon',
amoprighttype => 'polygon', amopstrategy => '7',
amopopr => '@>(polygon,polygon)', amopmethod => 'gist' },
{ amopfamily => 'gist/poly_ops', amoplefttype => 'polygon',
amoprighttype => 'polygon', amopstrategy => '8',
amopopr => '<@(polygon,polygon)', amopmethod => 'gist' },
{ amopfamily => 'gist/poly_ops', amoplefttype => 'polygon',
amoprighttype => 'polygon', amopstrategy => '9',
amopopr => '&<|(polygon,polygon)', amopmethod => 'gist' },
{ amopfamily => 'gist/poly_ops', amoplefttype => 'polygon',
amoprighttype => 'polygon', amopstrategy => '10',
amopopr => '<<|(polygon,polygon)', amopmethod => 'gist' },
{ amopfamily => 'gist/poly_ops', amoplefttype => 'polygon',
amoprighttype => 'polygon', amopstrategy => '11',
amopopr => '|>>(polygon,polygon)', amopmethod => 'gist' },
{ amopfamily => 'gist/poly_ops', amoplefttype => 'polygon',
amoprighttype => 'polygon', amopstrategy => '12',
amopopr => '|&>(polygon,polygon)', amopmethod => 'gist' },
{ amopfamily => 'gist/poly_ops', amoplefttype => 'polygon',
amoprighttype => 'polygon', amopstrategy => '13',
amopopr => '~(polygon,polygon)', amopmethod => 'gist' },
{ amopfamily => 'gist/poly_ops', amoplefttype => 'polygon',
amoprighttype => 'polygon', amopstrategy => '14',
amopopr => '@(polygon,polygon)', amopmethod => 'gist' },
{ amopfamily => 'gist/poly_ops', amoplefttype => 'polygon',
amoprighttype => 'point', amopstrategy => '15', amoppurpose => 'o',
amopopr => '<->(polygon,point)', amopmethod => 'gist',
amopsortfamily => 'btree/float_ops' },
# gist circle_ops
{ amopfamily => 'gist/circle_ops', amoplefttype => 'circle',
amoprighttype => 'circle', amopstrategy => '1',
amopopr => '<<(circle,circle)', amopmethod => 'gist' },
{ amopfamily => 'gist/circle_ops', amoplefttype => 'circle',
amoprighttype => 'circle', amopstrategy => '2',
amopopr => '&<(circle,circle)', amopmethod => 'gist' },
{ amopfamily => 'gist/circle_ops', amoplefttype => 'circle',
amoprighttype => 'circle', amopstrategy => '3',
amopopr => '&&(circle,circle)', amopmethod => 'gist' },
{ amopfamily => 'gist/circle_ops', amoplefttype => 'circle',
amoprighttype => 'circle', amopstrategy => '4',
amopopr => '&>(circle,circle)', amopmethod => 'gist' },
{ amopfamily => 'gist/circle_ops', amoplefttype => 'circle',
amoprighttype => 'circle', amopstrategy => '5',
amopopr => '>>(circle,circle)', amopmethod => 'gist' },
{ amopfamily => 'gist/circle_ops', amoplefttype => 'circle',
amoprighttype => 'circle', amopstrategy => '6',
amopopr => '~=(circle,circle)', amopmethod => 'gist' },
{ amopfamily => 'gist/circle_ops', amoplefttype => 'circle',
amoprighttype => 'circle', amopstrategy => '7',
amopopr => '@>(circle,circle)', amopmethod => 'gist' },
{ amopfamily => 'gist/circle_ops', amoplefttype => 'circle',
amoprighttype => 'circle', amopstrategy => '8',
amopopr => '<@(circle,circle)', amopmethod => 'gist' },
{ amopfamily => 'gist/circle_ops', amoplefttype => 'circle',
amoprighttype => 'circle', amopstrategy => '9',
amopopr => '&<|(circle,circle)', amopmethod => 'gist' },
{ amopfamily => 'gist/circle_ops', amoplefttype => 'circle',
amoprighttype => 'circle', amopstrategy => '10',
amopopr => '<<|(circle,circle)', amopmethod => 'gist' },
{ amopfamily => 'gist/circle_ops', amoplefttype => 'circle',
amoprighttype => 'circle', amopstrategy => '11',
amopopr => '|>>(circle,circle)', amopmethod => 'gist' },
{ amopfamily => 'gist/circle_ops', amoplefttype => 'circle',
amoprighttype => 'circle', amopstrategy => '12',
amopopr => '|&>(circle,circle)', amopmethod => 'gist' },
{ amopfamily => 'gist/circle_ops', amoplefttype => 'circle',
amoprighttype => 'circle', amopstrategy => '13',
amopopr => '~(circle,circle)', amopmethod => 'gist' },
{ amopfamily => 'gist/circle_ops', amoplefttype => 'circle',
amoprighttype => 'circle', amopstrategy => '14',
amopopr => '@(circle,circle)', amopmethod => 'gist' },
{ amopfamily => 'gist/circle_ops', amoplefttype => 'circle',
amoprighttype => 'point', amopstrategy => '15', amoppurpose => 'o',
amopopr => '<->(circle,point)', amopmethod => 'gist',
amopsortfamily => 'btree/float_ops' },
# gin array_ops
{ amopfamily => 'gin/array_ops', amoplefttype => 'anyarray',
amoprighttype => 'anyarray', amopstrategy => '1',
amopopr => '&&(anyarray,anyarray)', amopmethod => 'gin' },
{ amopfamily => 'gin/array_ops', amoplefttype => 'anyarray',
amoprighttype => 'anyarray', amopstrategy => '2',
amopopr => '@>(anyarray,anyarray)', amopmethod => 'gin' },
{ amopfamily => 'gin/array_ops', amoplefttype => 'anyarray',
amoprighttype => 'anyarray', amopstrategy => '3',
amopopr => '<@(anyarray,anyarray)', amopmethod => 'gin' },
{ amopfamily => 'gin/array_ops', amoplefttype => 'anyarray',
amoprighttype => 'anyarray', amopstrategy => '4',
amopopr => '=(anyarray,anyarray)', amopmethod => 'gin' },
# btree enum_ops
{ amopfamily => 'btree/enum_ops', amoplefttype => 'anyenum',
amoprighttype => 'anyenum', amopstrategy => '1',
amopopr => '<(anyenum,anyenum)', amopmethod => 'btree' },
{ amopfamily => 'btree/enum_ops', amoplefttype => 'anyenum',
amoprighttype => 'anyenum', amopstrategy => '2',
amopopr => '<=(anyenum,anyenum)', amopmethod => 'btree' },
{ amopfamily => 'btree/enum_ops', amoplefttype => 'anyenum',
amoprighttype => 'anyenum', amopstrategy => '3',
amopopr => '=(anyenum,anyenum)', amopmethod => 'btree' },
{ amopfamily => 'btree/enum_ops', amoplefttype => 'anyenum',
amoprighttype => 'anyenum', amopstrategy => '4',
amopopr => '>=(anyenum,anyenum)', amopmethod => 'btree' },
{ amopfamily => 'btree/enum_ops', amoplefttype => 'anyenum',
amoprighttype => 'anyenum', amopstrategy => '5',
amopopr => '>(anyenum,anyenum)', amopmethod => 'btree' },
# hash enum_ops
{ amopfamily => 'hash/enum_ops', amoplefttype => 'anyenum',
amoprighttype => 'anyenum', amopstrategy => '1',
amopopr => '=(anyenum,anyenum)', amopmethod => 'hash' },
# btree tsvector_ops
{ amopfamily => 'btree/tsvector_ops', amoplefttype => 'tsvector',
amoprighttype => 'tsvector', amopstrategy => '1',
amopopr => '<(tsvector,tsvector)', amopmethod => 'btree' },
{ amopfamily => 'btree/tsvector_ops', amoplefttype => 'tsvector',
amoprighttype => 'tsvector', amopstrategy => '2',
amopopr => '<=(tsvector,tsvector)', amopmethod => 'btree' },
{ amopfamily => 'btree/tsvector_ops', amoplefttype => 'tsvector',
amoprighttype => 'tsvector', amopstrategy => '3',
amopopr => '=(tsvector,tsvector)', amopmethod => 'btree' },
{ amopfamily => 'btree/tsvector_ops', amoplefttype => 'tsvector',
amoprighttype => 'tsvector', amopstrategy => '4',
amopopr => '>=(tsvector,tsvector)', amopmethod => 'btree' },
{ amopfamily => 'btree/tsvector_ops', amoplefttype => 'tsvector',
amoprighttype => 'tsvector', amopstrategy => '5',
amopopr => '>(tsvector,tsvector)', amopmethod => 'btree' },
# GiST tsvector_ops
{ amopfamily => 'gist/tsvector_ops', amoplefttype => 'tsvector',
amoprighttype => 'tsquery', amopstrategy => '1',
amopopr => '@@(tsvector,tsquery)', amopmethod => 'gist' },
# GIN tsvector_ops
{ amopfamily => 'gin/tsvector_ops', amoplefttype => 'tsvector',
amoprighttype => 'tsquery', amopstrategy => '1',
amopopr => '@@(tsvector,tsquery)', amopmethod => 'gin' },
{ amopfamily => 'gin/tsvector_ops', amoplefttype => 'tsvector',
amoprighttype => 'tsquery', amopstrategy => '2',
amopopr => '@@@(tsvector,tsquery)', amopmethod => 'gin' },
# btree tsquery_ops
{ amopfamily => 'btree/tsquery_ops', amoplefttype => 'tsquery',
amoprighttype => 'tsquery', amopstrategy => '1',
amopopr => '<(tsquery,tsquery)', amopmethod => 'btree' },
{ amopfamily => 'btree/tsquery_ops', amoplefttype => 'tsquery',
amoprighttype => 'tsquery', amopstrategy => '2',
amopopr => '<=(tsquery,tsquery)', amopmethod => 'btree' },
{ amopfamily => 'btree/tsquery_ops', amoplefttype => 'tsquery',
amoprighttype => 'tsquery', amopstrategy => '3',
amopopr => '=(tsquery,tsquery)', amopmethod => 'btree' },
{ amopfamily => 'btree/tsquery_ops', amoplefttype => 'tsquery',
amoprighttype => 'tsquery', amopstrategy => '4',
amopopr => '>=(tsquery,tsquery)', amopmethod => 'btree' },
{ amopfamily => 'btree/tsquery_ops', amoplefttype => 'tsquery',
amoprighttype => 'tsquery', amopstrategy => '5',
amopopr => '>(tsquery,tsquery)', amopmethod => 'btree' },
# GiST tsquery_ops
{ amopfamily => 'gist/tsquery_ops', amoplefttype => 'tsquery',
amoprighttype => 'tsquery', amopstrategy => '7',
amopopr => '@>(tsquery,tsquery)', amopmethod => 'gist' },
{ amopfamily => 'gist/tsquery_ops', amoplefttype => 'tsquery',
amoprighttype => 'tsquery', amopstrategy => '8',
amopopr => '<@(tsquery,tsquery)', amopmethod => 'gist' },
# btree range_ops
{ amopfamily => 'btree/range_ops', amoplefttype => 'anyrange',
amoprighttype => 'anyrange', amopstrategy => '1',
amopopr => '<(anyrange,anyrange)', amopmethod => 'btree' },
{ amopfamily => 'btree/range_ops', amoplefttype => 'anyrange',
amoprighttype => 'anyrange', amopstrategy => '2',
amopopr => '<=(anyrange,anyrange)', amopmethod => 'btree' },
{ amopfamily => 'btree/range_ops', amoplefttype => 'anyrange',
amoprighttype => 'anyrange', amopstrategy => '3',
amopopr => '=(anyrange,anyrange)', amopmethod => 'btree' },
{ amopfamily => 'btree/range_ops', amoplefttype => 'anyrange',
amoprighttype => 'anyrange', amopstrategy => '4',
amopopr => '>=(anyrange,anyrange)', amopmethod => 'btree' },
{ amopfamily => 'btree/range_ops', amoplefttype => 'anyrange',
amoprighttype => 'anyrange', amopstrategy => '5',
amopopr => '>(anyrange,anyrange)', amopmethod => 'btree' },
# hash range_ops
{ amopfamily => 'hash/range_ops', amoplefttype => 'anyrange',
amoprighttype => 'anyrange', amopstrategy => '1',
amopopr => '=(anyrange,anyrange)', amopmethod => 'hash' },
# GiST range_ops
{ amopfamily => 'gist/range_ops', amoplefttype => 'anyrange',
amoprighttype => 'anyrange', amopstrategy => '1',
amopopr => '<<(anyrange,anyrange)', amopmethod => 'gist' },
{ amopfamily => 'gist/range_ops', amoplefttype => 'anyrange',
amoprighttype => 'anyrange', amopstrategy => '2',
amopopr => '&<(anyrange,anyrange)', amopmethod => 'gist' },
{ amopfamily => 'gist/range_ops', amoplefttype => 'anyrange',
amoprighttype => 'anyrange', amopstrategy => '3',
amopopr => '&&(anyrange,anyrange)', amopmethod => 'gist' },
{ amopfamily => 'gist/range_ops', amoplefttype => 'anyrange',
amoprighttype => 'anyrange', amopstrategy => '4',
amopopr => '&>(anyrange,anyrange)', amopmethod => 'gist' },
{ amopfamily => 'gist/range_ops', amoplefttype => 'anyrange',
amoprighttype => 'anyrange', amopstrategy => '5',
amopopr => '>>(anyrange,anyrange)', amopmethod => 'gist' },
{ amopfamily => 'gist/range_ops', amoplefttype => 'anyrange',
amoprighttype => 'anyrange', amopstrategy => '6',
amopopr => '-|-(anyrange,anyrange)', amopmethod => 'gist' },
{ amopfamily => 'gist/range_ops', amoplefttype => 'anyrange',
amoprighttype => 'anyrange', amopstrategy => '7',
amopopr => '@>(anyrange,anyrange)', amopmethod => 'gist' },
{ amopfamily => 'gist/range_ops', amoplefttype => 'anyrange',
amoprighttype => 'anyrange', amopstrategy => '8',
amopopr => '<@(anyrange,anyrange)', amopmethod => 'gist' },
{ amopfamily => 'gist/range_ops', amoplefttype => 'anyrange',
amoprighttype => 'anyelement', amopstrategy => '16',
amopopr => '@>(anyrange,anyelement)', amopmethod => 'gist' },
{ amopfamily => 'gist/range_ops', amoplefttype => 'anyrange',
amoprighttype => 'anyrange', amopstrategy => '18',
amopopr => '=(anyrange,anyrange)', amopmethod => 'gist' },
# SP-GiST quad_point_ops
{ amopfamily => 'spgist/quad_point_ops', amoplefttype => 'point',
amoprighttype => 'point', amopstrategy => '11', amopopr => '>^(point,point)',
amopmethod => 'spgist' },
{ amopfamily => 'spgist/quad_point_ops', amoplefttype => 'point',
amoprighttype => 'point', amopstrategy => '1', amopopr => '<<(point,point)',
amopmethod => 'spgist' },
{ amopfamily => 'spgist/quad_point_ops', amoplefttype => 'point',
amoprighttype => 'point', amopstrategy => '5', amopopr => '>>(point,point)',
amopmethod => 'spgist' },
{ amopfamily => 'spgist/quad_point_ops', amoplefttype => 'point',
amoprighttype => 'point', amopstrategy => '10', amopopr => '<^(point,point)',
amopmethod => 'spgist' },
{ amopfamily => 'spgist/quad_point_ops', amoplefttype => 'point',
amoprighttype => 'point', amopstrategy => '6', amopopr => '~=(point,point)',
amopmethod => 'spgist' },
{ amopfamily => 'spgist/quad_point_ops', amoplefttype => 'point',
amoprighttype => 'box', amopstrategy => '8', amopopr => '<@(point,box)',
amopmethod => 'spgist' },
{ amopfamily => 'spgist/quad_point_ops', amoplefttype => 'point',
amoprighttype => 'point', amopstrategy => '15', amoppurpose => 'o',
amopopr => '<->(point,point)', amopmethod => 'spgist',
amopsortfamily => 'btree/float_ops' },
# SP-GiST kd_point_ops
{ amopfamily => 'spgist/kd_point_ops', amoplefttype => 'point',
amoprighttype => 'point', amopstrategy => '11', amopopr => '>^(point,point)',
amopmethod => 'spgist' },
{ amopfamily => 'spgist/kd_point_ops', amoplefttype => 'point',
amoprighttype => 'point', amopstrategy => '1', amopopr => '<<(point,point)',
amopmethod => 'spgist' },
{ amopfamily => 'spgist/kd_point_ops', amoplefttype => 'point',
amoprighttype => 'point', amopstrategy => '5', amopopr => '>>(point,point)',
amopmethod => 'spgist' },
{ amopfamily => 'spgist/kd_point_ops', amoplefttype => 'point',
amoprighttype => 'point', amopstrategy => '10', amopopr => '<^(point,point)',
amopmethod => 'spgist' },
{ amopfamily => 'spgist/kd_point_ops', amoplefttype => 'point',
amoprighttype => 'point', amopstrategy => '6', amopopr => '~=(point,point)',
amopmethod => 'spgist' },
{ amopfamily => 'spgist/kd_point_ops', amoplefttype => 'point',
amoprighttype => 'box', amopstrategy => '8', amopopr => '<@(point,box)',
amopmethod => 'spgist' },
{ amopfamily => 'spgist/kd_point_ops', amoplefttype => 'point',
amoprighttype => 'point', amopstrategy => '15', amoppurpose => 'o',
amopopr => '<->(point,point)', amopmethod => 'spgist',
amopsortfamily => 'btree/float_ops' },
# SP-GiST text_ops
{ amopfamily => 'spgist/text_ops', amoplefttype => 'text',
amoprighttype => 'text', amopstrategy => '1', amopopr => '~<~(text,text)',
amopmethod => 'spgist' },
{ amopfamily => 'spgist/text_ops', amoplefttype => 'text',
amoprighttype => 'text', amopstrategy => '2', amopopr => '~<=~(text,text)',
amopmethod => 'spgist' },
{ amopfamily => 'spgist/text_ops', amoplefttype => 'text',
amoprighttype => 'text', amopstrategy => '3', amopopr => '=(text,text)',
amopmethod => 'spgist' },
{ amopfamily => 'spgist/text_ops', amoplefttype => 'text',
amoprighttype => 'text', amopstrategy => '4', amopopr => '~>=~(text,text)',
amopmethod => 'spgist' },
{ amopfamily => 'spgist/text_ops', amoplefttype => 'text',
amoprighttype => 'text', amopstrategy => '5', amopopr => '~>~(text,text)',
amopmethod => 'spgist' },
{ amopfamily => 'spgist/text_ops', amoplefttype => 'text',
amoprighttype => 'text', amopstrategy => '11', amopopr => '<(text,text)',
amopmethod => 'spgist' },
{ amopfamily => 'spgist/text_ops', amoplefttype => 'text',
amoprighttype => 'text', amopstrategy => '12', amopopr => '<=(text,text)',
amopmethod => 'spgist' },
{ amopfamily => 'spgist/text_ops', amoplefttype => 'text',
amoprighttype => 'text', amopstrategy => '14', amopopr => '>=(text,text)',
amopmethod => 'spgist' },
{ amopfamily => 'spgist/text_ops', amoplefttype => 'text',
amoprighttype => 'text', amopstrategy => '15', amopopr => '>(text,text)',
amopmethod => 'spgist' },
{ amopfamily => 'spgist/text_ops', amoplefttype => 'text',
amoprighttype => 'text', amopstrategy => '28', amopopr => '^@(text,text)',
amopmethod => 'spgist' },
# btree jsonb_ops
{ amopfamily => 'btree/jsonb_ops', amoplefttype => 'jsonb',
amoprighttype => 'jsonb', amopstrategy => '1', amopopr => '<(jsonb,jsonb)',
amopmethod => 'btree' },
{ amopfamily => 'btree/jsonb_ops', amoplefttype => 'jsonb',
amoprighttype => 'jsonb', amopstrategy => '2', amopopr => '<=(jsonb,jsonb)',
amopmethod => 'btree' },
{ amopfamily => 'btree/jsonb_ops', amoplefttype => 'jsonb',
amoprighttype => 'jsonb', amopstrategy => '3', amopopr => '=(jsonb,jsonb)',
amopmethod => 'btree' },
{ amopfamily => 'btree/jsonb_ops', amoplefttype => 'jsonb',
amoprighttype => 'jsonb', amopstrategy => '4', amopopr => '>=(jsonb,jsonb)',
amopmethod => 'btree' },
{ amopfamily => 'btree/jsonb_ops', amoplefttype => 'jsonb',
amoprighttype => 'jsonb', amopstrategy => '5', amopopr => '>(jsonb,jsonb)',
amopmethod => 'btree' },
# hash jsonb_ops
{ amopfamily => 'hash/jsonb_ops', amoplefttype => 'jsonb',
amoprighttype => 'jsonb', amopstrategy => '1', amopopr => '=(jsonb,jsonb)',
amopmethod => 'hash' },
# GIN jsonb_ops
{ amopfamily => 'gin/jsonb_ops', amoplefttype => 'jsonb',
amoprighttype => 'jsonb', amopstrategy => '7', amopopr => '@>(jsonb,jsonb)',
amopmethod => 'gin' },
{ amopfamily => 'gin/jsonb_ops', amoplefttype => 'jsonb',
amoprighttype => 'text', amopstrategy => '9', amopopr => '?(jsonb,text)',
amopmethod => 'gin' },
{ amopfamily => 'gin/jsonb_ops', amoplefttype => 'jsonb',
amoprighttype => '_text', amopstrategy => '10', amopopr => '?|(jsonb,_text)',
amopmethod => 'gin' },
{ amopfamily => 'gin/jsonb_ops', amoplefttype => 'jsonb',
amoprighttype => '_text', amopstrategy => '11', amopopr => '?&(jsonb,_text)',
amopmethod => 'gin' },
{ amopfamily => 'gin/jsonb_ops', amoplefttype => 'jsonb',
amoprighttype => 'jsonpath', amopstrategy => '15',
amopopr => '@?(jsonb,jsonpath)', amopmethod => 'gin' },
{ amopfamily => 'gin/jsonb_ops', amoplefttype => 'jsonb',
amoprighttype => 'jsonpath', amopstrategy => '16',
amopopr => '@@(jsonb,jsonpath)', amopmethod => 'gin' },
# GIN jsonb_path_ops
{ amopfamily => 'gin/jsonb_path_ops', amoplefttype => 'jsonb',
amoprighttype => 'jsonb', amopstrategy => '7', amopopr => '@>(jsonb,jsonb)',
amopmethod => 'gin' },
{ amopfamily => 'gin/jsonb_path_ops', amoplefttype => 'jsonb',
amoprighttype => 'jsonpath', amopstrategy => '15',
amopopr => '@?(jsonb,jsonpath)', amopmethod => 'gin' },
{ amopfamily => 'gin/jsonb_path_ops', amoplefttype => 'jsonb',
amoprighttype => 'jsonpath', amopstrategy => '16',
amopopr => '@@(jsonb,jsonpath)', amopmethod => 'gin' },
# SP-GiST range_ops
{ amopfamily => 'spgist/range_ops', amoplefttype => 'anyrange',
amoprighttype => 'anyrange', amopstrategy => '1',
amopopr => '<<(anyrange,anyrange)', amopmethod => 'spgist' },
{ amopfamily => 'spgist/range_ops', amoplefttype => 'anyrange',
amoprighttype => 'anyrange', amopstrategy => '2',
amopopr => '&<(anyrange,anyrange)', amopmethod => 'spgist' },
{ amopfamily => 'spgist/range_ops', amoplefttype => 'anyrange',
amoprighttype => 'anyrange', amopstrategy => '3',
amopopr => '&&(anyrange,anyrange)', amopmethod => 'spgist' },
{ amopfamily => 'spgist/range_ops', amoplefttype => 'anyrange',
amoprighttype => 'anyrange', amopstrategy => '4',
amopopr => '&>(anyrange,anyrange)', amopmethod => 'spgist' },
{ amopfamily => 'spgist/range_ops', amoplefttype => 'anyrange',
amoprighttype => 'anyrange', amopstrategy => '5',
amopopr => '>>(anyrange,anyrange)', amopmethod => 'spgist' },
{ amopfamily => 'spgist/range_ops', amoplefttype => 'anyrange',
amoprighttype => 'anyrange', amopstrategy => '6',
amopopr => '-|-(anyrange,anyrange)', amopmethod => 'spgist' },
{ amopfamily => 'spgist/range_ops', amoplefttype => 'anyrange',
amoprighttype => 'anyrange', amopstrategy => '7',
amopopr => '@>(anyrange,anyrange)', amopmethod => 'spgist' },
{ amopfamily => 'spgist/range_ops', amoplefttype => 'anyrange',
amoprighttype => 'anyrange', amopstrategy => '8',
amopopr => '<@(anyrange,anyrange)', amopmethod => 'spgist' },
{ amopfamily => 'spgist/range_ops', amoplefttype => 'anyrange',
amoprighttype => 'anyelement', amopstrategy => '16',
amopopr => '@>(anyrange,anyelement)', amopmethod => 'spgist' },
{ amopfamily => 'spgist/range_ops', amoplefttype => 'anyrange',
amoprighttype => 'anyrange', amopstrategy => '18',
amopopr => '=(anyrange,anyrange)', amopmethod => 'spgist' },
# SP-GiST box_ops
{ amopfamily => 'spgist/box_ops', amoplefttype => 'box', amoprighttype => 'box',
amopstrategy => '1', amopopr => '<<(box,box)', amopmethod => 'spgist' },
{ amopfamily => 'spgist/box_ops', amoplefttype => 'box', amoprighttype => 'box',
amopstrategy => '2', amopopr => '&<(box,box)', amopmethod => 'spgist' },
{ amopfamily => 'spgist/box_ops', amoplefttype => 'box', amoprighttype => 'box',
amopstrategy => '3', amopopr => '&&(box,box)', amopmethod => 'spgist' },
{ amopfamily => 'spgist/box_ops', amoplefttype => 'box', amoprighttype => 'box',
amopstrategy => '4', amopopr => '&>(box,box)', amopmethod => 'spgist' },
{ amopfamily => 'spgist/box_ops', amoplefttype => 'box', amoprighttype => 'box',
amopstrategy => '5', amopopr => '>>(box,box)', amopmethod => 'spgist' },
{ amopfamily => 'spgist/box_ops', amoplefttype => 'box', amoprighttype => 'box',
amopstrategy => '6', amopopr => '~=(box,box)', amopmethod => 'spgist' },
{ amopfamily => 'spgist/box_ops', amoplefttype => 'box', amoprighttype => 'box',
amopstrategy => '7', amopopr => '@>(box,box)', amopmethod => 'spgist' },
{ amopfamily => 'spgist/box_ops', amoplefttype => 'box', amoprighttype => 'box',
amopstrategy => '8', amopopr => '<@(box,box)', amopmethod => 'spgist' },
{ amopfamily => 'spgist/box_ops', amoplefttype => 'box', amoprighttype => 'box',
amopstrategy => '9', amopopr => '&<|(box,box)', amopmethod => 'spgist' },
{ amopfamily => 'spgist/box_ops', amoplefttype => 'box', amoprighttype => 'box',
amopstrategy => '10', amopopr => '<<|(box,box)', amopmethod => 'spgist' },
{ amopfamily => 'spgist/box_ops', amoplefttype => 'box', amoprighttype => 'box',
amopstrategy => '11', amopopr => '|>>(box,box)', amopmethod => 'spgist' },
{ amopfamily => 'spgist/box_ops', amoplefttype => 'box', amoprighttype => 'box',
amopstrategy => '12', amopopr => '|&>(box,box)', amopmethod => 'spgist' },
# SP-GiST poly_ops (supports polygons)
{ amopfamily => 'spgist/poly_ops', amoplefttype => 'polygon',
amoprighttype => 'polygon', amopstrategy => '1',
amopopr => '<<(polygon,polygon)', amopmethod => 'spgist' },
{ amopfamily => 'spgist/poly_ops', amoplefttype => 'polygon',
amoprighttype => 'polygon', amopstrategy => '2',
amopopr => '&<(polygon,polygon)', amopmethod => 'spgist' },
{ amopfamily => 'spgist/poly_ops', amoplefttype => 'polygon',
amoprighttype => 'polygon', amopstrategy => '3',
amopopr => '&&(polygon,polygon)', amopmethod => 'spgist' },
{ amopfamily => 'spgist/poly_ops', amoplefttype => 'polygon',
amoprighttype => 'polygon', amopstrategy => '4',
amopopr => '&>(polygon,polygon)', amopmethod => 'spgist' },
{ amopfamily => 'spgist/poly_ops', amoplefttype => 'polygon',
amoprighttype => 'polygon', amopstrategy => '5',
amopopr => '>>(polygon,polygon)', amopmethod => 'spgist' },
{ amopfamily => 'spgist/poly_ops', amoplefttype => 'polygon',
amoprighttype => 'polygon', amopstrategy => '6',
amopopr => '~=(polygon,polygon)', amopmethod => 'spgist' },
{ amopfamily => 'spgist/poly_ops', amoplefttype => 'polygon',
amoprighttype => 'polygon', amopstrategy => '7',
amopopr => '@>(polygon,polygon)', amopmethod => 'spgist' },
{ amopfamily => 'spgist/poly_ops', amoplefttype => 'polygon',
amoprighttype => 'polygon', amopstrategy => '8',
amopopr => '<@(polygon,polygon)', amopmethod => 'spgist' },
{ amopfamily => 'spgist/poly_ops', amoplefttype => 'polygon',
amoprighttype => 'polygon', amopstrategy => '9',
amopopr => '&<|(polygon,polygon)', amopmethod => 'spgist' },
{ amopfamily => 'spgist/poly_ops', amoplefttype => 'polygon',
amoprighttype => 'polygon', amopstrategy => '10',
amopopr => '<<|(polygon,polygon)', amopmethod => 'spgist' },
{ amopfamily => 'spgist/poly_ops', amoplefttype => 'polygon',
amoprighttype => 'polygon', amopstrategy => '11',
amopopr => '|>>(polygon,polygon)', amopmethod => 'spgist' },
{ amopfamily => 'spgist/poly_ops', amoplefttype => 'polygon',
amoprighttype => 'polygon', amopstrategy => '12',
amopopr => '|&>(polygon,polygon)', amopmethod => 'spgist' },
{ amopfamily => 'spgist/poly_ops', amoplefttype => 'polygon',
amoprighttype => 'point', amopstrategy => '15', amoppurpose => 'o',
amopopr => '<->(polygon,point)', amopmethod => 'spgist',
amopsortfamily => 'btree/float_ops' },
# GiST inet_ops
{ amopfamily => 'gist/network_ops', amoplefttype => 'inet',
amoprighttype => 'inet', amopstrategy => '3', amopopr => '&&(inet,inet)',
amopmethod => 'gist' },
{ amopfamily => 'gist/network_ops', amoplefttype => 'inet',
amoprighttype => 'inet', amopstrategy => '18', amopopr => '=(inet,inet)',
amopmethod => 'gist' },
{ amopfamily => 'gist/network_ops', amoplefttype => 'inet',
amoprighttype => 'inet', amopstrategy => '19', amopopr => '<>(inet,inet)',
amopmethod => 'gist' },
{ amopfamily => 'gist/network_ops', amoplefttype => 'inet',
amoprighttype => 'inet', amopstrategy => '20', amopopr => '<(inet,inet)',
amopmethod => 'gist' },
{ amopfamily => 'gist/network_ops', amoplefttype => 'inet',
amoprighttype => 'inet', amopstrategy => '21', amopopr => '<=(inet,inet)',
amopmethod => 'gist' },
{ amopfamily => 'gist/network_ops', amoplefttype => 'inet',
amoprighttype => 'inet', amopstrategy => '22', amopopr => '>(inet,inet)',
amopmethod => 'gist' },
{ amopfamily => 'gist/network_ops', amoplefttype => 'inet',
amoprighttype => 'inet', amopstrategy => '23', amopopr => '>=(inet,inet)',
amopmethod => 'gist' },
{ amopfamily => 'gist/network_ops', amoplefttype => 'inet',
amoprighttype => 'inet', amopstrategy => '24', amopopr => '<<(inet,inet)',
amopmethod => 'gist' },
{ amopfamily => 'gist/network_ops', amoplefttype => 'inet',
amoprighttype => 'inet', amopstrategy => '25', amopopr => '<<=(inet,inet)',
amopmethod => 'gist' },
{ amopfamily => 'gist/network_ops', amoplefttype => 'inet',
amoprighttype => 'inet', amopstrategy => '26', amopopr => '>>(inet,inet)',
amopmethod => 'gist' },
{ amopfamily => 'gist/network_ops', amoplefttype => 'inet',
amoprighttype => 'inet', amopstrategy => '27', amopopr => '>>=(inet,inet)',
amopmethod => 'gist' },
# SP-GiST inet_ops
{ amopfamily => 'spgist/network_ops', amoplefttype => 'inet',
amoprighttype => 'inet', amopstrategy => '3', amopopr => '&&(inet,inet)',
amopmethod => 'spgist' },
{ amopfamily => 'spgist/network_ops', amoplefttype => 'inet',
amoprighttype => 'inet', amopstrategy => '18', amopopr => '=(inet,inet)',
amopmethod => 'spgist' },
{ amopfamily => 'spgist/network_ops', amoplefttype => 'inet',
amoprighttype => 'inet', amopstrategy => '19', amopopr => '<>(inet,inet)',
amopmethod => 'spgist' },
{ amopfamily => 'spgist/network_ops', amoplefttype => 'inet',
amoprighttype => 'inet', amopstrategy => '20', amopopr => '<(inet,inet)',
amopmethod => 'spgist' },
{ amopfamily => 'spgist/network_ops', amoplefttype => 'inet',
amoprighttype => 'inet', amopstrategy => '21', amopopr => '<=(inet,inet)',
amopmethod => 'spgist' },
{ amopfamily => 'spgist/network_ops', amoplefttype => 'inet',
amoprighttype => 'inet', amopstrategy => '22', amopopr => '>(inet,inet)',
amopmethod => 'spgist' },
{ amopfamily => 'spgist/network_ops', amoplefttype => 'inet',
amoprighttype => 'inet', amopstrategy => '23', amopopr => '>=(inet,inet)',
amopmethod => 'spgist' },
{ amopfamily => 'spgist/network_ops', amoplefttype => 'inet',
amoprighttype => 'inet', amopstrategy => '24', amopopr => '<<(inet,inet)',
amopmethod => 'spgist' },
{ amopfamily => 'spgist/network_ops', amoplefttype => 'inet',
amoprighttype => 'inet', amopstrategy => '25', amopopr => '<<=(inet,inet)',
amopmethod => 'spgist' },
{ amopfamily => 'spgist/network_ops', amoplefttype => 'inet',
amoprighttype => 'inet', amopstrategy => '26', amopopr => '>>(inet,inet)',
amopmethod => 'spgist' },
{ amopfamily => 'spgist/network_ops', amoplefttype => 'inet',
amoprighttype => 'inet', amopstrategy => '27', amopopr => '>>=(inet,inet)',
amopmethod => 'spgist' },
# BRIN opclasses
# minmax bytea
{ amopfamily => 'brin/bytea_minmax_ops', amoplefttype => 'bytea',
amoprighttype => 'bytea', amopstrategy => '1', amopopr => '<(bytea,bytea)',
amopmethod => 'brin' },
{ amopfamily => 'brin/bytea_minmax_ops', amoplefttype => 'bytea',
amoprighttype => 'bytea', amopstrategy => '2', amopopr => '<=(bytea,bytea)',
amopmethod => 'brin' },
{ amopfamily => 'brin/bytea_minmax_ops', amoplefttype => 'bytea',
amoprighttype => 'bytea', amopstrategy => '3', amopopr => '=(bytea,bytea)',
amopmethod => 'brin' },
{ amopfamily => 'brin/bytea_minmax_ops', amoplefttype => 'bytea',
amoprighttype => 'bytea', amopstrategy => '4', amopopr => '>=(bytea,bytea)',
amopmethod => 'brin' },
{ amopfamily => 'brin/bytea_minmax_ops', amoplefttype => 'bytea',
amoprighttype => 'bytea', amopstrategy => '5', amopopr => '>(bytea,bytea)',
amopmethod => 'brin' },
# minmax "char"
{ amopfamily => 'brin/char_minmax_ops', amoplefttype => 'char',
amoprighttype => 'char', amopstrategy => '1', amopopr => '<(char,char)',
amopmethod => 'brin' },
{ amopfamily => 'brin/char_minmax_ops', amoplefttype => 'char',
amoprighttype => 'char', amopstrategy => '2', amopopr => '<=(char,char)',
amopmethod => 'brin' },
{ amopfamily => 'brin/char_minmax_ops', amoplefttype => 'char',
amoprighttype => 'char', amopstrategy => '3', amopopr => '=(char,char)',
amopmethod => 'brin' },
{ amopfamily => 'brin/char_minmax_ops', amoplefttype => 'char',
amoprighttype => 'char', amopstrategy => '4', amopopr => '>=(char,char)',
amopmethod => 'brin' },
{ amopfamily => 'brin/char_minmax_ops', amoplefttype => 'char',
amoprighttype => 'char', amopstrategy => '5', amopopr => '>(char,char)',
amopmethod => 'brin' },
# minmax name
{ amopfamily => 'brin/name_minmax_ops', amoplefttype => 'name',
amoprighttype => 'name', amopstrategy => '1', amopopr => '<(name,name)',
amopmethod => 'brin' },
{ amopfamily => 'brin/name_minmax_ops', amoplefttype => 'name',
amoprighttype => 'name', amopstrategy => '2', amopopr => '<=(name,name)',
amopmethod => 'brin' },
{ amopfamily => 'brin/name_minmax_ops', amoplefttype => 'name',
amoprighttype => 'name', amopstrategy => '3', amopopr => '=(name,name)',
amopmethod => 'brin' },
{ amopfamily => 'brin/name_minmax_ops', amoplefttype => 'name',
amoprighttype => 'name', amopstrategy => '4', amopopr => '>=(name,name)',
amopmethod => 'brin' },
{ amopfamily => 'brin/name_minmax_ops', amoplefttype => 'name',
amoprighttype => 'name', amopstrategy => '5', amopopr => '>(name,name)',
amopmethod => 'brin' },
# minmax integer
{ amopfamily => 'brin/integer_minmax_ops', amoplefttype => 'int8',
amoprighttype => 'int8', amopstrategy => '1', amopopr => '<(int8,int8)',
amopmethod => 'brin' },
{ amopfamily => 'brin/integer_minmax_ops', amoplefttype => 'int8',
amoprighttype => 'int8', amopstrategy => '2', amopopr => '<=(int8,int8)',
amopmethod => 'brin' },
{ amopfamily => 'brin/integer_minmax_ops', amoplefttype => 'int8',
amoprighttype => 'int8', amopstrategy => '3', amopopr => '=(int8,int8)',
amopmethod => 'brin' },
{ amopfamily => 'brin/integer_minmax_ops', amoplefttype => 'int8',
amoprighttype => 'int8', amopstrategy => '4', amopopr => '>=(int8,int8)',
amopmethod => 'brin' },
{ amopfamily => 'brin/integer_minmax_ops', amoplefttype => 'int8',
amoprighttype => 'int8', amopstrategy => '5', amopopr => '>(int8,int8)',
amopmethod => 'brin' },
{ amopfamily => 'brin/integer_minmax_ops', amoplefttype => 'int8',
amoprighttype => 'int2', amopstrategy => '1', amopopr => '<(int8,int2)',
amopmethod => 'brin' },
{ amopfamily => 'brin/integer_minmax_ops', amoplefttype => 'int8',
amoprighttype => 'int2', amopstrategy => '2', amopopr => '<=(int8,int2)',
amopmethod => 'brin' },
{ amopfamily => 'brin/integer_minmax_ops', amoplefttype => 'int8',
amoprighttype => 'int2', amopstrategy => '3', amopopr => '=(int8,int2)',
amopmethod => 'brin' },
{ amopfamily => 'brin/integer_minmax_ops', amoplefttype => 'int8',
amoprighttype => 'int2', amopstrategy => '4', amopopr => '>=(int8,int2)',
amopmethod => 'brin' },
{ amopfamily => 'brin/integer_minmax_ops', amoplefttype => 'int8',
amoprighttype => 'int2', amopstrategy => '5', amopopr => '>(int8,int2)',
amopmethod => 'brin' },
{ amopfamily => 'brin/integer_minmax_ops', amoplefttype => 'int8',
amoprighttype => 'int4', amopstrategy => '1', amopopr => '<(int8,int4)',
amopmethod => 'brin' },
{ amopfamily => 'brin/integer_minmax_ops', amoplefttype => 'int8',
amoprighttype => 'int4', amopstrategy => '2', amopopr => '<=(int8,int4)',
amopmethod => 'brin' },
{ amopfamily => 'brin/integer_minmax_ops', amoplefttype => 'int8',
amoprighttype => 'int4', amopstrategy => '3', amopopr => '=(int8,int4)',
amopmethod => 'brin' },
{ amopfamily => 'brin/integer_minmax_ops', amoplefttype => 'int8',
amoprighttype => 'int4', amopstrategy => '4', amopopr => '>=(int8,int4)',
amopmethod => 'brin' },
{ amopfamily => 'brin/integer_minmax_ops', amoplefttype => 'int8',
amoprighttype => 'int4', amopstrategy => '5', amopopr => '>(int8,int4)',
amopmethod => 'brin' },
{ amopfamily => 'brin/integer_minmax_ops', amoplefttype => 'int2',
amoprighttype => 'int2', amopstrategy => '1', amopopr => '<(int2,int2)',
amopmethod => 'brin' },
{ amopfamily => 'brin/integer_minmax_ops', amoplefttype => 'int2',
amoprighttype => 'int2', amopstrategy => '2', amopopr => '<=(int2,int2)',
amopmethod => 'brin' },
{ amopfamily => 'brin/integer_minmax_ops', amoplefttype => 'int2',
amoprighttype => 'int2', amopstrategy => '3', amopopr => '=(int2,int2)',
amopmethod => 'brin' },
{ amopfamily => 'brin/integer_minmax_ops', amoplefttype => 'int2',
amoprighttype => 'int2', amopstrategy => '4', amopopr => '>=(int2,int2)',
amopmethod => 'brin' },
{ amopfamily => 'brin/integer_minmax_ops', amoplefttype => 'int2',
amoprighttype => 'int2', amopstrategy => '5', amopopr => '>(int2,int2)',
amopmethod => 'brin' },
{ amopfamily => 'brin/integer_minmax_ops', amoplefttype => 'int2',
amoprighttype => 'int8', amopstrategy => '1', amopopr => '<(int2,int8)',
amopmethod => 'brin' },
{ amopfamily => 'brin/integer_minmax_ops', amoplefttype => 'int2',
amoprighttype => 'int8', amopstrategy => '2', amopopr => '<=(int2,int8)',
amopmethod => 'brin' },
{ amopfamily => 'brin/integer_minmax_ops', amoplefttype => 'int2',
amoprighttype => 'int8', amopstrategy => '3', amopopr => '=(int2,int8)',
amopmethod => 'brin' },
{ amopfamily => 'brin/integer_minmax_ops', amoplefttype => 'int2',
amoprighttype => 'int8', amopstrategy => '4', amopopr => '>=(int2,int8)',
amopmethod => 'brin' },
{ amopfamily => 'brin/integer_minmax_ops', amoplefttype => 'int2',
amoprighttype => 'int8', amopstrategy => '5', amopopr => '>(int2,int8)',
amopmethod => 'brin' },
{ amopfamily => 'brin/integer_minmax_ops', amoplefttype => 'int2',
amoprighttype => 'int4', amopstrategy => '1', amopopr => '<(int2,int4)',
amopmethod => 'brin' },
{ amopfamily => 'brin/integer_minmax_ops', amoplefttype => 'int2',
amoprighttype => 'int4', amopstrategy => '2', amopopr => '<=(int2,int4)',
amopmethod => 'brin' },
{ amopfamily => 'brin/integer_minmax_ops', amoplefttype => 'int2',
amoprighttype => 'int4', amopstrategy => '3', amopopr => '=(int2,int4)',
amopmethod => 'brin' },
{ amopfamily => 'brin/integer_minmax_ops', amoplefttype => 'int2',
amoprighttype => 'int4', amopstrategy => '4', amopopr => '>=(int2,int4)',
amopmethod => 'brin' },
{ amopfamily => 'brin/integer_minmax_ops', amoplefttype => 'int2',
amoprighttype => 'int4', amopstrategy => '5', amopopr => '>(int2,int4)',
amopmethod => 'brin' },
{ amopfamily => 'brin/integer_minmax_ops', amoplefttype => 'int4',
amoprighttype => 'int4', amopstrategy => '1', amopopr => '<(int4,int4)',
amopmethod => 'brin' },
{ amopfamily => 'brin/integer_minmax_ops', amoplefttype => 'int4',
amoprighttype => 'int4', amopstrategy => '2', amopopr => '<=(int4,int4)',
amopmethod => 'brin' },
{ amopfamily => 'brin/integer_minmax_ops', amoplefttype => 'int4',
amoprighttype => 'int4', amopstrategy => '3', amopopr => '=(int4,int4)',
amopmethod => 'brin' },
{ amopfamily => 'brin/integer_minmax_ops', amoplefttype => 'int4',
amoprighttype => 'int4', amopstrategy => '4', amopopr => '>=(int4,int4)',
amopmethod => 'brin' },
{ amopfamily => 'brin/integer_minmax_ops', amoplefttype => 'int4',
amoprighttype => 'int4', amopstrategy => '5', amopopr => '>(int4,int4)',
amopmethod => 'brin' },
{ amopfamily => 'brin/integer_minmax_ops', amoplefttype => 'int4',
amoprighttype => 'int2', amopstrategy => '1', amopopr => '<(int4,int2)',
amopmethod => 'brin' },
{ amopfamily => 'brin/integer_minmax_ops', amoplefttype => 'int4',
amoprighttype => 'int2', amopstrategy => '2', amopopr => '<=(int4,int2)',
amopmethod => 'brin' },
{ amopfamily => 'brin/integer_minmax_ops', amoplefttype => 'int4',
amoprighttype => 'int2', amopstrategy => '3', amopopr => '=(int4,int2)',
amopmethod => 'brin' },
{ amopfamily => 'brin/integer_minmax_ops', amoplefttype => 'int4',
amoprighttype => 'int2', amopstrategy => '4', amopopr => '>=(int4,int2)',
amopmethod => 'brin' },
{ amopfamily => 'brin/integer_minmax_ops', amoplefttype => 'int4',
amoprighttype => 'int2', amopstrategy => '5', amopopr => '>(int4,int2)',
amopmethod => 'brin' },
{ amopfamily => 'brin/integer_minmax_ops', amoplefttype => 'int4',
amoprighttype => 'int8', amopstrategy => '1', amopopr => '<(int4,int8)',
amopmethod => 'brin' },
{ amopfamily => 'brin/integer_minmax_ops', amoplefttype => 'int4',
amoprighttype => 'int8', amopstrategy => '2', amopopr => '<=(int4,int8)',
amopmethod => 'brin' },
{ amopfamily => 'brin/integer_minmax_ops', amoplefttype => 'int4',
amoprighttype => 'int8', amopstrategy => '3', amopopr => '=(int4,int8)',
amopmethod => 'brin' },
{ amopfamily => 'brin/integer_minmax_ops', amoplefttype => 'int4',
amoprighttype => 'int8', amopstrategy => '4', amopopr => '>=(int4,int8)',
amopmethod => 'brin' },
{ amopfamily => 'brin/integer_minmax_ops', amoplefttype => 'int4',
amoprighttype => 'int8', amopstrategy => '5', amopopr => '>(int4,int8)',
amopmethod => 'brin' },
# minmax text
{ amopfamily => 'brin/text_minmax_ops', amoplefttype => 'text',
amoprighttype => 'text', amopstrategy => '1', amopopr => '<(text,text)',
amopmethod => 'brin' },
{ amopfamily => 'brin/text_minmax_ops', amoplefttype => 'text',
amoprighttype => 'text', amopstrategy => '2', amopopr => '<=(text,text)',
amopmethod => 'brin' },
{ amopfamily => 'brin/text_minmax_ops', amoplefttype => 'text',
amoprighttype => 'text', amopstrategy => '3', amopopr => '=(text,text)',
amopmethod => 'brin' },
{ amopfamily => 'brin/text_minmax_ops', amoplefttype => 'text',
amoprighttype => 'text', amopstrategy => '4', amopopr => '>=(text,text)',
amopmethod => 'brin' },
{ amopfamily => 'brin/text_minmax_ops', amoplefttype => 'text',
amoprighttype => 'text', amopstrategy => '5', amopopr => '>(text,text)',
amopmethod => 'brin' },
# minmax oid
{ amopfamily => 'brin/oid_minmax_ops', amoplefttype => 'oid',
amoprighttype => 'oid', amopstrategy => '1', amopopr => '<(oid,oid)',
amopmethod => 'brin' },
{ amopfamily => 'brin/oid_minmax_ops', amoplefttype => 'oid',
amoprighttype => 'oid', amopstrategy => '2', amopopr => '<=(oid,oid)',
amopmethod => 'brin' },
{ amopfamily => 'brin/oid_minmax_ops', amoplefttype => 'oid',
amoprighttype => 'oid', amopstrategy => '3', amopopr => '=(oid,oid)',
amopmethod => 'brin' },
{ amopfamily => 'brin/oid_minmax_ops', amoplefttype => 'oid',
amoprighttype => 'oid', amopstrategy => '4', amopopr => '>=(oid,oid)',
amopmethod => 'brin' },
{ amopfamily => 'brin/oid_minmax_ops', amoplefttype => 'oid',
amoprighttype => 'oid', amopstrategy => '5', amopopr => '>(oid,oid)',
amopmethod => 'brin' },
# minmax tid
{ amopfamily => 'brin/tid_minmax_ops', amoplefttype => 'tid',
amoprighttype => 'tid', amopstrategy => '1', amopopr => '<(tid,tid)',
amopmethod => 'brin' },
{ amopfamily => 'brin/tid_minmax_ops', amoplefttype => 'tid',
amoprighttype => 'tid', amopstrategy => '2', amopopr => '<=(tid,tid)',
amopmethod => 'brin' },
{ amopfamily => 'brin/tid_minmax_ops', amoplefttype => 'tid',
amoprighttype => 'tid', amopstrategy => '3', amopopr => '=(tid,tid)',
amopmethod => 'brin' },
{ amopfamily => 'brin/tid_minmax_ops', amoplefttype => 'tid',
amoprighttype => 'tid', amopstrategy => '4', amopopr => '>=(tid,tid)',
amopmethod => 'brin' },
{ amopfamily => 'brin/tid_minmax_ops', amoplefttype => 'tid',
amoprighttype => 'tid', amopstrategy => '5', amopopr => '>(tid,tid)',
amopmethod => 'brin' },
# minmax float (float4, float8)
{ amopfamily => 'brin/float_minmax_ops', amoplefttype => 'float4',
amoprighttype => 'float4', amopstrategy => '1', amopopr => '<(float4,float4)',
amopmethod => 'brin' },
{ amopfamily => 'brin/float_minmax_ops', amoplefttype => 'float4',
amoprighttype => 'float4', amopstrategy => '2',
amopopr => '<=(float4,float4)', amopmethod => 'brin' },
{ amopfamily => 'brin/float_minmax_ops', amoplefttype => 'float4',
amoprighttype => 'float4', amopstrategy => '3', amopopr => '=(float4,float4)',
amopmethod => 'brin' },
{ amopfamily => 'brin/float_minmax_ops', amoplefttype => 'float4',
amoprighttype => 'float4', amopstrategy => '4',
amopopr => '>=(float4,float4)', amopmethod => 'brin' },
{ amopfamily => 'brin/float_minmax_ops', amoplefttype => 'float4',
amoprighttype => 'float4', amopstrategy => '5', amopopr => '>(float4,float4)',
amopmethod => 'brin' },
{ amopfamily => 'brin/float_minmax_ops', amoplefttype => 'float4',
amoprighttype => 'float8', amopstrategy => '1', amopopr => '<(float4,float8)',
amopmethod => 'brin' },
{ amopfamily => 'brin/float_minmax_ops', amoplefttype => 'float4',
amoprighttype => 'float8', amopstrategy => '2',
amopopr => '<=(float4,float8)', amopmethod => 'brin' },
{ amopfamily => 'brin/float_minmax_ops', amoplefttype => 'float4',
amoprighttype => 'float8', amopstrategy => '3', amopopr => '=(float4,float8)',
amopmethod => 'brin' },
{ amopfamily => 'brin/float_minmax_ops', amoplefttype => 'float4',
amoprighttype => 'float8', amopstrategy => '4',
amopopr => '>=(float4,float8)', amopmethod => 'brin' },
{ amopfamily => 'brin/float_minmax_ops', amoplefttype => 'float4',
amoprighttype => 'float8', amopstrategy => '5', amopopr => '>(float4,float8)',
amopmethod => 'brin' },
{ amopfamily => 'brin/float_minmax_ops', amoplefttype => 'float8',
amoprighttype => 'float4', amopstrategy => '1', amopopr => '<(float8,float4)',
amopmethod => 'brin' },
{ amopfamily => 'brin/float_minmax_ops', amoplefttype => 'float8',
amoprighttype => 'float4', amopstrategy => '2',
amopopr => '<=(float8,float4)', amopmethod => 'brin' },
{ amopfamily => 'brin/float_minmax_ops', amoplefttype => 'float8',
amoprighttype => 'float4', amopstrategy => '3', amopopr => '=(float8,float4)',
amopmethod => 'brin' },
{ amopfamily => 'brin/float_minmax_ops', amoplefttype => 'float8',
amoprighttype => 'float4', amopstrategy => '4',
amopopr => '>=(float8,float4)', amopmethod => 'brin' },
{ amopfamily => 'brin/float_minmax_ops', amoplefttype => 'float8',
amoprighttype => 'float4', amopstrategy => '5', amopopr => '>(float8,float4)',
amopmethod => 'brin' },
{ amopfamily => 'brin/float_minmax_ops', amoplefttype => 'float8',
amoprighttype => 'float8', amopstrategy => '1', amopopr => '<(float8,float8)',
amopmethod => 'brin' },
{ amopfamily => 'brin/float_minmax_ops', amoplefttype => 'float8',
amoprighttype => 'float8', amopstrategy => '2',
amopopr => '<=(float8,float8)', amopmethod => 'brin' },
{ amopfamily => 'brin/float_minmax_ops', amoplefttype => 'float8',
amoprighttype => 'float8', amopstrategy => '3', amopopr => '=(float8,float8)',
amopmethod => 'brin' },
{ amopfamily => 'brin/float_minmax_ops', amoplefttype => 'float8',
amoprighttype => 'float8', amopstrategy => '4',
amopopr => '>=(float8,float8)', amopmethod => 'brin' },
{ amopfamily => 'brin/float_minmax_ops', amoplefttype => 'float8',
amoprighttype => 'float8', amopstrategy => '5', amopopr => '>(float8,float8)',
amopmethod => 'brin' },
# minmax macaddr
{ amopfamily => 'brin/macaddr_minmax_ops', amoplefttype => 'macaddr',
amoprighttype => 'macaddr', amopstrategy => '1',
amopopr => '<(macaddr,macaddr)', amopmethod => 'brin' },
{ amopfamily => 'brin/macaddr_minmax_ops', amoplefttype => 'macaddr',
amoprighttype => 'macaddr', amopstrategy => '2',
amopopr => '<=(macaddr,macaddr)', amopmethod => 'brin' },
{ amopfamily => 'brin/macaddr_minmax_ops', amoplefttype => 'macaddr',
amoprighttype => 'macaddr', amopstrategy => '3',
amopopr => '=(macaddr,macaddr)', amopmethod => 'brin' },
{ amopfamily => 'brin/macaddr_minmax_ops', amoplefttype => 'macaddr',
amoprighttype => 'macaddr', amopstrategy => '4',
amopopr => '>=(macaddr,macaddr)', amopmethod => 'brin' },
{ amopfamily => 'brin/macaddr_minmax_ops', amoplefttype => 'macaddr',
amoprighttype => 'macaddr', amopstrategy => '5',
amopopr => '>(macaddr,macaddr)', amopmethod => 'brin' },
# minmax macaddr8
{ amopfamily => 'brin/macaddr8_minmax_ops', amoplefttype => 'macaddr8',
amoprighttype => 'macaddr8', amopstrategy => '1',
amopopr => '<(macaddr8,macaddr8)', amopmethod => 'brin' },
{ amopfamily => 'brin/macaddr8_minmax_ops', amoplefttype => 'macaddr8',
amoprighttype => 'macaddr8', amopstrategy => '2',
amopopr => '<=(macaddr8,macaddr8)', amopmethod => 'brin' },
{ amopfamily => 'brin/macaddr8_minmax_ops', amoplefttype => 'macaddr8',
amoprighttype => 'macaddr8', amopstrategy => '3',
amopopr => '=(macaddr8,macaddr8)', amopmethod => 'brin' },
{ amopfamily => 'brin/macaddr8_minmax_ops', amoplefttype => 'macaddr8',
amoprighttype => 'macaddr8', amopstrategy => '4',
amopopr => '>=(macaddr8,macaddr8)', amopmethod => 'brin' },
{ amopfamily => 'brin/macaddr8_minmax_ops', amoplefttype => 'macaddr8',
amoprighttype => 'macaddr8', amopstrategy => '5',
amopopr => '>(macaddr8,macaddr8)', amopmethod => 'brin' },
# minmax inet
{ amopfamily => 'brin/network_minmax_ops', amoplefttype => 'inet',
amoprighttype => 'inet', amopstrategy => '1', amopopr => '<(inet,inet)',
amopmethod => 'brin' },
{ amopfamily => 'brin/network_minmax_ops', amoplefttype => 'inet',
amoprighttype => 'inet', amopstrategy => '2', amopopr => '<=(inet,inet)',
amopmethod => 'brin' },
{ amopfamily => 'brin/network_minmax_ops', amoplefttype => 'inet',
amoprighttype => 'inet', amopstrategy => '3', amopopr => '=(inet,inet)',
amopmethod => 'brin' },
{ amopfamily => 'brin/network_minmax_ops', amoplefttype => 'inet',
amoprighttype => 'inet', amopstrategy => '4', amopopr => '>=(inet,inet)',
amopmethod => 'brin' },
{ amopfamily => 'brin/network_minmax_ops', amoplefttype => 'inet',
amoprighttype => 'inet', amopstrategy => '5', amopopr => '>(inet,inet)',
amopmethod => 'brin' },
# inclusion inet
{ amopfamily => 'brin/network_inclusion_ops', amoplefttype => 'inet',
amoprighttype => 'inet', amopstrategy => '3', amopopr => '&&(inet,inet)',
amopmethod => 'brin' },
{ amopfamily => 'brin/network_inclusion_ops', amoplefttype => 'inet',
amoprighttype => 'inet', amopstrategy => '7', amopopr => '>>=(inet,inet)',
amopmethod => 'brin' },
{ amopfamily => 'brin/network_inclusion_ops', amoplefttype => 'inet',
amoprighttype => 'inet', amopstrategy => '8', amopopr => '<<=(inet,inet)',
amopmethod => 'brin' },
{ amopfamily => 'brin/network_inclusion_ops', amoplefttype => 'inet',
amoprighttype => 'inet', amopstrategy => '18', amopopr => '=(inet,inet)',
amopmethod => 'brin' },
{ amopfamily => 'brin/network_inclusion_ops', amoplefttype => 'inet',
amoprighttype => 'inet', amopstrategy => '24', amopopr => '>>(inet,inet)',
amopmethod => 'brin' },
{ amopfamily => 'brin/network_inclusion_ops', amoplefttype => 'inet',
amoprighttype => 'inet', amopstrategy => '26', amopopr => '<<(inet,inet)',
amopmethod => 'brin' },
# minmax character
{ amopfamily => 'brin/bpchar_minmax_ops', amoplefttype => 'bpchar',
amoprighttype => 'bpchar', amopstrategy => '1', amopopr => '<(bpchar,bpchar)',
amopmethod => 'brin' },
{ amopfamily => 'brin/bpchar_minmax_ops', amoplefttype => 'bpchar',
amoprighttype => 'bpchar', amopstrategy => '2',
amopopr => '<=(bpchar,bpchar)', amopmethod => 'brin' },
{ amopfamily => 'brin/bpchar_minmax_ops', amoplefttype => 'bpchar',
amoprighttype => 'bpchar', amopstrategy => '3', amopopr => '=(bpchar,bpchar)',
amopmethod => 'brin' },
{ amopfamily => 'brin/bpchar_minmax_ops', amoplefttype => 'bpchar',
amoprighttype => 'bpchar', amopstrategy => '4',
amopopr => '>=(bpchar,bpchar)', amopmethod => 'brin' },
{ amopfamily => 'brin/bpchar_minmax_ops', amoplefttype => 'bpchar',
amoprighttype => 'bpchar', amopstrategy => '5', amopopr => '>(bpchar,bpchar)',
amopmethod => 'brin' },
# minmax time without time zone
{ amopfamily => 'brin/time_minmax_ops', amoplefttype => 'time',
amoprighttype => 'time', amopstrategy => '1', amopopr => '<(time,time)',
amopmethod => 'brin' },
{ amopfamily => 'brin/time_minmax_ops', amoplefttype => 'time',
amoprighttype => 'time', amopstrategy => '2', amopopr => '<=(time,time)',
amopmethod => 'brin' },
{ amopfamily => 'brin/time_minmax_ops', amoplefttype => 'time',
amoprighttype => 'time', amopstrategy => '3', amopopr => '=(time,time)',
amopmethod => 'brin' },
{ amopfamily => 'brin/time_minmax_ops', amoplefttype => 'time',
amoprighttype => 'time', amopstrategy => '4', amopopr => '>=(time,time)',
amopmethod => 'brin' },
{ amopfamily => 'brin/time_minmax_ops', amoplefttype => 'time',
amoprighttype => 'time', amopstrategy => '5', amopopr => '>(time,time)',
amopmethod => 'brin' },
# minmax datetime (date, timestamp, timestamptz)
{ amopfamily => 'brin/datetime_minmax_ops', amoplefttype => 'timestamp',
amoprighttype => 'timestamp', amopstrategy => '1',
amopopr => '<(timestamp,timestamp)', amopmethod => 'brin' },
{ amopfamily => 'brin/datetime_minmax_ops', amoplefttype => 'timestamp',
amoprighttype => 'timestamp', amopstrategy => '2',
amopopr => '<=(timestamp,timestamp)', amopmethod => 'brin' },
{ amopfamily => 'brin/datetime_minmax_ops', amoplefttype => 'timestamp',
amoprighttype => 'timestamp', amopstrategy => '3',
amopopr => '=(timestamp,timestamp)', amopmethod => 'brin' },
{ amopfamily => 'brin/datetime_minmax_ops', amoplefttype => 'timestamp',
amoprighttype => 'timestamp', amopstrategy => '4',
amopopr => '>=(timestamp,timestamp)', amopmethod => 'brin' },
{ amopfamily => 'brin/datetime_minmax_ops', amoplefttype => 'timestamp',
amoprighttype => 'timestamp', amopstrategy => '5',
amopopr => '>(timestamp,timestamp)', amopmethod => 'brin' },
{ amopfamily => 'brin/datetime_minmax_ops', amoplefttype => 'timestamp',
amoprighttype => 'date', amopstrategy => '1', amopopr => '<(timestamp,date)',
amopmethod => 'brin' },
{ amopfamily => 'brin/datetime_minmax_ops', amoplefttype => 'timestamp',
amoprighttype => 'date', amopstrategy => '2', amopopr => '<=(timestamp,date)',
amopmethod => 'brin' },
{ amopfamily => 'brin/datetime_minmax_ops', amoplefttype => 'timestamp',
amoprighttype => 'date', amopstrategy => '3', amopopr => '=(timestamp,date)',
amopmethod => 'brin' },
{ amopfamily => 'brin/datetime_minmax_ops', amoplefttype => 'timestamp',
amoprighttype => 'date', amopstrategy => '4', amopopr => '>=(timestamp,date)',
amopmethod => 'brin' },
{ amopfamily => 'brin/datetime_minmax_ops', amoplefttype => 'timestamp',
amoprighttype => 'date', amopstrategy => '5', amopopr => '>(timestamp,date)',
amopmethod => 'brin' },
{ amopfamily => 'brin/datetime_minmax_ops', amoplefttype => 'timestamp',
amoprighttype => 'timestamptz', amopstrategy => '1',
amopopr => '<(timestamp,timestamptz)', amopmethod => 'brin' },
{ amopfamily => 'brin/datetime_minmax_ops', amoplefttype => 'timestamp',
amoprighttype => 'timestamptz', amopstrategy => '2',
amopopr => '<=(timestamp,timestamptz)', amopmethod => 'brin' },
{ amopfamily => 'brin/datetime_minmax_ops', amoplefttype => 'timestamp',
amoprighttype => 'timestamptz', amopstrategy => '3',
amopopr => '=(timestamp,timestamptz)', amopmethod => 'brin' },
{ amopfamily => 'brin/datetime_minmax_ops', amoplefttype => 'timestamp',
amoprighttype => 'timestamptz', amopstrategy => '4',
amopopr => '>=(timestamp,timestamptz)', amopmethod => 'brin' },
{ amopfamily => 'brin/datetime_minmax_ops', amoplefttype => 'timestamp',
amoprighttype => 'timestamptz', amopstrategy => '5',
amopopr => '>(timestamp,timestamptz)', amopmethod => 'brin' },
{ amopfamily => 'brin/datetime_minmax_ops', amoplefttype => 'date',
amoprighttype => 'date', amopstrategy => '1', amopopr => '<(date,date)',
amopmethod => 'brin' },
{ amopfamily => 'brin/datetime_minmax_ops', amoplefttype => 'date',
amoprighttype => 'date', amopstrategy => '2', amopopr => '<=(date,date)',
amopmethod => 'brin' },
{ amopfamily => 'brin/datetime_minmax_ops', amoplefttype => 'date',
amoprighttype => 'date', amopstrategy => '3', amopopr => '=(date,date)',
amopmethod => 'brin' },
{ amopfamily => 'brin/datetime_minmax_ops', amoplefttype => 'date',
amoprighttype => 'date', amopstrategy => '4', amopopr => '>=(date,date)',
amopmethod => 'brin' },
{ amopfamily => 'brin/datetime_minmax_ops', amoplefttype => 'date',
amoprighttype => 'date', amopstrategy => '5', amopopr => '>(date,date)',
amopmethod => 'brin' },
{ amopfamily => 'brin/datetime_minmax_ops', amoplefttype => 'date',
amoprighttype => 'timestamp', amopstrategy => '1',
amopopr => '<(date,timestamp)', amopmethod => 'brin' },
{ amopfamily => 'brin/datetime_minmax_ops', amoplefttype => 'date',
amoprighttype => 'timestamp', amopstrategy => '2',
amopopr => '<=(date,timestamp)', amopmethod => 'brin' },
{ amopfamily => 'brin/datetime_minmax_ops', amoplefttype => 'date',
amoprighttype => 'timestamp', amopstrategy => '3',
amopopr => '=(date,timestamp)', amopmethod => 'brin' },
{ amopfamily => 'brin/datetime_minmax_ops', amoplefttype => 'date',
amoprighttype => 'timestamp', amopstrategy => '4',
amopopr => '>=(date,timestamp)', amopmethod => 'brin' },
{ amopfamily => 'brin/datetime_minmax_ops', amoplefttype => 'date',
amoprighttype => 'timestamp', amopstrategy => '5',
amopopr => '>(date,timestamp)', amopmethod => 'brin' },
{ amopfamily => 'brin/datetime_minmax_ops', amoplefttype => 'date',
amoprighttype => 'timestamptz', amopstrategy => '1',
amopopr => '<(date,timestamptz)', amopmethod => 'brin' },
{ amopfamily => 'brin/datetime_minmax_ops', amoplefttype => 'date',
amoprighttype => 'timestamptz', amopstrategy => '2',
amopopr => '<=(date,timestamptz)', amopmethod => 'brin' },
{ amopfamily => 'brin/datetime_minmax_ops', amoplefttype => 'date',
amoprighttype => 'timestamptz', amopstrategy => '3',
amopopr => '=(date,timestamptz)', amopmethod => 'brin' },
{ amopfamily => 'brin/datetime_minmax_ops', amoplefttype => 'date',
amoprighttype => 'timestamptz', amopstrategy => '4',
amopopr => '>=(date,timestamptz)', amopmethod => 'brin' },
{ amopfamily => 'brin/datetime_minmax_ops', amoplefttype => 'date',
amoprighttype => 'timestamptz', amopstrategy => '5',
amopopr => '>(date,timestamptz)', amopmethod => 'brin' },
{ amopfamily => 'brin/datetime_minmax_ops', amoplefttype => 'timestamptz',
amoprighttype => 'date', amopstrategy => '1',
amopopr => '<(timestamptz,date)', amopmethod => 'brin' },
{ amopfamily => 'brin/datetime_minmax_ops', amoplefttype => 'timestamptz',
amoprighttype => 'date', amopstrategy => '2',
amopopr => '<=(timestamptz,date)', amopmethod => 'brin' },
{ amopfamily => 'brin/datetime_minmax_ops', amoplefttype => 'timestamptz',
amoprighttype => 'date', amopstrategy => '3',
amopopr => '=(timestamptz,date)', amopmethod => 'brin' },
{ amopfamily => 'brin/datetime_minmax_ops', amoplefttype => 'timestamptz',
amoprighttype => 'date', amopstrategy => '4',
amopopr => '>=(timestamptz,date)', amopmethod => 'brin' },
{ amopfamily => 'brin/datetime_minmax_ops', amoplefttype => 'timestamptz',
amoprighttype => 'date', amopstrategy => '5',
amopopr => '>(timestamptz,date)', amopmethod => 'brin' },
{ amopfamily => 'brin/datetime_minmax_ops', amoplefttype => 'timestamptz',
amoprighttype => 'timestamp', amopstrategy => '1',
amopopr => '<(timestamptz,timestamp)', amopmethod => 'brin' },
{ amopfamily => 'brin/datetime_minmax_ops', amoplefttype => 'timestamptz',
amoprighttype => 'timestamp', amopstrategy => '2',
amopopr => '<=(timestamptz,timestamp)', amopmethod => 'brin' },
{ amopfamily => 'brin/datetime_minmax_ops', amoplefttype => 'timestamptz',
amoprighttype => 'timestamp', amopstrategy => '3',
amopopr => '=(timestamptz,timestamp)', amopmethod => 'brin' },
{ amopfamily => 'brin/datetime_minmax_ops', amoplefttype => 'timestamptz',
amoprighttype => 'timestamp', amopstrategy => '4',
amopopr => '>=(timestamptz,timestamp)', amopmethod => 'brin' },
{ amopfamily => 'brin/datetime_minmax_ops', amoplefttype => 'timestamptz',
amoprighttype => 'timestamp', amopstrategy => '5',
amopopr => '>(timestamptz,timestamp)', amopmethod => 'brin' },
{ amopfamily => 'brin/datetime_minmax_ops', amoplefttype => 'timestamptz',
amoprighttype => 'timestamptz', amopstrategy => '1',
amopopr => '<(timestamptz,timestamptz)', amopmethod => 'brin' },
{ amopfamily => 'brin/datetime_minmax_ops', amoplefttype => 'timestamptz',
amoprighttype => 'timestamptz', amopstrategy => '2',
amopopr => '<=(timestamptz,timestamptz)', amopmethod => 'brin' },
{ amopfamily => 'brin/datetime_minmax_ops', amoplefttype => 'timestamptz',
amoprighttype => 'timestamptz', amopstrategy => '3',
amopopr => '=(timestamptz,timestamptz)', amopmethod => 'brin' },
{ amopfamily => 'brin/datetime_minmax_ops', amoplefttype => 'timestamptz',
amoprighttype => 'timestamptz', amopstrategy => '4',
amopopr => '>=(timestamptz,timestamptz)', amopmethod => 'brin' },
{ amopfamily => 'brin/datetime_minmax_ops', amoplefttype => 'timestamptz',
amoprighttype => 'timestamptz', amopstrategy => '5',
amopopr => '>(timestamptz,timestamptz)', amopmethod => 'brin' },
# minmax interval
{ amopfamily => 'brin/interval_minmax_ops', amoplefttype => 'interval',
amoprighttype => 'interval', amopstrategy => '1',
amopopr => '<(interval,interval)', amopmethod => 'brin' },
{ amopfamily => 'brin/interval_minmax_ops', amoplefttype => 'interval',
amoprighttype => 'interval', amopstrategy => '2',
amopopr => '<=(interval,interval)', amopmethod => 'brin' },
{ amopfamily => 'brin/interval_minmax_ops', amoplefttype => 'interval',
amoprighttype => 'interval', amopstrategy => '3',
amopopr => '=(interval,interval)', amopmethod => 'brin' },
{ amopfamily => 'brin/interval_minmax_ops', amoplefttype => 'interval',
amoprighttype => 'interval', amopstrategy => '4',
amopopr => '>=(interval,interval)', amopmethod => 'brin' },
{ amopfamily => 'brin/interval_minmax_ops', amoplefttype => 'interval',
amoprighttype => 'interval', amopstrategy => '5',
amopopr => '>(interval,interval)', amopmethod => 'brin' },
# minmax time with time zone
{ amopfamily => 'brin/timetz_minmax_ops', amoplefttype => 'timetz',
amoprighttype => 'timetz', amopstrategy => '1', amopopr => '<(timetz,timetz)',
amopmethod => 'brin' },
{ amopfamily => 'brin/timetz_minmax_ops', amoplefttype => 'timetz',
amoprighttype => 'timetz', amopstrategy => '2',
amopopr => '<=(timetz,timetz)', amopmethod => 'brin' },
{ amopfamily => 'brin/timetz_minmax_ops', amoplefttype => 'timetz',
amoprighttype => 'timetz', amopstrategy => '3', amopopr => '=(timetz,timetz)',
amopmethod => 'brin' },
{ amopfamily => 'brin/timetz_minmax_ops', amoplefttype => 'timetz',
amoprighttype => 'timetz', amopstrategy => '4',
amopopr => '>=(timetz,timetz)', amopmethod => 'brin' },
{ amopfamily => 'brin/timetz_minmax_ops', amoplefttype => 'timetz',
amoprighttype => 'timetz', amopstrategy => '5', amopopr => '>(timetz,timetz)',
amopmethod => 'brin' },
# minmax bit
{ amopfamily => 'brin/bit_minmax_ops', amoplefttype => 'bit',
amoprighttype => 'bit', amopstrategy => '1', amopopr => '<(bit,bit)',
amopmethod => 'brin' },
{ amopfamily => 'brin/bit_minmax_ops', amoplefttype => 'bit',
amoprighttype => 'bit', amopstrategy => '2', amopopr => '<=(bit,bit)',
amopmethod => 'brin' },
{ amopfamily => 'brin/bit_minmax_ops', amoplefttype => 'bit',
amoprighttype => 'bit', amopstrategy => '3', amopopr => '=(bit,bit)',
amopmethod => 'brin' },
{ amopfamily => 'brin/bit_minmax_ops', amoplefttype => 'bit',
amoprighttype => 'bit', amopstrategy => '4', amopopr => '>=(bit,bit)',
amopmethod => 'brin' },
{ amopfamily => 'brin/bit_minmax_ops', amoplefttype => 'bit',
amoprighttype => 'bit', amopstrategy => '5', amopopr => '>(bit,bit)',
amopmethod => 'brin' },
# minmax bit varying
{ amopfamily => 'brin/varbit_minmax_ops', amoplefttype => 'varbit',
amoprighttype => 'varbit', amopstrategy => '1', amopopr => '<(varbit,varbit)',
amopmethod => 'brin' },
{ amopfamily => 'brin/varbit_minmax_ops', amoplefttype => 'varbit',
amoprighttype => 'varbit', amopstrategy => '2',
amopopr => '<=(varbit,varbit)', amopmethod => 'brin' },
{ amopfamily => 'brin/varbit_minmax_ops', amoplefttype => 'varbit',
amoprighttype => 'varbit', amopstrategy => '3', amopopr => '=(varbit,varbit)',
amopmethod => 'brin' },
{ amopfamily => 'brin/varbit_minmax_ops', amoplefttype => 'varbit',
amoprighttype => 'varbit', amopstrategy => '4',
amopopr => '>=(varbit,varbit)', amopmethod => 'brin' },
{ amopfamily => 'brin/varbit_minmax_ops', amoplefttype => 'varbit',
amoprighttype => 'varbit', amopstrategy => '5', amopopr => '>(varbit,varbit)',
amopmethod => 'brin' },
# minmax numeric
{ amopfamily => 'brin/numeric_minmax_ops', amoplefttype => 'numeric',
amoprighttype => 'numeric', amopstrategy => '1',
amopopr => '<(numeric,numeric)', amopmethod => 'brin' },
{ amopfamily => 'brin/numeric_minmax_ops', amoplefttype => 'numeric',
amoprighttype => 'numeric', amopstrategy => '2',
amopopr => '<=(numeric,numeric)', amopmethod => 'brin' },
{ amopfamily => 'brin/numeric_minmax_ops', amoplefttype => 'numeric',
amoprighttype => 'numeric', amopstrategy => '3',
amopopr => '=(numeric,numeric)', amopmethod => 'brin' },
{ amopfamily => 'brin/numeric_minmax_ops', amoplefttype => 'numeric',
amoprighttype => 'numeric', amopstrategy => '4',
amopopr => '>=(numeric,numeric)', amopmethod => 'brin' },
{ amopfamily => 'brin/numeric_minmax_ops', amoplefttype => 'numeric',
amoprighttype => 'numeric', amopstrategy => '5',
amopopr => '>(numeric,numeric)', amopmethod => 'brin' },
# minmax uuid
{ amopfamily => 'brin/uuid_minmax_ops', amoplefttype => 'uuid',
amoprighttype => 'uuid', amopstrategy => '1', amopopr => '<(uuid,uuid)',
amopmethod => 'brin' },
{ amopfamily => 'brin/uuid_minmax_ops', amoplefttype => 'uuid',
amoprighttype => 'uuid', amopstrategy => '2', amopopr => '<=(uuid,uuid)',
amopmethod => 'brin' },
{ amopfamily => 'brin/uuid_minmax_ops', amoplefttype => 'uuid',
amoprighttype => 'uuid', amopstrategy => '3', amopopr => '=(uuid,uuid)',
amopmethod => 'brin' },
{ amopfamily => 'brin/uuid_minmax_ops', amoplefttype => 'uuid',
amoprighttype => 'uuid', amopstrategy => '4', amopopr => '>=(uuid,uuid)',
amopmethod => 'brin' },
{ amopfamily => 'brin/uuid_minmax_ops', amoplefttype => 'uuid',
amoprighttype => 'uuid', amopstrategy => '5', amopopr => '>(uuid,uuid)',
amopmethod => 'brin' },
# inclusion range types
{ amopfamily => 'brin/range_inclusion_ops', amoplefttype => 'anyrange',
amoprighttype => 'anyrange', amopstrategy => '1',
amopopr => '<<(anyrange,anyrange)', amopmethod => 'brin' },
{ amopfamily => 'brin/range_inclusion_ops', amoplefttype => 'anyrange',
amoprighttype => 'anyrange', amopstrategy => '2',
amopopr => '&<(anyrange,anyrange)', amopmethod => 'brin' },
{ amopfamily => 'brin/range_inclusion_ops', amoplefttype => 'anyrange',
amoprighttype => 'anyrange', amopstrategy => '3',
amopopr => '&&(anyrange,anyrange)', amopmethod => 'brin' },
{ amopfamily => 'brin/range_inclusion_ops', amoplefttype => 'anyrange',
amoprighttype => 'anyrange', amopstrategy => '4',
amopopr => '&>(anyrange,anyrange)', amopmethod => 'brin' },
{ amopfamily => 'brin/range_inclusion_ops', amoplefttype => 'anyrange',
amoprighttype => 'anyrange', amopstrategy => '5',
amopopr => '>>(anyrange,anyrange)', amopmethod => 'brin' },
{ amopfamily => 'brin/range_inclusion_ops', amoplefttype => 'anyrange',
amoprighttype => 'anyrange', amopstrategy => '7',
amopopr => '@>(anyrange,anyrange)', amopmethod => 'brin' },
{ amopfamily => 'brin/range_inclusion_ops', amoplefttype => 'anyrange',
amoprighttype => 'anyrange', amopstrategy => '8',
amopopr => '<@(anyrange,anyrange)', amopmethod => 'brin' },
{ amopfamily => 'brin/range_inclusion_ops', amoplefttype => 'anyrange',
amoprighttype => 'anyelement', amopstrategy => '16',
amopopr => '@>(anyrange,anyelement)', amopmethod => 'brin' },
{ amopfamily => 'brin/range_inclusion_ops', amoplefttype => 'anyrange',
amoprighttype => 'anyrange', amopstrategy => '17',
amopopr => '-|-(anyrange,anyrange)', amopmethod => 'brin' },
{ amopfamily => 'brin/range_inclusion_ops', amoplefttype => 'anyrange',
amoprighttype => 'anyrange', amopstrategy => '18',
amopopr => '=(anyrange,anyrange)', amopmethod => 'brin' },
{ amopfamily => 'brin/range_inclusion_ops', amoplefttype => 'anyrange',
amoprighttype => 'anyrange', amopstrategy => '20',
amopopr => '<(anyrange,anyrange)', amopmethod => 'brin' },
{ amopfamily => 'brin/range_inclusion_ops', amoplefttype => 'anyrange',
amoprighttype => 'anyrange', amopstrategy => '21',
amopopr => '<=(anyrange,anyrange)', amopmethod => 'brin' },
{ amopfamily => 'brin/range_inclusion_ops', amoplefttype => 'anyrange',
amoprighttype => 'anyrange', amopstrategy => '22',
amopopr => '>(anyrange,anyrange)', amopmethod => 'brin' },
{ amopfamily => 'brin/range_inclusion_ops', amoplefttype => 'anyrange',
amoprighttype => 'anyrange', amopstrategy => '23',
amopopr => '>=(anyrange,anyrange)', amopmethod => 'brin' },
# minmax pg_lsn
{ amopfamily => 'brin/pg_lsn_minmax_ops', amoplefttype => 'pg_lsn',
amoprighttype => 'pg_lsn', amopstrategy => '1', amopopr => '<(pg_lsn,pg_lsn)',
amopmethod => 'brin' },
{ amopfamily => 'brin/pg_lsn_minmax_ops', amoplefttype => 'pg_lsn',
amoprighttype => 'pg_lsn', amopstrategy => '2',
amopopr => '<=(pg_lsn,pg_lsn)', amopmethod => 'brin' },
{ amopfamily => 'brin/pg_lsn_minmax_ops', amoplefttype => 'pg_lsn',
amoprighttype => 'pg_lsn', amopstrategy => '3', amopopr => '=(pg_lsn,pg_lsn)',
amopmethod => 'brin' },
{ amopfamily => 'brin/pg_lsn_minmax_ops', amoplefttype => 'pg_lsn',
amoprighttype => 'pg_lsn', amopstrategy => '4',
amopopr => '>=(pg_lsn,pg_lsn)', amopmethod => 'brin' },
{ amopfamily => 'brin/pg_lsn_minmax_ops', amoplefttype => 'pg_lsn',
amoprighttype => 'pg_lsn', amopstrategy => '5', amopopr => '>(pg_lsn,pg_lsn)',
amopmethod => 'brin' },
# inclusion box
{ amopfamily => 'brin/box_inclusion_ops', amoplefttype => 'box',
amoprighttype => 'box', amopstrategy => '1', amopopr => '<<(box,box)',
amopmethod => 'brin' },
{ amopfamily => 'brin/box_inclusion_ops', amoplefttype => 'box',
amoprighttype => 'box', amopstrategy => '2', amopopr => '&<(box,box)',
amopmethod => 'brin' },
{ amopfamily => 'brin/box_inclusion_ops', amoplefttype => 'box',
amoprighttype => 'box', amopstrategy => '3', amopopr => '&&(box,box)',
amopmethod => 'brin' },
{ amopfamily => 'brin/box_inclusion_ops', amoplefttype => 'box',
amoprighttype => 'box', amopstrategy => '4', amopopr => '&>(box,box)',
amopmethod => 'brin' },
{ amopfamily => 'brin/box_inclusion_ops', amoplefttype => 'box',
amoprighttype => 'box', amopstrategy => '5', amopopr => '>>(box,box)',
amopmethod => 'brin' },
{ amopfamily => 'brin/box_inclusion_ops', amoplefttype => 'box',
amoprighttype => 'box', amopstrategy => '6', amopopr => '~=(box,box)',
amopmethod => 'brin' },
{ amopfamily => 'brin/box_inclusion_ops', amoplefttype => 'box',
amoprighttype => 'box', amopstrategy => '7', amopopr => '@>(box,box)',
amopmethod => 'brin' },
{ amopfamily => 'brin/box_inclusion_ops', amoplefttype => 'box',
amoprighttype => 'box', amopstrategy => '8', amopopr => '<@(box,box)',
amopmethod => 'brin' },
{ amopfamily => 'brin/box_inclusion_ops', amoplefttype => 'box',
amoprighttype => 'box', amopstrategy => '9', amopopr => '&<|(box,box)',
amopmethod => 'brin' },
{ amopfamily => 'brin/box_inclusion_ops', amoplefttype => 'box',
amoprighttype => 'box', amopstrategy => '10', amopopr => '<<|(box,box)',
amopmethod => 'brin' },
{ amopfamily => 'brin/box_inclusion_ops', amoplefttype => 'box',
amoprighttype => 'box', amopstrategy => '11', amopopr => '|>>(box,box)',
amopmethod => 'brin' },
{ amopfamily => 'brin/box_inclusion_ops', amoplefttype => 'box',
amoprighttype => 'box', amopstrategy => '12', amopopr => '|&>(box,box)',
amopmethod => 'brin' },
# we could, but choose not to, supply entries for strategies 13 and 14
{ amopfamily => 'brin/box_inclusion_ops', amoplefttype => 'box',
amoprighttype => 'point', amopstrategy => '7', amopopr => '@>(box,point)',
amopmethod => 'brin' },
]