1083{
1084 GISTENTRY *entry = (GISTENTRY *)PG_GETARG_POINTER(0);
1085 StrategyNumber strategy = (StrategyNumber)PG_GETARG_UINT16(2);
1087 char gidxmem[GIDX_MAX_SIZE];
1088 GIDX *query_gbox_index = (GIDX *)gidxmem;
1089
1090
1091
1092 bool *recheck = (bool *)PG_GETARG_POINTER(4);
1093
1094
1095
1096
1097 *recheck = false;
1098
1099 POSTGIS_DEBUG(4, "[GIST] 'consistent' function called");
1100
1101
1102 if (!DatumGetPointer(PG_GETARG_DATUM(1)))
1103 {
1104 POSTGIS_DEBUG(4, "[GIST] null query pointer (!?!), returning false");
1105 PG_RETURN_BOOL(false);
1106 }
1107
1108
1109 if (!DatumGetPointer(entry->key))
1110 {
1111 POSTGIS_DEBUG(4, "[GIST] null index entry, returning false");
1112 PG_RETURN_BOOL(false);
1113 }
1114
1115
1116 if (gserialized_datum_get_gidx_p(PG_GETARG_DATUM(1), query_gbox_index) ==
LW_FAILURE)
1117 {
1118 POSTGIS_DEBUG(4, "[GIST] null query_gbox_index!");
1119 PG_RETURN_BOOL(false);
1120 }
1121
1122
1123 if (GIST_LEAF(entry))
1124 {
1127 }
1128 else
1129 {
1131 (GIDX *)PG_DETOAST_DATUM(entry->key), query_gbox_index, strategy);
1132 }
1133
1135}
char result[OUT_DOUBLE_BUFFER_SIZE]
static bool gserialized_gist_consistent_internal(GIDX *key, GIDX *query, StrategyNumber strategy)
static bool gserialized_gist_consistent_leaf(GIDX *key, GIDX *query, StrategyNumber strategy)