55 elog(
ERROR,
"cache lookup failed for operator class %u", opclassoid);
58 opfamilyoid = classform->opcfamily;
59 opcintype = classform->opcintype;
60 opckeytype = classform->opckeytype;
62 opckeytype = opcintype;
63 opclassname =
NameStr(classform->opcname);
68 elog(
ERROR,
"cache lookup failed for operator family %u", opfamilyoid);
71 opfamilyname =
NameStr(familyform->opfname);
88 if (procform->amproclefttype != procform->amprocrighttype)
91 (
errcode(ERRCODE_INVALID_OBJECT_DEFINITION),
92 errmsg(
"gist opfamily %s contains support procedure %s with cross-type registration",
102 if (procform->amproclefttype != opcintype)
106 switch (procform->amprocnum)
134 3, 3, opckeytype, opckeytype,
144 (
errcode(ERRCODE_INVALID_OBJECT_DEFINITION),
145 errmsg(
"gist opfamily %s contains function %s with invalid support number %d",
148 procform->amprocnum)));
156 (
errcode(ERRCODE_INVALID_OBJECT_DEFINITION),
157 errmsg(
"gist opfamily %s contains function %s with wrong signature for support number %d",
160 procform->amprocnum)));
173 if (oprform->amopstrategy < 1)
176 (
errcode(ERRCODE_INVALID_OBJECT_DEFINITION),
177 errmsg(
"gist opfamily %s contains operator %s with invalid strategy number %d",
180 oprform->amopstrategy)));
189 oprform->amoplefttype,
190 oprform->amoplefttype,
194 (
errcode(ERRCODE_INVALID_OBJECT_DEFINITION),
195 errmsg(
"gist opfamily %s contains unsupported ORDER BY specification for operator %s",
205 (
errcode(ERRCODE_INVALID_OBJECT_DEFINITION),
206 errmsg(
"gist opfamily %s contains incorrect ORDER BY opfamily specification for operator %s",
220 oprform->amoplefttype,
221 oprform->amoprighttype))
224 (
errcode(ERRCODE_INVALID_OBJECT_DEFINITION),
225 errmsg(
"gist opfamily %s contains operator %s with wrong signature",
235 foreach(lc, grouplist)
240 if (thisgroup->
lefttype == opcintype &&
242 opclassgroup = thisgroup;
258 (opclassgroup->
functionset & (((uint64) 1) << i)) != 0)
263 (
errcode(ERRCODE_INVALID_OBJECT_DEFINITION),
264 errmsg(
"gist opclass %s is missing support function %d",
bool opfamily_can_sort_type(Oid opfamilyoid, Oid datatypeoid)
FormData_pg_amproc * Form_pg_amproc
int errcode(int sqlerrcode)
char * format_operator(Oid operator_oid)
#define OidIsValid(objectId)
Oid get_op_rettype(Oid opno)
#define SearchSysCache1(cacheId, key1)
void ReleaseCatCacheList(CatCList *list)
CatCTup * members[FLEXIBLE_ARRAY_MEMBER]
bool check_amproc_signature(Oid funcid, Oid restype, bool exact, int minargs, int maxargs,...)
#define GIST_PICKSPLIT_PROC
#define ObjectIdGetDatum(X)
#define GIST_COMPRESS_PROC
List * identify_opfamily_groups(CatCList *oprlist, CatCList *proclist)
#define SearchSysCacheList1(cacheId, key1)
#define ereport(elevel, rest)
FormData_pg_opfamily * Form_pg_opfamily
void ReleaseSysCache(HeapTuple tuple)
#define GIST_CONSISTENT_PROC
char * format_procedure(Oid procedure_oid)
#define HeapTupleIsValid(tuple)
Oid get_opfamily_proc(Oid opfamily, Oid lefttype, Oid righttype, int16 procnum)
#define GIST_PENALTY_PROC
#define GIST_DISTANCE_PROC
bool check_amop_signature(Oid opno, Oid restype, Oid lefttype, Oid righttype)
bool gistvalidate(Oid opclassoid)
int errmsg(const char *fmt,...)
FormData_pg_amop * Form_pg_amop
#define GIST_DECOMPRESS_PROC
FormData_pg_opclass * Form_pg_opclass