Go to the source code of this file.
◆ array_iter
◆ array_iter_next()
Definition at line 90 of file arrayaccess.h.
91{
93
95 {
96 ret =
it->datumptr[
i];
97 *isnull =
it->isnullptr ?
it->isnullptr[
i] :
false;
98 }
99 else
100 {
101 if (
it->bitmapptr && (*(
it->bitmapptr) &
it->bitmask) == 0)
102 {
103 *isnull = true;
105 }
106 else
107 {
108 *isnull = false;
114 }
116 if (
it->bitmask == 0x100)
117 {
121 }
122 }
123
124 return ret;
125}
#define att_nominal_alignby(cur_offset, attalignby)
#define att_addlength_pointer(cur_offset, attlen, attptr)
static Datum fetch_att(const void *T, bool attbyval, int attlen)
References att_addlength_pointer, att_nominal_alignby, fb(), fetch_att(), and i.
Referenced by array_cmp(), array_contain_compare(), array_eq(), array_map(), array_out(), array_send(), array_unnest(), hash_array(), and hash_array_extended().
◆ array_iter_setup()
Definition at line 54 of file arrayaccess.h.
56{
58 {
60 {
61 it->datumptr =
a->xpn.dvalues;
62 it->isnullptr =
a->xpn.dnulls;
63
66 }
67 else
68 {
69
74 }
75 }
76 else
77 {
82 }
85 it->elmbyval = elmbyval;
87}
#define ARR_NULLBITMAP(a)
#define VARATT_IS_EXPANDED_HEADER(PTR)
static uint8 typalign_to_alignby(char typalign)
References a, ARR_DATA_PTR, ARR_NULLBITMAP, array_iter::datumptr, fb(), typalign_to_alignby(), and VARATT_IS_EXPANDED_HEADER.
Referenced by array_cmp(), array_contain_compare(), array_eq(), array_map(), array_out(), array_send(), array_unnest(), hash_array(), and hash_array_extended().