PostgreSQL Source Code: src/include/utils/arrayaccess.h Source File (original) (raw)

1

2

3

4

5

6

7

8

9

10

11

12

13

14#ifndef ARRAYACCESS_H

15#define ARRAYACCESS_H

16

19

20

21

22

23

24

25

26

27

28

29

30

31

32

34{

35

36

37

39 bool *isnullptr;

40

41

42 char *dataptr;

43 bits8 *bitmapptr;

44 int bitmask;

46

47

48static inline void

50{

52 {

53 if (a->xpn.dvalues)

54 {

57

60 }

61 else

62 {

63

68 }

69 }

70 else

71 {

76 }

78}

79

80static inline Datum

82 int elmlen, bool elmbyval, char elmalign)

83{

85

87 {

90 }

91 else

92 {

94 {

95 *isnull = true;

97 }

98 else

99 {

100 *isnull = false;

105 }

107 if (it->bitmask == 0x100)

108 {

112 }

113 }

114

115 return ret;

116}

117

118#endif

#define ARR_NULLBITMAP(a)

static Datum array_iter_next(array_iter *it, bool *isnull, int i, int elmlen, bool elmbyval, char elmalign)

static void array_iter_setup(array_iter *it, AnyArrayType *a)

struct array_iter array_iter

#define VARATT_IS_EXPANDED_HEADER(PTR)

#define att_align_nominal(cur_offset, attalign)

#define att_addlength_pointer(cur_offset, attlen, attptr)

static Datum fetch_att(const void *T, bool attbyval, int attlen)