15
15
* Non-empty lists have a header, which will not be relocated as long as the
16
16
* list remains non-empty, and an expansible data array.
17
17
*
18
- * We supportthree types of lists:
18
+ * We supportfour types of lists:
19
19
*
20
20
*T_List: lists of pointers
21
21
*(in practice usually pointers to Nodes, but not always;
22
22
*declared as "void *" to minimize casting annoyances)
23
23
*T_IntList: lists of integers
24
24
*T_OidList: lists of Oids
25
+ *T_XidList: lists of TransactionIds
26
+ *(the XidList infrastructure is less complete than the other cases)
25
27
*
26
- * (At the moment, ints andOids are the same size, but they may not
27
- * always be so;try to be careful tomaintain thedistinction .)
28
+ * (At the moment, ints, Oids, andXIDs are the same size, but they may not
29
+ * always be so; be careful touse theappropriate list type for your data .)
28
30
*
29
31
*
30
32
* Portions Copyright (c) 1996-2022, PostgreSQL Global Development Group
@@ -50,7 +52,7 @@ typedef union ListCell
50
52
51
53
typedef struct List
52
54
{
53
- NodeTag type ;/* T_List, T_IntList, orT_OidList */
55
+ NodeTag type ;/* T_List, T_IntList,T_OidList, orT_XidList */
54
56
int length ;/* number of elements currently present */
55
57
int max_length ;/* allocated length of elements[] */
56
58
ListCell * elements ;/* re-allocatable array of cells */