diff options
author | Bruce Momjian <bruce@momjian.us> | 2002-08-27 04:00:28 +0000 |
---|---|---|
committer | Bruce Momjian <bruce@momjian.us> | 2002-08-27 04:00:28 +0000 |
commit | a77d34f0b8f02e8b24bb79792521f0b196b556f1 (patch) | |
tree | c71dd94b6535930ede8c1f0a794e6a4c45d7993b /src/backend/utils/adt/lockfuncs.c | |
parent | bda45958a86e09ec515664dfca3a3e77c9236ada (diff) | |
download | postgresql-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.c | 20 |
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); |