Definition at line 31 of file ginvalidate.c.
32{
33 bool result = true;
39 char *opclassname;
40 char *opfamilyname;
47
48
51 elog(
ERROR,
"cache lookup failed for operator class %u", opclassoid);
53
60
61
63
64
67
68
70 {
74
75
76
77
78
80 {
83 errmsg(
"operator family \"%s\" of access method %s contains support function %s with different left and right input types",
84 opfamilyname, "gin",
86 result = false;
87 }
88
89
90
91
92
93 if (
procform->amproclefttype != opcintype)
94 continue;
95
96
98 {
102 break;
104
108 break;
110
115 break;
117
123 break;
128 break;
135 break;
138 break;
139 default:
142 errmsg(
"operator family \"%s\" of access method %s contains function %s with invalid support number %d",
143 opfamilyname, "gin",
146 result = false;
147 continue;
148 }
149
151 {
154 errmsg(
"operator family \"%s\" of access method %s contains function %s with wrong signature for support number %d",
155 opfamilyname, "gin",
158 result = false;
159 }
160 }
161
162
164 {
167
168
170 {
173 errmsg(
"operator family \"%s\" of access method %s contains operator %s with invalid strategy number %d",
174 opfamilyname, "gin",
177 result = false;
178 }
179
180
183 {
186 errmsg(
"operator family \"%s\" of access method %s contains invalid ORDER BY specification for operator %s",
187 opfamilyname, "gin",
189 result = false;
190 }
191
192
196 {
199 errmsg(
"operator family \"%s\" of access method %s contains operator %s with wrong signature",
200 opfamilyname, "gin",
202 result = false;
203 }
204 }
205
206
210 {
212
213
217
218
219
220
221
222
223
224
225
226 }
227
228
230 {
233 continue;
236 continue;
238 continue;
241 errmsg(
"operator class \"%s\" of access method %s is missing support function %d",
242 opclassname,
"gin",
i)));
243 result = false;
244 }
248 {
251 errmsg(
"operator class \"%s\" of access method %s is missing support function %d or %d",
252 opclassname, "gin",
254 result = false;
255 }
256
257
261
262 return result;
263}
bool check_amproc_signature(Oid funcid, Oid restype, bool exact, int minargs, int maxargs,...)
bool check_amop_signature(Oid opno, Oid restype, Oid lefttype, Oid righttype)
List * identify_opfamily_groups(CatCList *oprlist, CatCList *proclist)
bool check_amoptsproc_signature(Oid funcid)
#define OidIsValid(objectId)
void ReleaseCatCacheList(CatCList *list)
#define HeapTupleIsValid(tuple)
static void * GETSTRUCT(const HeapTupleData *tuple)
char * get_opfamily_name(Oid opfid, bool missing_ok)
FormData_pg_amop * Form_pg_amop
FormData_pg_amproc * Form_pg_amproc
FormData_pg_opclass * Form_pg_opclass
static Datum ObjectIdGetDatum(Oid X)
char * format_procedure(Oid procedure_oid)
char * format_operator(Oid operator_oid)
void ReleaseSysCache(HeapTuple tuple)
HeapTuple SearchSysCache1(int cacheId, Datum key1)
#define SearchSysCacheList1(cacheId, key1)
References check_amop_signature(), check_amoptsproc_signature(), check_amproc_signature(), elog, ereport, errcode(), errmsg(), ERROR, fb(), format_operator(), format_procedure(), get_opfamily_name(), GETSTRUCT(), GIN_COMPARE_PARTIAL_PROC, GIN_COMPARE_PROC, GIN_CONSISTENT_PROC, GIN_EXTRACTQUERY_PROC, GIN_EXTRACTVALUE_PROC, GIN_OPTIONS_PROC, GIN_TRICONSISTENT_PROC, GINNProcs, HeapTupleIsValid, i, identify_opfamily_groups(), INFO, lfirst, NameStr, ObjectIdGetDatum(), OidIsValid, ReleaseCatCacheList(), ReleaseSysCache(), SearchSysCache1(), and SearchSysCacheList1.
Referenced by ginhandler().