blbeginscan(Relation r, int nkeys, int norderbys)
{
IndexScanDesc scan;
+ BloomScanOpaque so;
scan = RelationGetIndexScan(r, nkeys, norderbys);
+ so = (BloomScanOpaque) palloc(sizeof(BloomScanOpaqueData));
+ initBloomState(&so->state, scan->indexRelation);
+ so->sign = NULL;
+
+ scan->opaque = so;
+
return scan;
}
blrescan(IndexScanDesc scan, ScanKey scankey, int nscankeys,
ScanKey orderbys, int norderbys)
{
- BloomScanOpaque so;
-
- so = (BloomScanOpaque) scan->opaque;
-
- if (so == NULL)
- {
- /* if called from blbeginscan */
- so = (BloomScanOpaque) palloc(sizeof(BloomScanOpaqueData));
- initBloomState(&so->state, scan->indexRelation);
- scan->opaque = so;
+ BloomScanOpaque so = (BloomScanOpaque) scan->opaque;
- }
- else
- {
- if (so->sign)
- pfree(so->sign);
- }
+ if (so->sign)
+ pfree(so->sign);
so->sign = NULL;
if (scankey && scan->numberOfKeys > 0)