Hackfut Security File Manager
Current Path:
/opt/td-agent/embedded/include/postgresql/server/utils
opt
/
td-agent
/
embedded
/
include
/
postgresql
/
server
/
utils
/
📁
..
📄
acl.h
(13.83 KB)
📄
aclchk_internal.h
(1.42 KB)
📄
array.h
(18.84 KB)
📄
arrayaccess.h
(2.97 KB)
📄
ascii.h
(579 B)
📄
attoptcache.h
(725 B)
📄
builtins.h
(56.08 KB)
📄
bytea.h
(1.63 KB)
📄
cash.h
(2.07 KB)
📄
catcache.h
(7.4 KB)
📄
combocid.h
(870 B)
📄
date.h
(7.77 KB)
📄
datetime.h
(10.59 KB)
📄
datum.h
(1.88 KB)
📄
dynahash.h
(498 B)
📄
dynamic_loader.h
(648 B)
📄
elog.h
(14.74 KB)
📄
errcodes.h
(20.1 KB)
📄
evtcache.h
(934 B)
📄
expandeddatum.h
(6.89 KB)
📄
fmgroids.h
(72.24 KB)
📄
fmgrtab.h
(1.15 KB)
📄
formatting.h
(1.41 KB)
📄
geo_decls.h
(16.22 KB)
📄
guc.h
(15.6 KB)
📄
guc_tables.h
(7.22 KB)
📄
help_config.h
(457 B)
📄
hsearch.h
(5.97 KB)
📄
index_selfuncs.h
(2.16 KB)
📄
inet.h
(4.6 KB)
📄
int8.h
(4.12 KB)
📄
inval.h
(1.71 KB)
📄
json.h
(3.26 KB)
📄
jsonapi.h
(4.19 KB)
📄
jsonb.h
(16.13 KB)
📄
logtape.h
(1.5 KB)
📄
lsyscache.h
(6.91 KB)
📄
memdebug.h
(1.25 KB)
📄
memutils.h
(6.16 KB)
📄
nabstime.h
(5.79 KB)
📄
numeric.h
(1.92 KB)
📄
palloc.h
(5.04 KB)
📄
pg_crc.h
(3.42 KB)
📄
pg_locale.h
(2.63 KB)
📄
pg_lsn.h
(1.29 KB)
📄
pg_rusage.h
(847 B)
📄
plancache.h
(8.36 KB)
📄
portal.h
(9.64 KB)
📄
probes.h
(6.54 KB)
📄
ps_status.h
(668 B)
📄
rangetypes.h
(8.31 KB)
📄
rel.h
(18.18 KB)
📄
relcache.h
(3.79 KB)
📄
relfilenodemap.h
(561 B)
📄
relmapper.h
(1.8 KB)
📄
reltrigger.h
(1.95 KB)
📄
resowner.h
(2.52 KB)
📄
resowner_private.h
(3.42 KB)
📄
rls.h
(1.73 KB)
📄
ruleutils.h
(1.2 KB)
📄
sampling.h
(1.96 KB)
📄
selfuncs.h
(9.39 KB)
📄
snapmgr.h
(4.13 KB)
📄
snapshot.h
(4.2 KB)
📄
sortsupport.h
(10.81 KB)
📄
spccache.h
(604 B)
📄
syscache.h
(5.91 KB)
📄
timeout.h
(2.48 KB)
📄
timestamp.h
(10.34 KB)
📄
tqual.h
(4.11 KB)
📄
tuplesort.h
(4.86 KB)
📄
tuplestore.h
(3.23 KB)
📄
typcache.h
(5.71 KB)
📄
tzparser.h
(1.13 KB)
📄
uuid.h
(861 B)
📄
varbit.h
(4.31 KB)
📄
xml.h
(3.89 KB)
Editing: arrayaccess.h
/*------------------------------------------------------------------------- * * arrayaccess.h * Declarations for element-by-element access to Postgres arrays. * * * Portions Copyright (c) 1996-2016, PostgreSQL Global Development Group * Portions Copyright (c) 1994, Regents of the University of California * * src/include/utils/arrayaccess.h * *------------------------------------------------------------------------- */ #ifndef ARRAYACCESS_H #define ARRAYACCESS_H #include "access/tupmacs.h" #include "utils/array.h" /* * Functions for iterating through elements of a flat or expanded array. * These require a state struct "array_iter iter". * * Use "array_iter_setup(&iter, arrayptr);" to prepare to iterate, and * "datumvar = array_iter_next(&iter, &isnullvar, index, ...);" to fetch * the next element into datumvar/isnullvar. * "index" must be the zero-origin element number; we make caller provide * this since caller is generally counting the elements anyway. Despite * that, these functions can only fetch elements sequentially. */ typedef struct array_iter { /* datumptr being NULL or not tells if we have flat or expanded array */ /* Fields used when we have an expanded array */ Datum *datumptr; /* Pointer to Datum array */ bool *isnullptr; /* Pointer to isnull array */ /* Fields used when we have a flat array */ char *dataptr; /* Current spot in the data area */ bits8 *bitmapptr; /* Current byte of the nulls bitmap, or NULL */ int bitmask; /* mask for current bit in nulls bitmap */ } array_iter; static inline void array_iter_setup(array_iter *it, AnyArrayType *a) { if (VARATT_IS_EXPANDED_HEADER(a)) { if (a->xpn.dvalues) { it->datumptr = a->xpn.dvalues; it->isnullptr = a->xpn.dnulls; /* we must fill all fields to prevent compiler warnings */ it->dataptr = NULL; it->bitmapptr = NULL; } else { /* Work with flat array embedded in the expanded datum */ it->datumptr = NULL; it->isnullptr = NULL; it->dataptr = ARR_DATA_PTR(a->xpn.fvalue); it->bitmapptr = ARR_NULLBITMAP(a->xpn.fvalue); } } else { it->datumptr = NULL; it->isnullptr = NULL; it->dataptr = ARR_DATA_PTR(&a->flt); it->bitmapptr = ARR_NULLBITMAP(&a->flt); } it->bitmask = 1; } static inline Datum array_iter_next(array_iter *it, bool *isnull, int i, int elmlen, bool elmbyval, char elmalign) { Datum ret; if (it->datumptr) { ret = it->datumptr[i]; *isnull = it->isnullptr ? it->isnullptr[i] : false; } else { if (it->bitmapptr && (*(it->bitmapptr) & it->bitmask) == 0) { *isnull = true; ret = (Datum) 0; } else { *isnull = false; ret = fetch_att(it->dataptr, elmbyval, elmlen); it->dataptr = att_addlength_pointer(it->dataptr, elmlen, it->dataptr); it->dataptr = (char *) att_align_nominal(it->dataptr, elmalign); } it->bitmask <<= 1; if (it->bitmask == 0x100) { if (it->bitmapptr) it->bitmapptr++; it->bitmask = 1; } } return ret; } #endif /* ARRAYACCESS_H */
Upload File
Create Folder