Drizzled Public API Documentation
26 #define mi_sint1korr(A) ((int8_t)(*A))
28 #define mi_sint2korr(A) ((int16_t) (((int16_t) (((const unsigned char*) (A))[1])) +\
29 ((int16_t) ((int16_t) ((const char*) (A))[0]) << 8)))
30 #define mi_sint3korr(A) ((int32_t) (((((const unsigned char*) (A))[0]) & 128) ? \
31 (((uint32_t) 255L << 24) | \
32 (((uint32_t) ((const unsigned char*) (A))[0]) << 16) |\
33 (((uint32_t) ((const unsigned char*) (A))[1]) << 8) | \
34 ((uint32_t) ((const unsigned char*) (A))[2])) : \
35 (((uint32_t) ((const unsigned char*) (A))[0]) << 16) |\
36 (((uint32_t) ((const unsigned char*) (A))[1]) << 8) | \
37 ((uint32_t) ((const unsigned char*) (A))[2])))
38 #define mi_sint4korr(A) ((int32_t) (((int32_t) (((const unsigned char*) (A))[3])) +\
39 ((int32_t) (((const unsigned char*) (A))[2]) << 8) +\
40 ((int32_t) (((const unsigned char*) (A))[1]) << 16) +\
41 ((int32_t) ((int16_t) ((const char*) (A))[0]) << 24)))
42 #define mi_sint8korr(A) ((int64_t) mi_uint8korr(A))
43 #define mi_uint2korr(A) ((uint16_t) (((uint16_t) (((const unsigned char*) (A))[1])) +\
44 ((uint16_t) (((const unsigned char*) (A))[0]) << 8)))
45 #define mi_uint3korr(A) ((uint32_t) (((uint32_t) (((const unsigned char*) (A))[2])) +\
46 (((uint32_t) (((const unsigned char*) (A))[1])) << 8) +\
47 (((uint32_t) (((const unsigned char*) (A))[0])) << 16)))
48 #define mi_uint4korr(A) ((uint32_t) (((uint32_t) (((const unsigned char*) (A))[3])) +\
49 (((uint32_t) (((const unsigned char*) (A))[2])) << 8) +\
50 (((uint32_t) (((const unsigned char*) (A))[1])) << 16) +\
51 (((uint32_t) (((const unsigned char*) (A))[0])) << 24)))
52 #define mi_uint5korr(A) ((uint64_t)(((uint32_t) (((const unsigned char*) (A))[4])) +\
53 (((uint32_t) (((const unsigned char*) (A))[3])) << 8) +\
54 (((uint32_t) (((const unsigned char*) (A))[2])) << 16) +\
55 (((uint32_t) (((const unsigned char*) (A))[1])) << 24)) +\
56 (((uint64_t) (((const unsigned char*) (A))[0])) << 32))
57 #define mi_uint6korr(A) ((uint64_t)(((uint32_t) (((const unsigned char*) (A))[5])) +\
58 (((uint32_t) (((const unsigned char*) (A))[4])) << 8) +\
59 (((uint32_t) (((const unsigned char*) (A))[3])) << 16) +\
60 (((uint32_t) (((const unsigned char*) (A))[2])) << 24)) +\
61 (((uint64_t) (((uint32_t) (((const unsigned char*) (A))[1])) +\
62 (((uint32_t) (((const unsigned char*) (A))[0]) << 8)))) <<\
64 #define mi_uint7korr(A) ((uint64_t)(((uint32_t) (((const unsigned char*) (A))[6])) +\
65 (((uint32_t) (((const unsigned char*) (A))[5])) << 8) +\
66 (((uint32_t) (((const unsigned char*) (A))[4])) << 16) +\
67 (((uint32_t) (((const unsigned char*) (A))[3])) << 24)) +\
68 (((uint64_t) (((uint32_t) (((const unsigned char*) (A))[2])) +\
69 (((uint32_t) (((const unsigned char*) (A))[1])) << 8) +\
70 (((uint32_t) (((const unsigned char*) (A))[0])) << 16))) <<\
72 #define mi_uint8korr(A) ((uint64_t)(((uint32_t) (((const unsigned char*) (A))[7])) +\
73 (((uint32_t) (((const unsigned char*) (A))[6])) << 8) +\
74 (((uint32_t) (((const unsigned char*) (A))[5])) << 16) +\
75 (((uint32_t) (((const unsigned char*) (A))[4])) << 24)) +\
76 (((uint64_t) (((uint32_t) (((const unsigned char*) (A))[3])) +\
77 (((uint32_t) (((const unsigned char*) (A))[2])) << 8) +\
78 (((uint32_t) (((const unsigned char*) (A))[1])) << 16) +\
79 (((uint32_t) (((const unsigned char*) (A))[0])) << 24))) <<\
83 #define mi_int1store(T,A) *((unsigned char*)(T))= (unsigned char) (A)
85 #define mi_int2store(T,A) { uint32_t def_temp= (uint32_t) (A) ;\
86 ((unsigned char*) (T))[1]= (unsigned char) (def_temp);\
87 ((unsigned char*) (T))[0]= (unsigned char) (def_temp >> 8); }
88 #define mi_int3store(T,A) { \
89 uint32_t def_temp= (uint32_t) (A);\
90 ((unsigned char*) (T))[2]= (unsigned char) (def_temp);\
91 ((unsigned char*) (T))[1]= (unsigned char) (def_temp >> 8);\
92 ((unsigned char*) (T))[0]= (unsigned char) (def_temp >> 16);\
94 #define mi_int4store(T,A) { uint32_t def_temp= (uint32_t) (A);\
95 ((unsigned char*) (T))[3]= (unsigned char) (def_temp);\
96 ((unsigned char*) (T))[2]= (unsigned char) (def_temp >> 8);\
97 ((unsigned char*) (T))[1]= (unsigned char) (def_temp >> 16);\
98 ((unsigned char*) (T))[0]= (unsigned char) (def_temp >> 24); }
99 #define mi_int5store(T,A) { uint32_t def_temp= (uint32_t) (A),\
100 def_temp2= (uint32_t) ((A) >> 32);\
101 ((unsigned char*) (T))[4]= (unsigned char) (def_temp);\
102 ((unsigned char*) (T))[3]= (unsigned char) (def_temp >> 8);\
103 ((unsigned char*) (T))[2]= (unsigned char) (def_temp >> 16);\
104 ((unsigned char*) (T))[1]= (unsigned char) (def_temp >> 24);\
105 ((unsigned char*) (T))[0]= (unsigned char) (def_temp2); }
106 #define mi_int6store(T,A) { uint32_t def_temp= (uint32_t) (A),\
107 def_temp2= (uint32_t) ((A) >> 32);\
108 ((unsigned char*) (T))[5]= (unsigned char) (def_temp);\
109 ((unsigned char*) (T))[4]= (unsigned char) (def_temp >> 8);\
110 ((unsigned char*) (T))[3]= (unsigned char) (def_temp >> 16);\
111 ((unsigned char*) (T))[2]= (unsigned char) (def_temp >> 24);\
112 ((unsigned char*) (T))[1]= (unsigned char) (def_temp2);\
113 ((unsigned char*) (T))[0]= (unsigned char) (def_temp2 >> 8); }
114 #define mi_int7store(T,A) { uint32_t def_temp= (uint32_t) (A),\
115 def_temp2= (uint32_t) ((A) >> 32);\
116 ((unsigned char*) (T))[6]= (unsigned char) (def_temp);\
117 ((unsigned char*) (T))[5]= (unsigned char) (def_temp >> 8);\
118 ((unsigned char*) (T))[4]= (unsigned char) (def_temp >> 16);\
119 ((unsigned char*) (T))[3]= (unsigned char) (def_temp >> 24);\
120 ((unsigned char*) (T))[2]= (unsigned char) (def_temp2);\
121 ((unsigned char*) (T))[1]= (unsigned char) (def_temp2 >> 8);\
122 ((unsigned char*) (T))[0]= (unsigned char) (def_temp2 >> 16); }
123 #define mi_int8store(T,A) { uint32_t def_temp3= (uint32_t) (A),\
124 def_temp4= (uint32_t) ((A) >> 32);\
125 mi_int4store((unsigned char*) (T) + 0, def_temp4);\
126 mi_int4store((unsigned char*) (T) + 4, def_temp3); }
128 #ifdef WORDS_BIGENDIAN
130 #define mi_float4get(V,M) { float def_temp;\
131 ((unsigned char*) &def_temp)[0]= ((const unsigned char*) (M))[0];\
132 ((unsigned char*) &def_temp)[1]= ((const unsigned char*) (M))[1];\
133 ((unsigned char*) &def_temp)[2]= ((const unsigned char*) (M))[2];\
134 ((unsigned char*) &def_temp)[3]= ((const unsigned char*) (M))[3];\
137 #define mi_float8get(V,M) { double def_temp;\
138 ((unsigned char*) &def_temp)[0]= ((unsigned char*) (M))[0];\
139 ((unsigned char*) &def_temp)[1]= ((unsigned char*) (M))[1];\
140 ((unsigned char*) &def_temp)[2]= ((unsigned char*) (M))[2];\
141 ((unsigned char*) &def_temp)[3]= ((unsigned char*) (M))[3];\
142 ((unsigned char*) &def_temp)[4]= ((unsigned char*) (M))[4];\
143 ((unsigned char*) &def_temp)[5]= ((unsigned char*) (M))[5];\
144 ((unsigned char*) &def_temp)[6]= ((unsigned char*) (M))[6];\
145 ((unsigned char*) &def_temp)[7]= ((unsigned char*) (M))[7]; \
149 #define mi_float4get(V,M) { float def_temp;\
150 ((unsigned char*) &def_temp)[0]= ((unsigned char*) (M))[3];\
151 ((unsigned char*) &def_temp)[1]= ((unsigned char*) (M))[2];\
152 ((unsigned char*) &def_temp)[2]= ((unsigned char*) (M))[1];\
153 ((unsigned char*) &def_temp)[3]= ((unsigned char*) (M))[0];\
156 #if defined(__FLOAT_WORD_ORDER) && (__FLOAT_WORD_ORDER == __BIG_ENDIAN)
158 #define mi_float8get(V,M) { double def_temp;\
159 ((unsigned char*) &def_temp)[0]= ((unsigned char*) (M))[3];\
160 ((unsigned char*) &def_temp)[1]= ((unsigned char*) (M))[2];\
161 ((unsigned char*) &def_temp)[2]= ((unsigned char*) (M))[1];\
162 ((unsigned char*) &def_temp)[3]= ((unsigned char*) (M))[0];\
163 ((unsigned char*) &def_temp)[4]= ((unsigned char*) (M))[7];\
164 ((unsigned char*) &def_temp)[5]= ((unsigned char*) (M))[6];\
165 ((unsigned char*) &def_temp)[6]= ((unsigned char*) (M))[5];\
166 ((unsigned char*) &def_temp)[7]= ((unsigned char*) (M))[4];\
171 #define mi_float8get(V,M) { double def_temp;\
172 ((unsigned char*) &def_temp)[0]= ((unsigned char*) (M))[7];\
173 ((unsigned char*) &def_temp)[1]= ((unsigned char*) (M))[6];\
174 ((unsigned char*) &def_temp)[2]= ((unsigned char*) (M))[5];\
175 ((unsigned char*) &def_temp)[3]= ((unsigned char*) (M))[4];\
176 ((unsigned char*) &def_temp)[4]= ((unsigned char*) (M))[3];\
177 ((unsigned char*) &def_temp)[5]= ((unsigned char*) (M))[2];\
178 ((unsigned char*) &def_temp)[6]= ((unsigned char*) (M))[1];\
179 ((unsigned char*) &def_temp)[7]= ((unsigned char*) (M))[0];\
185 #define mi_rowstore(T,A) mi_int8store(T, A)
186 #define mi_rowkorr(T) mi_uint8korr(T)
188 #define mi_sizestore(T,A) mi_int8store(T, A)
189 #define mi_sizekorr(T) mi_uint8korr(T)