PostgreSQL Source Code: src/include/access/spgist.h File Reference (original) (raw)
39{
40 bool result = true;
44 Oid opcintype;
46 char *opclassname;
47 char *opfamilyname;
52 int i;
59
60
63 elog(ERROR, "cache lookup failed for operator class %u", opclassoid);
65
70
71
73
74
78
79
81 {
84 bool ok;
85
86
87
88
89
91 {
94 errmsg("operator family \"%s\" of access method %s contains support function %s with different left and right input types",
95 opfamilyname, "spgist",
97 result = false;
98 }
99
100
102 {
108
112
115
116
119 else
121
122
125 {
128 errmsg("SP-GiST leaf data type %s does not match declared type %s",
131 result = false;
133 }
134
135
136
137
138
139
141 {
143 {
145
148 {
151 break;
152 }
153 }
154 }
155 break;
161 break;
165 break;
169 ok = false;
170 else
173 1, 1, procform->amproclefttype);
174 break;
177 break;
178 default:
181 errmsg("operator family \"%s\" of access method %s contains function %s with invalid support number %d",
182 opfamilyname, "spgist",
185 result = false;
186 continue;
187 }
188
189 if ()
190 {
193 errmsg("operator family \"%s\" of access method %s contains function %s with wrong signature for support number %d",
194 opfamilyname, "spgist",
197 result = false;
198 }
199 }
200
201
202 for (i = 0; i < oprlist->n_members; i++)
203 {
207
208
209 if (oprform->amopstrategy < 1 || oprform->amopstrategy > 63)
210 {
213 errmsg("operator family \"%s\" of access method %s contains operator %s with invalid strategy number %d",
214 opfamilyname, "spgist",
216 oprform->amopstrategy)));
217 result = false;
218 }
219
220
222 {
223
226 {
229 errmsg("operator family \"%s\" of access method %s contains invalid ORDER BY specification for operator %s",
230 opfamilyname, "spgist",
232 result = false;
233 }
234 }
235 else
237
238
242 {
245 errmsg("operator family \"%s\" of access method %s contains operator %s with wrong signature",
246 opfamilyname, "spgist",
248 result = false;
249 }
250 }
251
252
255 {
257
258
259 if (thisgroup->lefttype == opcintype &&
260 thisgroup->righttype == opcintype)
262
263
264
265
266
267
269 {
272 errmsg("operator family \"%s\" of access method %s is missing operator(s) for types %s and %s",
273 opfamilyname, "spgist",
276 result = false;
277 }
278
279
280
281
282
284 continue;
285
287 {
289 continue;
291 continue;
294 errmsg("operator family \"%s\" of access method %s is missing support function %d for type %s",
295 opfamilyname, "spgist", i,
297 result = false;
298 }
299 }
300
301
302
304 {
307 errmsg("operator class \"%s\" of access method %s is missing operator(s)",
308 opclassname, "spgist")));
309 result = false;
310 }
311
315
316 return result;
317}
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 opfamily_can_sort_type(Oid opfamilyoid, Oid datatypeoid)
bool check_amoptsproc_signature(Oid funcid)
#define OidIsValid(objectId)
void ReleaseCatCacheList(CatCList *list)
#define OidFunctionCall2(functionId, arg1, arg2)
char * format_type_be(Oid type_oid)
#define HeapTupleIsValid(tuple)
static void * GETSTRUCT(const HeapTupleData *tuple)
Oid get_op_rettype(Oid opno)
char * get_opfamily_name(Oid opfid, bool missing_ok)
END_CATALOG_STRUCT typedef FormData_pg_amop * Form_pg_amop
END_CATALOG_STRUCT typedef FormData_pg_amproc * Form_pg_amproc
END_CATALOG_STRUCT typedef FormData_pg_opclass * Form_pg_opclass
static Datum PointerGetDatum(const void *X)
static Datum ObjectIdGetDatum(Oid X)
char * format_procedure(Oid procedure_oid)
char * format_operator(Oid operator_oid)
void ReleaseSysCache(HeapTuple tuple)
HeapTuple SearchSysCache1(SysCacheIdentifier cacheId, Datum key1)
#define SearchSysCacheList1(cacheId, key1)