aboutsummaryrefslogtreecommitdiff
path: root/src/backend/utils/adt/lockfuncs.c
diff options
context:
space:
mode:
authorBruce Momjian <bruce@momjian.us>2002-08-27 04:00:28 +0000
committerBruce Momjian <bruce@momjian.us>2002-08-27 04:00:28 +0000
commita77d34f0b8f02e8b24bb79792521f0b196b556f1 (patch)
treec71dd94b6535930ede8c1f0a794e6a4c45d7993b /src/backend/utils/adt/lockfuncs.c
parentbda45958a86e09ec515664dfca3a3e77c9236ada (diff)
downloadpostgresql-a77d34f0b8f02e8b24bb79792521f0b196b556f1.tar.gz
postgresql-a77d34f0b8f02e8b24bb79792521f0b196b556f1.zip
This patch updates the lock listing code to use Joe Conway's new
anonymous return type SRF code. It gets rid of the superflous 'pg_locks_result' that Bruce/Tom had commented on. Otherwise, no changes in functionality. Neil Conway
Diffstat (limited to 'src/backend/utils/adt/lockfuncs.c')
-rw-r--r--src/backend/utils/adt/lockfuncs.c20
1 files changed, 16 insertions, 4 deletions
diff --git a/src/backend/utils/adt/lockfuncs.c b/src/backend/utils/adt/lockfuncs.c
index 0b1933aad1c..38e540e3c85 100644
--- a/src/backend/utils/adt/lockfuncs.c
+++ b/src/backend/utils/adt/lockfuncs.c
@@ -5,23 +5,24 @@
* Copyright (c) 2002, PostgreSQL Global Development Group
*
* IDENTIFICATION
- * $Header: /cvsroot/pgsql/src/backend/utils/adt/lockfuncs.c,v 1.1 2002/08/17 13:11:43 momjian Exp $
+ * $Header: /cvsroot/pgsql/src/backend/utils/adt/lockfuncs.c,v 1.2 2002/08/27 04:00:28 momjian Exp $
*/
#include "postgres.h"
#include "fmgr.h"
#include "funcapi.h"
+#include "catalog/pg_type.h"
#include "storage/lmgr.h"
#include "storage/lock.h"
#include "storage/lwlock.h"
#include "storage/proc.h"
-Datum lock_status_srf(PG_FUNCTION_ARGS);
+Datum pg_lock_status(PG_FUNCTION_ARGS);
static int next_lock(int locks[]);
Datum
-lock_status_srf(PG_FUNCTION_ARGS)
+pg_lock_status(PG_FUNCTION_ARGS)
{
FuncCallContext *funccxt;
LockData *lockData;
@@ -32,7 +33,18 @@ lock_status_srf(PG_FUNCTION_ARGS)
TupleDesc tupdesc;
funccxt = SRF_FIRSTCALL_INIT();
- tupdesc = RelationNameGetTupleDesc("pg_catalog.pg_locks_result");
+ tupdesc = CreateTemplateTupleDesc(5, WITHOUTOID);
+ TupleDescInitEntry(tupdesc, (AttrNumber) 1, "relation",
+ OIDOID, -1, 0, false);
+ TupleDescInitEntry(tupdesc, (AttrNumber) 2, "database",
+ OIDOID, -1, 0, false);
+ TupleDescInitEntry(tupdesc, (AttrNumber) 3, "backendpid",
+ INT4OID, -1, 0, false);
+ TupleDescInitEntry(tupdesc, (AttrNumber) 4, "mode",
+ TEXTOID, -1, 0, false);
+ TupleDescInitEntry(tupdesc, (AttrNumber) 5, "isgranted",
+ BOOLOID, -1, 0, false);
+
funccxt->slot = TupleDescGetSlot(tupdesc);
funccxt->attinmeta = TupleDescGetAttInMetadata(tupdesc);