aboutsummaryrefslogtreecommitdiff
path: root/contrib/pgstattuple
diff options
context:
space:
mode:
Diffstat (limited to 'contrib/pgstattuple')
-rw-r--r--contrib/pgstattuple/README.pgstattuple2
-rw-r--r--contrib/pgstattuple/pgstattuple.c15
-rw-r--r--contrib/pgstattuple/pgstattuple.sql.in4
3 files changed, 13 insertions, 8 deletions
diff --git a/contrib/pgstattuple/README.pgstattuple b/contrib/pgstattuple/README.pgstattuple
index 6a191e9cced..7237b9a4dc8 100644
--- a/contrib/pgstattuple/README.pgstattuple
+++ b/contrib/pgstattuple/README.pgstattuple
@@ -33,7 +33,7 @@ NOTICE: physical length: 0.08MB live tuples: 20 (0.00MB, 1.17%) dead tuples: 32
pgstattuple can be called as a function:
- pgstattuple(NAME) RETURNS FLOAT8
+ pgstattuple(TEXT) RETURNS FLOAT8
The argument is the table name. pgstattuple returns the percentage
of the "dead" tuples of a table.
diff --git a/contrib/pgstattuple/pgstattuple.c b/contrib/pgstattuple/pgstattuple.c
index beda282172d..39bd5d1f95e 100644
--- a/contrib/pgstattuple/pgstattuple.c
+++ b/contrib/pgstattuple/pgstattuple.c
@@ -1,5 +1,5 @@
/*
- * $Header: /cvsroot/pgsql/contrib/pgstattuple/pgstattuple.c,v 1.4 2002/03/06 06:09:10 momjian Exp $
+ * $Header: /cvsroot/pgsql/contrib/pgstattuple/pgstattuple.c,v 1.5 2002/03/30 01:02:41 tgl Exp $
*
* Copyright (c) 2001 Tatsuo Ishii
*
@@ -27,6 +27,9 @@
#include "fmgr.h"
#include "access/heapam.h"
#include "access/transam.h"
+#include "catalog/namespace.h"
+#include "utils/builtins.h"
+
PG_FUNCTION_INFO_V1(pgstattuple);
@@ -43,8 +46,8 @@ extern Datum pgstattuple(PG_FUNCTION_ARGS);
Datum
pgstattuple(PG_FUNCTION_ARGS)
{
- Name p = PG_GETARG_NAME(0);
-
+ text *relname = PG_GETARG_TEXT_P(0);
+ RangeVar *relrv;
Relation rel;
HeapScanDesc scan;
HeapTuple tuple;
@@ -59,11 +62,13 @@ pgstattuple(PG_FUNCTION_ARGS)
uint64 dead_tuple_count = 0;
double tuple_percent;
double dead_tuple_percent;
-
uint64 free_space = 0; /* free/reusable space in bytes */
double free_percent; /* free/reusable space in % */
- rel = heap_openr(NameStr(*p), AccessShareLock);
+ relrv = makeRangeVarFromNameList(textToQualifiedNameList(relname,
+ "pgstattuple"));
+ rel = heap_openrv(relrv, AccessShareLock);
+
nblocks = RelationGetNumberOfBlocks(rel);
scan = heap_beginscan(rel, false, SnapshotAny, 0, NULL);
diff --git a/contrib/pgstattuple/pgstattuple.sql.in b/contrib/pgstattuple/pgstattuple.sql.in
index 7a7706fa190..b49a13483f7 100644
--- a/contrib/pgstattuple/pgstattuple.sql.in
+++ b/contrib/pgstattuple/pgstattuple.sql.in
@@ -1,4 +1,4 @@
-DROP FUNCTION pgstattuple(NAME);
-CREATE FUNCTION pgstattuple(NAME) RETURNS FLOAT8
+DROP FUNCTION pgstattuple(text);
+CREATE FUNCTION pgstattuple(text) RETURNS float8
AS 'MODULE_PATHNAME', 'pgstattuple'
LANGUAGE 'c' WITH (isstrict);