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 support three types of lists:
18
+ * We support four 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 and Oids are the same size, but they may not
27
- * always be so; try to be careful to maintain the distinction .)
28
+ * (At the moment, ints, Oids, and XIDs are the same size, but they may not
29
+ * always be so; be careful to use the appropriate 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, or T_OidList */
55
+ NodeTag type ; /* T_List, T_IntList, T_OidList, or T_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 */
0 commit comments