]> granicus.if.org Git - postgresql/blobdiff - src/include/access/htup.h
Remove cvs keywords from all files.
[postgresql] / src / include / access / htup.h
index 017f6917e1679bdec41b8fd42be607d362b197fe..adf1321052cf1013ec647906facfe57a97688c06 100644 (file)
@@ -4,10 +4,10 @@
  *       POSTGRES heap tuple definitions.
  *
  *
- * Portions Copyright (c) 1996-2009, PostgreSQL Global Development Group
+ * Portions Copyright (c) 1996-2010, PostgreSQL Global Development Group
  * Portions Copyright (c) 1994, Regents of the University of California
  *
- * $PostgreSQL: pgsql/src/include/access/htup.h,v 1.108 2009/12/19 01:32:42 sriggs Exp $
+ * src/include/access/htup.h
  *
  *-------------------------------------------------------------------------
  */
  * transaction respectively.  If a tuple is inserted and deleted in the same
  * transaction, we store a "combo" command id that can be mapped to the real
  * cmin and cmax, but only by use of local state within the originating
- * backend.  See combocid.c for more details.  Meanwhile, Xvac is only set
- * by VACUUM FULL, which does not have any command sub-structure and so does
- * not need either Cmin or Cmax.  (This requires that VACUUM FULL never try
- * to move a tuple whose Cmin or Cmax is still interesting, ie, an insert-
- * in-progress or delete-in-progress tuple.)
+ * backend.  See combocid.c for more details.  Meanwhile, Xvac is only set by
+ * old-style VACUUM FULL, which does not have any command sub-structure and so
+ * does not need either Cmin or Cmax.  (This requires that old-style VACUUM
+ * FULL never try to move a tuple whose Cmin or Cmax is still interesting,
+ * ie, an insert-in-progress or delete-in-progress tuple.)
  *
  * A word about t_ctid: whenever a new tuple is stored on disk, its t_ctid
  * is initialized with its own TID (location). If the tuple is ever updated,
@@ -111,7 +111,7 @@ typedef struct HeapTupleFields
        union
        {
                CommandId       t_cid;          /* inserting or deleting command ID, or both */
-               TransactionId t_xvac;   /* VACUUM FULL xact ID */
+               TransactionId t_xvac;   /* old-style VACUUM FULL xact ID */
        }                       t_field3;
 } HeapTupleFields;
 
@@ -175,10 +175,12 @@ typedef HeapTupleHeaderData *HeapTupleHeader;
 #define HEAP_XMAX_INVALID              0x0800  /* t_xmax invalid/aborted */
 #define HEAP_XMAX_IS_MULTI             0x1000  /* t_xmax is a MultiXactId */
 #define HEAP_UPDATED                   0x2000  /* this is UPDATEd version of row */
-#define HEAP_MOVED_OFF                 0x4000  /* moved to another place by VACUUM
-                                                                                * FULL */
-#define HEAP_MOVED_IN                  0x8000  /* moved from another place by VACUUM
-                                                                                * FULL */
+#define HEAP_MOVED_OFF                 0x4000  /* moved to another place by pre-9.0
+                                                                                * VACUUM FULL; kept for binary
+                                                                                * upgrade support */
+#define HEAP_MOVED_IN                  0x8000  /* moved from another place by pre-9.0
+                                                                                * VACUUM FULL; kept for binary
+                                                                                * upgrade support */
 #define HEAP_MOVED (HEAP_MOVED_OFF | HEAP_MOVED_IN)
 
 #define HEAP_XACT_MASK                 0xFFE0  /* visibility-related bits */
@@ -559,7 +561,7 @@ typedef HeapTupleData *HeapTuple;
 #define XLOG_HEAP_INSERT               0x00
 #define XLOG_HEAP_DELETE               0x10
 #define XLOG_HEAP_UPDATE               0x20
-#define XLOG_HEAP_MOVE                 0x30
+/* 0x030 is free, was XLOG_HEAP_MOVE */
 #define XLOG_HEAP_HOT_UPDATE   0x40
 #define XLOG_HEAP_NEWPAGE              0x50
 #define XLOG_HEAP_LOCK                 0x60
@@ -579,7 +581,7 @@ typedef HeapTupleData *HeapTuple;
  */
 #define XLOG_HEAP2_FREEZE              0x00
 #define XLOG_HEAP2_CLEAN               0x10
-#define XLOG_HEAP2_CLEAN_MOVE  0x20
+/* 0x20 is free, was XLOG_HEAP2_CLEAN_MOVE */
 #define XLOG_HEAP2_CLEANUP_INFO 0x30
 
 /*
@@ -634,15 +636,14 @@ typedef struct xl_heap_insert
 
 #define SizeOfHeapInsert       (offsetof(xl_heap_insert, all_visible_cleared) + sizeof(bool))
 
-/* This is what we need to know about update|move|hot_update */
+/* This is what we need to know about update|hot_update */
 typedef struct xl_heap_update
 {
        xl_heaptid      target;                 /* deleted tuple id */
        ItemPointerData newtid;         /* new inserted tuple id */
        bool            all_visible_cleared;    /* PD_ALL_VISIBLE was cleared */
        bool            new_all_visible_cleared;                /* same for the page of newtid */
-       /* NEW TUPLE xl_heap_header (PLUS xmax & xmin IF MOVE OP) */
-       /* and TUPLE DATA FOLLOWS AT END OF STRUCT */
+       /* NEW TUPLE xl_heap_header AND TUPLE DATA FOLLOWS AT END OF STRUCT */
 } xl_heap_update;
 
 #define SizeOfHeapUpdate       (offsetof(xl_heap_update, new_all_visible_cleared) + sizeof(bool))
@@ -657,19 +658,12 @@ typedef struct xl_heap_update
  * The total number of OffsetNumbers is therefore 2*nredirected+ndead+nunused.
  * Note that nunused is not explicitly stored, but may be found by reference
  * to the total record length.
- *
- * If the opcode is CLEAN_MOVE instead of CLEAN, then each redirection pair
- * should be interpreted as physically moving the "to" item pointer to the
- * "from" slot, rather than placing a redirection item in the "from" slot.
- * The moved pointers should be replaced by LP_UNUSED items (there will not
- * be explicit entries in the "now-unused" list for this).     Also, the
- * HEAP_ONLY bit in the moved tuples must be turned off.
  */
 typedef struct xl_heap_clean
 {
        RelFileNode node;
        BlockNumber block;
-       TransactionId   latestRemovedXid;
+       TransactionId latestRemovedXid;
        uint16          nredirected;
        uint16          ndead;
        /* OFFSET NUMBERS FOLLOW */
@@ -684,8 +678,8 @@ typedef struct xl_heap_clean
  */
 typedef struct xl_heap_cleanup_info
 {
-       RelFileNode     node;
-       TransactionId   latestRemovedXid;
+       RelFileNode node;
+       TransactionId latestRemovedXid;
 } xl_heap_cleanup_info;
 
 #define SizeOfHeapCleanupInfo (sizeof(xl_heap_cleanup_info))
@@ -734,7 +728,7 @@ typedef struct xl_heap_freeze
 #define SizeOfHeapFreeze (offsetof(xl_heap_freeze, cutoff_xid) + sizeof(TransactionId))
 
 extern void HeapTupleHeaderAdvanceLatestRemovedXid(HeapTupleHeader tuple,
-                                                                               TransactionId *latestRemovedXid);
+                                                                          TransactionId *latestRemovedXid);
 
 /* HeapTupleHeader functions implemented in utils/time/combocid.c */
 extern CommandId HeapTupleHeaderGetCmin(HeapTupleHeader tup);
@@ -763,7 +757,7 @@ extern void HeapTupleHeaderAdjustCmax(HeapTupleHeader tup,
 #define fastgetattr(tup, attnum, tupleDesc, isnull)                                    \
 (                                                                                                                                      \
        AssertMacro((attnum) > 0),                                                                              \
-       (((isnull) != NULL) ? (*(isnull) = false) : (dummyret)NULL),    \
+       (*(isnull) = false),                                                                                    \
        HeapTupleNoNulls(tup) ?                                                                                 \
        (                                                                                                                               \
                (tupleDesc)->attrs[(attnum)-1]->attcacheoff >= 0 ?                      \
@@ -773,18 +767,18 @@ extern void HeapTupleHeaderAdjustCmax(HeapTupleHeader tup,
                                        (tupleDesc)->attrs[(attnum)-1]->attcacheoff)    \
                )                                                                                                                       \
                :                                                                                                                       \
-                       nocachegetattr((tup), (attnum), (tupleDesc), (isnull))  \
+                       nocachegetattr((tup), (attnum), (tupleDesc))                    \
        )                                                                                                                               \
        :                                                                                                                               \
        (                                                                                                                               \
                att_isnull((attnum)-1, (tup)->t_data->t_bits) ?                         \
                (                                                                                                                       \
-                       (((isnull) != NULL) ? (*(isnull) = true) : (dummyret)NULL),             \
+                       (*(isnull) = true),                                                                             \
                        (Datum)NULL                                                                                             \
                )                                                                                                                       \
                :                                                                                                                       \
                (                                                                                                                       \
-                       nocachegetattr((tup), (attnum), (tupleDesc), (isnull))  \
+                       nocachegetattr((tup), (attnum), (tupleDesc))                    \
                )                                                                                                                       \
        )                                                                                                                               \
 )
@@ -818,7 +812,7 @@ extern Datum fastgetattr(HeapTuple tup, int attnum, TupleDesc tupleDesc,
                ( \
                        ((attnum) > (int) HeapTupleHeaderGetNatts((tup)->t_data)) ? \
                        ( \
-                               (((isnull) != NULL) ? (*(isnull) = true) : (dummyret)NULL), \
+                               (*(isnull) = true), \
                                (Datum)NULL \
                        ) \
                        : \
@@ -838,7 +832,7 @@ extern void heap_fill_tuple(TupleDesc tupleDesc,
                                uint16 *infomask, bits8 *bit);
 extern bool heap_attisnull(HeapTuple tup, int attnum);
 extern Datum nocachegetattr(HeapTuple tup, int attnum,
-                          TupleDesc att, bool *isnull);
+                          TupleDesc att);
 extern Datum heap_getsysattr(HeapTuple tup, int attnum, TupleDesc tupleDesc,
                                bool *isnull);
 extern HeapTuple heap_copytuple(HeapTuple tuple);