summaryrefslogtreecommitdiff
path: root/src/backend/utils/misc/superuser.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/backend/utils/misc/superuser.c')
-rw-r--r--src/backend/utils/misc/superuser.c43
1 files changed, 43 insertions, 0 deletions
diff --git a/src/backend/utils/misc/superuser.c b/src/backend/utils/misc/superuser.c
new file mode 100644
index 00000000000..69781ef34d1
--- /dev/null
+++ b/src/backend/utils/misc/superuser.c
@@ -0,0 +1,43 @@
+/*-------------------------------------------------------------------------
+ *
+ * superuser.c--
+ *
+ * The superuser() function. Determines if user has superuser privilege.
+ *
+ * Copyright (c) 1994, Regents of the University of California
+ *
+ *
+ * IDENTIFICATION
+ * $Header: /cvsroot/pgsql/src/backend/utils/misc/superuser.c,v 1.1 1996/11/02 02:06:47 bryanh Exp $
+ *
+ * DESCRIPTION
+ * See superuser().
+ *-------------------------------------------------------------------------
+ */
+
+#include <c.h>
+#include <postgres.h>
+#include <access/htup.h>
+#include <utils/syscache.h>
+#include <catalog/pg_user.h>
+
+
+
+bool
+superuser(void) {
+/*--------------------------------------------------------------------------
+ The Postgres user running this command has Postgres superuser
+ privileges.
+--------------------------------------------------------------------------*/
+ extern char *UserName; /* defined in global.c */
+
+ HeapTuple utup;
+
+ utup = SearchSysCacheTuple(USENAME, PointerGetDatum(UserName),
+ 0,0,0);
+ Assert(utup != NULL);
+ return ((Form_pg_user)GETSTRUCT(utup))->usesuper;
+}
+
+
+