One Hat Cyber Team
Your IP :
216.73.216.216
Server IP :
194.44.31.54
Server :
Linux zen.imath.kiev.ua 4.18.0-553.77.1.el8_10.x86_64 #1 SMP Fri Oct 3 14:30:23 UTC 2025 x86_64
Server Software :
Apache/2.4.37 (Rocky Linux) OpenSSL/1.1.1k
PHP Version :
5.6.40
Buat File
|
Buat Folder
Eksekusi
Dir :
~
/
usr
/
pgsql-13
/
include
/
server
/
catalog
/
View File Name :
pg_amop.h
/*------------------------------------------------------------------------- * * pg_amop.h * definition of the "access method operator" system catalog (pg_amop) * * The amop table identifies the operators associated with each index operator * family and operator class (classes are subsets of families). An associated * operator can be either a search operator or an ordering operator, as * identified by amoppurpose. * * The primary key for this table is <amopfamily, amoplefttype, amoprighttype, * amopstrategy>. amoplefttype and amoprighttype are just copies of the * operator's oprleft/oprright, ie its declared input data types. The * "default" operators for a particular opclass within the family are those * with amoplefttype = amoprighttype = opclass's opcintype. An opfamily may * also contain other operators, typically cross-data-type operators. All the * operators within a family are supposed to be compatible, in a way that is * defined by each individual index AM. * * We also keep a unique index on <amopopr, amoppurpose, amopfamily>, so that * we can use a syscache to quickly answer questions of the form "is this * operator in this opfamily, and if so what are its semantics with respect to * the family?" This implies that the same operator cannot be listed for * multiple strategy numbers within a single opfamily, with the exception that * it's possible to list it for both search and ordering purposes (with * different strategy numbers for the two purposes). * * amopmethod is a copy of the owning opfamily's opfmethod field. This is an * intentional denormalization of the catalogs to buy lookup speed. * * * Portions Copyright (c) 1996-2020, PostgreSQL Global Development Group * Portions Copyright (c) 1994, Regents of the University of California * * src/include/catalog/pg_amop.h * * NOTES * The Catalog.pm module reads this file and derives schema * information. * *------------------------------------------------------------------------- */ #ifndef PG_AMOP_H #define PG_AMOP_H #include "catalog/genbki.h" #include "catalog/pg_amop_d.h" /* ---------------- * pg_amop definition. cpp turns this into * typedef struct FormData_pg_amop * ---------------- */ CATALOG(pg_amop,2602,AccessMethodOperatorRelationId) { Oid oid; /* oid */ /* the index opfamily this entry is for */ Oid amopfamily BKI_LOOKUP(pg_opfamily); /* operator's left input data type */ Oid amoplefttype BKI_LOOKUP(pg_type); /* operator's right input data type */ Oid amoprighttype BKI_LOOKUP(pg_type); /* operator strategy number */ int16 amopstrategy; /* is operator for 's'earch or 'o'rdering? */ char amoppurpose BKI_DEFAULT(s); /* the operator's pg_operator OID */ Oid amopopr BKI_LOOKUP(pg_operator); /* the index access method this entry is for */ Oid amopmethod BKI_LOOKUP(pg_am); /* ordering opfamily OID, or 0 if search op */ Oid amopsortfamily BKI_DEFAULT(0) BKI_LOOKUP(pg_opfamily); } FormData_pg_amop; /* ---------------- * Form_pg_amop corresponds to a pointer to a tuple with * the format of pg_amop relation. * ---------------- */ typedef FormData_pg_amop *Form_pg_amop; #ifdef EXPOSE_TO_CLIENT_CODE /* allowed values of amoppurpose: */ #define AMOP_SEARCH 's' /* operator is for search */ #define AMOP_ORDER 'o' /* operator is for ordering */ #endif /* EXPOSE_TO_CLIENT_CODE */ #endif /* PG_AMOP_H */