1
0
mirror of https://github.com/postgres/postgres.git synced 2025-07-27 12:41:57 +03:00

8.4 pgindent run, with new combined Linux/FreeBSD/MinGW typedef list

provided by Andrew.
This commit is contained in:
Bruce Momjian
2009-06-11 14:49:15 +00:00
parent 4e86efb4e5
commit d747140279
654 changed files with 11900 additions and 11387 deletions

View File

@ -14,7 +14,7 @@
* Copyright (c) 2008-2009, PostgreSQL Global Development Group
*
* IDENTIFICATION
* $PostgreSQL: pgsql/contrib/pg_stat_statements/pg_stat_statements.c,v 1.2 2009/01/05 13:35:38 tgl Exp $
* $PostgreSQL: pgsql/contrib/pg_stat_statements/pg_stat_statements.c,v 1.3 2009/06/11 14:48:51 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@ -87,7 +87,7 @@ typedef struct Counters
*/
typedef struct pgssEntry
{
pgssHashKey key; /* hash key of entry - MUST BE FIRST */
pgssHashKey key; /* hash key of entry - MUST BE FIRST */
Counters counters; /* the statistics for this query */
slock_t mutex; /* protects the counters only */
char query[1]; /* VARIABLE LENGTH ARRAY - MUST BE LAST */
@ -106,15 +106,17 @@ typedef struct pgssSharedState
/*---- Local variables ----*/
/* Current nesting depth of ExecutorRun calls */
static int nested_level = 0;
static int nested_level = 0;
/* Saved hook values in case of unload */
static shmem_startup_hook_type prev_shmem_startup_hook = NULL;
static ExecutorStart_hook_type prev_ExecutorStart = NULL;
static ExecutorRun_hook_type prev_ExecutorRun = NULL;
static ExecutorEnd_hook_type prev_ExecutorEnd = NULL;
static shmem_startup_hook_type prev_shmem_startup_hook = NULL;
static ExecutorStart_hook_type prev_ExecutorStart = NULL;
static ExecutorRun_hook_type prev_ExecutorRun = NULL;
static ExecutorEnd_hook_type prev_ExecutorEnd = NULL;
/* Links to shared memory state */
static pgssSharedState *pgss = NULL;
static HTAB *pgss_hash = NULL;
static pgssSharedState *pgss = NULL;
static HTAB *pgss_hash = NULL;
/*---- GUC variables ----*/
@ -143,11 +145,11 @@ static bool pgss_save; /* whether to save stats across shutdown */
/*---- Function declarations ----*/
void _PG_init(void);
void _PG_fini(void);
void _PG_init(void);
void _PG_fini(void);
Datum pg_stat_statements_reset(PG_FUNCTION_ARGS);
Datum pg_stat_statements(PG_FUNCTION_ARGS);
Datum pg_stat_statements_reset(PG_FUNCTION_ARGS);
Datum pg_stat_statements(PG_FUNCTION_ARGS);
PG_FUNCTION_INFO_V1(pg_stat_statements_reset);
PG_FUNCTION_INFO_V1(pg_stat_statements);
@ -156,14 +158,14 @@ static void pgss_shmem_startup(void);
static void pgss_shmem_shutdown(int code, Datum arg);
static void pgss_ExecutorStart(QueryDesc *queryDesc, int eflags);
static void pgss_ExecutorRun(QueryDesc *queryDesc,
ScanDirection direction,
long count);
ScanDirection direction,
long count);
static void pgss_ExecutorEnd(QueryDesc *queryDesc);
static uint32 pgss_hash_fn(const void *key, Size keysize);
static int pgss_match_fn(const void *key1, const void *key2, Size keysize);
static int pgss_match_fn(const void *key1, const void *key2, Size keysize);
static void pgss_store(const char *query,
const Instrumentation *instr, uint32 rows);
static Size pgss_memsize(void);
const Instrumentation *instr, uint32 rows);
static Size pgss_memsize(void);
static pgssEntry *entry_alloc(pgssHashKey *key);
static void entry_dealloc(void);
static void entry_reset(void);
@ -177,11 +179,11 @@ _PG_init(void)
{
/*
* In order to create our shared memory area, we have to be loaded via
* shared_preload_libraries. If not, fall out without hooking into
* any of the main system. (We don't throw error here because it seems
* useful to allow the pg_stat_statements functions to be created even
* when the module isn't active. The functions must protect themselves
* against being called then, however.)
* shared_preload_libraries. If not, fall out without hooking into any of
* the main system. (We don't throw error here because it seems useful to
* allow the pg_stat_statements functions to be created even when the
* module isn't active. The functions must protect themselves against
* being called then, however.)
*/
if (!process_shared_preload_libraries_in_progress)
return;
@ -190,7 +192,7 @@ _PG_init(void)
* Define (or redefine) custom GUC variables.
*/
DefineCustomIntVariable("pg_stat_statements.max",
"Sets the maximum number of statements tracked by pg_stat_statements.",
"Sets the maximum number of statements tracked by pg_stat_statements.",
NULL,
&pgss_max,
1000,
@ -202,7 +204,7 @@ _PG_init(void)
NULL);
DefineCustomEnumVariable("pg_stat_statements.track",
"Selects which statements are tracked by pg_stat_statements.",
"Selects which statements are tracked by pg_stat_statements.",
NULL,
&pgss_track,
PGSS_TRACK_TOP,
@ -213,7 +215,7 @@ _PG_init(void)
NULL);
DefineCustomBoolVariable("pg_stat_statements.save",
"Save pg_stat_statements statistics across server shutdowns.",
"Save pg_stat_statements statistics across server shutdowns.",
NULL,
&pgss_save,
true,
@ -265,7 +267,7 @@ _PG_fini(void)
static void
pgss_shmem_startup(void)
{
bool found;
bool found;
HASHCTL info;
FILE *file;
uint32 header;
@ -294,7 +296,7 @@ pgss_shmem_startup(void)
elog(ERROR, "out of shared memory");
if (!found)
{
{
/* First time through ... */
pgss->lock = LWLockAssign();
pgss->query_size = pgstat_track_activity_query_size;
@ -305,7 +307,7 @@ pgss_shmem_startup(void)
memset(&info, 0, sizeof(info));
info.keysize = sizeof(pgssHashKey);
info.entrysize = offsetof(pgssEntry, query) + query_size;
info.entrysize = offsetof(pgssEntry, query) +query_size;
info.hash = pgss_hash_fn;
info.match = pgss_match_fn;
pgss_hash = ShmemInitHash("pg_stat_statements hash",
@ -318,8 +320,8 @@ pgss_shmem_startup(void)
LWLockRelease(AddinShmemInitLock);
/*
* If we're in the postmaster (or a standalone backend...), set up a
* shmem exit hook to dump the statistics to disk.
* If we're in the postmaster (or a standalone backend...), set up a shmem
* exit hook to dump the statistics to disk.
*/
if (!IsUnderPostmaster)
on_shmem_exit(pgss_shmem_shutdown, (Datum) 0);
@ -327,8 +329,8 @@ pgss_shmem_startup(void)
/*
* Attempt to load old statistics from the dump file.
*
* Note: we don't bother with locks here, because there should be no
* other processes running when this is called.
* Note: we don't bother with locks here, because there should be no other
* processes running when this is called.
*/
if (!pgss_save)
return;
@ -352,7 +354,7 @@ pgss_shmem_startup(void)
for (i = 0; i < num; i++)
{
pgssEntry temp;
pgssEntry *entry;
pgssEntry *entry;
if (fread(&temp, offsetof(pgssEntry, mutex), 1, file) != 1)
goto error;
@ -413,10 +415,10 @@ error:
static void
pgss_shmem_shutdown(int code, Datum arg)
{
FILE *file;
HASH_SEQ_STATUS hash_seq;
int32 num_entries;
pgssEntry *entry;
FILE *file;
HASH_SEQ_STATUS hash_seq;
int32 num_entries;
pgssEntry *entry;
/* Don't try to dump during a crash. */
if (code)
@ -443,7 +445,7 @@ pgss_shmem_shutdown(int code, Datum arg)
hash_seq_init(&hash_seq, pgss_hash);
while ((entry = hash_seq_search(&hash_seq)) != NULL)
{
int len = entry->key.query_len;
int len = entry->key.query_len;
if (fwrite(entry, offsetof(pgssEntry, mutex), 1, file) != 1 ||
fwrite(entry->query, 1, len, file) != len)
@ -482,9 +484,9 @@ pgss_ExecutorStart(QueryDesc *queryDesc, int eflags)
if (pgss_enabled())
{
/*
* Set up to track total elapsed time in ExecutorRun. Make sure
* the space is allocated in the per-query context so it will go
* away at ExecutorEnd.
* Set up to track total elapsed time in ExecutorRun. Make sure the
* space is allocated in the per-query context so it will go away at
* ExecutorEnd.
*/
if (queryDesc->totaltime == NULL)
{
@ -529,8 +531,8 @@ pgss_ExecutorEnd(QueryDesc *queryDesc)
if (queryDesc->totaltime && pgss_enabled())
{
/*
* Make sure stats accumulation is done. (Note: it's okay if
* several levels of hook all do this.)
* Make sure stats accumulation is done. (Note: it's okay if several
* levels of hook all do this.)
*/
InstrEndLoop(queryDesc->totaltime);
@ -585,9 +587,9 @@ pgss_match_fn(const void *key1, const void *key2, Size keysize)
static void
pgss_store(const char *query, const Instrumentation *instr, uint32 rows)
{
pgssHashKey key;
pgssHashKey key;
double usage;
pgssEntry *entry;
pgssEntry *entry;
Assert(query != NULL);
@ -658,15 +660,15 @@ pg_stat_statements_reset(PG_FUNCTION_ARGS)
Datum
pg_stat_statements(PG_FUNCTION_ARGS)
{
ReturnSetInfo *rsinfo = (ReturnSetInfo *) fcinfo->resultinfo;
TupleDesc tupdesc;
Tuplestorestate *tupstore;
MemoryContext per_query_ctx;
MemoryContext oldcontext;
Oid userid = GetUserId();
bool is_superuser = superuser();
HASH_SEQ_STATUS hash_seq;
pgssEntry *entry;
ReturnSetInfo *rsinfo = (ReturnSetInfo *) fcinfo->resultinfo;
TupleDesc tupdesc;
Tuplestorestate *tupstore;
MemoryContext per_query_ctx;
MemoryContext oldcontext;
Oid userid = GetUserId();
bool is_superuser = superuser();
HASH_SEQ_STATUS hash_seq;
pgssEntry *entry;
if (!pgss || !pgss_hash)
ereport(ERROR,
@ -727,7 +729,7 @@ pg_stat_statements(PG_FUNCTION_ARGS)
if (is_superuser || entry->key.userid == userid)
{
char *qstr;
char *qstr;
qstr = (char *)
pg_do_encoding_conversion((unsigned char *) entry->query,
@ -777,11 +779,11 @@ pg_stat_statements(PG_FUNCTION_ARGS)
static Size
pgss_memsize(void)
{
Size size;
Size entrysize;
Size size;
Size entrysize;
size = MAXALIGN(sizeof(pgssSharedState));
entrysize = offsetof(pgssEntry, query) + pgstat_track_activity_query_size;
entrysize = offsetof(pgssEntry, query) +pgstat_track_activity_query_size;
size = add_size(size, hash_estimate_size(pgss_max, entrysize));
return size;
@ -792,7 +794,7 @@ pgss_memsize(void)
* caller must hold an exclusive lock on pgss->lock
*
* Note: despite needing exclusive lock, it's not an error for the target
* entry to already exist. This is because pgss_store releases and
* entry to already exist. This is because pgss_store releases and
* reacquires lock after failing to find a match; so someone else could
* have made the entry while we waited to get exclusive lock.
*/
@ -800,7 +802,7 @@ static pgssEntry *
entry_alloc(pgssHashKey *key)
{
pgssEntry *entry;
bool found;
bool found;
/* Caller must have clipped query properly */
Assert(key->query_len < pgss->query_size);
@ -837,8 +839,8 @@ entry_alloc(pgssHashKey *key)
static int
entry_cmp(const void *lhs, const void *rhs)
{
double l_usage = (*(const pgssEntry **)lhs)->counters.usage;
double r_usage = (*(const pgssEntry **)rhs)->counters.usage;
double l_usage = (*(const pgssEntry **) lhs)->counters.usage;
double r_usage = (*(const pgssEntry **) rhs)->counters.usage;
if (l_usage < r_usage)
return -1;
@ -855,11 +857,11 @@ entry_cmp(const void *lhs, const void *rhs)
static void
entry_dealloc(void)
{
HASH_SEQ_STATUS hash_seq;
pgssEntry **entries;
pgssEntry *entry;
int nvictims;
int i;
HASH_SEQ_STATUS hash_seq;
pgssEntry **entries;
pgssEntry *entry;
int nvictims;
int i;
/* Sort entries by usage and deallocate USAGE_DEALLOC_PERCENT of them. */
@ -891,8 +893,8 @@ entry_dealloc(void)
static void
entry_reset(void)
{
HASH_SEQ_STATUS hash_seq;
pgssEntry *entry;
HASH_SEQ_STATUS hash_seq;
pgssEntry *entry;
LWLockAcquire(pgss->lock, LW_EXCLUSIVE);