Initial pgindent run with pg_bsd_indent version 2.0.
The new indent version includes numerous fixes thanks to Piotr Stefaniak. The main changes visible in this commit are: * Nicer formatting of function-pointer declarations. * No longer unexpectedly removes spaces in expressions using casts, sizeof, or offsetof. * No longer wants to add a space in "struct structname *varname", as well as some similar cases for const- or volatile-qualified pointers. * Declarations using PG_USED_FOR_ASSERTS_ONLY are formatted more nicely. * Fixes bug where comments following declarations were sometimes placed with no space separating them from the code. * Fixes some odd decisions for comments following case labels. * Fixes some cases where comments following code were indented to less than the expected column 33. On the less good side, it now tends to put more whitespace around typedef names that are not listed in typedefs.list. This might encourage us to put more effort into typedef name collection; it's not really a bug in indent itself. There are more changes coming after this round, having to do with comment indentation and alignment of lines appearing within parentheses. I wanted to limit the size of the diffs to something that could be reviewed without one's eyes completely glazing over, so it seemed better to split up the changes as much as practical. Discussion: https://postgr.es/m/E1dAmxK-0006EE-1r@gemulon.postgresql.org Discussion: https://postgr.es/m/30527.1495162840@sss.pgh.pa.us
This commit is contained in:
parent
8ff6d4ec78
commit
e3860ffa4d
@ -75,7 +75,7 @@ _PG_init(void)
|
||||
bl_relopt_tab[i + 1].optname = MemoryContextStrdup(TopMemoryContext,
|
||||
buf);
|
||||
bl_relopt_tab[i + 1].opttype = RELOPT_TYPE_INT;
|
||||
bl_relopt_tab[i + 1].offset = offsetof(BloomOptions, bitSize[0]) +sizeof(int) * i;
|
||||
bl_relopt_tab[i + 1].offset = offsetof(BloomOptions, bitSize[0]) + sizeof(int) * i;
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -72,7 +72,7 @@ gbt_var_key_readable(const GBT_VARKEY *k)
|
||||
* Create a leaf-entry to store in the index, from a single Datum.
|
||||
*/
|
||||
static GBT_VARKEY *
|
||||
gbt_var_key_from_datum(const struct varlena * u)
|
||||
gbt_var_key_from_datum(const struct varlena *u)
|
||||
{
|
||||
int32 lowersize = VARSIZE(u);
|
||||
GBT_VARKEY *r;
|
||||
|
@ -179,7 +179,7 @@ dblink_conn_not_avail(const char *conname)
|
||||
|
||||
static void
|
||||
dblink_get_conn(char *conname_or_str,
|
||||
PGconn *volatile * conn_p, char **conname_p, volatile bool *freeconn_p)
|
||||
PGconn *volatile *conn_p, char **conname_p, volatile bool *freeconn_p)
|
||||
{
|
||||
remoteConn *rconn = getConnectionByName(conname_or_str);
|
||||
PGconn *conn;
|
||||
@ -723,7 +723,7 @@ dblink_record_internal(FunctionCallInfo fcinfo, bool is_async)
|
||||
/* shouldn't happen */
|
||||
elog(ERROR, "wrong number of arguments");
|
||||
}
|
||||
else /* is_async */
|
||||
else /* is_async */
|
||||
{
|
||||
/* get async result */
|
||||
conname = text_to_cstring(PG_GETARG_TEXT_PP(0));
|
||||
|
@ -389,7 +389,7 @@ _metaphone(char *word, /* IN */
|
||||
/*-- Allocate memory for our phoned_phrase --*/
|
||||
if (max_phonemes == 0)
|
||||
{ /* Assume largest possible */
|
||||
*phoned_word = palloc(sizeof(char) * strlen(word) +1);
|
||||
*phoned_word = palloc(sizeof(char) * strlen(word) + 1);
|
||||
}
|
||||
else
|
||||
{
|
||||
@ -722,7 +722,7 @@ _metaphone(char *word, /* IN */
|
||||
End_Phoned_Word;
|
||||
|
||||
return (META_SUCCESS);
|
||||
} /* END metaphone */
|
||||
} /* END metaphone */
|
||||
|
||||
|
||||
/*
|
||||
|
@ -93,7 +93,7 @@ ginint4_queryextract(PG_FUNCTION_ARGS)
|
||||
case RTOldContainsStrategyNumber:
|
||||
if (*nentries > 0)
|
||||
*searchMode = GIN_SEARCH_MODE_DEFAULT;
|
||||
else /* everything contains the empty set */
|
||||
else /* everything contains the empty set */
|
||||
*searchMode = GIN_SEARCH_MODE_ALL;
|
||||
break;
|
||||
default:
|
||||
|
@ -147,7 +147,7 @@ static struct
|
||||
{
|
||||
bool muse;
|
||||
uint32 high_pos;
|
||||
} SomeStack =
|
||||
} SomeStack =
|
||||
|
||||
{
|
||||
false, 0,
|
||||
|
@ -57,7 +57,7 @@ void sql_exec_dumpalltbspc(PGconn *, struct options *);
|
||||
|
||||
/* function to parse command line options and check for some usage errors. */
|
||||
void
|
||||
get_opts(int argc, char **argv, struct options * my_opts)
|
||||
get_opts(int argc, char **argv, struct options *my_opts)
|
||||
{
|
||||
int c;
|
||||
const char *progname;
|
||||
@ -260,7 +260,7 @@ get_comma_elts(eary *eary)
|
||||
|
||||
/* establish connection with database. */
|
||||
PGconn *
|
||||
sql_conn(struct options * my_opts)
|
||||
sql_conn(struct options *my_opts)
|
||||
{
|
||||
PGconn *conn;
|
||||
bool have_password = false;
|
||||
@ -411,7 +411,7 @@ sql_exec(PGconn *conn, const char *todo, bool quiet)
|
||||
* Dump all databases. There are no system objects to worry about.
|
||||
*/
|
||||
void
|
||||
sql_exec_dumpalldbs(PGconn *conn, struct options * opts)
|
||||
sql_exec_dumpalldbs(PGconn *conn, struct options *opts)
|
||||
{
|
||||
char todo[1024];
|
||||
|
||||
@ -428,7 +428,7 @@ sql_exec_dumpalldbs(PGconn *conn, struct options * opts)
|
||||
* Dump all tables, indexes and sequences in the current database.
|
||||
*/
|
||||
void
|
||||
sql_exec_dumpalltables(PGconn *conn, struct options * opts)
|
||||
sql_exec_dumpalltables(PGconn *conn, struct options *opts)
|
||||
{
|
||||
char todo[1024];
|
||||
char *addfields = ",c.oid AS \"Oid\", nspname AS \"Schema\", spcname as \"Tablespace\" ";
|
||||
@ -460,7 +460,7 @@ sql_exec_dumpalltables(PGconn *conn, struct options * opts)
|
||||
* given objects in the current database.
|
||||
*/
|
||||
void
|
||||
sql_exec_searchtables(PGconn *conn, struct options * opts)
|
||||
sql_exec_searchtables(PGconn *conn, struct options *opts)
|
||||
{
|
||||
char *todo;
|
||||
char *qualifiers,
|
||||
@ -516,7 +516,7 @@ sql_exec_searchtables(PGconn *conn, struct options * opts)
|
||||
CppAsString2(RELKIND_SEQUENCE) ","
|
||||
CppAsString2(RELKIND_TOASTVALUE) ") AND\n"
|
||||
" t.oid = CASE\n"
|
||||
" WHEN reltablespace <> 0 THEN reltablespace\n"
|
||||
" WHEN reltablespace <> 0 THEN reltablespace\n"
|
||||
" ELSE dattablespace\n"
|
||||
" END AND\n"
|
||||
" (%s)\n"
|
||||
@ -530,7 +530,7 @@ sql_exec_searchtables(PGconn *conn, struct options * opts)
|
||||
}
|
||||
|
||||
void
|
||||
sql_exec_dumpalltbspc(PGconn *conn, struct options * opts)
|
||||
sql_exec_dumpalltbspc(PGconn *conn, struct options *opts)
|
||||
{
|
||||
char todo[1024];
|
||||
|
||||
|
@ -250,7 +250,7 @@ typedef enum
|
||||
PGSS_TRACK_NONE, /* track no statements */
|
||||
PGSS_TRACK_TOP, /* only top level statements */
|
||||
PGSS_TRACK_ALL /* all statements, including nested ones */
|
||||
} PGSSTrackLevel;
|
||||
} PGSSTrackLevel;
|
||||
|
||||
static const struct config_enum_entry track_options[] =
|
||||
{
|
||||
|
@ -325,7 +325,7 @@ generate_trgm(char *str, int slen)
|
||||
|
||||
protect_out_of_mem(slen);
|
||||
|
||||
trg = (TRGM *) palloc(TRGMHDRSIZE + sizeof(trgm) * (slen / 2 + 1) *3);
|
||||
trg = (TRGM *) palloc(TRGMHDRSIZE + sizeof(trgm) * (slen / 2 + 1) * 3);
|
||||
trg->flag = ARRKEY;
|
||||
|
||||
len = generate_trgm_only(GETARR(trg), str, slen);
|
||||
@ -572,8 +572,8 @@ calc_word_similarity(char *str1, int slen1, char *str2, int slen2,
|
||||
protect_out_of_mem(slen1 + slen2);
|
||||
|
||||
/* Make positional trigrams */
|
||||
trg1 = (trgm *) palloc(sizeof(trgm) * (slen1 / 2 + 1) *3);
|
||||
trg2 = (trgm *) palloc(sizeof(trgm) * (slen2 / 2 + 1) *3);
|
||||
trg1 = (trgm *) palloc(sizeof(trgm) * (slen1 / 2 + 1) * 3);
|
||||
trg2 = (trgm *) palloc(sizeof(trgm) * (slen2 / 2 + 1) * 3);
|
||||
|
||||
len1 = generate_trgm_only(trg1, str1, slen1);
|
||||
len2 = generate_trgm_only(trg2, str2, slen2);
|
||||
@ -806,7 +806,7 @@ generate_wildcard_trgm(const char *str, int slen)
|
||||
|
||||
protect_out_of_mem(slen);
|
||||
|
||||
trg = (TRGM *) palloc(TRGMHDRSIZE + sizeof(trgm) * (slen / 2 + 1) *3);
|
||||
trg = (TRGM *) palloc(TRGMHDRSIZE + sizeof(trgm) * (slen / 2 + 1) * 3);
|
||||
trg->flag = ARRKEY;
|
||||
SET_VARSIZE(trg, TRGMHDRSIZE);
|
||||
|
||||
|
@ -481,7 +481,7 @@ collect_visibility_data(Oid relid, bool include_pd)
|
||||
check_relation_relkind(rel);
|
||||
|
||||
nblocks = RelationGetNumberOfBlocks(rel);
|
||||
info = palloc0(offsetof(vbits, bits) +nblocks);
|
||||
info = palloc0(offsetof(vbits, bits) + nblocks);
|
||||
info->next = 0;
|
||||
info->count = nblocks;
|
||||
|
||||
|
@ -908,7 +908,7 @@ mp_int_sqr(mp_int a, mp_int c)
|
||||
CHECK(a != NULL && c != NULL);
|
||||
|
||||
/* Get a temporary buffer big enough to hold the result */
|
||||
osize = (mp_size) 4 *((MP_USED(a) + 1) / 2);
|
||||
osize = (mp_size) 4 * ((MP_USED(a) + 1) / 2);
|
||||
|
||||
if (a == c)
|
||||
{
|
||||
@ -1613,8 +1613,8 @@ mp_int_gcd(mp_int a, mp_int b, mp_int c)
|
||||
|
||||
CLEANUP:
|
||||
mp_int_clear(&v);
|
||||
V: mp_int_clear(&u);
|
||||
U: mp_int_clear(&t);
|
||||
V: mp_int_clear(&u);
|
||||
U: mp_int_clear(&t);
|
||||
|
||||
return res;
|
||||
}
|
||||
@ -3512,7 +3512,7 @@ s_outlen(mp_int z, mp_size r)
|
||||
double raw;
|
||||
|
||||
bits = mp_int_count_bits(z);
|
||||
raw = (double) bits *s_log2[r];
|
||||
raw = (double) bits * s_log2[r];
|
||||
|
||||
return (int) (raw + 0.999999);
|
||||
}
|
||||
|
@ -61,6 +61,7 @@ typedef struct mpz
|
||||
mp_size used;
|
||||
mp_sign sign;
|
||||
} mpz_t ,
|
||||
|
||||
*mp_int;
|
||||
|
||||
#define MP_DIGITS(Z) ((Z)->digits)
|
||||
@ -117,9 +118,9 @@ mp_result mp_int_mul_value(mp_int a, int value, mp_int c);
|
||||
mp_result mp_int_mul_pow2(mp_int a, int p2, mp_int c);
|
||||
mp_result mp_int_sqr(mp_int a, mp_int c); /* c = a * a */
|
||||
|
||||
mp_result mp_int_div(mp_int a, mp_int b, /* q = a / b */
|
||||
mp_result mp_int_div(mp_int a, mp_int b, /* q = a / b */
|
||||
mp_int q, mp_int r); /* r = a % b */
|
||||
mp_result mp_int_div_value(mp_int a, int value, /* q = a / value */
|
||||
mp_result mp_int_div_value(mp_int a, int value, /* q = a / value */
|
||||
mp_int q, int *r); /* r = a % value */
|
||||
mp_result mp_int_div_pow2(mp_int a, int p2, /* q = a / 2^p2 */
|
||||
mp_int q, mp_int r); /* r = q % 2^p2 */
|
||||
|
@ -318,7 +318,7 @@ rj_init(PX_Cipher *c, const uint8 *key, unsigned klen, const uint8 *iv)
|
||||
}
|
||||
|
||||
static int
|
||||
rj_real_init(struct int_ctx * cx, int dir)
|
||||
rj_real_init(struct int_ctx *cx, int dir)
|
||||
{
|
||||
aes_set_key(&cx->ctx.rj, cx->keybuf, cx->keylen * 8, dir);
|
||||
return 0;
|
||||
|
@ -51,7 +51,7 @@ struct PushFilterOps
|
||||
* copied (in-place) returns 0 on error
|
||||
*/
|
||||
int (*push) (PushFilter *next, void *priv,
|
||||
const uint8 *src, int len);
|
||||
const uint8 *src, int len);
|
||||
int (*flush) (PushFilter *next, void *priv);
|
||||
void (*free) (void *priv);
|
||||
};
|
||||
@ -69,7 +69,7 @@ struct PullFilterOps
|
||||
* use buf as work area if NULL in-place copy
|
||||
*/
|
||||
int (*pull) (void *priv, PullFilter *src, int len,
|
||||
uint8 **data_p, uint8 *buf, int buflen);
|
||||
uint8 **data_p, uint8 *buf, int buflen);
|
||||
void (*free) (void *priv);
|
||||
};
|
||||
|
||||
|
@ -460,7 +460,7 @@ mdcbuf_init(void **priv_p, void *arg, PullFilter *src)
|
||||
}
|
||||
|
||||
static int
|
||||
mdcbuf_finish(struct MDCBufData * st)
|
||||
mdcbuf_finish(struct MDCBufData *st)
|
||||
{
|
||||
uint8 hash[20];
|
||||
int res;
|
||||
@ -485,7 +485,7 @@ mdcbuf_finish(struct MDCBufData * st)
|
||||
}
|
||||
|
||||
static void
|
||||
mdcbuf_load_data(struct MDCBufData * st, uint8 *src, int len)
|
||||
mdcbuf_load_data(struct MDCBufData *st, uint8 *src, int len)
|
||||
{
|
||||
uint8 *dst = st->pos + st->avail;
|
||||
|
||||
@ -495,14 +495,14 @@ mdcbuf_load_data(struct MDCBufData * st, uint8 *src, int len)
|
||||
}
|
||||
|
||||
static void
|
||||
mdcbuf_load_mdc(struct MDCBufData * st, uint8 *src, int len)
|
||||
mdcbuf_load_mdc(struct MDCBufData *st, uint8 *src, int len)
|
||||
{
|
||||
memmove(st->mdc_buf + st->mdc_avail, src, len);
|
||||
st->mdc_avail += len;
|
||||
}
|
||||
|
||||
static int
|
||||
mdcbuf_refill(struct MDCBufData * st, PullFilter *src)
|
||||
mdcbuf_refill(struct MDCBufData *st, PullFilter *src)
|
||||
{
|
||||
uint8 *data;
|
||||
int res;
|
||||
|
@ -132,7 +132,7 @@ struct debug_expect
|
||||
};
|
||||
|
||||
static void
|
||||
fill_expect(struct debug_expect * ex, int text_mode)
|
||||
fill_expect(struct debug_expect *ex, int text_mode)
|
||||
{
|
||||
ex->debug = 0;
|
||||
ex->expect = 0;
|
||||
@ -157,7 +157,7 @@ fill_expect(struct debug_expect * ex, int text_mode)
|
||||
} while (0)
|
||||
|
||||
static void
|
||||
check_expect(PGP_Context *ctx, struct debug_expect * ex)
|
||||
check_expect(PGP_Context *ctx, struct debug_expect *ex)
|
||||
{
|
||||
EX_CHECK(cipher_algo);
|
||||
EX_CHECK(s2k_mode);
|
||||
@ -179,7 +179,7 @@ show_debug(const char *msg)
|
||||
|
||||
static int
|
||||
set_arg(PGP_Context *ctx, char *key, char *val,
|
||||
struct debug_expect * ex)
|
||||
struct debug_expect *ex)
|
||||
{
|
||||
int res = 0;
|
||||
|
||||
@ -317,7 +317,7 @@ downcase_convert(const uint8 *s, int len)
|
||||
|
||||
static int
|
||||
parse_args(PGP_Context *ctx, uint8 *args, int arg_len,
|
||||
struct debug_expect * ex)
|
||||
struct debug_expect *ex)
|
||||
{
|
||||
char *str = downcase_convert(args, arg_len);
|
||||
char *key,
|
||||
@ -362,7 +362,7 @@ create_mbuf_from_vardata(text *data)
|
||||
|
||||
static void
|
||||
init_work(PGP_Context **ctx_p, int is_text,
|
||||
text *args, struct debug_expect * ex)
|
||||
text *args, struct debug_expect *ex)
|
||||
{
|
||||
int err = pgp_init(ctx_p);
|
||||
|
||||
|
@ -74,7 +74,7 @@ struct px_crypt_algo
|
||||
char *id;
|
||||
unsigned id_len;
|
||||
char *(*crypt) (const char *psw, const char *salt,
|
||||
char *buf, unsigned len);
|
||||
char *buf, unsigned len);
|
||||
};
|
||||
|
||||
static const struct px_crypt_algo
|
||||
@ -115,7 +115,7 @@ struct generator
|
||||
{
|
||||
char *name;
|
||||
char *(*gen) (unsigned long count, const char *input, int size,
|
||||
char *output, int output_size);
|
||||
char *output, int output_size);
|
||||
int input_len;
|
||||
int def_rounds;
|
||||
int min_rounds;
|
||||
|
@ -169,11 +169,11 @@ struct px_cipher
|
||||
struct px_combo
|
||||
{
|
||||
int (*init) (PX_Combo *cx, const uint8 *key, unsigned klen,
|
||||
const uint8 *iv, unsigned ivlen);
|
||||
const uint8 *iv, unsigned ivlen);
|
||||
int (*encrypt) (PX_Combo *cx, const uint8 *data, unsigned dlen,
|
||||
uint8 *res, unsigned *rlen);
|
||||
uint8 *res, unsigned *rlen);
|
||||
int (*decrypt) (PX_Combo *cx, const uint8 *data, unsigned dlen,
|
||||
uint8 *res, unsigned *rlen);
|
||||
uint8 *res, unsigned *rlen);
|
||||
unsigned (*encrypt_len) (PX_Combo *cx, unsigned dlen);
|
||||
unsigned (*decrypt_len) (PX_Combo *cx, unsigned dlen);
|
||||
void (*free) (PX_Combo *cx);
|
||||
|
@ -44,8 +44,7 @@ typedef struct _rijndael_ctx
|
||||
/* These are all based on 32 bit unsigned values and will therefore */
|
||||
/* require endian conversions for big-endian architectures */
|
||||
|
||||
rijndael_ctx *
|
||||
rijndael_set_key(rijndael_ctx *, const u4byte *, const u4byte, int);
|
||||
rijndael_ctx *rijndael_set_key(rijndael_ctx *, const u4byte *, const u4byte, int);
|
||||
void rijndael_encrypt(rijndael_ctx *, const u4byte *, u4byte *);
|
||||
void rijndael_decrypt(rijndael_ctx *, const u4byte *, u4byte *);
|
||||
|
||||
|
@ -81,7 +81,7 @@ do { \
|
||||
static void sha1_step(struct sha1_ctxt *);
|
||||
|
||||
static void
|
||||
sha1_step(struct sha1_ctxt * ctxt)
|
||||
sha1_step(struct sha1_ctxt *ctxt)
|
||||
{
|
||||
uint32 a,
|
||||
b,
|
||||
@ -226,7 +226,7 @@ sha1_step(struct sha1_ctxt * ctxt)
|
||||
/*------------------------------------------------------------*/
|
||||
|
||||
void
|
||||
sha1_init(struct sha1_ctxt * ctxt)
|
||||
sha1_init(struct sha1_ctxt *ctxt)
|
||||
{
|
||||
memset(ctxt, 0, sizeof(struct sha1_ctxt));
|
||||
H(0) = 0x67452301;
|
||||
@ -237,7 +237,7 @@ sha1_init(struct sha1_ctxt * ctxt)
|
||||
}
|
||||
|
||||
void
|
||||
sha1_pad(struct sha1_ctxt * ctxt)
|
||||
sha1_pad(struct sha1_ctxt *ctxt)
|
||||
{
|
||||
size_t padlen; /* pad length in bytes */
|
||||
size_t padstart;
|
||||
@ -280,7 +280,7 @@ sha1_pad(struct sha1_ctxt * ctxt)
|
||||
}
|
||||
|
||||
void
|
||||
sha1_loop(struct sha1_ctxt * ctxt, const uint8 *input0, size_t len)
|
||||
sha1_loop(struct sha1_ctxt *ctxt, const uint8 *input0, size_t len)
|
||||
{
|
||||
const uint8 *input;
|
||||
size_t gaplen;
|
||||
@ -308,7 +308,7 @@ sha1_loop(struct sha1_ctxt * ctxt, const uint8 *input0, size_t len)
|
||||
}
|
||||
|
||||
void
|
||||
sha1_result(struct sha1_ctxt * ctxt, uint8 *digest0)
|
||||
sha1_result(struct sha1_ctxt *ctxt, uint8 *digest0)
|
||||
{
|
||||
uint8 *digest;
|
||||
|
||||
|
@ -182,7 +182,7 @@ statapprox_heap(Relation rel, output_type *stat)
|
||||
UnlockReleaseBuffer(buf);
|
||||
}
|
||||
|
||||
stat->table_len = (uint64) nblocks *BLCKSZ;
|
||||
stat->table_len = (uint64) nblocks * BLCKSZ;
|
||||
|
||||
stat->tuple_count = vac_estimate_reltuples(rel, false, nblocks, scanned,
|
||||
stat->tuple_count + misc_count);
|
||||
|
@ -62,7 +62,7 @@ typedef struct pgstattuple_type
|
||||
} pgstattuple_type;
|
||||
|
||||
typedef void (*pgstat_page) (pgstattuple_type *, Relation, BlockNumber,
|
||||
BufferAccessStrategy);
|
||||
BufferAccessStrategy);
|
||||
|
||||
static Datum build_pgstattuple_type(pgstattuple_type *stat,
|
||||
FunctionCallInfo fcinfo);
|
||||
@ -386,7 +386,7 @@ pgstat_heap(Relation rel, FunctionCallInfo fcinfo)
|
||||
heap_endscan(scan);
|
||||
relation_close(rel, AccessShareLock);
|
||||
|
||||
stat.table_len = (uint64) nblocks *BLCKSZ;
|
||||
stat.table_len = (uint64) nblocks * BLCKSZ;
|
||||
|
||||
return build_pgstattuple_type(&stat, fcinfo);
|
||||
}
|
||||
@ -531,7 +531,7 @@ pgstat_index(Relation rel, BlockNumber start, pgstat_page pagefn,
|
||||
/* Quit if we've scanned the whole relation */
|
||||
if (blkno >= nblocks)
|
||||
{
|
||||
stat.table_len = (uint64) nblocks *BLCKSZ;
|
||||
stat.table_len = (uint64) nblocks * BLCKSZ;
|
||||
|
||||
break;
|
||||
}
|
||||
|
@ -52,7 +52,7 @@ typedef struct
|
||||
* command. Elsewhere (including the case of default) NULL.
|
||||
*/
|
||||
const char *createdb_dtemplate;
|
||||
} sepgsql_context_info_t;
|
||||
} sepgsql_context_info_t;
|
||||
|
||||
static sepgsql_context_info_t sepgsql_context_info;
|
||||
|
||||
|
@ -78,7 +78,7 @@ typedef struct
|
||||
{
|
||||
SubTransactionId subid;
|
||||
char *label;
|
||||
} pending_label;
|
||||
} pending_label;
|
||||
|
||||
/*
|
||||
* sepgsql_get_client_label
|
||||
@ -721,7 +721,7 @@ quote_object_name(const char *src1, const char *src2,
|
||||
* catalog OID.
|
||||
*/
|
||||
static void
|
||||
exec_object_restorecon(struct selabel_handle * sehnd, Oid catalogId)
|
||||
exec_object_restorecon(struct selabel_handle *sehnd, Oid catalogId)
|
||||
{
|
||||
Relation rel;
|
||||
SysScanDesc sscan;
|
||||
|
@ -36,7 +36,7 @@ static struct
|
||||
const char *av_name;
|
||||
uint32 av_code;
|
||||
} av[32];
|
||||
} selinux_catalog[] =
|
||||
} selinux_catalog[] =
|
||||
|
||||
{
|
||||
{
|
||||
@ -732,7 +732,7 @@ void
|
||||
sepgsql_compute_avd(const char *scontext,
|
||||
const char *tcontext,
|
||||
uint16 tclass,
|
||||
struct av_decision * avd)
|
||||
struct av_decision *avd)
|
||||
{
|
||||
const char *tclass_name;
|
||||
security_class_t tclass_ex;
|
||||
|
@ -235,7 +235,7 @@ extern void sepgsql_audit_log(bool denied,
|
||||
extern void sepgsql_compute_avd(const char *scontext,
|
||||
const char *tcontext,
|
||||
uint16 tclass,
|
||||
struct av_decision * avd);
|
||||
struct av_decision *avd);
|
||||
|
||||
extern char *sepgsql_compute_create(const char *scontext,
|
||||
const char *tcontext,
|
||||
|
@ -45,7 +45,7 @@ typedef struct
|
||||
/* true, if tcontext is valid */
|
||||
char *ncontext; /* temporary scontext on execution of trusted
|
||||
* procedure, or NULL elsewhere */
|
||||
} avc_cache;
|
||||
} avc_cache;
|
||||
|
||||
/*
|
||||
* Declaration of static variables
|
||||
|
@ -461,7 +461,7 @@ set_timetravel(PG_FUNCTION_ARGS)
|
||||
s = rname = DatumGetCString(DirectFunctionCall1(nameout, NameGetDatum(relname)));
|
||||
if (s)
|
||||
{
|
||||
pp = malloc(offsetof(TTOffList, name) +strlen(rname) + 1);
|
||||
pp = malloc(offsetof(TTOffList, name) + strlen(rname) + 1);
|
||||
if (pp)
|
||||
{
|
||||
pp->next = NULL;
|
||||
|
@ -262,11 +262,11 @@ uuid_generate_internal(int v, unsigned char *ns, char *ptr, int len)
|
||||
|
||||
switch (v)
|
||||
{
|
||||
case 0: /* constant-value uuids */
|
||||
case 0: /* constant-value uuids */
|
||||
strlcpy(strbuf, ptr, 37);
|
||||
break;
|
||||
|
||||
case 1: /* time/node-based uuids */
|
||||
case 1: /* time/node-based uuids */
|
||||
{
|
||||
#ifdef HAVE_UUID_E2FS
|
||||
uuid_t uu;
|
||||
@ -316,8 +316,8 @@ uuid_generate_internal(int v, unsigned char *ns, char *ptr, int len)
|
||||
break;
|
||||
}
|
||||
|
||||
case 3: /* namespace-based MD5 uuids */
|
||||
case 5: /* namespace-based SHA1 uuids */
|
||||
case 3: /* namespace-based MD5 uuids */
|
||||
case 5: /* namespace-based SHA1 uuids */
|
||||
{
|
||||
dce_uuid_t uu;
|
||||
#ifdef HAVE_UUID_BSD
|
||||
@ -373,7 +373,7 @@ uuid_generate_internal(int v, unsigned char *ns, char *ptr, int len)
|
||||
break;
|
||||
}
|
||||
|
||||
case 4: /* random uuid */
|
||||
case 4: /* random uuid */
|
||||
default:
|
||||
{
|
||||
#ifdef HAVE_UUID_E2FS
|
||||
|
@ -47,7 +47,7 @@ struct _param
|
||||
long transaction_limit;
|
||||
};
|
||||
|
||||
static int vacuumlo(const char *database, const struct _param * param);
|
||||
static int vacuumlo(const char *database, const struct _param *param);
|
||||
static void usage(const char *progname);
|
||||
|
||||
|
||||
@ -56,7 +56,7 @@ static void usage(const char *progname);
|
||||
* This vacuums LOs of one database. It returns 0 on success, -1 on failure.
|
||||
*/
|
||||
static int
|
||||
vacuumlo(const char *database, const struct _param * param)
|
||||
vacuumlo(const char *database, const struct _param *param)
|
||||
{
|
||||
PGconn *conn;
|
||||
PGresult *res,
|
||||
|
@ -720,7 +720,7 @@ xpath_table(PG_FUNCTION_ARGS)
|
||||
/* Parse the document */
|
||||
if (xmldoc)
|
||||
doctree = xmlParseMemory(xmldoc, strlen(xmldoc));
|
||||
else /* treat NULL as not well-formed */
|
||||
else /* treat NULL as not well-formed */
|
||||
doctree = NULL;
|
||||
|
||||
if (doctree == NULL)
|
||||
|
@ -1321,33 +1321,33 @@ default_reloptions(Datum reloptions, bool validate, relopt_kind kind)
|
||||
static const relopt_parse_elt tab[] = {
|
||||
{"fillfactor", RELOPT_TYPE_INT, offsetof(StdRdOptions, fillfactor)},
|
||||
{"autovacuum_enabled", RELOPT_TYPE_BOOL,
|
||||
offsetof(StdRdOptions, autovacuum) +offsetof(AutoVacOpts, enabled)},
|
||||
offsetof(StdRdOptions, autovacuum) + offsetof(AutoVacOpts, enabled)},
|
||||
{"autovacuum_vacuum_threshold", RELOPT_TYPE_INT,
|
||||
offsetof(StdRdOptions, autovacuum) +offsetof(AutoVacOpts, vacuum_threshold)},
|
||||
offsetof(StdRdOptions, autovacuum) + offsetof(AutoVacOpts, vacuum_threshold)},
|
||||
{"autovacuum_analyze_threshold", RELOPT_TYPE_INT,
|
||||
offsetof(StdRdOptions, autovacuum) +offsetof(AutoVacOpts, analyze_threshold)},
|
||||
offsetof(StdRdOptions, autovacuum) + offsetof(AutoVacOpts, analyze_threshold)},
|
||||
{"autovacuum_vacuum_cost_delay", RELOPT_TYPE_INT,
|
||||
offsetof(StdRdOptions, autovacuum) +offsetof(AutoVacOpts, vacuum_cost_delay)},
|
||||
offsetof(StdRdOptions, autovacuum) + offsetof(AutoVacOpts, vacuum_cost_delay)},
|
||||
{"autovacuum_vacuum_cost_limit", RELOPT_TYPE_INT,
|
||||
offsetof(StdRdOptions, autovacuum) +offsetof(AutoVacOpts, vacuum_cost_limit)},
|
||||
offsetof(StdRdOptions, autovacuum) + offsetof(AutoVacOpts, vacuum_cost_limit)},
|
||||
{"autovacuum_freeze_min_age", RELOPT_TYPE_INT,
|
||||
offsetof(StdRdOptions, autovacuum) +offsetof(AutoVacOpts, freeze_min_age)},
|
||||
offsetof(StdRdOptions, autovacuum) + offsetof(AutoVacOpts, freeze_min_age)},
|
||||
{"autovacuum_freeze_max_age", RELOPT_TYPE_INT,
|
||||
offsetof(StdRdOptions, autovacuum) +offsetof(AutoVacOpts, freeze_max_age)},
|
||||
offsetof(StdRdOptions, autovacuum) + offsetof(AutoVacOpts, freeze_max_age)},
|
||||
{"autovacuum_freeze_table_age", RELOPT_TYPE_INT,
|
||||
offsetof(StdRdOptions, autovacuum) +offsetof(AutoVacOpts, freeze_table_age)},
|
||||
offsetof(StdRdOptions, autovacuum) + offsetof(AutoVacOpts, freeze_table_age)},
|
||||
{"autovacuum_multixact_freeze_min_age", RELOPT_TYPE_INT,
|
||||
offsetof(StdRdOptions, autovacuum) +offsetof(AutoVacOpts, multixact_freeze_min_age)},
|
||||
offsetof(StdRdOptions, autovacuum) + offsetof(AutoVacOpts, multixact_freeze_min_age)},
|
||||
{"autovacuum_multixact_freeze_max_age", RELOPT_TYPE_INT,
|
||||
offsetof(StdRdOptions, autovacuum) +offsetof(AutoVacOpts, multixact_freeze_max_age)},
|
||||
offsetof(StdRdOptions, autovacuum) + offsetof(AutoVacOpts, multixact_freeze_max_age)},
|
||||
{"autovacuum_multixact_freeze_table_age", RELOPT_TYPE_INT,
|
||||
offsetof(StdRdOptions, autovacuum) +offsetof(AutoVacOpts, multixact_freeze_table_age)},
|
||||
offsetof(StdRdOptions, autovacuum) + offsetof(AutoVacOpts, multixact_freeze_table_age)},
|
||||
{"log_autovacuum_min_duration", RELOPT_TYPE_INT,
|
||||
offsetof(StdRdOptions, autovacuum) +offsetof(AutoVacOpts, log_min_duration)},
|
||||
offsetof(StdRdOptions, autovacuum) + offsetof(AutoVacOpts, log_min_duration)},
|
||||
{"autovacuum_vacuum_scale_factor", RELOPT_TYPE_REAL,
|
||||
offsetof(StdRdOptions, autovacuum) +offsetof(AutoVacOpts, vacuum_scale_factor)},
|
||||
offsetof(StdRdOptions, autovacuum) + offsetof(AutoVacOpts, vacuum_scale_factor)},
|
||||
{"autovacuum_analyze_scale_factor", RELOPT_TYPE_REAL,
|
||||
offsetof(StdRdOptions, autovacuum) +offsetof(AutoVacOpts, analyze_scale_factor)},
|
||||
offsetof(StdRdOptions, autovacuum) + offsetof(AutoVacOpts, analyze_scale_factor)},
|
||||
{"user_catalog_table", RELOPT_TYPE_BOOL,
|
||||
offsetof(StdRdOptions, user_catalog_table)},
|
||||
{"parallel_workers", RELOPT_TYPE_INT,
|
||||
|
@ -113,7 +113,7 @@ ginqueryarrayextract(PG_FUNCTION_ARGS)
|
||||
case GinContainsStrategy:
|
||||
if (nelems > 0)
|
||||
*searchMode = GIN_SEARCH_MODE_DEFAULT;
|
||||
else /* everything contains the empty set */
|
||||
else /* everything contains the empty set */
|
||||
*searchMode = GIN_SEARCH_MODE_ALL;
|
||||
break;
|
||||
case GinContainedStrategy:
|
||||
|
@ -391,7 +391,7 @@ GinDataPageAddPostingItem(Page page, PostingItem *data, OffsetNumber offset)
|
||||
if (offset != maxoff + 1)
|
||||
memmove(ptr + sizeof(PostingItem),
|
||||
ptr,
|
||||
(maxoff - offset + 1) *sizeof(PostingItem));
|
||||
(maxoff - offset + 1) * sizeof(PostingItem));
|
||||
}
|
||||
memcpy(ptr, data, sizeof(PostingItem));
|
||||
|
||||
|
@ -779,7 +779,7 @@ hashbucketcleanup(Relation rel, Bucket cur_bucket, Buffer bucket_buf,
|
||||
{
|
||||
BlockNumber blkno;
|
||||
Buffer buf;
|
||||
Bucket new_bucket PG_USED_FOR_ASSERTS_ONLY = InvalidBucket;
|
||||
Bucket new_bucket PG_USED_FOR_ASSERTS_ONLY = InvalidBucket;
|
||||
bool bucket_dirty = false;
|
||||
|
||||
blkno = bucket_blkno;
|
||||
|
@ -161,7 +161,7 @@ hash_xlog_add_ovfl_page(XLogReaderState *record)
|
||||
HashPageOpaque ovflopaque;
|
||||
uint32 *num_bucket;
|
||||
char *data;
|
||||
Size datalen PG_USED_FOR_ASSERTS_ONLY;
|
||||
Size datalen PG_USED_FOR_ASSERTS_ONLY;
|
||||
bool new_bmpage = false;
|
||||
|
||||
XLogRecGetBlockTag(record, 0, NULL, NULL, &rightblk);
|
||||
@ -293,7 +293,7 @@ hash_xlog_split_allocate_page(XLogReaderState *record)
|
||||
Buffer oldbuf;
|
||||
Buffer newbuf;
|
||||
Buffer metabuf;
|
||||
Size datalen PG_USED_FOR_ASSERTS_ONLY;
|
||||
Size datalen PG_USED_FOR_ASSERTS_ONLY;
|
||||
char *data;
|
||||
XLogRedoAction action;
|
||||
|
||||
|
@ -505,7 +505,7 @@ _hash_freeovflpage(Relation rel, Buffer bucketbuf, Buffer ovflbuf,
|
||||
uint32 ovflbitno;
|
||||
int32 bitmappage,
|
||||
bitmapbit;
|
||||
Bucket bucket PG_USED_FOR_ASSERTS_ONLY;
|
||||
Bucket bucket PG_USED_FOR_ASSERTS_ONLY;
|
||||
Buffer prevbuf = InvalidBuffer;
|
||||
Buffer nextbuf = InvalidBuffer;
|
||||
bool update_metap = false;
|
||||
|
@ -149,12 +149,12 @@ typedef struct RewriteStateData
|
||||
bool rs_logical_rewrite; /* do we need to do logical rewriting */
|
||||
TransactionId rs_oldest_xmin; /* oldest xmin used by caller to
|
||||
* determine tuple visibility */
|
||||
TransactionId rs_freeze_xid;/* Xid that will be used as freeze cutoff
|
||||
* point */
|
||||
TransactionId rs_freeze_xid; /* Xid that will be used as freeze cutoff
|
||||
* point */
|
||||
TransactionId rs_logical_xmin; /* Xid that will be used as cutoff
|
||||
* point for logical rewrites */
|
||||
MultiXactId rs_cutoff_multi;/* MultiXactId that will be used as cutoff
|
||||
* point for multixacts */
|
||||
MultiXactId rs_cutoff_multi; /* MultiXactId that will be used as cutoff
|
||||
* point for multixacts */
|
||||
MemoryContext rs_cxt; /* for hash tables and entries and tuples in
|
||||
* them */
|
||||
XLogRecPtr rs_begin_lsn; /* XLogInsertLsn when starting the rewrite */
|
||||
@ -162,7 +162,7 @@ typedef struct RewriteStateData
|
||||
HTAB *rs_old_new_tid_map; /* unmatched B tuples */
|
||||
HTAB *rs_logical_mappings; /* logical remapping files */
|
||||
uint32 rs_num_rewrite_mappings; /* # in memory mappings */
|
||||
} RewriteStateData;
|
||||
} RewriteStateData;
|
||||
|
||||
/*
|
||||
* The lookup keys for the hash tables are tuple TID and xmin (we must check
|
||||
|
@ -69,13 +69,13 @@ typedef struct toast_compress_header
|
||||
|
||||
static void toast_delete_datum(Relation rel, Datum value, bool is_speculative);
|
||||
static Datum toast_save_datum(Relation rel, Datum value,
|
||||
struct varlena * oldexternal, int options);
|
||||
struct varlena *oldexternal, int options);
|
||||
static bool toastrel_valueid_exists(Relation toastrel, Oid valueid);
|
||||
static bool toastid_valueid_exists(Oid toastrelid, Oid valueid);
|
||||
static struct varlena *toast_fetch_datum(struct varlena * attr);
|
||||
static struct varlena *toast_fetch_datum_slice(struct varlena * attr,
|
||||
static struct varlena *toast_fetch_datum(struct varlena *attr);
|
||||
static struct varlena *toast_fetch_datum_slice(struct varlena *attr,
|
||||
int32 sliceoffset, int32 length);
|
||||
static struct varlena *toast_decompress_datum(struct varlena * attr);
|
||||
static struct varlena *toast_decompress_datum(struct varlena *attr);
|
||||
static int toast_open_indexes(Relation toastrel,
|
||||
LOCKMODE lock,
|
||||
Relation **toastidxs,
|
||||
@ -98,7 +98,7 @@ static void init_toast_snapshot(Snapshot toast_snapshot);
|
||||
* ----------
|
||||
*/
|
||||
struct varlena *
|
||||
heap_tuple_fetch_attr(struct varlena * attr)
|
||||
heap_tuple_fetch_attr(struct varlena *attr)
|
||||
{
|
||||
struct varlena *result;
|
||||
|
||||
@ -169,7 +169,7 @@ heap_tuple_fetch_attr(struct varlena * attr)
|
||||
* ----------
|
||||
*/
|
||||
struct varlena *
|
||||
heap_tuple_untoast_attr(struct varlena * attr)
|
||||
heap_tuple_untoast_attr(struct varlena *attr)
|
||||
{
|
||||
if (VARATT_IS_EXTERNAL_ONDISK(attr))
|
||||
{
|
||||
@ -255,7 +255,7 @@ heap_tuple_untoast_attr(struct varlena * attr)
|
||||
* ----------
|
||||
*/
|
||||
struct varlena *
|
||||
heap_tuple_untoast_attr_slice(struct varlena * attr,
|
||||
heap_tuple_untoast_attr_slice(struct varlena *attr,
|
||||
int32 sliceoffset, int32 slicelength)
|
||||
{
|
||||
struct varlena *preslice;
|
||||
@ -1468,7 +1468,7 @@ toast_get_valid_index(Oid toastoid, LOCKMODE lock)
|
||||
*/
|
||||
static Datum
|
||||
toast_save_datum(Relation rel, Datum value,
|
||||
struct varlena * oldexternal, int options)
|
||||
struct varlena *oldexternal, int options)
|
||||
{
|
||||
Relation toastrel;
|
||||
Relation *toastidxs;
|
||||
@ -1873,7 +1873,7 @@ toastid_valueid_exists(Oid toastrelid, Oid valueid)
|
||||
* ----------
|
||||
*/
|
||||
static struct varlena *
|
||||
toast_fetch_datum(struct varlena * attr)
|
||||
toast_fetch_datum(struct varlena *attr)
|
||||
{
|
||||
Relation toastrel;
|
||||
Relation *toastidxs;
|
||||
@ -2044,7 +2044,7 @@ toast_fetch_datum(struct varlena * attr)
|
||||
* ----------
|
||||
*/
|
||||
static struct varlena *
|
||||
toast_fetch_datum_slice(struct varlena * attr, int32 sliceoffset, int32 length)
|
||||
toast_fetch_datum_slice(struct varlena *attr, int32 sliceoffset, int32 length)
|
||||
{
|
||||
Relation toastrel;
|
||||
Relation *toastidxs;
|
||||
@ -2276,7 +2276,7 @@ toast_fetch_datum_slice(struct varlena * attr, int32 sliceoffset, int32 length)
|
||||
* Decompress a compressed version of a varlena datum
|
||||
*/
|
||||
static struct varlena *
|
||||
toast_decompress_datum(struct varlena * attr)
|
||||
toast_decompress_datum(struct varlena *attr)
|
||||
{
|
||||
struct varlena *result;
|
||||
|
||||
|
@ -92,15 +92,15 @@ typedef enum
|
||||
typedef struct BTParallelScanDescData
|
||||
{
|
||||
BlockNumber btps_scanPage; /* latest or next page to be scanned */
|
||||
BTPS_State btps_pageStatus;/* indicates whether next page is available
|
||||
* for scan. see above for possible states of
|
||||
* parallel scan. */
|
||||
BTPS_State btps_pageStatus; /* indicates whether next page is
|
||||
* available for scan. see above for
|
||||
* possible states of parallel scan. */
|
||||
int btps_arrayKeyCount; /* count indicating number of array
|
||||
* scan keys processed by parallel
|
||||
* scan */
|
||||
slock_t btps_mutex; /* protects above variables */
|
||||
ConditionVariable btps_cv; /* used to synchronize parallel scan */
|
||||
} BTParallelScanDescData;
|
||||
} BTParallelScanDescData;
|
||||
|
||||
typedef struct BTParallelScanDescData *BTParallelScanDesc;
|
||||
|
||||
|
@ -765,7 +765,7 @@ doPickSplit(Relation index, SpGistState *state,
|
||||
/* we will delete the tuple altogether, so count full space */
|
||||
spaceToDelete += it->size + sizeof(ItemIdData);
|
||||
}
|
||||
else /* tuples on root should be live */
|
||||
else /* tuples on root should be live */
|
||||
elog(ERROR, "unexpected SPGiST tuple state: %d", it->tupstate);
|
||||
}
|
||||
}
|
||||
@ -2064,7 +2064,7 @@ spgdoinsert(Relation index, SpGistState *state,
|
||||
goto process_inner_tuple;
|
||||
}
|
||||
}
|
||||
else /* non-leaf page */
|
||||
else /* non-leaf page */
|
||||
{
|
||||
/*
|
||||
* Apply the opclass choose function to figure out how to insert
|
||||
|
@ -25,7 +25,7 @@
|
||||
|
||||
|
||||
typedef void (*storeRes_func) (SpGistScanOpaque so, ItemPointer heapPtr,
|
||||
Datum leafValue, bool isnull, bool recheck);
|
||||
Datum leafValue, bool isnull, bool recheck);
|
||||
|
||||
typedef struct ScanStackEntry
|
||||
{
|
||||
@ -430,7 +430,7 @@ redirect:
|
||||
}
|
||||
}
|
||||
}
|
||||
else /* page is inner */
|
||||
else /* page is inner */
|
||||
{
|
||||
SpGistInnerTuple innerTuple;
|
||||
spgInnerConsistentIn in;
|
||||
|
@ -113,7 +113,7 @@ static const struct
|
||||
{
|
||||
const char *fn_name;
|
||||
parallel_worker_main_type fn_addr;
|
||||
} InternalParallelWorkers[] =
|
||||
} InternalParallelWorkers[] =
|
||||
|
||||
{
|
||||
{
|
||||
|
@ -340,7 +340,7 @@ SimpleLruWaitIO(SlruCtl ctl, int slotno)
|
||||
/* indeed, the I/O must have failed */
|
||||
if (shared->page_status[slotno] == SLRU_PAGE_READ_IN_PROGRESS)
|
||||
shared->page_status[slotno] = SLRU_PAGE_EMPTY;
|
||||
else /* write_in_progress */
|
||||
else /* write_in_progress */
|
||||
{
|
||||
shared->page_status[slotno] = SLRU_PAGE_VALID;
|
||||
shared->page_dirty[slotno] = true;
|
||||
|
@ -174,7 +174,7 @@ typedef struct GlobalTransactionData
|
||||
bool ondisk; /* TRUE if prepare state file is on disk */
|
||||
bool inredo; /* TRUE if entry was added via xlog_redo */
|
||||
char gid[GIDSIZE]; /* The GID assigned to the prepared xact */
|
||||
} GlobalTransactionData;
|
||||
} GlobalTransactionData;
|
||||
|
||||
/*
|
||||
* Two Phase Commit shared state. Access to this struct is protected
|
||||
@ -948,7 +948,7 @@ static struct xllist
|
||||
uint32 num_chunks;
|
||||
uint32 bytes_free; /* free bytes left in tail block */
|
||||
uint32 total_len; /* total data bytes in chain */
|
||||
} records;
|
||||
} records;
|
||||
|
||||
|
||||
/*
|
||||
|
@ -4893,7 +4893,7 @@ XLOGShmemInit(void)
|
||||
|
||||
/* WAL insertion locks. Ensure they're aligned to the full padded size */
|
||||
allocptr += sizeof(WALInsertLockPadded) -
|
||||
((uintptr_t) allocptr) %sizeof(WALInsertLockPadded);
|
||||
((uintptr_t) allocptr) % sizeof(WALInsertLockPadded);
|
||||
WALInsertLocks = XLogCtl->Insert.WALInsertLocks =
|
||||
(WALInsertLockPadded *) allocptr;
|
||||
allocptr += sizeof(WALInsertLockPadded) * NUM_XLOGINSERT_LOCKS;
|
||||
@ -8426,14 +8426,14 @@ LogCheckpointEnd(bool restartpoint)
|
||||
*/
|
||||
longest_secs = (long) (CheckpointStats.ckpt_longest_sync / 1000000);
|
||||
longest_usecs = CheckpointStats.ckpt_longest_sync -
|
||||
(uint64) longest_secs *1000000;
|
||||
(uint64) longest_secs * 1000000;
|
||||
|
||||
average_sync_time = 0;
|
||||
if (CheckpointStats.ckpt_sync_rels > 0)
|
||||
average_sync_time = CheckpointStats.ckpt_agg_sync_time /
|
||||
CheckpointStats.ckpt_sync_rels;
|
||||
average_secs = (long) (average_sync_time / 1000000);
|
||||
average_usecs = average_sync_time - (uint64) average_secs *1000000;
|
||||
average_usecs = average_sync_time - (uint64) average_secs * 1000000;
|
||||
|
||||
elog(LOG, "%s complete: wrote %d buffers (%.1f%%); "
|
||||
"%d WAL file(s) added, %d removed, %d recycled; "
|
||||
@ -11448,7 +11448,7 @@ XLogPageRead(XLogReaderState *xlogreader, XLogRecPtr targetPagePtr, int reqLen,
|
||||
(XLogPageReadPrivate *) xlogreader->private_data;
|
||||
int emode = private->emode;
|
||||
uint32 targetPageOff;
|
||||
XLogSegNo targetSegNo PG_USED_FOR_ASSERTS_ONLY;
|
||||
XLogSegNo targetSegNo PG_USED_FOR_ASSERTS_ONLY;
|
||||
|
||||
XLByteToSeg(targetPagePtr, targetSegNo);
|
||||
targetPageOff = targetPagePtr % XLogSegSize;
|
||||
|
@ -1937,7 +1937,7 @@ index_update_stats(Relation rel,
|
||||
|
||||
if (rd_rel->relkind != RELKIND_INDEX)
|
||||
visibilitymap_count(rel, &relallvisible, NULL);
|
||||
else /* don't bother for indexes */
|
||||
else /* don't bother for indexes */
|
||||
relallvisible = 0;
|
||||
|
||||
if (rd_rel->relpages != (int32) relpages)
|
||||
|
@ -80,9 +80,9 @@ typedef struct PartitionBoundInfoData
|
||||
int ndatums; /* Length of the datums following array */
|
||||
Datum **datums; /* Array of datum-tuples with key->partnatts
|
||||
* datums each */
|
||||
RangeDatumContent **content;/* what's contained in each range bound datum?
|
||||
* (see the above enum); NULL for list
|
||||
* partitioned tables */
|
||||
RangeDatumContent **content; /* what's contained in each range bound
|
||||
* datum? (see the above enum); NULL for
|
||||
* list partitioned tables */
|
||||
int *indexes; /* Partition indexes; one entry per member of
|
||||
* the datums array (plus one if range
|
||||
* partitioned table) */
|
||||
|
@ -2626,7 +2626,7 @@ CopyFrom(CopyState cstate)
|
||||
|
||||
if (slot == NULL) /* "do nothing" */
|
||||
skip_tuple = true;
|
||||
else /* trigger might have changed tuple */
|
||||
else /* trigger might have changed tuple */
|
||||
tuple = ExecMaterializeSlot(slot);
|
||||
}
|
||||
|
||||
|
@ -75,7 +75,8 @@ typedef struct ExtensionControlFile
|
||||
char *name; /* name of the extension */
|
||||
char *directory; /* directory for script files */
|
||||
char *default_version; /* default install target version, if any */
|
||||
char *module_pathname; /* string to substitute for MODULE_PATHNAME */
|
||||
char *module_pathname; /* string to substitute for
|
||||
* MODULE_PATHNAME */
|
||||
char *comment; /* comment, if any */
|
||||
char *schema; /* target schema (allowed if !relocatable) */
|
||||
bool relocatable; /* is ALTER EXTENSION SET SCHEMA supported? */
|
||||
|
@ -588,7 +588,7 @@ update_proconfig_value(ArrayType *a, List *set_items)
|
||||
|
||||
if (valuestr)
|
||||
a = GUCArrayAdd(a, sstmt->name, valuestr);
|
||||
else /* RESET */
|
||||
else /* RESET */
|
||||
a = GUCArrayDelete(a, sstmt->name);
|
||||
}
|
||||
}
|
||||
|
@ -330,7 +330,7 @@ AlterPublicationTables(AlterPublicationStmt *stmt, Relation rel,
|
||||
PublicationAddTables(pubid, rels, false, stmt);
|
||||
else if (stmt->tableAction == DEFELEM_DROP)
|
||||
PublicationDropTables(pubid, rels, false);
|
||||
else /* DEFELEM_SET */
|
||||
else /* DEFELEM_SET */
|
||||
{
|
||||
List *oldrelids = GetPublicationRelations(pubid);
|
||||
List *delrels = NIL;
|
||||
|
@ -3187,7 +3187,7 @@ AlterTableGetLockLevel(List *cmds)
|
||||
* might miss data added to the new toast table by concurrent
|
||||
* insert transactions.
|
||||
*/
|
||||
case AT_SetStorage:/* may add toast tables, see
|
||||
case AT_SetStorage: /* may add toast tables, see
|
||||
* ATRewriteCatalogs() */
|
||||
cmd_lockmode = AccessExclusiveLock;
|
||||
break;
|
||||
@ -3197,27 +3197,27 @@ AlterTableGetLockLevel(List *cmds)
|
||||
* optimised assuming the constraint holds true.
|
||||
*/
|
||||
case AT_DropConstraint: /* as DROP INDEX */
|
||||
case AT_DropNotNull: /* may change some SQL plans */
|
||||
case AT_DropNotNull: /* may change some SQL plans */
|
||||
cmd_lockmode = AccessExclusiveLock;
|
||||
break;
|
||||
|
||||
/*
|
||||
* Subcommands that may be visible to concurrent SELECTs
|
||||
*/
|
||||
case AT_DropColumn: /* change visible to SELECT */
|
||||
case AT_DropColumn: /* change visible to SELECT */
|
||||
case AT_AddColumnToView: /* CREATE VIEW */
|
||||
case AT_DropOids: /* calls AT_DropColumn */
|
||||
case AT_EnableAlwaysRule: /* may change SELECT rules */
|
||||
case AT_EnableReplicaRule: /* may change SELECT rules */
|
||||
case AT_EnableRule: /* may change SELECT rules */
|
||||
case AT_DisableRule: /* may change SELECT rules */
|
||||
case AT_EnableRule: /* may change SELECT rules */
|
||||
case AT_DisableRule: /* may change SELECT rules */
|
||||
cmd_lockmode = AccessExclusiveLock;
|
||||
break;
|
||||
|
||||
/*
|
||||
* Changing owner may remove implicit SELECT privileges
|
||||
*/
|
||||
case AT_ChangeOwner: /* change visible to SELECT */
|
||||
case AT_ChangeOwner: /* change visible to SELECT */
|
||||
cmd_lockmode = AccessExclusiveLock;
|
||||
break;
|
||||
|
||||
@ -3347,8 +3347,8 @@ AlterTableGetLockLevel(List *cmds)
|
||||
*/
|
||||
case AT_SetStatistics: /* Uses MVCC in getTableAttrs() */
|
||||
case AT_ClusterOn: /* Uses MVCC in getIndexes() */
|
||||
case AT_DropCluster: /* Uses MVCC in getIndexes() */
|
||||
case AT_SetOptions: /* Uses MVCC in getTableAttrs() */
|
||||
case AT_DropCluster: /* Uses MVCC in getIndexes() */
|
||||
case AT_SetOptions: /* Uses MVCC in getTableAttrs() */
|
||||
case AT_ResetOptions: /* Uses MVCC in getTableAttrs() */
|
||||
cmd_lockmode = ShareUpdateExclusiveLock;
|
||||
break;
|
||||
@ -3358,8 +3358,7 @@ AlterTableGetLockLevel(List *cmds)
|
||||
cmd_lockmode = AccessExclusiveLock;
|
||||
break;
|
||||
|
||||
case AT_ValidateConstraint: /* Uses MVCC in
|
||||
* getConstraints() */
|
||||
case AT_ValidateConstraint: /* Uses MVCC in getConstraints() */
|
||||
cmd_lockmode = ShareUpdateExclusiveLock;
|
||||
break;
|
||||
|
||||
@ -3469,8 +3468,7 @@ ATPrepCmd(List **wqueue, Relation rel, AlterTableCmd *cmd,
|
||||
/* Recursion occurs during execution phase */
|
||||
pass = AT_PASS_ADD_COL;
|
||||
break;
|
||||
case AT_AddColumnToView: /* add column via CREATE OR REPLACE
|
||||
* VIEW */
|
||||
case AT_AddColumnToView: /* add column via CREATE OR REPLACE VIEW */
|
||||
ATSimplePermissions(rel, ATT_VIEW);
|
||||
ATPrepAddColumn(wqueue, rel, recurse, recursing, true, cmd,
|
||||
lockmode);
|
||||
@ -3561,7 +3559,7 @@ ATPrepCmd(List **wqueue, Relation rel, AlterTableCmd *cmd,
|
||||
/* No command-specific prep needed */
|
||||
pass = AT_PASS_ADD_CONSTR;
|
||||
break;
|
||||
case AT_DropConstraint: /* DROP CONSTRAINT */
|
||||
case AT_DropConstraint: /* DROP CONSTRAINT */
|
||||
ATSimplePermissions(rel, ATT_TABLE | ATT_FOREIGN_TABLE);
|
||||
/* Recursion occurs during execution phase */
|
||||
/* No command-specific prep needed except saving recurse flag */
|
||||
@ -3569,7 +3567,7 @@ ATPrepCmd(List **wqueue, Relation rel, AlterTableCmd *cmd,
|
||||
cmd->subtype = AT_DropConstraintRecurse;
|
||||
pass = AT_PASS_DROP;
|
||||
break;
|
||||
case AT_AlterColumnType: /* ALTER COLUMN TYPE */
|
||||
case AT_AlterColumnType: /* ALTER COLUMN TYPE */
|
||||
ATSimplePermissions(rel,
|
||||
ATT_TABLE | ATT_COMPOSITE_TYPE | ATT_FOREIGN_TABLE);
|
||||
/* Performs own recursion */
|
||||
@ -3644,7 +3642,7 @@ ATPrepCmd(List **wqueue, Relation rel, AlterTableCmd *cmd,
|
||||
pass = AT_PASS_MISC; /* doesn't actually matter */
|
||||
break;
|
||||
case AT_SetRelOptions: /* SET (...) */
|
||||
case AT_ResetRelOptions: /* RESET (...) */
|
||||
case AT_ResetRelOptions: /* RESET (...) */
|
||||
case AT_ReplaceRelOptions: /* reset them all, then set just these */
|
||||
ATSimplePermissions(rel, ATT_TABLE | ATT_VIEW | ATT_MATVIEW | ATT_INDEX);
|
||||
/* This command never recurses */
|
||||
@ -3663,7 +3661,7 @@ ATPrepCmd(List **wqueue, Relation rel, AlterTableCmd *cmd,
|
||||
/* No command-specific prep needed */
|
||||
pass = AT_PASS_MISC;
|
||||
break;
|
||||
case AT_AlterConstraint: /* ALTER CONSTRAINT */
|
||||
case AT_AlterConstraint: /* ALTER CONSTRAINT */
|
||||
ATSimplePermissions(rel, ATT_TABLE);
|
||||
pass = AT_PASS_MISC;
|
||||
break;
|
||||
@ -3675,7 +3673,7 @@ ATPrepCmd(List **wqueue, Relation rel, AlterTableCmd *cmd,
|
||||
cmd->subtype = AT_ValidateConstraintRecurse;
|
||||
pass = AT_PASS_MISC;
|
||||
break;
|
||||
case AT_ReplicaIdentity: /* REPLICA IDENTITY ... */
|
||||
case AT_ReplicaIdentity: /* REPLICA IDENTITY ... */
|
||||
ATSimplePermissions(rel, ATT_TABLE | ATT_MATVIEW);
|
||||
pass = AT_PASS_MISC;
|
||||
/* This command never recurses */
|
||||
@ -3697,7 +3695,7 @@ ATPrepCmd(List **wqueue, Relation rel, AlterTableCmd *cmd,
|
||||
case AT_EnableReplicaRule:
|
||||
case AT_DisableRule:
|
||||
case AT_AddOf: /* OF */
|
||||
case AT_DropOf: /* NOT OF */
|
||||
case AT_DropOf: /* NOT OF */
|
||||
case AT_EnableRowSecurity:
|
||||
case AT_DisableRowSecurity:
|
||||
case AT_ForceRowSecurity:
|
||||
@ -3813,8 +3811,7 @@ ATExecCmd(List **wqueue, AlteredTableInfo *tab, Relation rel,
|
||||
switch (cmd->subtype)
|
||||
{
|
||||
case AT_AddColumn: /* ADD COLUMN */
|
||||
case AT_AddColumnToView: /* add column via CREATE OR REPLACE
|
||||
* VIEW */
|
||||
case AT_AddColumnToView: /* add column via CREATE OR REPLACE VIEW */
|
||||
address = ATExecAddColumn(wqueue, tab, rel, (ColumnDef *) cmd->def,
|
||||
false, false, false,
|
||||
false, lockmode);
|
||||
@ -3882,8 +3879,7 @@ ATExecCmd(List **wqueue, AlteredTableInfo *tab, Relation rel,
|
||||
ATExecAddConstraint(wqueue, tab, rel, (Constraint *) cmd->def,
|
||||
true, false, lockmode);
|
||||
break;
|
||||
case AT_ReAddConstraint: /* Re-add pre-existing check
|
||||
* constraint */
|
||||
case AT_ReAddConstraint: /* Re-add pre-existing check constraint */
|
||||
address =
|
||||
ATExecAddConstraint(wqueue, tab, rel, (Constraint *) cmd->def,
|
||||
true, true, lockmode);
|
||||
@ -3895,7 +3891,7 @@ ATExecCmd(List **wqueue, AlteredTableInfo *tab, Relation rel,
|
||||
address = ATExecAddIndexConstraint(tab, rel, (IndexStmt *) cmd->def,
|
||||
lockmode);
|
||||
break;
|
||||
case AT_AlterConstraint: /* ALTER CONSTRAINT */
|
||||
case AT_AlterConstraint: /* ALTER CONSTRAINT */
|
||||
address = ATExecAlterConstraint(rel, cmd, false, false, lockmode);
|
||||
break;
|
||||
case AT_ValidateConstraint: /* VALIDATE CONSTRAINT */
|
||||
@ -3907,7 +3903,7 @@ ATExecCmd(List **wqueue, AlteredTableInfo *tab, Relation rel,
|
||||
address = ATExecValidateConstraint(rel, cmd->name, true, false,
|
||||
lockmode);
|
||||
break;
|
||||
case AT_DropConstraint: /* DROP CONSTRAINT */
|
||||
case AT_DropConstraint: /* DROP CONSTRAINT */
|
||||
ATExecDropConstraint(rel, cmd->name, cmd->behavior,
|
||||
false, false,
|
||||
cmd->missing_ok, lockmode);
|
||||
@ -3917,7 +3913,7 @@ ATExecCmd(List **wqueue, AlteredTableInfo *tab, Relation rel,
|
||||
true, false,
|
||||
cmd->missing_ok, lockmode);
|
||||
break;
|
||||
case AT_AlterColumnType: /* ALTER COLUMN TYPE */
|
||||
case AT_AlterColumnType: /* ALTER COLUMN TYPE */
|
||||
address = ATExecAlterColumnType(tab, rel, cmd, lockmode);
|
||||
break;
|
||||
case AT_AlterColumnGenericOptions: /* ALTER COLUMN OPTIONS */
|
||||
@ -3947,7 +3943,7 @@ ATExecCmd(List **wqueue, AlteredTableInfo *tab, Relation rel,
|
||||
true, false, false,
|
||||
cmd->missing_ok, lockmode);
|
||||
break;
|
||||
case AT_AddOidsRecurse: /* SET WITH OIDS */
|
||||
case AT_AddOidsRecurse: /* SET WITH OIDS */
|
||||
/* Use the ADD COLUMN code, unless prep decided to do nothing */
|
||||
if (cmd->def != NULL)
|
||||
address =
|
||||
@ -3969,7 +3965,7 @@ ATExecCmd(List **wqueue, AlteredTableInfo *tab, Relation rel,
|
||||
*/
|
||||
break;
|
||||
case AT_SetRelOptions: /* SET (...) */
|
||||
case AT_ResetRelOptions: /* RESET (...) */
|
||||
case AT_ResetRelOptions: /* RESET (...) */
|
||||
case AT_ReplaceRelOptions: /* replace entire option list */
|
||||
ATExecSetRelOptions(rel, (List *) cmd->def, cmd->subtype, lockmode);
|
||||
break;
|
||||
@ -3993,15 +3989,15 @@ ATExecCmd(List **wqueue, AlteredTableInfo *tab, Relation rel,
|
||||
ATExecEnableDisableTrigger(rel, NULL,
|
||||
TRIGGER_FIRES_ON_ORIGIN, false, lockmode);
|
||||
break;
|
||||
case AT_DisableTrigAll: /* DISABLE TRIGGER ALL */
|
||||
case AT_DisableTrigAll: /* DISABLE TRIGGER ALL */
|
||||
ATExecEnableDisableTrigger(rel, NULL,
|
||||
TRIGGER_DISABLED, false, lockmode);
|
||||
break;
|
||||
case AT_EnableTrigUser: /* ENABLE TRIGGER USER */
|
||||
case AT_EnableTrigUser: /* ENABLE TRIGGER USER */
|
||||
ATExecEnableDisableTrigger(rel, NULL,
|
||||
TRIGGER_FIRES_ON_ORIGIN, true, lockmode);
|
||||
break;
|
||||
case AT_DisableTrigUser: /* DISABLE TRIGGER USER */
|
||||
case AT_DisableTrigUser: /* DISABLE TRIGGER USER */
|
||||
ATExecEnableDisableTrigger(rel, NULL,
|
||||
TRIGGER_DISABLED, true, lockmode);
|
||||
break;
|
||||
|
@ -3049,7 +3049,7 @@ TriggerEnabled(EState *estate, ResultRelInfo *relinfo,
|
||||
trigger->tgenabled == TRIGGER_DISABLED)
|
||||
return false;
|
||||
}
|
||||
else /* ORIGIN or LOCAL role */
|
||||
else /* ORIGIN or LOCAL role */
|
||||
{
|
||||
if (trigger->tgenabled == TRIGGER_FIRES_ON_REPLICA ||
|
||||
trigger->tgenabled == TRIGGER_DISABLED)
|
||||
@ -3290,13 +3290,13 @@ typedef struct AfterTriggerEventDataOneCtid
|
||||
{
|
||||
TriggerFlags ate_flags; /* status bits and offset to shared data */
|
||||
ItemPointerData ate_ctid1; /* inserted, deleted, or old updated tuple */
|
||||
} AfterTriggerEventDataOneCtid;
|
||||
} AfterTriggerEventDataOneCtid;
|
||||
|
||||
/* AfterTriggerEventData, minus ate_ctid1 and ate_ctid2 */
|
||||
typedef struct AfterTriggerEventDataZeroCtids
|
||||
{
|
||||
TriggerFlags ate_flags; /* status bits and offset to shared data */
|
||||
} AfterTriggerEventDataZeroCtids;
|
||||
} AfterTriggerEventDataZeroCtids;
|
||||
|
||||
#define SizeofTriggerEvent(evt) \
|
||||
(((evt)->ate_flags & AFTER_TRIGGER_TUP_BITS) == AFTER_TRIGGER_2CTID ? \
|
||||
|
@ -363,10 +363,10 @@ lazy_vacuum_rel(Relation onerel, int options, VacuumParams *params,
|
||||
write_rate = 0;
|
||||
if ((secs > 0) || (usecs > 0))
|
||||
{
|
||||
read_rate = (double) BLCKSZ *VacuumPageMiss / (1024 * 1024) /
|
||||
(secs + usecs / 1000000.0);
|
||||
write_rate = (double) BLCKSZ *VacuumPageDirty / (1024 * 1024) /
|
||||
(secs + usecs / 1000000.0);
|
||||
read_rate = (double) BLCKSZ * VacuumPageMiss / (1024 * 1024) /
|
||||
(secs + usecs / 1000000.0);
|
||||
write_rate = (double) BLCKSZ * VacuumPageDirty / (1024 * 1024) /
|
||||
(secs + usecs / 1000000.0);
|
||||
}
|
||||
|
||||
/*
|
||||
|
@ -151,7 +151,7 @@ execCurrentOf(CurrentOfExpr *cexpr,
|
||||
{
|
||||
ScanState *scanstate;
|
||||
bool lisnull;
|
||||
Oid tuple_tableoid PG_USED_FOR_ASSERTS_ONLY;
|
||||
Oid tuple_tableoid PG_USED_FOR_ASSERTS_ONLY;
|
||||
ItemPointer tuple_tid;
|
||||
|
||||
/*
|
||||
|
@ -140,7 +140,7 @@ typedef struct SQLFunctionParseInfo
|
||||
char **argnames; /* names of input arguments; NULL if none */
|
||||
/* Note that argnames[i] can be NULL, if some args are unnamed */
|
||||
Oid collation; /* function's input collation, if known */
|
||||
} SQLFunctionParseInfo;
|
||||
} SQLFunctionParseInfo;
|
||||
|
||||
|
||||
/* non-export function prototypes */
|
||||
|
@ -391,7 +391,7 @@ typedef struct AggStatePerTransData
|
||||
FunctionCallInfoData serialfn_fcinfo;
|
||||
|
||||
FunctionCallInfoData deserialfn_fcinfo;
|
||||
} AggStatePerTransData;
|
||||
} AggStatePerTransData;
|
||||
|
||||
/*
|
||||
* AggStatePerAggData - per-aggregate information
|
||||
@ -439,7 +439,7 @@ typedef struct AggStatePerAggData
|
||||
int16 resulttypeLen;
|
||||
bool resulttypeByVal;
|
||||
|
||||
} AggStatePerAggData;
|
||||
} AggStatePerAggData;
|
||||
|
||||
/*
|
||||
* AggStatePerGroupData - per-aggregate-per-group working state
|
||||
@ -471,7 +471,7 @@ typedef struct AggStatePerGroupData
|
||||
* NULL and not auto-replace it with a later input value. Only the first
|
||||
* non-NULL input will be auto-substituted.
|
||||
*/
|
||||
} AggStatePerGroupData;
|
||||
} AggStatePerGroupData;
|
||||
|
||||
/*
|
||||
* AggStatePerPhaseData - per-grouping-set-phase state
|
||||
@ -493,7 +493,7 @@ typedef struct AggStatePerPhaseData
|
||||
FmgrInfo *eqfunctions; /* per-grouping-field equality fns */
|
||||
Agg *aggnode; /* Agg node for phase data */
|
||||
Sort *sortnode; /* Sort node for input ordering for phase */
|
||||
} AggStatePerPhaseData;
|
||||
} AggStatePerPhaseData;
|
||||
|
||||
/*
|
||||
* AggStatePerHashData - per-hashtable state
|
||||
@ -515,7 +515,7 @@ typedef struct AggStatePerHashData
|
||||
AttrNumber *hashGrpColIdxInput; /* hash col indices in input slot */
|
||||
AttrNumber *hashGrpColIdxHash; /* indices in hashtbl tuples */
|
||||
Agg *aggnode; /* original Agg node, for numGroups etc. */
|
||||
} AggStatePerHashData;
|
||||
} AggStatePerHashData;
|
||||
|
||||
|
||||
static void select_current_set(AggState *aggstate, int setno, bool is_hash);
|
||||
|
@ -687,7 +687,7 @@ ExecHashJoinNewBatch(HashJoinState *hjstate)
|
||||
BufFileClose(hashtable->outerBatchFile[curbatch]);
|
||||
hashtable->outerBatchFile[curbatch] = NULL;
|
||||
}
|
||||
else /* we just finished the first batch */
|
||||
else /* we just finished the first batch */
|
||||
{
|
||||
/*
|
||||
* Reset some of the skew optimization state variables, since we no
|
||||
|
@ -66,7 +66,7 @@ ExecMaterial(MaterialState *node)
|
||||
* Allocate a second read pointer to serve as the mark. We know it
|
||||
* must have index 1, so needn't store that.
|
||||
*/
|
||||
int ptrno PG_USED_FOR_ASSERTS_ONLY;
|
||||
int ptrno PG_USED_FOR_ASSERTS_ONLY;
|
||||
|
||||
ptrno = tuplestore_alloc_read_pointer(tuplestorestate,
|
||||
node->eflags);
|
||||
|
@ -137,7 +137,7 @@ typedef struct MergeJoinClauseData
|
||||
* stored here.
|
||||
*/
|
||||
SortSupportData ssup;
|
||||
} MergeJoinClauseData;
|
||||
} MergeJoinClauseData;
|
||||
|
||||
/* Result type for MJEvalOuterValues and MJEvalInnerValues */
|
||||
typedef enum
|
||||
@ -216,7 +216,7 @@ MJExamineQuals(List *mergeclauses,
|
||||
clause->ssup.ssup_reverse = false;
|
||||
else if (opstrategy == BTGreaterStrategyNumber)
|
||||
clause->ssup.ssup_reverse = true;
|
||||
else /* planner screwed up */
|
||||
else /* planner screwed up */
|
||||
elog(ERROR, "unsupported mergejoin strategy %d", opstrategy);
|
||||
clause->ssup.ssup_nulls_first = nulls_first;
|
||||
|
||||
|
@ -120,7 +120,7 @@ ExecProjectSRF(ProjectSetState *node, bool continuing)
|
||||
{
|
||||
TupleTableSlot *resultSlot = node->ps.ps_ResultTupleSlot;
|
||||
ExprContext *econtext = node->ps.ps_ExprContext;
|
||||
bool hassrf PG_USED_FOR_ASSERTS_ONLY;
|
||||
bool hassrf PG_USED_FOR_ASSERTS_ONLY;
|
||||
bool hasresult;
|
||||
int argno;
|
||||
|
||||
|
@ -64,7 +64,7 @@ typedef struct SetOpStatePerGroupData
|
||||
{
|
||||
long numLeft; /* number of left-input dups in group */
|
||||
long numRight; /* number of right-input dups in group */
|
||||
} SetOpStatePerGroupData;
|
||||
} SetOpStatePerGroupData;
|
||||
|
||||
|
||||
static TupleTableSlot *setop_retrieve_direct(SetOpState *setopstate);
|
||||
@ -333,7 +333,7 @@ setop_fill_hash_table(SetOpState *setopstate)
|
||||
SetOp *node = (SetOp *) setopstate->ps.plan;
|
||||
PlanState *outerPlan;
|
||||
int firstFlag;
|
||||
bool in_first_rel PG_USED_FOR_ASSERTS_ONLY;
|
||||
bool in_first_rel PG_USED_FOR_ASSERTS_ONLY;
|
||||
|
||||
/*
|
||||
* get state info from node
|
||||
|
@ -95,7 +95,7 @@ typedef struct WindowStatePerFuncData
|
||||
int aggno; /* if so, index of its PerAggData */
|
||||
|
||||
WindowObject winobj; /* object used in window function API */
|
||||
} WindowStatePerFuncData;
|
||||
} WindowStatePerFuncData;
|
||||
|
||||
/*
|
||||
* For plain aggregate window functions, we also have one of these.
|
||||
|
@ -35,7 +35,7 @@ binaryheap_allocate(int capacity, binaryheap_comparator compare, void *arg)
|
||||
int sz;
|
||||
binaryheap *heap;
|
||||
|
||||
sz = offsetof(binaryheap, bh_nodes) +sizeof(Datum) * capacity;
|
||||
sz = offsetof(binaryheap, bh_nodes) + sizeof(Datum) * capacity;
|
||||
heap = (binaryheap *) palloc(sz);
|
||||
heap->bh_space = capacity;
|
||||
heap->bh_compare = compare;
|
||||
|
@ -32,7 +32,7 @@ slist_delete(slist_head *head, slist_node *node)
|
||||
{
|
||||
slist_node *last = &head->head;
|
||||
slist_node *cur;
|
||||
bool found PG_USED_FOR_ASSERTS_ONLY = false;
|
||||
bool found PG_USED_FOR_ASSERTS_ONLY = false;
|
||||
|
||||
while ((cur = last->next) != NULL)
|
||||
{
|
||||
|
@ -429,7 +429,7 @@ rb_insert(RBTree *rb, const RBNode *data, bool *isNew)
|
||||
*/
|
||||
*isNew = true;
|
||||
|
||||
x = rb->allocfunc (rb->arg);
|
||||
x = rb->allocfunc(rb->arg);
|
||||
|
||||
x->color = RBRED;
|
||||
|
||||
@ -624,7 +624,7 @@ rb_delete_node(RBTree *rb, RBNode *z)
|
||||
|
||||
/* Now we can recycle the y node */
|
||||
if (rb->freefunc)
|
||||
rb->freefunc (y, rb->arg);
|
||||
rb->freefunc(y, rb->arg);
|
||||
}
|
||||
|
||||
/*
|
||||
@ -808,7 +808,7 @@ loop:
|
||||
iter->next_step = NextStepLeft;
|
||||
goto loop;
|
||||
}
|
||||
else /* not moved - return current, then go up */
|
||||
else /* not moved - return current, then go up */
|
||||
iter->next_step = NextStepUp;
|
||||
break;
|
||||
|
||||
|
@ -92,8 +92,8 @@ static int auth_peer(hbaPort *port);
|
||||
#define PGSQL_PAM_SERVICE "postgresql" /* Service name passed to PAM */
|
||||
|
||||
static int CheckPAMAuth(Port *port, char *user, char *password);
|
||||
static int pam_passwd_conv_proc(int num_msg, const struct pam_message ** msg,
|
||||
struct pam_response ** resp, void *appdata_ptr);
|
||||
static int pam_passwd_conv_proc(int num_msg, const struct pam_message **msg,
|
||||
struct pam_response **resp, void *appdata_ptr);
|
||||
|
||||
static struct pam_conv pam_passw_conv = {
|
||||
&pam_passwd_conv_proc,
|
||||
@ -132,11 +132,11 @@ static int CheckBSDAuth(Port *port, char *user);
|
||||
/* Correct header from the Platform SDK */
|
||||
typedef
|
||||
ULONG (*__ldap_start_tls_sA) (
|
||||
IN PLDAP ExternalHandle,
|
||||
OUT PULONG ServerReturnValue,
|
||||
OUT LDAPMessage **result,
|
||||
IN PLDAPControlA * ServerControls,
|
||||
IN PLDAPControlA * ClientControls
|
||||
IN PLDAP ExternalHandle,
|
||||
OUT PULONG ServerReturnValue,
|
||||
OUT LDAPMessage **result,
|
||||
IN PLDAPControlA * ServerControls,
|
||||
IN PLDAPControlA * ClientControls
|
||||
);
|
||||
#endif
|
||||
|
||||
@ -182,7 +182,7 @@ static int pg_GSS_recvauth(Port *port);
|
||||
#ifdef ENABLE_SSPI
|
||||
typedef SECURITY_STATUS
|
||||
(WINAPI * QUERY_SECURITY_CONTEXT_TOKEN_FN) (
|
||||
PCtxtHandle, void **);
|
||||
PCtxtHandle, void **);
|
||||
static int pg_SSPI_recvauth(Port *port);
|
||||
static int pg_SSPI_make_upn(char *accountname,
|
||||
size_t accountnamesize,
|
||||
@ -1337,6 +1337,7 @@ pg_SSPI_recvauth(Port *port)
|
||||
DWORD domainnamesize = sizeof(domainname);
|
||||
SID_NAME_USE accountnameuse;
|
||||
HMODULE secur32;
|
||||
|
||||
QUERY_SECURITY_CONTEXT_TOKEN_FN _QuerySecurityContextToken;
|
||||
|
||||
/*
|
||||
@ -2023,8 +2024,8 @@ auth_peer(hbaPort *port)
|
||||
*/
|
||||
|
||||
static int
|
||||
pam_passwd_conv_proc(int num_msg, const struct pam_message ** msg,
|
||||
struct pam_response ** resp, void *appdata_ptr)
|
||||
pam_passwd_conv_proc(int num_msg, const struct pam_message **msg,
|
||||
struct pam_response **resp, void *appdata_ptr)
|
||||
{
|
||||
char *passwd;
|
||||
struct pam_response *reply;
|
||||
@ -2919,7 +2920,7 @@ PerformRadiusTransaction(char *server, char *secret, char *portstr, char *identi
|
||||
addrsize = sizeof(struct sockaddr_in);
|
||||
#endif
|
||||
|
||||
if (bind(sock, (struct sockaddr *) & localaddr, addrsize))
|
||||
if (bind(sock, (struct sockaddr *) &localaddr, addrsize))
|
||||
{
|
||||
ereport(LOG,
|
||||
(errmsg("could not bind local RADIUS socket: %m")));
|
||||
@ -3010,7 +3011,7 @@ PerformRadiusTransaction(char *server, char *secret, char *portstr, char *identi
|
||||
|
||||
addrsize = sizeof(remoteaddr);
|
||||
packetlength = recvfrom(sock, receive_buffer, RADIUS_BUFFER_SIZE, 0,
|
||||
(struct sockaddr *) & remoteaddr, &addrsize);
|
||||
(struct sockaddr *) &remoteaddr, &addrsize);
|
||||
if (packetlength < 0)
|
||||
{
|
||||
ereport(LOG,
|
||||
|
@ -766,7 +766,7 @@ lo_get_fragment_internal(Oid loOid, int64 offset, int32 nbytes)
|
||||
LargeObjectDesc *loDesc;
|
||||
int64 loSize;
|
||||
int64 result_length;
|
||||
int total_read PG_USED_FOR_ASSERTS_ONLY;
|
||||
int total_read PG_USED_FOR_ASSERTS_ONLY;
|
||||
bytea *result = NULL;
|
||||
|
||||
/*
|
||||
@ -868,7 +868,7 @@ be_lo_from_bytea(PG_FUNCTION_ARGS)
|
||||
Oid loOid = PG_GETARG_OID(0);
|
||||
bytea *str = PG_GETARG_BYTEA_PP(1);
|
||||
LargeObjectDesc *loDesc;
|
||||
int written PG_USED_FOR_ASSERTS_ONLY;
|
||||
int written PG_USED_FOR_ASSERTS_ONLY;
|
||||
|
||||
CreateFSContext();
|
||||
|
||||
@ -891,7 +891,7 @@ be_lo_put(PG_FUNCTION_ARGS)
|
||||
int64 offset = PG_GETARG_INT64(1);
|
||||
bytea *str = PG_GETARG_BYTEA_PP(2);
|
||||
LargeObjectDesc *loDesc;
|
||||
int written PG_USED_FOR_ASSERTS_ONLY;
|
||||
int written PG_USED_FOR_ASSERTS_ONLY;
|
||||
|
||||
CreateFSContext();
|
||||
|
||||
|
@ -646,7 +646,7 @@ check_db(const char *dbname, const char *role, Oid roleid, List *tokens)
|
||||
}
|
||||
|
||||
static bool
|
||||
ipv4eq(struct sockaddr_in * a, struct sockaddr_in * b)
|
||||
ipv4eq(struct sockaddr_in *a, struct sockaddr_in *b)
|
||||
{
|
||||
return (a->sin_addr.s_addr == b->sin_addr.s_addr);
|
||||
}
|
||||
@ -654,7 +654,7 @@ ipv4eq(struct sockaddr_in * a, struct sockaddr_in * b)
|
||||
#ifdef HAVE_IPV6
|
||||
|
||||
static bool
|
||||
ipv6eq(struct sockaddr_in6 * a, struct sockaddr_in6 * b)
|
||||
ipv6eq(struct sockaddr_in6 *a, struct sockaddr_in6 *b)
|
||||
{
|
||||
int i;
|
||||
|
||||
@ -747,7 +747,7 @@ check_hostname(hbaPort *port, const char *hostname)
|
||||
if (gai->ai_addr->sa_family == AF_INET)
|
||||
{
|
||||
if (ipv4eq((struct sockaddr_in *) gai->ai_addr,
|
||||
(struct sockaddr_in *) & port->raddr.addr))
|
||||
(struct sockaddr_in *) &port->raddr.addr))
|
||||
{
|
||||
found = true;
|
||||
break;
|
||||
@ -757,7 +757,7 @@ check_hostname(hbaPort *port, const char *hostname)
|
||||
else if (gai->ai_addr->sa_family == AF_INET6)
|
||||
{
|
||||
if (ipv6eq((struct sockaddr_in6 *) gai->ai_addr,
|
||||
(struct sockaddr_in6 *) & port->raddr.addr))
|
||||
(struct sockaddr_in6 *) &port->raddr.addr))
|
||||
{
|
||||
found = true;
|
||||
break;
|
||||
@ -783,7 +783,7 @@ check_hostname(hbaPort *port, const char *hostname)
|
||||
* Check to see if a connecting IP matches the given address and netmask.
|
||||
*/
|
||||
static bool
|
||||
check_ip(SockAddr *raddr, struct sockaddr * addr, struct sockaddr * mask)
|
||||
check_ip(SockAddr *raddr, struct sockaddr *addr, struct sockaddr *mask)
|
||||
{
|
||||
if (raddr->addr.ss_family == addr->sa_family &&
|
||||
pg_range_sockaddr(&raddr->addr,
|
||||
@ -797,7 +797,7 @@ check_ip(SockAddr *raddr, struct sockaddr * addr, struct sockaddr * mask)
|
||||
* pg_foreach_ifaddr callback: does client addr match this machine interface?
|
||||
*/
|
||||
static void
|
||||
check_network_callback(struct sockaddr * addr, struct sockaddr * netmask,
|
||||
check_network_callback(struct sockaddr *addr, struct sockaddr *netmask,
|
||||
void *cb_data)
|
||||
{
|
||||
check_network_data *cn = (check_network_data *) cb_data;
|
||||
@ -811,7 +811,7 @@ check_network_callback(struct sockaddr * addr, struct sockaddr * netmask,
|
||||
{
|
||||
/* Make an all-ones netmask of appropriate length for family */
|
||||
pg_sockaddr_cidr_mask(&mask, NULL, addr->sa_family);
|
||||
cn->result = check_ip(cn->raddr, addr, (struct sockaddr *) & mask);
|
||||
cn->result = check_ip(cn->raddr, addr, (struct sockaddr *) &mask);
|
||||
}
|
||||
else
|
||||
{
|
||||
@ -2041,8 +2041,8 @@ check_hba(hbaPort *port)
|
||||
else
|
||||
{
|
||||
if (!check_ip(&port->raddr,
|
||||
(struct sockaddr *) & hba->addr,
|
||||
(struct sockaddr *) & hba->mask))
|
||||
(struct sockaddr *) &hba->addr,
|
||||
(struct sockaddr *) &hba->mask))
|
||||
continue;
|
||||
}
|
||||
break;
|
||||
|
@ -32,14 +32,14 @@
|
||||
|
||||
#include "libpq/ifaddr.h"
|
||||
|
||||
static int range_sockaddr_AF_INET(const struct sockaddr_in * addr,
|
||||
const struct sockaddr_in * netaddr,
|
||||
const struct sockaddr_in * netmask);
|
||||
static int range_sockaddr_AF_INET(const struct sockaddr_in *addr,
|
||||
const struct sockaddr_in *netaddr,
|
||||
const struct sockaddr_in *netmask);
|
||||
|
||||
#ifdef HAVE_IPV6
|
||||
static int range_sockaddr_AF_INET6(const struct sockaddr_in6 * addr,
|
||||
const struct sockaddr_in6 * netaddr,
|
||||
const struct sockaddr_in6 * netmask);
|
||||
static int range_sockaddr_AF_INET6(const struct sockaddr_in6 *addr,
|
||||
const struct sockaddr_in6 *netaddr,
|
||||
const struct sockaddr_in6 *netmask);
|
||||
#endif
|
||||
|
||||
|
||||
@ -50,9 +50,9 @@ static int range_sockaddr_AF_INET6(const struct sockaddr_in6 * addr,
|
||||
* in the same address family; and AF_UNIX addresses are not supported.
|
||||
*/
|
||||
int
|
||||
pg_range_sockaddr(const struct sockaddr_storage * addr,
|
||||
const struct sockaddr_storage * netaddr,
|
||||
const struct sockaddr_storage * netmask)
|
||||
pg_range_sockaddr(const struct sockaddr_storage *addr,
|
||||
const struct sockaddr_storage *netaddr,
|
||||
const struct sockaddr_storage *netmask)
|
||||
{
|
||||
if (addr->ss_family == AF_INET)
|
||||
return range_sockaddr_AF_INET((const struct sockaddr_in *) addr,
|
||||
@ -69,9 +69,9 @@ pg_range_sockaddr(const struct sockaddr_storage * addr,
|
||||
}
|
||||
|
||||
static int
|
||||
range_sockaddr_AF_INET(const struct sockaddr_in * addr,
|
||||
const struct sockaddr_in * netaddr,
|
||||
const struct sockaddr_in * netmask)
|
||||
range_sockaddr_AF_INET(const struct sockaddr_in *addr,
|
||||
const struct sockaddr_in *netaddr,
|
||||
const struct sockaddr_in *netmask)
|
||||
{
|
||||
if (((addr->sin_addr.s_addr ^ netaddr->sin_addr.s_addr) &
|
||||
netmask->sin_addr.s_addr) == 0)
|
||||
@ -84,9 +84,9 @@ range_sockaddr_AF_INET(const struct sockaddr_in * addr,
|
||||
#ifdef HAVE_IPV6
|
||||
|
||||
static int
|
||||
range_sockaddr_AF_INET6(const struct sockaddr_in6 * addr,
|
||||
const struct sockaddr_in6 * netaddr,
|
||||
const struct sockaddr_in6 * netmask)
|
||||
range_sockaddr_AF_INET6(const struct sockaddr_in6 *addr,
|
||||
const struct sockaddr_in6 *netaddr,
|
||||
const struct sockaddr_in6 *netmask)
|
||||
{
|
||||
int i;
|
||||
|
||||
@ -112,7 +112,7 @@ range_sockaddr_AF_INET6(const struct sockaddr_in6 * addr,
|
||||
* Return value is 0 if okay, -1 if not.
|
||||
*/
|
||||
int
|
||||
pg_sockaddr_cidr_mask(struct sockaddr_storage * mask, char *numbits, int family)
|
||||
pg_sockaddr_cidr_mask(struct sockaddr_storage *mask, char *numbits, int family)
|
||||
{
|
||||
long bits;
|
||||
char *endptr;
|
||||
@ -190,7 +190,7 @@ pg_sockaddr_cidr_mask(struct sockaddr_storage * mask, char *numbits, int family)
|
||||
*/
|
||||
static void
|
||||
run_ifaddr_callback(PgIfAddrCallback callback, void *cb_data,
|
||||
struct sockaddr * addr, struct sockaddr * mask)
|
||||
struct sockaddr *addr, struct sockaddr *mask)
|
||||
{
|
||||
struct sockaddr_storage fullmask;
|
||||
|
||||
@ -222,7 +222,7 @@ run_ifaddr_callback(PgIfAddrCallback callback, void *cb_data,
|
||||
if (!mask)
|
||||
{
|
||||
pg_sockaddr_cidr_mask(&fullmask, NULL, addr->sa_family);
|
||||
mask = (struct sockaddr *) & fullmask;
|
||||
mask = (struct sockaddr *) &fullmask;
|
||||
}
|
||||
|
||||
(*callback) (addr, mask, cb_data);
|
||||
@ -284,8 +284,8 @@ pg_foreach_ifaddr(PgIfAddrCallback callback, void *cb_data)
|
||||
|
||||
for (i = 0; i < length / sizeof(INTERFACE_INFO); ++i)
|
||||
run_ifaddr_callback(callback, cb_data,
|
||||
(struct sockaddr *) & ii[i].iiAddress,
|
||||
(struct sockaddr *) & ii[i].iiNetmask);
|
||||
(struct sockaddr *) &ii[i].iiAddress,
|
||||
(struct sockaddr *) &ii[i].iiNetmask);
|
||||
|
||||
closesocket(sock);
|
||||
free(ii);
|
||||
@ -425,7 +425,7 @@ pg_foreach_ifaddr(PgIfAddrCallback callback, void *cb_data)
|
||||
lifr = lifc.lifc_req;
|
||||
for (i = 0; i < total; ++i)
|
||||
{
|
||||
addr = (struct sockaddr *) & lifr[i].lifr_addr;
|
||||
addr = (struct sockaddr *) &lifr[i].lifr_addr;
|
||||
memcpy(&lmask, &lifr[i], sizeof(struct lifreq));
|
||||
#ifdef HAVE_IPV6
|
||||
fd = (addr->sa_family == AF_INET6) ? sock6 : sock;
|
||||
@ -435,7 +435,7 @@ pg_foreach_ifaddr(PgIfAddrCallback callback, void *cb_data)
|
||||
if (ioctl(fd, SIOCGLIFNETMASK, &lmask) < 0)
|
||||
mask = NULL;
|
||||
else
|
||||
mask = (struct sockaddr *) & lmask.lifr_addr;
|
||||
mask = (struct sockaddr *) &lmask.lifr_addr;
|
||||
run_ifaddr_callback(callback, cb_data, addr, mask);
|
||||
}
|
||||
|
||||
@ -572,8 +572,8 @@ pg_foreach_ifaddr(PgIfAddrCallback callback, void *cb_data)
|
||||
memset(&mask, 0, sizeof(mask));
|
||||
pg_sockaddr_cidr_mask(&mask, "8", AF_INET);
|
||||
run_ifaddr_callback(callback, cb_data,
|
||||
(struct sockaddr *) & addr,
|
||||
(struct sockaddr *) & mask);
|
||||
(struct sockaddr *) &addr,
|
||||
(struct sockaddr *) &mask);
|
||||
|
||||
#ifdef HAVE_IPV6
|
||||
/* addr ::1/128 */
|
||||
@ -583,8 +583,8 @@ pg_foreach_ifaddr(PgIfAddrCallback callback, void *cb_data)
|
||||
memset(&mask, 0, sizeof(mask));
|
||||
pg_sockaddr_cidr_mask(&mask, "128", AF_INET6);
|
||||
run_ifaddr_callback(callback, cb_data,
|
||||
(struct sockaddr *) & addr6,
|
||||
(struct sockaddr *) & mask);
|
||||
(struct sockaddr *) &addr6,
|
||||
(struct sockaddr *) &mask);
|
||||
#endif
|
||||
|
||||
return 0;
|
||||
|
@ -699,7 +699,7 @@ StreamConnection(pgsocket server_fd, Port *port)
|
||||
/* accept connection and fill in the client (remote) address */
|
||||
port->raddr.salen = sizeof(port->raddr.addr);
|
||||
if ((port->sock = accept(server_fd,
|
||||
(struct sockaddr *) & port->raddr.addr,
|
||||
(struct sockaddr *) &port->raddr.addr,
|
||||
&port->raddr.salen)) == PGINVALID_SOCKET)
|
||||
{
|
||||
ereport(LOG,
|
||||
@ -720,7 +720,7 @@ StreamConnection(pgsocket server_fd, Port *port)
|
||||
/* fill in the server (local) address */
|
||||
port->laddr.salen = sizeof(port->laddr.addr);
|
||||
if (getsockname(port->sock,
|
||||
(struct sockaddr *) & port->laddr.addr,
|
||||
(struct sockaddr *) &port->laddr.addr,
|
||||
&port->laddr.salen) < 0)
|
||||
{
|
||||
elog(LOG, "getsockname() failed: %m");
|
||||
@ -1573,7 +1573,7 @@ fail:
|
||||
static void
|
||||
socket_putmessage_noblock(char msgtype, const char *s, size_t len)
|
||||
{
|
||||
int res PG_USED_FOR_ASSERTS_ONLY;
|
||||
int res PG_USED_FOR_ASSERTS_ONLY;
|
||||
int required;
|
||||
|
||||
/*
|
||||
|
@ -29,7 +29,7 @@ static bool expression_returns_set_walker(Node *node, void *context);
|
||||
static int leftmostLoc(int loc1, int loc2);
|
||||
static bool fix_opfuncids_walker(Node *node, void *context);
|
||||
static bool planstate_walk_subplans(List *plans, bool (*walker) (),
|
||||
void *context);
|
||||
void *context);
|
||||
static bool planstate_walk_members(List *plans, PlanState **planstates,
|
||||
bool (*walker) (), void *context);
|
||||
|
||||
@ -3091,7 +3091,7 @@ query_tree_mutator(Query *query,
|
||||
MUTATE(query->limitCount, query->limitCount, Node *);
|
||||
if (!(flags & QTW_IGNORE_CTE_SUBQUERIES))
|
||||
MUTATE(query->cteList, query->cteList, List *);
|
||||
else /* else copy CTE list as-is */
|
||||
else /* else copy CTE list as-is */
|
||||
query->cteList = copyObject(query->cteList);
|
||||
query->rtable = range_table_mutator(query->rtable,
|
||||
mutator, context, flags);
|
||||
|
@ -827,7 +827,7 @@ index_pages_fetched(double tuples_fetched, BlockNumber pages,
|
||||
Assert(T <= total_pages);
|
||||
|
||||
/* b is pro-rated share of effective_cache_size */
|
||||
b = (double) effective_cache_size *T / total_pages;
|
||||
b = (double) effective_cache_size * T / total_pages;
|
||||
|
||||
/* force it positive and integral */
|
||||
if (b <= 1.0)
|
||||
@ -3057,7 +3057,7 @@ final_cost_hashjoin(PlannerInfo *root, HashPath *path,
|
||||
path->num_batches = numbatches;
|
||||
|
||||
/* and compute the number of "virtual" buckets in the whole join */
|
||||
virtualbuckets = (double) numbuckets *(double) numbatches;
|
||||
virtualbuckets = (double) numbuckets * (double) numbatches;
|
||||
|
||||
/*
|
||||
* Determine bucketsize fraction for inner relation. We use the smallest
|
||||
|
@ -93,7 +93,7 @@ join_search_one_level(PlannerInfo *root, int level)
|
||||
|
||||
if (level == 2) /* consider remaining initial rels */
|
||||
other_rels = lnext(r);
|
||||
else /* consider all initial rels */
|
||||
else /* consider all initial rels */
|
||||
other_rels = list_head(joinrels[1]);
|
||||
|
||||
make_rels_by_clause_joins(root,
|
||||
|
@ -1015,7 +1015,7 @@ pull_up_simple_subquery(PlannerInfo *root, Node *jtnode, RangeTblEntry *rte,
|
||||
if (rte->lateral)
|
||||
rvcontext.relids = get_relids_in_jointree((Node *) subquery->jointree,
|
||||
true);
|
||||
else /* won't need relids */
|
||||
else /* won't need relids */
|
||||
rvcontext.relids = NULL;
|
||||
rvcontext.outer_hasSubLinks = &parse->hasSubLinks;
|
||||
rvcontext.varno = varno;
|
||||
|
@ -1804,7 +1804,7 @@ lookup_proof_cache(Oid pred_op, Oid clause_op, bool refute_it)
|
||||
clause_op_infos = get_op_btree_interpretation(clause_op);
|
||||
if (clause_op_infos)
|
||||
pred_op_infos = get_op_btree_interpretation(pred_op);
|
||||
else /* no point in looking */
|
||||
else /* no point in looking */
|
||||
pred_op_infos = NIL;
|
||||
|
||||
foreach(lcp, pred_op_infos)
|
||||
|
@ -2941,7 +2941,7 @@ make_row_comparison_op(ParseState *pstate, List *opname,
|
||||
}
|
||||
if (OidIsValid(opfamily))
|
||||
opfamilies = lappend_oid(opfamilies, opfamily);
|
||||
else /* should not happen */
|
||||
else /* should not happen */
|
||||
ereport(ERROR,
|
||||
(errcode(ERRCODE_FEATURE_NOT_SUPPORTED),
|
||||
errmsg("could not determine interpretation of row comparison operator %s",
|
||||
|
@ -834,7 +834,7 @@ func_match_argtypes(int nargs,
|
||||
}
|
||||
|
||||
return ncandidates;
|
||||
} /* func_match_argtypes() */
|
||||
} /* func_match_argtypes() */
|
||||
|
||||
|
||||
/* func_select_candidate()
|
||||
@ -1245,7 +1245,7 @@ func_select_candidate(int nargs,
|
||||
}
|
||||
|
||||
return NULL; /* failed to select a best candidate */
|
||||
} /* func_select_candidate() */
|
||||
} /* func_select_candidate() */
|
||||
|
||||
|
||||
/* func_get_detail()
|
||||
|
@ -89,7 +89,7 @@ typedef BOOL (WINAPI * MINIDUMPWRITEDUMP) (HANDLE hProcess, DWORD dwPid, HANDLE
|
||||
* any PostgreSQL functions.
|
||||
*/
|
||||
static LONG WINAPI
|
||||
crashDumpHandler(struct _EXCEPTION_POINTERS * pExceptionInfo)
|
||||
crashDumpHandler(struct _EXCEPTION_POINTERS *pExceptionInfo)
|
||||
{
|
||||
/*
|
||||
* We only write crash dumps if the "crashdumps" directory within the
|
||||
|
@ -298,7 +298,7 @@ pgwin32_socket(int af, int type, int protocol)
|
||||
}
|
||||
|
||||
int
|
||||
pgwin32_bind(SOCKET s, struct sockaddr * addr, int addrlen)
|
||||
pgwin32_bind(SOCKET s, struct sockaddr *addr, int addrlen)
|
||||
{
|
||||
int res;
|
||||
|
||||
@ -320,7 +320,7 @@ pgwin32_listen(SOCKET s, int backlog)
|
||||
}
|
||||
|
||||
SOCKET
|
||||
pgwin32_accept(SOCKET s, struct sockaddr * addr, int *addrlen)
|
||||
pgwin32_accept(SOCKET s, struct sockaddr *addr, int *addrlen)
|
||||
{
|
||||
SOCKET rs;
|
||||
|
||||
@ -342,7 +342,7 @@ pgwin32_accept(SOCKET s, struct sockaddr * addr, int *addrlen)
|
||||
|
||||
/* No signal delivery during connect. */
|
||||
int
|
||||
pgwin32_connect(SOCKET s, const struct sockaddr * addr, int addrlen)
|
||||
pgwin32_connect(SOCKET s, const struct sockaddr *addr, int addrlen)
|
||||
{
|
||||
int r;
|
||||
|
||||
@ -500,7 +500,7 @@ pgwin32_send(SOCKET s, const void *buf, int len, int flags)
|
||||
* since it is not used in postgresql!
|
||||
*/
|
||||
int
|
||||
pgwin32_select(int nfds, fd_set *readfds, fd_set *writefds, fd_set *exceptfds, const struct timeval * timeout)
|
||||
pgwin32_select(int nfds, fd_set *readfds, fd_set *writefds, fd_set *exceptfds, const struct timeval *timeout)
|
||||
{
|
||||
WSAEVENT events[FD_SETSIZE * 2]; /* worst case is readfds totally
|
||||
* different from writefds, so
|
||||
|
@ -83,7 +83,7 @@ pg_timer_thread(LPVOID param)
|
||||
* to handle the timer setting and notification upon timeout.
|
||||
*/
|
||||
int
|
||||
setitimer(int which, const struct itimerval * value, struct itimerval * ovalue)
|
||||
setitimer(int which, const struct itimerval *value, struct itimerval *ovalue)
|
||||
{
|
||||
Assert(value != NULL);
|
||||
Assert(value->it_interval.tv_sec == 0 && value->it_interval.tv_usec == 0);
|
||||
|
@ -242,7 +242,7 @@ typedef enum
|
||||
AutoVacForkFailed, /* failed trying to start a worker */
|
||||
AutoVacRebalance, /* rebalance the cost limits */
|
||||
AutoVacNumSignals /* must be last */
|
||||
} AutoVacuumSignal;
|
||||
} AutoVacuumSignal;
|
||||
|
||||
/*-------------
|
||||
* The main autovacuum shmem struct. On shared memory we store this main
|
||||
@ -321,7 +321,7 @@ NON_EXEC_STATIC void AutoVacLauncherMain(int argc, char *argv[]) pg_attribute_no
|
||||
|
||||
static Oid do_start_worker(void);
|
||||
static void launcher_determine_sleep(bool canlaunch, bool recursing,
|
||||
struct timeval * nap);
|
||||
struct timeval *nap);
|
||||
static void launch_worker(TimestampTz now);
|
||||
static List *get_database_list(void);
|
||||
static void rebuild_database_list(Oid newdb);
|
||||
@ -849,7 +849,7 @@ shutdown:
|
||||
* cause a long sleep, which will be interrupted when a worker exits.
|
||||
*/
|
||||
static void
|
||||
launcher_determine_sleep(bool canlaunch, bool recursing, struct timeval * nap)
|
||||
launcher_determine_sleep(bool canlaunch, bool recursing, struct timeval *nap)
|
||||
{
|
||||
/*
|
||||
* We sleep until the next scheduled vacuum. We trust that when the
|
||||
|
@ -118,7 +118,7 @@ static const struct
|
||||
{
|
||||
const char *fn_name;
|
||||
bgworker_main_type fn_addr;
|
||||
} InternalBGWorkers[] =
|
||||
} InternalBGWorkers[] =
|
||||
|
||||
{
|
||||
{
|
||||
|
@ -443,7 +443,7 @@ pgstat_init(void)
|
||||
}
|
||||
|
||||
alen = sizeof(pgStatAddr);
|
||||
if (getsockname(pgStatSock, (struct sockaddr *) & pgStatAddr, &alen) < 0)
|
||||
if (getsockname(pgStatSock, (struct sockaddr *) &pgStatAddr, &alen) < 0)
|
||||
{
|
||||
ereport(LOG,
|
||||
(errcode_for_socket_access(),
|
||||
@ -459,7 +459,7 @@ pgstat_init(void)
|
||||
* provides a kernel-level check that only packets from this same
|
||||
* address will be received.
|
||||
*/
|
||||
if (connect(pgStatSock, (struct sockaddr *) & pgStatAddr, alen) < 0)
|
||||
if (connect(pgStatSock, (struct sockaddr *) &pgStatAddr, alen) < 0)
|
||||
{
|
||||
ereport(LOG,
|
||||
(errcode_for_socket_access(),
|
||||
@ -1107,7 +1107,7 @@ pgstat_vacuum_stat(void)
|
||||
if (msg.m_nentries >= PGSTAT_NUM_TABPURGE)
|
||||
{
|
||||
len = offsetof(PgStat_MsgTabpurge, m_tableid[0])
|
||||
+msg.m_nentries * sizeof(Oid);
|
||||
+ msg.m_nentries * sizeof(Oid);
|
||||
|
||||
pgstat_setheader(&msg.m_hdr, PGSTAT_MTYPE_TABPURGE);
|
||||
msg.m_databaseid = MyDatabaseId;
|
||||
@ -1123,7 +1123,7 @@ pgstat_vacuum_stat(void)
|
||||
if (msg.m_nentries > 0)
|
||||
{
|
||||
len = offsetof(PgStat_MsgTabpurge, m_tableid[0])
|
||||
+msg.m_nentries * sizeof(Oid);
|
||||
+ msg.m_nentries * sizeof(Oid);
|
||||
|
||||
pgstat_setheader(&msg.m_hdr, PGSTAT_MTYPE_TABPURGE);
|
||||
msg.m_databaseid = MyDatabaseId;
|
||||
@ -1167,7 +1167,7 @@ pgstat_vacuum_stat(void)
|
||||
if (f_msg.m_nentries >= PGSTAT_NUM_FUNCPURGE)
|
||||
{
|
||||
len = offsetof(PgStat_MsgFuncpurge, m_functionid[0])
|
||||
+f_msg.m_nentries * sizeof(Oid);
|
||||
+ f_msg.m_nentries * sizeof(Oid);
|
||||
|
||||
pgstat_send(&f_msg, len);
|
||||
|
||||
@ -1181,7 +1181,7 @@ pgstat_vacuum_stat(void)
|
||||
if (f_msg.m_nentries > 0)
|
||||
{
|
||||
len = offsetof(PgStat_MsgFuncpurge, m_functionid[0])
|
||||
+f_msg.m_nentries * sizeof(Oid);
|
||||
+ f_msg.m_nentries * sizeof(Oid);
|
||||
|
||||
pgstat_send(&f_msg, len);
|
||||
}
|
||||
@ -1284,7 +1284,7 @@ pgstat_drop_relation(Oid relid)
|
||||
msg.m_tableid[0] = relid;
|
||||
msg.m_nentries = 1;
|
||||
|
||||
len = offsetof(PgStat_MsgTabpurge, m_tableid[0]) +sizeof(Oid);
|
||||
len = offsetof(PgStat_MsgTabpurge, m_tableid[0]) + sizeof(Oid);
|
||||
|
||||
pgstat_setheader(&msg.m_hdr, PGSTAT_MTYPE_TABPURGE);
|
||||
msg.m_databaseid = MyDatabaseId;
|
||||
|
@ -340,6 +340,7 @@ static PMState pmState = PM_INIT;
|
||||
/* Start time of SIGKILL timeout during immediate shutdown or child crash */
|
||||
/* Zero means timeout is not running */
|
||||
static time_t AbortStartTime = 0;
|
||||
|
||||
/* Length of said timeout */
|
||||
#define SIGKILL_CHILDREN_AFTER_SECS 5
|
||||
|
||||
@ -1558,7 +1559,7 @@ checkDataDir(void)
|
||||
* cases are as shown in the code.
|
||||
*/
|
||||
static void
|
||||
DetermineSleepTime(struct timeval * timeout)
|
||||
DetermineSleepTime(struct timeval *timeout)
|
||||
{
|
||||
TimestampTz next_wakeup = 0;
|
||||
|
||||
@ -3541,16 +3542,16 @@ LogChildExit(int lev, const char *procname, int pid, int exitstatus)
|
||||
errhint("See C include file \"ntstatus.h\" for a description of the hexadecimal value."),
|
||||
activity ? errdetail("Failed process was running: %s", activity) : 0));
|
||||
#elif defined(HAVE_DECL_SYS_SIGLIST) && HAVE_DECL_SYS_SIGLIST
|
||||
ereport(lev,
|
||||
ereport(lev,
|
||||
|
||||
/*------
|
||||
translator: %s is a noun phrase describing a child process, such as
|
||||
"server process" */
|
||||
(errmsg("%s (PID %d) was terminated by signal %d: %s",
|
||||
procname, pid, WTERMSIG(exitstatus),
|
||||
WTERMSIG(exitstatus) < NSIG ?
|
||||
sys_siglist[WTERMSIG(exitstatus)] : "(unknown)"),
|
||||
activity ? errdetail("Failed process was running: %s", activity) : 0));
|
||||
/*------
|
||||
translator: %s is a noun phrase describing a child process, such as
|
||||
"server process" */
|
||||
(errmsg("%s (PID %d) was terminated by signal %d: %s",
|
||||
procname, pid, WTERMSIG(exitstatus),
|
||||
WTERMSIG(exitstatus) < NSIG ?
|
||||
sys_siglist[WTERMSIG(exitstatus)] : "(unknown)"),
|
||||
activity ? errdetail("Failed process was running: %s", activity) : 0));
|
||||
#else
|
||||
ereport(lev,
|
||||
|
||||
|
@ -797,7 +797,7 @@ process_pipe_input(char *logbuffer, int *bytes_in_logbuffer)
|
||||
int dest = LOG_DESTINATION_STDERR;
|
||||
|
||||
/* While we have enough for a header, process data... */
|
||||
while (count >= (int) (offsetof(PipeProtoHeader, data) +1))
|
||||
while (count >= (int) (offsetof(PipeProtoHeader, data) + 1))
|
||||
{
|
||||
PipeProtoHeader p;
|
||||
int chunklen;
|
||||
|
@ -46,8 +46,8 @@
|
||||
* initcm - set up new colormap
|
||||
*/
|
||||
static void
|
||||
initcm(struct vars * v,
|
||||
struct colormap * cm)
|
||||
initcm(struct vars *v,
|
||||
struct colormap *cm)
|
||||
{
|
||||
struct colordesc *cd;
|
||||
|
||||
@ -100,7 +100,7 @@ initcm(struct vars * v,
|
||||
* freecm - free dynamically-allocated things in a colormap
|
||||
*/
|
||||
static void
|
||||
freecm(struct colormap * cm)
|
||||
freecm(struct colormap *cm)
|
||||
{
|
||||
cm->magic = 0;
|
||||
if (cm->cd != cm->cdspace)
|
||||
@ -117,7 +117,7 @@ freecm(struct colormap * cm)
|
||||
* pg_reg_getcolor - slow case of GETCOLOR()
|
||||
*/
|
||||
color
|
||||
pg_reg_getcolor(struct colormap * cm, chr c)
|
||||
pg_reg_getcolor(struct colormap *cm, chr c)
|
||||
{
|
||||
int rownum,
|
||||
colnum,
|
||||
@ -169,7 +169,7 @@ pg_reg_getcolor(struct colormap * cm, chr c)
|
||||
* maxcolor - report largest color number in use
|
||||
*/
|
||||
static color
|
||||
maxcolor(struct colormap * cm)
|
||||
maxcolor(struct colormap *cm)
|
||||
{
|
||||
if (CISERR())
|
||||
return COLORLESS;
|
||||
@ -182,7 +182,7 @@ maxcolor(struct colormap * cm)
|
||||
* Beware: may relocate the colordescs.
|
||||
*/
|
||||
static color /* COLORLESS for error */
|
||||
newcolor(struct colormap * cm)
|
||||
newcolor(struct colormap *cm)
|
||||
{
|
||||
struct colordesc *cd;
|
||||
size_t n;
|
||||
@ -254,7 +254,7 @@ newcolor(struct colormap * cm)
|
||||
* freecolor - free a color (must have no arcs or subcolor)
|
||||
*/
|
||||
static void
|
||||
freecolor(struct colormap * cm,
|
||||
freecolor(struct colormap *cm,
|
||||
color co)
|
||||
{
|
||||
struct colordesc *cd = &cm->cd[co];
|
||||
@ -309,7 +309,7 @@ freecolor(struct colormap * cm,
|
||||
* pseudocolor - allocate a false color, to be managed by other means
|
||||
*/
|
||||
static color
|
||||
pseudocolor(struct colormap * cm)
|
||||
pseudocolor(struct colormap *cm)
|
||||
{
|
||||
color co;
|
||||
struct colordesc *cd;
|
||||
@ -333,7 +333,7 @@ pseudocolor(struct colormap * cm)
|
||||
* This works only for chrs that map into the low color map.
|
||||
*/
|
||||
static color
|
||||
subcolor(struct colormap * cm, chr c)
|
||||
subcolor(struct colormap *cm, chr c)
|
||||
{
|
||||
color co; /* current color of c */
|
||||
color sco; /* new subcolor */
|
||||
@ -363,7 +363,7 @@ subcolor(struct colormap * cm, chr c)
|
||||
* colormap, which do not necessarily correspond to exactly one chr code.
|
||||
*/
|
||||
static color
|
||||
subcolorhi(struct colormap * cm, color *pco)
|
||||
subcolorhi(struct colormap *cm, color *pco)
|
||||
{
|
||||
color co; /* current color of entry */
|
||||
color sco; /* new subcolor */
|
||||
@ -386,7 +386,7 @@ subcolorhi(struct colormap * cm, color *pco)
|
||||
* newsub - allocate a new subcolor (if necessary) for a color
|
||||
*/
|
||||
static color
|
||||
newsub(struct colormap * cm,
|
||||
newsub(struct colormap *cm,
|
||||
color co)
|
||||
{
|
||||
color sco; /* new subcolor */
|
||||
@ -417,7 +417,7 @@ newsub(struct colormap * cm,
|
||||
* Returns array index of new row. Note the array might move.
|
||||
*/
|
||||
static int
|
||||
newhicolorrow(struct colormap * cm,
|
||||
newhicolorrow(struct colormap *cm,
|
||||
int oldrow)
|
||||
{
|
||||
int newrow = cm->hiarrayrows;
|
||||
@ -466,7 +466,7 @@ newhicolorrow(struct colormap * cm,
|
||||
* Essentially, extends the 2-D array to the right with a copy of itself.
|
||||
*/
|
||||
static void
|
||||
newhicolorcols(struct colormap * cm)
|
||||
newhicolorcols(struct colormap *cm)
|
||||
{
|
||||
color *newarray;
|
||||
int r,
|
||||
@ -519,10 +519,10 @@ newhicolorcols(struct colormap * cm)
|
||||
* mechanized with the "lastsubcolor" state variable.
|
||||
*/
|
||||
static void
|
||||
subcolorcvec(struct vars * v,
|
||||
struct cvec * cv,
|
||||
struct state * lp,
|
||||
struct state * rp)
|
||||
subcolorcvec(struct vars *v,
|
||||
struct cvec *cv,
|
||||
struct state *lp,
|
||||
struct state *rp)
|
||||
{
|
||||
struct colormap *cm = v->cm;
|
||||
color lastsubcolor = COLORLESS;
|
||||
@ -621,10 +621,10 @@ subcolorcvec(struct vars * v,
|
||||
* to be able to handle both low and high chr codes.
|
||||
*/
|
||||
static void
|
||||
subcoloronechr(struct vars * v,
|
||||
subcoloronechr(struct vars *v,
|
||||
chr ch,
|
||||
struct state * lp,
|
||||
struct state * rp,
|
||||
struct state *lp,
|
||||
struct state *rp,
|
||||
color *lastsubcolor)
|
||||
{
|
||||
struct colormap *cm = v->cm;
|
||||
@ -744,11 +744,11 @@ subcoloronechr(struct vars * v,
|
||||
* subcoloronerange - do subcolorcvec's work for a high range
|
||||
*/
|
||||
static void
|
||||
subcoloronerange(struct vars * v,
|
||||
subcoloronerange(struct vars *v,
|
||||
chr from,
|
||||
chr to,
|
||||
struct state * lp,
|
||||
struct state * rp,
|
||||
struct state *lp,
|
||||
struct state *rp,
|
||||
color *lastsubcolor)
|
||||
{
|
||||
struct colormap *cm = v->cm;
|
||||
@ -882,10 +882,10 @@ subcoloronerange(struct vars * v,
|
||||
* subcoloronerow - do subcolorcvec's work for one new row in the high colormap
|
||||
*/
|
||||
static void
|
||||
subcoloronerow(struct vars * v,
|
||||
subcoloronerow(struct vars *v,
|
||||
int rownum,
|
||||
struct state * lp,
|
||||
struct state * rp,
|
||||
struct state *lp,
|
||||
struct state *rp,
|
||||
color *lastsubcolor)
|
||||
{
|
||||
struct colormap *cm = v->cm;
|
||||
@ -913,8 +913,8 @@ subcoloronerow(struct vars * v,
|
||||
* okcolors - promote subcolors to full colors
|
||||
*/
|
||||
static void
|
||||
okcolors(struct nfa * nfa,
|
||||
struct colormap * cm)
|
||||
okcolors(struct nfa *nfa,
|
||||
struct colormap *cm)
|
||||
{
|
||||
struct colordesc *cd;
|
||||
struct colordesc *end = CDEND(cm);
|
||||
@ -972,8 +972,8 @@ okcolors(struct nfa * nfa,
|
||||
* colorchain - add this arc to the color chain of its color
|
||||
*/
|
||||
static void
|
||||
colorchain(struct colormap * cm,
|
||||
struct arc * a)
|
||||
colorchain(struct colormap *cm,
|
||||
struct arc *a)
|
||||
{
|
||||
struct colordesc *cd = &cm->cd[a->co];
|
||||
|
||||
@ -988,8 +988,8 @@ colorchain(struct colormap * cm,
|
||||
* uncolorchain - delete this arc from the color chain of its color
|
||||
*/
|
||||
static void
|
||||
uncolorchain(struct colormap * cm,
|
||||
struct arc * a)
|
||||
uncolorchain(struct colormap *cm,
|
||||
struct arc *a)
|
||||
{
|
||||
struct colordesc *cd = &cm->cd[a->co];
|
||||
struct arc *aa = a->colorchainRev;
|
||||
@ -1014,12 +1014,12 @@ uncolorchain(struct colormap * cm,
|
||||
* rainbow - add arcs of all full colors (but one) between specified states
|
||||
*/
|
||||
static void
|
||||
rainbow(struct nfa * nfa,
|
||||
struct colormap * cm,
|
||||
rainbow(struct nfa *nfa,
|
||||
struct colormap *cm,
|
||||
int type,
|
||||
color but, /* COLORLESS if no exceptions */
|
||||
struct state * from,
|
||||
struct state * to)
|
||||
struct state *from,
|
||||
struct state *to)
|
||||
{
|
||||
struct colordesc *cd;
|
||||
struct colordesc *end = CDEND(cm);
|
||||
@ -1037,13 +1037,13 @@ rainbow(struct nfa * nfa,
|
||||
* The calling sequence ought to be reconciled with cloneouts().
|
||||
*/
|
||||
static void
|
||||
colorcomplement(struct nfa * nfa,
|
||||
struct colormap * cm,
|
||||
colorcomplement(struct nfa *nfa,
|
||||
struct colormap *cm,
|
||||
int type,
|
||||
struct state * of, /* complements of this guy's PLAIN
|
||||
struct state *of, /* complements of this guy's PLAIN
|
||||
* outarcs */
|
||||
struct state * from,
|
||||
struct state * to)
|
||||
struct state *from,
|
||||
struct state *to)
|
||||
{
|
||||
struct colordesc *cd;
|
||||
struct colordesc *end = CDEND(cm);
|
||||
@ -1063,7 +1063,7 @@ colorcomplement(struct nfa * nfa,
|
||||
* dumpcolors - debugging output
|
||||
*/
|
||||
static void
|
||||
dumpcolors(struct colormap * cm,
|
||||
dumpcolors(struct colormap *cm,
|
||||
FILE *f)
|
||||
{
|
||||
struct colordesc *cd;
|
||||
|
@ -63,7 +63,7 @@ newcvec(int nchrs, /* to hold this many chrs... */
|
||||
* Returns pointer as convenience.
|
||||
*/
|
||||
static struct cvec *
|
||||
clearcvec(struct cvec * cv)
|
||||
clearcvec(struct cvec *cv)
|
||||
{
|
||||
assert(cv != NULL);
|
||||
cv->nchrs = 0;
|
||||
@ -76,7 +76,7 @@ clearcvec(struct cvec * cv)
|
||||
* addchr - add a chr to a cvec
|
||||
*/
|
||||
static void
|
||||
addchr(struct cvec * cv, /* character vector */
|
||||
addchr(struct cvec *cv, /* character vector */
|
||||
chr c) /* character to add */
|
||||
{
|
||||
assert(cv->nchrs < cv->chrspace);
|
||||
@ -87,7 +87,7 @@ addchr(struct cvec * cv, /* character vector */
|
||||
* addrange - add a range to a cvec
|
||||
*/
|
||||
static void
|
||||
addrange(struct cvec * cv, /* character vector */
|
||||
addrange(struct cvec *cv, /* character vector */
|
||||
chr from, /* first character of range */
|
||||
chr to) /* last character of range */
|
||||
{
|
||||
@ -109,7 +109,7 @@ addrange(struct cvec * cv, /* character vector */
|
||||
* so transientness is a convenient behavior.
|
||||
*/
|
||||
static struct cvec *
|
||||
getcvec(struct vars * v, /* context */
|
||||
getcvec(struct vars *v, /* context */
|
||||
int nchrs, /* to hold this many chrs... */
|
||||
int nranges) /* ... and this many ranges */
|
||||
{
|
||||
@ -132,7 +132,7 @@ getcvec(struct vars * v, /* context */
|
||||
* freecvec - free a cvec
|
||||
*/
|
||||
static void
|
||||
freecvec(struct cvec * cv)
|
||||
freecvec(struct cvec *cv)
|
||||
{
|
||||
FREE(cv);
|
||||
}
|
||||
|
@ -67,7 +67,7 @@
|
||||
* lexstart - set up lexical stuff, scan leading options
|
||||
*/
|
||||
static void
|
||||
lexstart(struct vars * v)
|
||||
lexstart(struct vars *v)
|
||||
{
|
||||
prefixes(v); /* may turn on new type bits etc. */
|
||||
NOERR();
|
||||
@ -96,7 +96,7 @@ lexstart(struct vars * v)
|
||||
* prefixes - implement various special prefixes
|
||||
*/
|
||||
static void
|
||||
prefixes(struct vars * v)
|
||||
prefixes(struct vars *v)
|
||||
{
|
||||
/* literal string doesn't get any of this stuff */
|
||||
if (v->cflags & REG_QUOTE)
|
||||
@ -200,7 +200,7 @@ prefixes(struct vars * v)
|
||||
* implicit assumptions about what sorts of strings can be subroutines.
|
||||
*/
|
||||
static void
|
||||
lexnest(struct vars * v,
|
||||
lexnest(struct vars *v,
|
||||
const chr *beginp, /* start of interpolation */
|
||||
const chr *endp) /* one past end of interpolation */
|
||||
{
|
||||
@ -265,7 +265,7 @@ static const chr brbackw[] = { /* \w within brackets */
|
||||
* Possibly ought to inquire whether there is a "word" character class.
|
||||
*/
|
||||
static void
|
||||
lexword(struct vars * v)
|
||||
lexword(struct vars *v)
|
||||
{
|
||||
lexnest(v, backw, ENDOF(backw));
|
||||
}
|
||||
@ -274,7 +274,7 @@ lexword(struct vars * v)
|
||||
* next - get next token
|
||||
*/
|
||||
static int /* 1 normal, 0 failure */
|
||||
next(struct vars * v)
|
||||
next(struct vars *v)
|
||||
{
|
||||
chr c;
|
||||
|
||||
@ -384,7 +384,7 @@ next(struct vars * v)
|
||||
else
|
||||
FAILW(REG_BADBR);
|
||||
break;
|
||||
case CHR('\\'): /* BRE bound ends with \} */
|
||||
case CHR('\\'): /* BRE bound ends with \} */
|
||||
if (INCON(L_BBND) && NEXT1('}'))
|
||||
{
|
||||
v->now++;
|
||||
@ -476,7 +476,7 @@ next(struct vars * v)
|
||||
NOTE(REG_ULOCALE);
|
||||
RET(CCLASS);
|
||||
break;
|
||||
default: /* oops */
|
||||
default: /* oops */
|
||||
v->now--;
|
||||
RETV(PLAIN, c);
|
||||
break;
|
||||
@ -671,7 +671,7 @@ next(struct vars * v)
|
||||
case CHR('$'):
|
||||
RET('$');
|
||||
break;
|
||||
case CHR('\\'): /* mostly punt backslashes to code below */
|
||||
case CHR('\\'): /* mostly punt backslashes to code below */
|
||||
if (ATEOS())
|
||||
FAILW(REG_EESCAPE);
|
||||
break;
|
||||
@ -734,7 +734,7 @@ next(struct vars * v)
|
||||
* Note slightly nonstandard use of the CCLASS type code.
|
||||
*/
|
||||
static int /* not actually used, but convenient for RETV */
|
||||
lexescape(struct vars * v)
|
||||
lexescape(struct vars *v)
|
||||
{
|
||||
chr c;
|
||||
static const chr alert[] = {
|
||||
@ -904,7 +904,7 @@ lexescape(struct vars * v)
|
||||
* if maxlen is large enough to make that possible.
|
||||
*/
|
||||
static chr /* chr value; errors signalled via ERR */
|
||||
lexdigits(struct vars * v,
|
||||
lexdigits(struct vars *v,
|
||||
int base,
|
||||
int minlen,
|
||||
int maxlen)
|
||||
@ -985,7 +985,7 @@ lexdigits(struct vars * v,
|
||||
* context-dependency of some things.
|
||||
*/
|
||||
static int /* 1 normal, 0 failure */
|
||||
brenext(struct vars * v,
|
||||
brenext(struct vars *v,
|
||||
chr c)
|
||||
{
|
||||
switch (c)
|
||||
@ -1106,7 +1106,7 @@ brenext(struct vars * v,
|
||||
* skip - skip white space and comments in expanded form
|
||||
*/
|
||||
static void
|
||||
skip(struct vars * v)
|
||||
skip(struct vars *v)
|
||||
{
|
||||
const chr *start = v->now;
|
||||
|
||||
@ -1146,7 +1146,7 @@ newline(void)
|
||||
* use that it hardly matters.
|
||||
*/
|
||||
static chr
|
||||
chrnamed(struct vars * v,
|
||||
chrnamed(struct vars *v,
|
||||
const chr *startp, /* start of name */
|
||||
const chr *endp, /* just past end of name */
|
||||
chr lastresort) /* what to return if name lookup fails */
|
||||
|
@ -56,7 +56,7 @@ static const struct cname
|
||||
{
|
||||
const char *name;
|
||||
const char code;
|
||||
} cnames[] =
|
||||
} cnames[] =
|
||||
|
||||
{
|
||||
{
|
||||
@ -377,7 +377,7 @@ enum classes
|
||||
* element - map collating-element name to chr
|
||||
*/
|
||||
static chr
|
||||
element(struct vars * v, /* context */
|
||||
element(struct vars *v, /* context */
|
||||
const chr *startp, /* points to start of name */
|
||||
const chr *endp) /* points just past end of name */
|
||||
{
|
||||
@ -413,7 +413,7 @@ element(struct vars * v, /* context */
|
||||
* range - supply cvec for a range, including legality check
|
||||
*/
|
||||
static struct cvec *
|
||||
range(struct vars * v, /* context */
|
||||
range(struct vars *v, /* context */
|
||||
chr a, /* range start */
|
||||
chr b, /* range end, might equal a */
|
||||
int cases) /* case-independent? */
|
||||
@ -505,7 +505,7 @@ before(chr x, chr y)
|
||||
* Must include case counterparts on request.
|
||||
*/
|
||||
static struct cvec *
|
||||
eclass(struct vars * v, /* context */
|
||||
eclass(struct vars *v, /* context */
|
||||
chr c, /* Collating element representing the
|
||||
* equivalence class. */
|
||||
int cases) /* all cases? */
|
||||
@ -545,14 +545,14 @@ eclass(struct vars * v, /* context */
|
||||
* because callers are not supposed to explicitly free the result either way.
|
||||
*/
|
||||
static struct cvec *
|
||||
cclass(struct vars * v, /* context */
|
||||
cclass(struct vars *v, /* context */
|
||||
const chr *startp, /* where the name starts */
|
||||
const chr *endp, /* just past the end of the name */
|
||||
int cases) /* case-independent? */
|
||||
{
|
||||
size_t len;
|
||||
struct cvec *cv = NULL;
|
||||
const char *const * namePtr;
|
||||
const char *const *namePtr;
|
||||
int i,
|
||||
index;
|
||||
|
||||
@ -669,7 +669,7 @@ cclass(struct vars * v, /* context */
|
||||
* cclass_column_index - get appropriate high colormap column index for chr
|
||||
*/
|
||||
static int
|
||||
cclass_column_index(struct colormap * cm, chr c)
|
||||
cclass_column_index(struct colormap *cm, chr c)
|
||||
{
|
||||
int colnum = 0;
|
||||
|
||||
@ -713,7 +713,7 @@ cclass_column_index(struct colormap * cm, chr c)
|
||||
* messy cases are done via range().
|
||||
*/
|
||||
static struct cvec *
|
||||
allcases(struct vars * v, /* context */
|
||||
allcases(struct vars *v, /* context */
|
||||
chr c) /* character to get case equivs of */
|
||||
{
|
||||
struct cvec *cv;
|
||||
|
@ -44,9 +44,9 @@
|
||||
* newnfa - set up an NFA
|
||||
*/
|
||||
static struct nfa * /* the NFA, or NULL */
|
||||
newnfa(struct vars * v,
|
||||
struct colormap * cm,
|
||||
struct nfa * parent) /* NULL if primary NFA */
|
||||
newnfa(struct vars *v,
|
||||
struct colormap *cm,
|
||||
struct nfa *parent) /* NULL if primary NFA */
|
||||
{
|
||||
struct nfa *nfa;
|
||||
|
||||
@ -95,7 +95,7 @@ newnfa(struct vars * v,
|
||||
* freenfa - free an entire NFA
|
||||
*/
|
||||
static void
|
||||
freenfa(struct nfa * nfa)
|
||||
freenfa(struct nfa *nfa)
|
||||
{
|
||||
struct state *s;
|
||||
|
||||
@ -121,7 +121,7 @@ freenfa(struct nfa * nfa)
|
||||
* newstate - allocate an NFA state, with zero flag value
|
||||
*/
|
||||
static struct state * /* NULL on error */
|
||||
newstate(struct nfa * nfa)
|
||||
newstate(struct nfa *nfa)
|
||||
{
|
||||
struct state *s;
|
||||
|
||||
@ -185,7 +185,7 @@ newstate(struct nfa * nfa)
|
||||
* newfstate - allocate an NFA state with a specified flag value
|
||||
*/
|
||||
static struct state * /* NULL on error */
|
||||
newfstate(struct nfa * nfa, int flag)
|
||||
newfstate(struct nfa *nfa, int flag)
|
||||
{
|
||||
struct state *s;
|
||||
|
||||
@ -199,8 +199,8 @@ newfstate(struct nfa * nfa, int flag)
|
||||
* dropstate - delete a state's inarcs and outarcs and free it
|
||||
*/
|
||||
static void
|
||||
dropstate(struct nfa * nfa,
|
||||
struct state * s)
|
||||
dropstate(struct nfa *nfa,
|
||||
struct state *s)
|
||||
{
|
||||
struct arc *a;
|
||||
|
||||
@ -215,8 +215,8 @@ dropstate(struct nfa * nfa,
|
||||
* freestate - free a state, which has no in-arcs or out-arcs
|
||||
*/
|
||||
static void
|
||||
freestate(struct nfa * nfa,
|
||||
struct state * s)
|
||||
freestate(struct nfa *nfa,
|
||||
struct state *s)
|
||||
{
|
||||
assert(s != NULL);
|
||||
assert(s->nins == 0 && s->nouts == 0);
|
||||
@ -246,8 +246,8 @@ freestate(struct nfa * nfa,
|
||||
* destroystate - really get rid of an already-freed state
|
||||
*/
|
||||
static void
|
||||
destroystate(struct nfa * nfa,
|
||||
struct state * s)
|
||||
destroystate(struct nfa *nfa,
|
||||
struct state *s)
|
||||
{
|
||||
struct arcbatch *ab;
|
||||
struct arcbatch *abnext;
|
||||
@ -273,11 +273,11 @@ destroystate(struct nfa * nfa,
|
||||
* In general we never want duplicates.
|
||||
*/
|
||||
static void
|
||||
newarc(struct nfa * nfa,
|
||||
newarc(struct nfa *nfa,
|
||||
int t,
|
||||
color co,
|
||||
struct state * from,
|
||||
struct state * to)
|
||||
struct state *from,
|
||||
struct state *to)
|
||||
{
|
||||
struct arc *a;
|
||||
|
||||
@ -319,11 +319,11 @@ newarc(struct nfa * nfa,
|
||||
* identical arc (same type/color/from/to).
|
||||
*/
|
||||
static void
|
||||
createarc(struct nfa * nfa,
|
||||
createarc(struct nfa *nfa,
|
||||
int t,
|
||||
color co,
|
||||
struct state * from,
|
||||
struct state * to)
|
||||
struct state *from,
|
||||
struct state *to)
|
||||
{
|
||||
struct arc *a;
|
||||
|
||||
@ -365,8 +365,8 @@ createarc(struct nfa * nfa,
|
||||
* allocarc - allocate a new out-arc within a state
|
||||
*/
|
||||
static struct arc * /* NULL for failure */
|
||||
allocarc(struct nfa * nfa,
|
||||
struct state * s)
|
||||
allocarc(struct nfa *nfa,
|
||||
struct state *s)
|
||||
{
|
||||
struct arc *a;
|
||||
|
||||
@ -418,8 +418,8 @@ allocarc(struct nfa * nfa,
|
||||
* freearc - free an arc
|
||||
*/
|
||||
static void
|
||||
freearc(struct nfa * nfa,
|
||||
struct arc * victim)
|
||||
freearc(struct nfa *nfa,
|
||||
struct arc *victim)
|
||||
{
|
||||
struct state *from = victim->from;
|
||||
struct state *to = victim->to;
|
||||
@ -492,7 +492,7 @@ freearc(struct nfa * nfa,
|
||||
* a similar changearcsource function.
|
||||
*/
|
||||
static void
|
||||
changearctarget(struct arc * a, struct state * newto)
|
||||
changearctarget(struct arc *a, struct state *newto)
|
||||
{
|
||||
struct state *oldto = a->to;
|
||||
struct arc *predecessor;
|
||||
@ -534,7 +534,7 @@ changearctarget(struct arc * a, struct state * newto)
|
||||
* hasnonemptyout - Does state have a non-EMPTY out arc?
|
||||
*/
|
||||
static int
|
||||
hasnonemptyout(struct state * s)
|
||||
hasnonemptyout(struct state *s)
|
||||
{
|
||||
struct arc *a;
|
||||
|
||||
@ -551,7 +551,7 @@ hasnonemptyout(struct state * s)
|
||||
* If there is more than one such arc, the result is random.
|
||||
*/
|
||||
static struct arc *
|
||||
findarc(struct state * s,
|
||||
findarc(struct state *s,
|
||||
int type,
|
||||
color co)
|
||||
{
|
||||
@ -567,10 +567,10 @@ findarc(struct state * s,
|
||||
* cparc - allocate a new arc within an NFA, copying details from old one
|
||||
*/
|
||||
static void
|
||||
cparc(struct nfa * nfa,
|
||||
struct arc * oa,
|
||||
struct state * from,
|
||||
struct state * to)
|
||||
cparc(struct nfa *nfa,
|
||||
struct arc *oa,
|
||||
struct state *from,
|
||||
struct state *to)
|
||||
{
|
||||
newarc(nfa, oa->type, oa->co, from, to);
|
||||
}
|
||||
@ -579,8 +579,8 @@ cparc(struct nfa * nfa,
|
||||
* sortins - sort the in arcs of a state by from/color/type
|
||||
*/
|
||||
static void
|
||||
sortins(struct nfa * nfa,
|
||||
struct state * s)
|
||||
sortins(struct nfa *nfa,
|
||||
struct state *s)
|
||||
{
|
||||
struct arc **sortarray;
|
||||
struct arc *a;
|
||||
@ -623,8 +623,8 @@ sortins(struct nfa * nfa,
|
||||
static int
|
||||
sortins_cmp(const void *a, const void *b)
|
||||
{
|
||||
const struct arc *aa = *((const struct arc * const *) a);
|
||||
const struct arc *bb = *((const struct arc * const *) b);
|
||||
const struct arc *aa = *((const struct arc *const *) a);
|
||||
const struct arc *bb = *((const struct arc *const *) b);
|
||||
|
||||
/* we check the fields in the order they are most likely to be different */
|
||||
if (aa->from->no < bb->from->no)
|
||||
@ -646,8 +646,8 @@ sortins_cmp(const void *a, const void *b)
|
||||
* sortouts - sort the out arcs of a state by to/color/type
|
||||
*/
|
||||
static void
|
||||
sortouts(struct nfa * nfa,
|
||||
struct state * s)
|
||||
sortouts(struct nfa *nfa,
|
||||
struct state *s)
|
||||
{
|
||||
struct arc **sortarray;
|
||||
struct arc *a;
|
||||
@ -690,8 +690,8 @@ sortouts(struct nfa * nfa,
|
||||
static int
|
||||
sortouts_cmp(const void *a, const void *b)
|
||||
{
|
||||
const struct arc *aa = *((const struct arc * const *) a);
|
||||
const struct arc *bb = *((const struct arc * const *) b);
|
||||
const struct arc *aa = *((const struct arc *const *) a);
|
||||
const struct arc *bb = *((const struct arc *const *) b);
|
||||
|
||||
/* we check the fields in the order they are most likely to be different */
|
||||
if (aa->to->no < bb->to->no)
|
||||
@ -733,9 +733,9 @@ sortouts_cmp(const void *a, const void *b)
|
||||
* the arc lists, and then we can indeed just update the arcs in-place.
|
||||
*/
|
||||
static void
|
||||
moveins(struct nfa * nfa,
|
||||
struct state * oldState,
|
||||
struct state * newState)
|
||||
moveins(struct nfa *nfa,
|
||||
struct state *oldState,
|
||||
struct state *newState)
|
||||
{
|
||||
assert(oldState != newState);
|
||||
|
||||
@ -825,9 +825,9 @@ moveins(struct nfa * nfa,
|
||||
* copyins - copy in arcs of a state to another state
|
||||
*/
|
||||
static void
|
||||
copyins(struct nfa * nfa,
|
||||
struct state * oldState,
|
||||
struct state * newState)
|
||||
copyins(struct nfa *nfa,
|
||||
struct state *oldState,
|
||||
struct state *newState)
|
||||
{
|
||||
assert(oldState != newState);
|
||||
|
||||
@ -907,9 +907,9 @@ copyins(struct nfa * nfa,
|
||||
* and are not guaranteed unique. It's okay to clobber the array contents.
|
||||
*/
|
||||
static void
|
||||
mergeins(struct nfa * nfa,
|
||||
struct state * s,
|
||||
struct arc ** arcarray,
|
||||
mergeins(struct nfa *nfa,
|
||||
struct state *s,
|
||||
struct arc **arcarray,
|
||||
int arccount)
|
||||
{
|
||||
struct arc *na;
|
||||
@ -1004,9 +1004,9 @@ mergeins(struct nfa * nfa,
|
||||
* moveouts - move all out arcs of a state to another state
|
||||
*/
|
||||
static void
|
||||
moveouts(struct nfa * nfa,
|
||||
struct state * oldState,
|
||||
struct state * newState)
|
||||
moveouts(struct nfa *nfa,
|
||||
struct state *oldState,
|
||||
struct state *newState)
|
||||
{
|
||||
assert(oldState != newState);
|
||||
|
||||
@ -1093,9 +1093,9 @@ moveouts(struct nfa * nfa,
|
||||
* copyouts - copy out arcs of a state to another state
|
||||
*/
|
||||
static void
|
||||
copyouts(struct nfa * nfa,
|
||||
struct state * oldState,
|
||||
struct state * newState)
|
||||
copyouts(struct nfa *nfa,
|
||||
struct state *oldState,
|
||||
struct state *newState)
|
||||
{
|
||||
assert(oldState != newState);
|
||||
|
||||
@ -1172,10 +1172,10 @@ copyouts(struct nfa * nfa,
|
||||
* cloneouts - copy out arcs of a state to another state pair, modifying type
|
||||
*/
|
||||
static void
|
||||
cloneouts(struct nfa * nfa,
|
||||
struct state * old,
|
||||
struct state * from,
|
||||
struct state * to,
|
||||
cloneouts(struct nfa *nfa,
|
||||
struct state *old,
|
||||
struct state *from,
|
||||
struct state *to,
|
||||
int type)
|
||||
{
|
||||
struct arc *a;
|
||||
@ -1193,9 +1193,9 @@ cloneouts(struct nfa * nfa,
|
||||
* states using their tmp pointer.
|
||||
*/
|
||||
static void
|
||||
delsub(struct nfa * nfa,
|
||||
struct state * lp, /* the sub-NFA goes from here... */
|
||||
struct state * rp) /* ...to here, *not* inclusive */
|
||||
delsub(struct nfa *nfa,
|
||||
struct state *lp, /* the sub-NFA goes from here... */
|
||||
struct state *rp) /* ...to here, *not* inclusive */
|
||||
{
|
||||
assert(lp != rp);
|
||||
|
||||
@ -1216,9 +1216,9 @@ delsub(struct nfa * nfa,
|
||||
* This routine's basic job is to destroy all out-arcs of the state.
|
||||
*/
|
||||
static void
|
||||
deltraverse(struct nfa * nfa,
|
||||
struct state * leftend,
|
||||
struct state * s)
|
||||
deltraverse(struct nfa *nfa,
|
||||
struct state *leftend,
|
||||
struct state *s)
|
||||
{
|
||||
struct arc *a;
|
||||
struct state *to;
|
||||
@ -1267,11 +1267,11 @@ deltraverse(struct nfa * nfa,
|
||||
* it's a state pointer, didn't you? :-))
|
||||
*/
|
||||
static void
|
||||
dupnfa(struct nfa * nfa,
|
||||
struct state * start, /* duplicate of subNFA starting here */
|
||||
struct state * stop, /* and stopping here */
|
||||
struct state * from, /* stringing duplicate from here */
|
||||
struct state * to) /* to here */
|
||||
dupnfa(struct nfa *nfa,
|
||||
struct state *start, /* duplicate of subNFA starting here */
|
||||
struct state *stop, /* and stopping here */
|
||||
struct state *from, /* stringing duplicate from here */
|
||||
struct state *to) /* to here */
|
||||
{
|
||||
if (start == stop)
|
||||
{
|
||||
@ -1291,9 +1291,9 @@ dupnfa(struct nfa * nfa,
|
||||
* duptraverse - recursive heart of dupnfa
|
||||
*/
|
||||
static void
|
||||
duptraverse(struct nfa * nfa,
|
||||
struct state * s,
|
||||
struct state * stmp) /* s's duplicate, or NULL */
|
||||
duptraverse(struct nfa *nfa,
|
||||
struct state *s,
|
||||
struct state *stmp) /* s's duplicate, or NULL */
|
||||
{
|
||||
struct arc *a;
|
||||
|
||||
@ -1328,8 +1328,8 @@ duptraverse(struct nfa * nfa,
|
||||
* cleartraverse - recursive cleanup for algorithms that leave tmp ptrs set
|
||||
*/
|
||||
static void
|
||||
cleartraverse(struct nfa * nfa,
|
||||
struct state * s)
|
||||
cleartraverse(struct nfa *nfa,
|
||||
struct state *s)
|
||||
{
|
||||
struct arc *a;
|
||||
|
||||
@ -1365,7 +1365,7 @@ cleartraverse(struct nfa * nfa,
|
||||
* that implementation detail not create user-visible performance differences.
|
||||
*/
|
||||
static struct state *
|
||||
single_color_transition(struct state * s1, struct state * s2)
|
||||
single_color_transition(struct state *s1, struct state *s2)
|
||||
{
|
||||
struct arc *a;
|
||||
|
||||
@ -1395,7 +1395,7 @@ single_color_transition(struct state * s1, struct state * s2)
|
||||
* specialcolors - fill in special colors for an NFA
|
||||
*/
|
||||
static void
|
||||
specialcolors(struct nfa * nfa)
|
||||
specialcolors(struct nfa *nfa)
|
||||
{
|
||||
/* false colors for BOS, BOL, EOS, EOL */
|
||||
if (nfa->parent == NULL)
|
||||
@ -1434,7 +1434,7 @@ specialcolors(struct nfa * nfa)
|
||||
* without making any progress in the input string.
|
||||
*/
|
||||
static long /* re_info bits */
|
||||
optimize(struct nfa * nfa,
|
||||
optimize(struct nfa *nfa,
|
||||
FILE *f) /* for debug output; NULL none */
|
||||
{
|
||||
#ifdef REG_DEBUG
|
||||
@ -1474,7 +1474,7 @@ optimize(struct nfa * nfa,
|
||||
* pullback - pull back constraints backward to eliminate them
|
||||
*/
|
||||
static void
|
||||
pullback(struct nfa * nfa,
|
||||
pullback(struct nfa *nfa,
|
||||
FILE *f) /* for debug output; NULL none */
|
||||
{
|
||||
struct state *s;
|
||||
@ -1554,9 +1554,9 @@ pullback(struct nfa * nfa,
|
||||
* through their tmp fields).
|
||||
*/
|
||||
static int
|
||||
pull(struct nfa * nfa,
|
||||
struct arc * con,
|
||||
struct state ** intermediates)
|
||||
pull(struct nfa *nfa,
|
||||
struct arc *con,
|
||||
struct state **intermediates)
|
||||
{
|
||||
struct state *from = con->from;
|
||||
struct state *to = con->to;
|
||||
@ -1641,7 +1641,7 @@ pull(struct nfa * nfa,
|
||||
* pushfwd - push forward constraints forward to eliminate them
|
||||
*/
|
||||
static void
|
||||
pushfwd(struct nfa * nfa,
|
||||
pushfwd(struct nfa *nfa,
|
||||
FILE *f) /* for debug output; NULL none */
|
||||
{
|
||||
struct state *s;
|
||||
@ -1721,9 +1721,9 @@ pushfwd(struct nfa * nfa,
|
||||
* through their tmp fields).
|
||||
*/
|
||||
static int
|
||||
push(struct nfa * nfa,
|
||||
struct arc * con,
|
||||
struct state ** intermediates)
|
||||
push(struct nfa *nfa,
|
||||
struct arc *con,
|
||||
struct state **intermediates)
|
||||
{
|
||||
struct state *from = con->from;
|
||||
struct state *to = con->to;
|
||||
@ -1812,8 +1812,8 @@ push(struct nfa * nfa,
|
||||
* #def COMPATIBLE 3 // compatible but not satisfied yet
|
||||
*/
|
||||
static int
|
||||
combine(struct arc * con,
|
||||
struct arc * a)
|
||||
combine(struct arc *con,
|
||||
struct arc *a)
|
||||
{
|
||||
#define CA(ct,at) (((ct)<<CHAR_BIT) | (at))
|
||||
|
||||
@ -1866,7 +1866,7 @@ combine(struct arc * con,
|
||||
* fixempties - get rid of EMPTY arcs
|
||||
*/
|
||||
static void
|
||||
fixempties(struct nfa * nfa,
|
||||
fixempties(struct nfa *nfa,
|
||||
FILE *f) /* for debug output; NULL none */
|
||||
{
|
||||
struct state *s;
|
||||
@ -2093,10 +2093,10 @@ fixempties(struct nfa * nfa,
|
||||
* the NFA ... but that could still be enough to cause trouble.
|
||||
*/
|
||||
static struct state *
|
||||
emptyreachable(struct nfa * nfa,
|
||||
struct state * s,
|
||||
struct state * lastfound,
|
||||
struct arc ** inarcsorig)
|
||||
emptyreachable(struct nfa *nfa,
|
||||
struct state *s,
|
||||
struct state *lastfound,
|
||||
struct arc **inarcsorig)
|
||||
{
|
||||
struct arc *a;
|
||||
|
||||
@ -2121,7 +2121,7 @@ emptyreachable(struct nfa * nfa,
|
||||
* isconstraintarc - detect whether an arc is of a constraint type
|
||||
*/
|
||||
static inline int
|
||||
isconstraintarc(struct arc * a)
|
||||
isconstraintarc(struct arc *a)
|
||||
{
|
||||
switch (a->type)
|
||||
{
|
||||
@ -2139,7 +2139,7 @@ isconstraintarc(struct arc * a)
|
||||
* hasconstraintout - does state have a constraint out arc?
|
||||
*/
|
||||
static int
|
||||
hasconstraintout(struct state * s)
|
||||
hasconstraintout(struct state *s)
|
||||
{
|
||||
struct arc *a;
|
||||
|
||||
@ -2160,7 +2160,7 @@ hasconstraintout(struct state * s)
|
||||
* of such loops before doing that.
|
||||
*/
|
||||
static void
|
||||
fixconstraintloops(struct nfa * nfa,
|
||||
fixconstraintloops(struct nfa *nfa,
|
||||
FILE *f) /* for debug output; NULL none */
|
||||
{
|
||||
struct state *s;
|
||||
@ -2259,7 +2259,7 @@ restart:
|
||||
* of the NFA ... but that could still be enough to cause trouble.
|
||||
*/
|
||||
static int
|
||||
findconstraintloop(struct nfa * nfa, struct state * s)
|
||||
findconstraintloop(struct nfa *nfa, struct state *s)
|
||||
{
|
||||
struct arc *a;
|
||||
|
||||
@ -2348,7 +2348,7 @@ findconstraintloop(struct nfa * nfa, struct state * s)
|
||||
* break the loop just by removing those loop arcs, with no new states added.
|
||||
*/
|
||||
static void
|
||||
breakconstraintloop(struct nfa * nfa, struct state * sinitial)
|
||||
breakconstraintloop(struct nfa *nfa, struct state *sinitial)
|
||||
{
|
||||
struct state *s;
|
||||
struct state *shead;
|
||||
@ -2494,11 +2494,11 @@ breakconstraintloop(struct nfa * nfa, struct state * sinitial)
|
||||
* successor states.
|
||||
*/
|
||||
static void
|
||||
clonesuccessorstates(struct nfa * nfa,
|
||||
struct state * ssource,
|
||||
struct state * sclone,
|
||||
struct state * spredecessor,
|
||||
struct arc * refarc,
|
||||
clonesuccessorstates(struct nfa *nfa,
|
||||
struct state *ssource,
|
||||
struct state *sclone,
|
||||
struct state *spredecessor,
|
||||
struct arc *refarc,
|
||||
char *curdonemap,
|
||||
char *outerdonemap,
|
||||
int nstates)
|
||||
@ -2726,7 +2726,7 @@ clonesuccessorstates(struct nfa * nfa,
|
||||
* cleanup - clean up NFA after optimizations
|
||||
*/
|
||||
static void
|
||||
cleanup(struct nfa * nfa)
|
||||
cleanup(struct nfa *nfa)
|
||||
{
|
||||
struct state *s;
|
||||
struct state *nexts;
|
||||
@ -2761,10 +2761,10 @@ cleanup(struct nfa * nfa)
|
||||
* markreachable - recursive marking of reachable states
|
||||
*/
|
||||
static void
|
||||
markreachable(struct nfa * nfa,
|
||||
struct state * s,
|
||||
struct state * okay, /* consider only states with this mark */
|
||||
struct state * mark) /* the value to mark with */
|
||||
markreachable(struct nfa *nfa,
|
||||
struct state *s,
|
||||
struct state *okay, /* consider only states with this mark */
|
||||
struct state *mark) /* the value to mark with */
|
||||
{
|
||||
struct arc *a;
|
||||
|
||||
@ -2787,10 +2787,10 @@ markreachable(struct nfa * nfa,
|
||||
* markcanreach - recursive marking of states which can reach here
|
||||
*/
|
||||
static void
|
||||
markcanreach(struct nfa * nfa,
|
||||
struct state * s,
|
||||
struct state * okay, /* consider only states with this mark */
|
||||
struct state * mark) /* the value to mark with */
|
||||
markcanreach(struct nfa *nfa,
|
||||
struct state *s,
|
||||
struct state *okay, /* consider only states with this mark */
|
||||
struct state *mark) /* the value to mark with */
|
||||
{
|
||||
struct arc *a;
|
||||
|
||||
@ -2813,7 +2813,7 @@ markcanreach(struct nfa * nfa,
|
||||
* analyze - ascertain potentially-useful facts about an optimized NFA
|
||||
*/
|
||||
static long /* re_info bits to be ORed in */
|
||||
analyze(struct nfa * nfa)
|
||||
analyze(struct nfa *nfa)
|
||||
{
|
||||
struct arc *a;
|
||||
struct arc *aa;
|
||||
@ -2834,8 +2834,8 @@ analyze(struct nfa * nfa)
|
||||
* compact - construct the compact representation of an NFA
|
||||
*/
|
||||
static void
|
||||
compact(struct nfa * nfa,
|
||||
struct cnfa * cnfa)
|
||||
compact(struct nfa *nfa,
|
||||
struct cnfa *cnfa)
|
||||
{
|
||||
struct state *s;
|
||||
struct arc *a;
|
||||
@ -2922,7 +2922,7 @@ compact(struct nfa * nfa,
|
||||
* carcsort - sort compacted-NFA arcs by color
|
||||
*/
|
||||
static void
|
||||
carcsort(struct carc * first, size_t n)
|
||||
carcsort(struct carc *first, size_t n)
|
||||
{
|
||||
if (n > 1)
|
||||
qsort(first, n, sizeof(struct carc), carc_cmp);
|
||||
@ -2949,7 +2949,7 @@ carc_cmp(const void *a, const void *b)
|
||||
* freecnfa - free a compacted NFA
|
||||
*/
|
||||
static void
|
||||
freecnfa(struct cnfa * cnfa)
|
||||
freecnfa(struct cnfa *cnfa)
|
||||
{
|
||||
assert(cnfa->nstates != 0); /* not empty already */
|
||||
cnfa->nstates = 0;
|
||||
@ -2962,7 +2962,7 @@ freecnfa(struct cnfa * cnfa)
|
||||
* dumpnfa - dump an NFA in human-readable form
|
||||
*/
|
||||
static void
|
||||
dumpnfa(struct nfa * nfa,
|
||||
dumpnfa(struct nfa *nfa,
|
||||
FILE *f)
|
||||
{
|
||||
#ifdef REG_DEBUG
|
||||
@ -2999,7 +2999,7 @@ dumpnfa(struct nfa * nfa,
|
||||
* dumpstate - dump an NFA state in human-readable form
|
||||
*/
|
||||
static void
|
||||
dumpstate(struct state * s,
|
||||
dumpstate(struct state *s,
|
||||
FILE *f)
|
||||
{
|
||||
struct arc *a;
|
||||
@ -3025,7 +3025,7 @@ dumpstate(struct state * s,
|
||||
* dumparcs - dump out-arcs in human-readable form
|
||||
*/
|
||||
static void
|
||||
dumparcs(struct state * s,
|
||||
dumparcs(struct state *s,
|
||||
FILE *f)
|
||||
{
|
||||
int pos;
|
||||
@ -3057,8 +3057,8 @@ dumparcs(struct state * s,
|
||||
* dumparc - dump one outarc in readable form, including prefixing tab
|
||||
*/
|
||||
static void
|
||||
dumparc(struct arc * a,
|
||||
struct state * s,
|
||||
dumparc(struct arc *a,
|
||||
struct state *s,
|
||||
FILE *f)
|
||||
{
|
||||
struct arc *aa;
|
||||
@ -3121,7 +3121,7 @@ dumparc(struct arc * a,
|
||||
*/
|
||||
#ifdef REG_DEBUG
|
||||
static void
|
||||
dumpcnfa(struct cnfa * cnfa,
|
||||
dumpcnfa(struct cnfa *cnfa,
|
||||
FILE *f)
|
||||
{
|
||||
int st;
|
||||
@ -3151,7 +3151,7 @@ dumpcnfa(struct cnfa * cnfa,
|
||||
*/
|
||||
static void
|
||||
dumpcstate(int st,
|
||||
struct cnfa * cnfa,
|
||||
struct cnfa *cnfa,
|
||||
FILE *f)
|
||||
{
|
||||
struct carc *ca;
|
||||
|
@ -491,14 +491,14 @@ pg_regcomp(regex_t *re,
|
||||
* moresubs - enlarge subRE vector
|
||||
*/
|
||||
static void
|
||||
moresubs(struct vars * v,
|
||||
moresubs(struct vars *v,
|
||||
int wanted) /* want enough room for this one */
|
||||
{
|
||||
struct subre **p;
|
||||
size_t n;
|
||||
|
||||
assert(wanted > 0 && (size_t) wanted >= v->nsubs);
|
||||
n = (size_t) wanted *3 / 2 + 1;
|
||||
n = (size_t) wanted * 3 / 2 + 1;
|
||||
|
||||
if (v->subs == v->sub10)
|
||||
{
|
||||
@ -528,7 +528,7 @@ moresubs(struct vars * v,
|
||||
* (if any), to make error-handling code terser.
|
||||
*/
|
||||
static int
|
||||
freev(struct vars * v,
|
||||
freev(struct vars *v,
|
||||
int err)
|
||||
{
|
||||
if (v->re != NULL)
|
||||
@ -557,8 +557,8 @@ freev(struct vars * v,
|
||||
* NFA must have been optimize()d already.
|
||||
*/
|
||||
static void
|
||||
makesearch(struct vars * v,
|
||||
struct nfa * nfa)
|
||||
makesearch(struct vars *v,
|
||||
struct nfa *nfa)
|
||||
{
|
||||
struct arc *a;
|
||||
struct arc *b;
|
||||
@ -646,11 +646,11 @@ makesearch(struct vars * v,
|
||||
* of a chain of '|' subres.
|
||||
*/
|
||||
static struct subre *
|
||||
parse(struct vars * v,
|
||||
parse(struct vars *v,
|
||||
int stopper, /* EOS or ')' */
|
||||
int type, /* LACON (lookaround subRE) or PLAIN */
|
||||
struct state * init, /* initial state */
|
||||
struct state * final) /* final state */
|
||||
struct state *init, /* initial state */
|
||||
struct state *final) /* final state */
|
||||
{
|
||||
struct state *left; /* scaffolding for branch */
|
||||
struct state *right;
|
||||
@ -725,11 +725,11 @@ parse(struct vars * v,
|
||||
* ',' nodes introduced only when necessary due to substructure.
|
||||
*/
|
||||
static struct subre *
|
||||
parsebranch(struct vars * v,
|
||||
parsebranch(struct vars *v,
|
||||
int stopper, /* EOS or ')' */
|
||||
int type, /* LACON (lookaround subRE) or PLAIN */
|
||||
struct state * left, /* leftmost state */
|
||||
struct state * right, /* rightmost state */
|
||||
struct state *left, /* leftmost state */
|
||||
struct state *right, /* rightmost state */
|
||||
int partial) /* is this only part of a branch? */
|
||||
{
|
||||
struct state *lp; /* left end of current construct */
|
||||
@ -774,12 +774,12 @@ parsebranch(struct vars * v,
|
||||
* of the branch, making this function's name somewhat inaccurate.
|
||||
*/
|
||||
static void
|
||||
parseqatom(struct vars * v,
|
||||
parseqatom(struct vars *v,
|
||||
int stopper, /* EOS or ')' */
|
||||
int type, /* LACON (lookaround subRE) or PLAIN */
|
||||
struct state * lp, /* left state to hang it on */
|
||||
struct state * rp, /* right state to hang it on */
|
||||
struct subre * top) /* subtree top */
|
||||
struct state *lp, /* left state to hang it on */
|
||||
struct state *rp, /* right state to hang it on */
|
||||
struct subre *top) /* subtree top */
|
||||
{
|
||||
struct state *s; /* temporaries for new states */
|
||||
struct state *s2;
|
||||
@ -1222,10 +1222,10 @@ parseqatom(struct vars * v,
|
||||
* nonword - generate arcs for non-word-character ahead or behind
|
||||
*/
|
||||
static void
|
||||
nonword(struct vars * v,
|
||||
nonword(struct vars *v,
|
||||
int dir, /* AHEAD or BEHIND */
|
||||
struct state * lp,
|
||||
struct state * rp)
|
||||
struct state *lp,
|
||||
struct state *rp)
|
||||
{
|
||||
int anchor = (dir == AHEAD) ? '$' : '^';
|
||||
|
||||
@ -1240,10 +1240,10 @@ nonword(struct vars * v,
|
||||
* word - generate arcs for word character ahead or behind
|
||||
*/
|
||||
static void
|
||||
word(struct vars * v,
|
||||
word(struct vars *v,
|
||||
int dir, /* AHEAD or BEHIND */
|
||||
struct state * lp,
|
||||
struct state * rp)
|
||||
struct state *lp,
|
||||
struct state *rp)
|
||||
{
|
||||
assert(dir == AHEAD || dir == BEHIND);
|
||||
cloneouts(v->nfa, v->wordchrs, lp, rp, dir);
|
||||
@ -1254,7 +1254,7 @@ word(struct vars * v,
|
||||
* scannum - scan a number
|
||||
*/
|
||||
static int /* value, <= DUPMAX */
|
||||
scannum(struct vars * v)
|
||||
scannum(struct vars *v)
|
||||
{
|
||||
int n = 0;
|
||||
|
||||
@ -1285,9 +1285,9 @@ scannum(struct vars * v)
|
||||
* code in parse(), and when this is called, it doesn't matter any more.
|
||||
*/
|
||||
static void
|
||||
repeat(struct vars * v,
|
||||
struct state * lp,
|
||||
struct state * rp,
|
||||
repeat(struct vars *v,
|
||||
struct state *lp,
|
||||
struct state *rp,
|
||||
int m,
|
||||
int n)
|
||||
{
|
||||
@ -1371,9 +1371,9 @@ repeat(struct vars * v,
|
||||
* Also called from cbracket for complemented bracket expressions.
|
||||
*/
|
||||
static void
|
||||
bracket(struct vars * v,
|
||||
struct state * lp,
|
||||
struct state * rp)
|
||||
bracket(struct vars *v,
|
||||
struct state *lp,
|
||||
struct state *rp)
|
||||
{
|
||||
assert(SEE('['));
|
||||
NEXT();
|
||||
@ -1390,9 +1390,9 @@ bracket(struct vars * v,
|
||||
* arcs as the b.e. is seen... but that gets messy.
|
||||
*/
|
||||
static void
|
||||
cbracket(struct vars * v,
|
||||
struct state * lp,
|
||||
struct state * rp)
|
||||
cbracket(struct vars *v,
|
||||
struct state *lp,
|
||||
struct state *rp)
|
||||
{
|
||||
struct state *left = newstate(v->nfa);
|
||||
struct state *right = newstate(v->nfa);
|
||||
@ -1420,9 +1420,9 @@ cbracket(struct vars * v,
|
||||
* brackpart - handle one item (or range) within a bracket expression
|
||||
*/
|
||||
static void
|
||||
brackpart(struct vars * v,
|
||||
struct state * lp,
|
||||
struct state * rp)
|
||||
brackpart(struct vars *v,
|
||||
struct state *lp,
|
||||
struct state *rp)
|
||||
{
|
||||
chr startc;
|
||||
chr endc;
|
||||
@ -1533,7 +1533,7 @@ brackpart(struct vars * v,
|
||||
* to look past the final bracket of the [. etc.
|
||||
*/
|
||||
static const chr * /* just after end of sequence */
|
||||
scanplain(struct vars * v)
|
||||
scanplain(struct vars *v)
|
||||
{
|
||||
const chr *endp;
|
||||
|
||||
@ -1558,10 +1558,10 @@ scanplain(struct vars * v)
|
||||
* This is mostly a shortcut for efficient handling of the common case.
|
||||
*/
|
||||
static void
|
||||
onechr(struct vars * v,
|
||||
onechr(struct vars *v,
|
||||
chr c,
|
||||
struct state * lp,
|
||||
struct state * rp)
|
||||
struct state *lp,
|
||||
struct state *rp)
|
||||
{
|
||||
if (!(v->cflags & REG_ICASE))
|
||||
{
|
||||
@ -1585,7 +1585,7 @@ onechr(struct vars * v,
|
||||
* should be cleaned up to reduce dependencies on input scanning.
|
||||
*/
|
||||
static void
|
||||
wordchrs(struct vars * v)
|
||||
wordchrs(struct vars *v)
|
||||
{
|
||||
struct state *left;
|
||||
struct state *right;
|
||||
@ -1617,12 +1617,12 @@ wordchrs(struct vars * v)
|
||||
* can be optimized.
|
||||
*/
|
||||
static void
|
||||
processlacon(struct vars * v,
|
||||
struct state * begin, /* start of parsed LACON sub-re */
|
||||
struct state * end, /* end of parsed LACON sub-re */
|
||||
processlacon(struct vars *v,
|
||||
struct state *begin, /* start of parsed LACON sub-re */
|
||||
struct state *end, /* end of parsed LACON sub-re */
|
||||
int latype,
|
||||
struct state * lp, /* left state to hang it on */
|
||||
struct state * rp) /* right state to hang it on */
|
||||
struct state *lp, /* left state to hang it on */
|
||||
struct state *rp) /* right state to hang it on */
|
||||
{
|
||||
struct state *s1;
|
||||
int n;
|
||||
@ -1683,11 +1683,11 @@ processlacon(struct vars * v,
|
||||
* subre - allocate a subre
|
||||
*/
|
||||
static struct subre *
|
||||
subre(struct vars * v,
|
||||
subre(struct vars *v,
|
||||
int op,
|
||||
int flags,
|
||||
struct state * begin,
|
||||
struct state * end)
|
||||
struct state *begin,
|
||||
struct state *end)
|
||||
{
|
||||
struct subre *ret = v->treefree;
|
||||
|
||||
@ -1735,8 +1735,8 @@ subre(struct vars * v,
|
||||
* freesubre - free a subRE subtree
|
||||
*/
|
||||
static void
|
||||
freesubre(struct vars * v, /* might be NULL */
|
||||
struct subre * sr)
|
||||
freesubre(struct vars *v, /* might be NULL */
|
||||
struct subre *sr)
|
||||
{
|
||||
if (sr == NULL)
|
||||
return;
|
||||
@ -1753,8 +1753,8 @@ freesubre(struct vars * v, /* might be NULL */
|
||||
* freesrnode - free one node in a subRE subtree
|
||||
*/
|
||||
static void
|
||||
freesrnode(struct vars * v, /* might be NULL */
|
||||
struct subre * sr)
|
||||
freesrnode(struct vars *v, /* might be NULL */
|
||||
struct subre *sr)
|
||||
{
|
||||
if (sr == NULL)
|
||||
return;
|
||||
@ -1777,8 +1777,8 @@ freesrnode(struct vars * v, /* might be NULL */
|
||||
* optst - optimize a subRE subtree
|
||||
*/
|
||||
static void
|
||||
optst(struct vars * v,
|
||||
struct subre * t)
|
||||
optst(struct vars *v,
|
||||
struct subre *t)
|
||||
{
|
||||
/*
|
||||
* DGP (2007-11-13): I assume it was the programmer's intent to eventually
|
||||
@ -1793,7 +1793,7 @@ optst(struct vars * v,
|
||||
* numst - number tree nodes (assigning "id" indexes)
|
||||
*/
|
||||
static int /* next number */
|
||||
numst(struct subre * t,
|
||||
numst(struct subre *t,
|
||||
int start) /* starting point for subtree numbers */
|
||||
{
|
||||
int i;
|
||||
@ -1827,7 +1827,7 @@ numst(struct subre * t,
|
||||
* in or between these two functions.
|
||||
*/
|
||||
static void
|
||||
markst(struct subre * t)
|
||||
markst(struct subre *t)
|
||||
{
|
||||
assert(t != NULL);
|
||||
|
||||
@ -1842,7 +1842,7 @@ markst(struct subre * t)
|
||||
* cleanst - free any tree nodes not marked INUSE
|
||||
*/
|
||||
static void
|
||||
cleanst(struct vars * v)
|
||||
cleanst(struct vars *v)
|
||||
{
|
||||
struct subre *t;
|
||||
struct subre *next;
|
||||
@ -1861,8 +1861,8 @@ cleanst(struct vars * v)
|
||||
* nfatree - turn a subRE subtree into a tree of compacted NFAs
|
||||
*/
|
||||
static long /* optimize results from top node */
|
||||
nfatree(struct vars * v,
|
||||
struct subre * t,
|
||||
nfatree(struct vars *v,
|
||||
struct subre *t,
|
||||
FILE *f) /* for debug output */
|
||||
{
|
||||
assert(t != NULL && t->begin != NULL);
|
||||
@ -1881,8 +1881,8 @@ nfatree(struct vars * v,
|
||||
* If converttosearch is true, apply makesearch() to the NFA.
|
||||
*/
|
||||
static long /* optimize results */
|
||||
nfanode(struct vars * v,
|
||||
struct subre * t,
|
||||
nfanode(struct vars *v,
|
||||
struct subre *t,
|
||||
int converttosearch,
|
||||
FILE *f) /* for debug output */
|
||||
{
|
||||
@ -1920,9 +1920,9 @@ nfanode(struct vars * v,
|
||||
* newlacon - allocate a lookaround-constraint subRE
|
||||
*/
|
||||
static int /* lacon number */
|
||||
newlacon(struct vars * v,
|
||||
struct state * begin,
|
||||
struct state * end,
|
||||
newlacon(struct vars *v,
|
||||
struct state *begin,
|
||||
struct state *end,
|
||||
int latype)
|
||||
{
|
||||
int n;
|
||||
@ -1959,7 +1959,7 @@ newlacon(struct vars * v,
|
||||
* freelacons - free lookaround-constraint subRE vector
|
||||
*/
|
||||
static void
|
||||
freelacons(struct subre * subs,
|
||||
freelacons(struct subre *subs,
|
||||
int n)
|
||||
{
|
||||
struct subre *sub;
|
||||
@ -2102,7 +2102,7 @@ dump(regex_t *re,
|
||||
* dumpst - dump a subRE tree
|
||||
*/
|
||||
static void
|
||||
dumpst(struct subre * t,
|
||||
dumpst(struct subre *t,
|
||||
FILE *f,
|
||||
int nfapresent) /* is the original NFA still around? */
|
||||
{
|
||||
@ -2117,7 +2117,7 @@ dumpst(struct subre * t,
|
||||
* stdump - recursive guts of dumpst
|
||||
*/
|
||||
static void
|
||||
stdump(struct subre * t,
|
||||
stdump(struct subre *t,
|
||||
FILE *f,
|
||||
int nfapresent) /* is the original NFA still around? */
|
||||
{
|
||||
@ -2167,7 +2167,7 @@ stdump(struct subre * t,
|
||||
* stid - identify a subtree node for dumping
|
||||
*/
|
||||
static const char * /* points to buf or constant string */
|
||||
stid(struct subre * t,
|
||||
stid(struct subre *t,
|
||||
char *buf,
|
||||
size_t bufsize)
|
||||
{
|
||||
|
@ -39,8 +39,8 @@
|
||||
* Internal errors also return NULL, with v->err set.
|
||||
*/
|
||||
static chr *
|
||||
longest(struct vars * v,
|
||||
struct dfa * d,
|
||||
longest(struct vars *v,
|
||||
struct dfa *d,
|
||||
chr *start, /* where the match should start */
|
||||
chr *stop, /* match must end at or before here */
|
||||
int *hitstopp) /* record whether hit v->stop, if non-NULL */
|
||||
@ -165,8 +165,8 @@ longest(struct vars * v,
|
||||
* Internal errors also return NULL, with v->err set.
|
||||
*/
|
||||
static chr *
|
||||
shortest(struct vars * v,
|
||||
struct dfa * d,
|
||||
shortest(struct vars *v,
|
||||
struct dfa *d,
|
||||
chr *start, /* where the match should start */
|
||||
chr *min, /* match must end at or after here */
|
||||
chr *max, /* match must end at or before here */
|
||||
@ -300,10 +300,10 @@ shortest(struct vars * v,
|
||||
* Internal errors also return 0, with v->err set.
|
||||
*/
|
||||
static int
|
||||
matchuntil(struct vars * v,
|
||||
struct dfa * d,
|
||||
matchuntil(struct vars *v,
|
||||
struct dfa *d,
|
||||
chr *probe, /* we want to know if a match ends here */
|
||||
struct sset ** lastcss, /* state storage across calls */
|
||||
struct sset **lastcss, /* state storage across calls */
|
||||
chr **lastcp) /* state storage across calls */
|
||||
{
|
||||
chr *cp = *lastcp;
|
||||
@ -414,8 +414,8 @@ matchuntil(struct vars * v,
|
||||
* lastcold - determine last point at which no progress had been made
|
||||
*/
|
||||
static chr * /* endpoint, or NULL */
|
||||
lastcold(struct vars * v,
|
||||
struct dfa * d)
|
||||
lastcold(struct vars *v,
|
||||
struct dfa *d)
|
||||
{
|
||||
struct sset *ss;
|
||||
chr *nopr;
|
||||
@ -434,10 +434,10 @@ lastcold(struct vars * v,
|
||||
* newdfa - set up a fresh DFA
|
||||
*/
|
||||
static struct dfa *
|
||||
newdfa(struct vars * v,
|
||||
struct cnfa * cnfa,
|
||||
struct colormap * cm,
|
||||
struct smalldfa * sml) /* preallocated space, may be NULL */
|
||||
newdfa(struct vars *v,
|
||||
struct cnfa *cnfa,
|
||||
struct colormap *cm,
|
||||
struct smalldfa *sml) /* preallocated space, may be NULL */
|
||||
{
|
||||
struct dfa *d;
|
||||
size_t nss = cnfa->nstates * 2;
|
||||
@ -514,7 +514,7 @@ newdfa(struct vars * v,
|
||||
* freedfa - free a DFA
|
||||
*/
|
||||
static void
|
||||
freedfa(struct dfa * d)
|
||||
freedfa(struct dfa *d)
|
||||
{
|
||||
if (d->cptsmalloced)
|
||||
{
|
||||
@ -554,8 +554,8 @@ hash(unsigned *uv,
|
||||
* initialize - hand-craft a cache entry for startup, otherwise get ready
|
||||
*/
|
||||
static struct sset *
|
||||
initialize(struct vars * v,
|
||||
struct dfa * d,
|
||||
initialize(struct vars *v,
|
||||
struct dfa *d,
|
||||
chr *start)
|
||||
{
|
||||
struct sset *ss;
|
||||
@ -600,9 +600,9 @@ initialize(struct vars * v,
|
||||
* Internal errors also return NULL, with v->err set.
|
||||
*/
|
||||
static struct sset *
|
||||
miss(struct vars * v,
|
||||
struct dfa * d,
|
||||
struct sset * css,
|
||||
miss(struct vars *v,
|
||||
struct dfa *d,
|
||||
struct sset *css,
|
||||
color co,
|
||||
chr *cp, /* next chr */
|
||||
chr *start) /* where the attempt got started */
|
||||
@ -740,8 +740,8 @@ miss(struct vars * v,
|
||||
* lacon - lookaround-constraint checker for miss()
|
||||
*/
|
||||
static int /* predicate: constraint satisfied? */
|
||||
lacon(struct vars * v,
|
||||
struct cnfa * pcnfa, /* parent cnfa */
|
||||
lacon(struct vars *v,
|
||||
struct cnfa *pcnfa, /* parent cnfa */
|
||||
chr *cp,
|
||||
color co) /* "color" of the lookaround constraint */
|
||||
{
|
||||
@ -797,8 +797,8 @@ lacon(struct vars * v,
|
||||
* clear the innards of the state set -- that's up to the caller.
|
||||
*/
|
||||
static struct sset *
|
||||
getvacant(struct vars * v,
|
||||
struct dfa * d,
|
||||
getvacant(struct vars *v,
|
||||
struct dfa *d,
|
||||
chr *cp,
|
||||
chr *start)
|
||||
{
|
||||
@ -868,8 +868,8 @@ getvacant(struct vars * v,
|
||||
* pickss - pick the next stateset to be used
|
||||
*/
|
||||
static struct sset *
|
||||
pickss(struct vars * v,
|
||||
struct dfa * d,
|
||||
pickss(struct vars *v,
|
||||
struct dfa *d,
|
||||
chr *cp,
|
||||
chr *start)
|
||||
{
|
||||
|
@ -42,7 +42,7 @@ static const struct rerr
|
||||
int code;
|
||||
const char *name;
|
||||
const char *explain;
|
||||
} rerrs[] =
|
||||
} rerrs[] =
|
||||
|
||||
{
|
||||
/* the actual table is built from regex.h */
|
||||
|
@ -334,8 +334,8 @@ cleanup:
|
||||
* The DFA will be freed by the cleanup step in pg_regexec().
|
||||
*/
|
||||
static struct dfa *
|
||||
getsubdfa(struct vars * v,
|
||||
struct subre * t)
|
||||
getsubdfa(struct vars *v,
|
||||
struct subre *t)
|
||||
{
|
||||
if (v->subdfas[t->id] == NULL)
|
||||
{
|
||||
@ -352,7 +352,7 @@ getsubdfa(struct vars * v,
|
||||
* Same as above, but for LACONs.
|
||||
*/
|
||||
static struct dfa *
|
||||
getladfa(struct vars * v,
|
||||
getladfa(struct vars *v,
|
||||
int n)
|
||||
{
|
||||
assert(n > 0 && n < v->g->nlacons && v->g->lacons != NULL);
|
||||
@ -372,9 +372,9 @@ getladfa(struct vars * v,
|
||||
* find - find a match for the main NFA (no-complications case)
|
||||
*/
|
||||
static int
|
||||
find(struct vars * v,
|
||||
struct cnfa * cnfa,
|
||||
struct colormap * cm)
|
||||
find(struct vars *v,
|
||||
struct cnfa *cnfa,
|
||||
struct colormap *cm)
|
||||
{
|
||||
struct dfa *s;
|
||||
struct dfa *d;
|
||||
@ -463,9 +463,9 @@ find(struct vars * v,
|
||||
* cfind - find a match for the main NFA (with complications)
|
||||
*/
|
||||
static int
|
||||
cfind(struct vars * v,
|
||||
struct cnfa * cnfa,
|
||||
struct colormap * cm)
|
||||
cfind(struct vars *v,
|
||||
struct cnfa *cnfa,
|
||||
struct colormap *cm)
|
||||
{
|
||||
struct dfa *s;
|
||||
struct dfa *d;
|
||||
@ -503,11 +503,11 @@ cfind(struct vars * v,
|
||||
* cfindloop - the heart of cfind
|
||||
*/
|
||||
static int
|
||||
cfindloop(struct vars * v,
|
||||
struct cnfa * cnfa,
|
||||
struct colormap * cm,
|
||||
struct dfa * d,
|
||||
struct dfa * s,
|
||||
cfindloop(struct vars *v,
|
||||
struct cnfa *cnfa,
|
||||
struct colormap *cm,
|
||||
struct dfa *d,
|
||||
struct dfa *s,
|
||||
chr **coldp) /* where to put coldstart pointer */
|
||||
{
|
||||
chr *begin;
|
||||
@ -632,8 +632,8 @@ zapallsubs(regmatch_t *p,
|
||||
* zaptreesubs - initialize subexpressions within subtree to "no match"
|
||||
*/
|
||||
static void
|
||||
zaptreesubs(struct vars * v,
|
||||
struct subre * t)
|
||||
zaptreesubs(struct vars *v,
|
||||
struct subre *t)
|
||||
{
|
||||
if (t->op == '(')
|
||||
{
|
||||
@ -657,8 +657,8 @@ zaptreesubs(struct vars * v,
|
||||
* subset - set subexpression match data for a successful subre
|
||||
*/
|
||||
static void
|
||||
subset(struct vars * v,
|
||||
struct subre * sub,
|
||||
subset(struct vars *v,
|
||||
struct subre *sub,
|
||||
chr *begin,
|
||||
chr *end)
|
||||
{
|
||||
@ -689,8 +689,8 @@ subset(struct vars * v,
|
||||
* zaptreesubs (or zapallsubs at the top level).
|
||||
*/
|
||||
static int /* regexec return code */
|
||||
cdissect(struct vars * v,
|
||||
struct subre * t,
|
||||
cdissect(struct vars *v,
|
||||
struct subre *t,
|
||||
chr *begin, /* beginning of relevant substring */
|
||||
chr *end) /* end of same */
|
||||
{
|
||||
@ -760,8 +760,8 @@ cdissect(struct vars * v,
|
||||
* ccondissect - dissect match for concatenation node
|
||||
*/
|
||||
static int /* regexec return code */
|
||||
ccondissect(struct vars * v,
|
||||
struct subre * t,
|
||||
ccondissect(struct vars *v,
|
||||
struct subre *t,
|
||||
chr *begin, /* beginning of relevant substring */
|
||||
chr *end) /* end of same */
|
||||
{
|
||||
@ -838,8 +838,8 @@ ccondissect(struct vars * v,
|
||||
* crevcondissect - dissect match for concatenation node, shortest-first
|
||||
*/
|
||||
static int /* regexec return code */
|
||||
crevcondissect(struct vars * v,
|
||||
struct subre * t,
|
||||
crevcondissect(struct vars *v,
|
||||
struct subre *t,
|
||||
chr *begin, /* beginning of relevant substring */
|
||||
chr *end) /* end of same */
|
||||
{
|
||||
@ -916,8 +916,8 @@ crevcondissect(struct vars * v,
|
||||
* cbrdissect - dissect match for backref node
|
||||
*/
|
||||
static int /* regexec return code */
|
||||
cbrdissect(struct vars * v,
|
||||
struct subre * t,
|
||||
cbrdissect(struct vars *v,
|
||||
struct subre *t,
|
||||
chr *begin, /* beginning of relevant substring */
|
||||
chr *end) /* end of same */
|
||||
{
|
||||
@ -997,8 +997,8 @@ cbrdissect(struct vars * v,
|
||||
* caltdissect - dissect match for alternation node
|
||||
*/
|
||||
static int /* regexec return code */
|
||||
caltdissect(struct vars * v,
|
||||
struct subre * t,
|
||||
caltdissect(struct vars *v,
|
||||
struct subre *t,
|
||||
chr *begin, /* beginning of relevant substring */
|
||||
chr *end) /* end of same */
|
||||
{
|
||||
@ -1034,8 +1034,8 @@ caltdissect(struct vars * v,
|
||||
* citerdissect - dissect match for iteration node
|
||||
*/
|
||||
static int /* regexec return code */
|
||||
citerdissect(struct vars * v,
|
||||
struct subre * t,
|
||||
citerdissect(struct vars *v,
|
||||
struct subre *t,
|
||||
chr *begin, /* beginning of relevant substring */
|
||||
chr *end) /* end of same */
|
||||
{
|
||||
@ -1235,8 +1235,8 @@ backtrack:
|
||||
* creviterdissect - dissect match for iteration node, shortest-first
|
||||
*/
|
||||
static int /* regexec return code */
|
||||
creviterdissect(struct vars * v,
|
||||
struct subre * t,
|
||||
creviterdissect(struct vars *v,
|
||||
struct subre *t,
|
||||
chr *begin, /* beginning of relevant substring */
|
||||
chr *end) /* end of same */
|
||||
{
|
||||
|
@ -90,7 +90,7 @@ pg_reg_getfinalstate(const regex_t *regex)
|
||||
* arcs_len (possibly 0) are emitted into arcs[].
|
||||
*/
|
||||
static void
|
||||
traverse_lacons(struct cnfa * cnfa, int st,
|
||||
traverse_lacons(struct cnfa *cnfa, int st,
|
||||
int *arcs_count,
|
||||
regex_arc_t *arcs, int arcs_len)
|
||||
{
|
||||
|
@ -19,7 +19,7 @@
|
||||
/*
|
||||
* forward declarations
|
||||
*/
|
||||
static int findprefix(struct cnfa * cnfa, struct colormap * cm,
|
||||
static int findprefix(struct cnfa *cnfa, struct colormap *cm,
|
||||
chr *string, size_t *slength);
|
||||
|
||||
|
||||
@ -109,8 +109,8 @@ pg_regprefix(regex_t *re,
|
||||
* *slength (which must be preset to zero) incremented for each chr.
|
||||
*/
|
||||
static int /* regprefix return code */
|
||||
findprefix(struct cnfa * cnfa,
|
||||
struct colormap * cm,
|
||||
findprefix(struct cnfa *cnfa,
|
||||
struct colormap *cm,
|
||||
chr *string,
|
||||
size_t *slength)
|
||||
{
|
||||
|
@ -54,11 +54,11 @@ typedef struct
|
||||
static int64 sendDir(char *path, int basepathlen, bool sizeonly,
|
||||
List *tablespaces, bool sendtblspclinks);
|
||||
static bool sendFile(char *readfilename, char *tarfilename,
|
||||
struct stat * statbuf, bool missing_ok);
|
||||
struct stat *statbuf, bool missing_ok);
|
||||
static void sendFileWithContent(const char *filename, const char *content);
|
||||
static int64 _tarWriteHeader(const char *filename, const char *linktarget,
|
||||
struct stat * statbuf, bool sizeonly);
|
||||
static int64 _tarWriteDir(const char *pathbuf, int basepathlen, struct stat * statbuf,
|
||||
struct stat *statbuf, bool sizeonly);
|
||||
static int64 _tarWriteDir(const char *pathbuf, int basepathlen, struct stat *statbuf,
|
||||
bool sizeonly);
|
||||
static void send_int8_string(StringInfoData *buf, int64 intval);
|
||||
static void SendBackupHeader(List *tablespaces);
|
||||
@ -1199,7 +1199,7 @@ sendDir(char *path, int basepathlen, bool sizeonly, List *tablespaces,
|
||||
* and the file did not exist.
|
||||
*/
|
||||
static bool
|
||||
sendFile(char *readfilename, char *tarfilename, struct stat * statbuf,
|
||||
sendFile(char *readfilename, char *tarfilename, struct stat *statbuf,
|
||||
bool missing_ok)
|
||||
{
|
||||
FILE *fp;
|
||||
@ -1273,7 +1273,7 @@ sendFile(char *readfilename, char *tarfilename, struct stat * statbuf,
|
||||
|
||||
static int64
|
||||
_tarWriteHeader(const char *filename, const char *linktarget,
|
||||
struct stat * statbuf, bool sizeonly)
|
||||
struct stat *statbuf, bool sizeonly)
|
||||
{
|
||||
char h[512];
|
||||
enum tarError rc;
|
||||
@ -1314,7 +1314,7 @@ _tarWriteHeader(const char *filename, const char *linktarget,
|
||||
* write it as a directory anyway.
|
||||
*/
|
||||
static int64
|
||||
_tarWriteDir(const char *pathbuf, int basepathlen, struct stat * statbuf,
|
||||
_tarWriteDir(const char *pathbuf, int basepathlen, struct stat *statbuf,
|
||||
bool sizeonly)
|
||||
{
|
||||
/* If symlink, write it as a directory anyway */
|
||||
|
@ -180,8 +180,7 @@ static void AssertTXNLsnOrder(ReorderBuffer *rb);
|
||||
* ---------------------------------------
|
||||
*/
|
||||
static ReorderBufferIterTXNState *ReorderBufferIterTXNInit(ReorderBuffer *rb, ReorderBufferTXN *txn);
|
||||
static ReorderBufferChange *
|
||||
ReorderBufferIterTXNNext(ReorderBuffer *rb, ReorderBufferIterTXNState *state);
|
||||
static ReorderBufferChange *ReorderBufferIterTXNNext(ReorderBuffer *rb, ReorderBufferIterTXNState *state);
|
||||
static void ReorderBufferIterTXNFinish(ReorderBuffer *rb,
|
||||
ReorderBufferIterTXNState *state);
|
||||
static void ReorderBufferExecuteInvalidations(ReorderBuffer *rb, ReorderBufferTXN *txn);
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
x
Reference in New Issue
Block a user