1 /*-------------------------------------------------------------------------
4 * Support routines for index access methods' amvalidate and
5 * amadjustmembers functions.
7 * Copyright (c) 2016-2021, PostgreSQL Global Development Group
9 * src/include/access/amvalidate.h
11 *-------------------------------------------------------------------------
16 #include "utils/catcache.h"
19 /* Struct returned (in a list) by identify_opfamily_groups() */
20 typedef struct OpFamilyOpFuncGroup
22 Oid lefttype
; /* amoplefttype/amproclefttype */
23 Oid righttype
; /* amoprighttype/amprocrighttype */
24 uint64 operatorset
; /* bitmask of operators with these types */
25 uint64 functionset
; /* bitmask of support funcs with these types */
26 } OpFamilyOpFuncGroup
;
29 /* Functions in access/index/amvalidate.c */
30 extern List
*identify_opfamily_groups(CatCList
*oprlist
, CatCList
*proclist
);
31 extern bool check_amproc_signature(Oid funcid
, Oid restype
, bool exact
,
32 int minargs
, int maxargs
,...);
33 extern bool check_amoptsproc_signature(Oid funcid
);
34 extern bool check_amop_signature(Oid opno
, Oid restype
,
35 Oid lefttype
, Oid righttype
);
36 extern Oid
opclass_for_family_datatype(Oid amoid
, Oid opfamilyoid
,
38 extern bool opfamily_can_sort_type(Oid opfamilyoid
, Oid datatypeoid
);
40 #endif /* AMVALIDATE_H */