PostgreSQL Source Code: contrib/intarray/_int_tool.c Source File (original) (raw)
1
2
3
5
6#include <limits.h>
7
12
13
14bool
16{
17 int na,
19 int i,
20 j,
21 n;
22 int *da,
23 *db;
24
29
32 {
34 i++;
36 {
37 n++;
38 i++;
39 j++;
40 }
41 else
42 break;
43 }
44
45 return (n == nb);
46}
47
48
49bool
51{
52 int na,
54 int i,
55 j;
56 int *da,
57 *db;
58
63
66 {
68 i++;
70 return true;
71 else
72 j++;
73 }
74
75 return false;
76}
77
80{
82
85
92
93 if (!r)
94 {
99 int i,
100 j,
102
105
106
109 {
111 {
113 j++;
114 }
117 else
119 }
120
125
127 }
128
131
132 return r;
133}
134
137{
139 int na,
141 int *da,
142 *db,
144 int i,
145 j,
146 k;
147
150
157
160 {
162 i++;
164 {
165 if (k == 0 || dr[k - 1] != db[j])
167 i++;
168 j++;
169 }
170 else
171 j++;
172 }
173
174 if (k == 0)
175 {
178 }
179 else
181}
182
183void
188
189
190static inline int
192{
195
196 if (*((bool *) arg))
197 {
198
199 if (aval < bval)
200 return -1;
201 if (aval > bval)
202 return 1;
203 }
204 else
205 {
206 if (aval > bval)
207 return -1;
208 if (aval < bval)
209 return 1;
210 }
211 return 0;
212}
213
214#define ST_SORT isort
215#define ST_ELEMENT_TYPE int32
216#define ST_COMPARE(a, b, ascending) isort_cmp(a, b, ascending)
217#define ST_COMPARE_ARG_TYPE void
218#define ST_SCOPE
219#define ST_DEFINE
221
222
225{
227 int nbytes;
228
229
230 if (num <= 0)
231 {
234 return r;
235 }
236
238
240
243 r->dataoffset = 0;
247
248 return r;
249}
250
253{
254 int nbytes;
255 int i;
256
257
258 if (num <= 0)
259 {
262 return a;
263 }
264
266 return a;
267
269
271
273
275 {
277 num = 1;
278 }
279 return a;
280}
281
284{
287
290 return r;
291}
292
293
294int
296{
297 int i;
299
300 for (i = 0; i < len; i += 2)
301 {
304 }
305
307 return -1;
308 return (int) size;
309}
310
311
323
324void
326{
327 int i;
328
329
331 {
333 a++;
334 }
335}
336
339{
341 c,
342 i;
343
349 return (i + 1);
350 return 0;
351}
352
355{
359
364 if (c > 0)
366 r[c] = elem;
367 return result;
368}
369
372{
376
380 if (ac)
382 if (bc)
384 return result;
385}
386
389{
392
395 aa[0] = elem;
396 return result;
397}
#define ARR_OVERHEAD_NONULLS(ndims)
#define ARR_DATA_OFFSET(a)
ArrayType * construct_empty_array(Oid elmtype)
#define Assert(condition)
#define HASH(sign, val, siglen)
void * repalloc(void *pointer, Size size)
void pfree(void *pointer)
void * palloc0(Size size)
static size_t qunique_arg(void *array, size_t elements, size_t width, int(*compare)(const void *, const void *, void *), void *arg)
static void SET_VARSIZE(void *PTR, Size len)