]> granicus.if.org Git - postgresql/blobdiff - src/include/nodes/tidbitmap.h
Remove cvs keywords from all files.
[postgresql] / src / include / nodes / tidbitmap.h
index d0e0287c1f85368534af1436231ab344c2bbc726..3710d4b62ef3967aedc55e7713e02c16e5fc1205 100644 (file)
@@ -13,9 +13,9 @@
  * fact that a particular page needs to be visited.
  *
  *
- * Copyright (c) 2003-2006, PostgreSQL Global Development Group
+ * Copyright (c) 2003-2010, PostgreSQL Global Development Group
  *
- * $PostgreSQL: pgsql/src/include/nodes/tidbitmap.h,v 1.4 2006/03/05 15:58:57 momjian Exp $
+ * src/include/nodes/tidbitmap.h
  *
  *-------------------------------------------------------------------------
  */
  */
 typedef struct TIDBitmap TIDBitmap;
 
+/* Likewise, TBMIterator is private */
+typedef struct TBMIterator TBMIterator;
+
 /* Result structure for tbm_iterate */
 typedef struct
 {
        BlockNumber blockno;            /* page number containing tuples */
        int                     ntuples;                /* -1 indicates lossy result */
+       bool            recheck;                /* should the tuples be rechecked? */
+       /* Note: recheck is always true if ntuples < 0 */
        OffsetNumber offsets[1];        /* VARIABLE LENGTH ARRAY */
 } TBMIterateResult;                            /* VARIABLE LENGTH STRUCT */
 
@@ -44,14 +49,18 @@ typedef struct
 extern TIDBitmap *tbm_create(long maxbytes);
 extern void tbm_free(TIDBitmap *tbm);
 
-extern void tbm_add_tuples(TIDBitmap *tbm, const ItemPointer tids, int ntids);
+extern void tbm_add_tuples(TIDBitmap *tbm,
+                          const ItemPointer tids, int ntids,
+                          bool recheck);
+extern void tbm_add_page(TIDBitmap *tbm, BlockNumber pageno);
 
 extern void tbm_union(TIDBitmap *a, const TIDBitmap *b);
 extern void tbm_intersect(TIDBitmap *a, const TIDBitmap *b);
 
 extern bool tbm_is_empty(const TIDBitmap *tbm);
 
-extern void tbm_begin_iterate(TIDBitmap *tbm);
-extern TBMIterateResult *tbm_iterate(TIDBitmap *tbm);
+extern TBMIterator *tbm_begin_iterate(TIDBitmap *tbm);
+extern TBMIterateResult *tbm_iterate(TBMIterator *iterator);
+extern void tbm_end_iterate(TBMIterator *iterator);
 
 #endif   /* TIDBITMAP_H */