diff options
Diffstat (limited to 'contrib/pg_stat_statements/pg_stat_statements.c')
-rw-r--r-- | contrib/pg_stat_statements/pg_stat_statements.c | 11 |
1 files changed, 3 insertions, 8 deletions
diff --git a/contrib/pg_stat_statements/pg_stat_statements.c b/contrib/pg_stat_statements/pg_stat_statements.c index 44ba9e766b8..85960700ac5 100644 --- a/contrib/pg_stat_statements/pg_stat_statements.c +++ b/contrib/pg_stat_statements/pg_stat_statements.c @@ -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.3.2.2 2009/07/27 04:10:01 tgl Exp $ + * $PostgreSQL: pgsql/contrib/pg_stat_statements/pg_stat_statements.c,v 1.3.2.3 2009/12/29 17:41:09 heikki Exp $ * *------------------------------------------------------------------------- */ @@ -710,6 +710,8 @@ pg_stat_statements(PG_FUNCTION_ARGS) rsinfo->setResult = tupstore; rsinfo->setDesc = tupdesc; + MemoryContextSwitchTo(oldcontext); + LWLockAcquire(pgss->lock, LW_SHARED); hash_seq_init(&hash_seq, pgss_hash); @@ -720,9 +722,6 @@ pg_stat_statements(PG_FUNCTION_ARGS) int i = 0; Counters tmp; - /* generate junk in short-term context */ - MemoryContextSwitchTo(oldcontext); - memset(values, 0, sizeof(values)); memset(nulls, 0, sizeof(nulls)); @@ -760,8 +759,6 @@ pg_stat_statements(PG_FUNCTION_ARGS) Assert(i == PG_STAT_STATEMENTS_COLS); - /* switch to appropriate context while storing the tuple */ - MemoryContextSwitchTo(per_query_ctx); tuplestore_putvalues(tupstore, tupdesc, values, nulls); } @@ -770,8 +767,6 @@ pg_stat_statements(PG_FUNCTION_ARGS) /* clean up and return the tuplestore */ tuplestore_donestoring(tupstore); - MemoryContextSwitchTo(oldcontext); - return (Datum) 0; } |