summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTom Lane2005-08-15 02:40:36 +0000
committerTom Lane2005-08-15 02:40:36 +0000
commita5cd71f5d2104108c4256727d99392097378348d (patch)
tree67019ebf6fc002a21a825e6fc041638f1db8633d
parent5b93c283fbe3b3896c404274b6560af32ab89af6 (diff)
Clean up some stray remaining references to pg_shadow, pg_user, pg_group.
-rw-r--r--doc/src/sgml/ref/dropuser.sgml47
-rw-r--r--doc/src/sgml/ref/reindex.sgml7
-rw-r--r--doc/src/sgml/xaggr.sgml16
-rw-r--r--src/backend/libpq/crypt.c11
-rw-r--r--src/backend/libpq/pg_hba.conf.sample4
-rw-r--r--src/backend/utils/misc/superuser.c2
-rw-r--r--src/bin/scripts/dropuser.c10
-rw-r--r--src/test/regress/expected/privileges.out48
-rw-r--r--src/test/regress/sql/privileges.sql48
-rw-r--r--src/tutorial/syscat.source25
10 files changed, 107 insertions, 111 deletions
diff --git a/doc/src/sgml/ref/dropuser.sgml b/doc/src/sgml/ref/dropuser.sgml
index 8df3651a4a..798aa2c373 100644
--- a/doc/src/sgml/ref/dropuser.sgml
+++ b/doc/src/sgml/ref/dropuser.sgml
@@ -33,17 +33,16 @@ PostgreSQL documentation
<para>
<application>dropuser</application> removes an existing
- <productname>PostgreSQL</productname> user
- <emphasis>and</emphasis> the databases which that user owned.
- Only superusers (users with <literal>usesuper</literal> set in
- the <literal>pg_shadow</literal> table) can destroy
- <productname>PostgreSQL</productname> users.
+ <productname>PostgreSQL</productname> user.
+ Only superusers and users with the <literal>CREATEROLE</> privilege can
+ remove <productname>PostgreSQL</productname> users. (To remove a
+ superuser, you must yourself be a superuser.)
</para>
<para>
<application>dropuser</application> is a wrapper around the
- <acronym>SQL</acronym> command <xref linkend="SQL-DROPUSER"
- endterm="SQL-DROPUSER-title">.
+ <acronym>SQL</acronym> command <xref linkend="SQL-DROPROLE"
+ endterm="SQL-DROPROLE-title">.
There is no effective difference between dropping users via
this utility and via other methods for accessing the server.
</para>
@@ -62,8 +61,8 @@ PostgreSQL documentation
<term><replaceable class="parameter">username</replaceable></term>
<listitem>
<para>
- Specifies the name of the <productname>PostgreSQL</productname> user to be removed.
- You will be prompted for a name if none is specified on the command line.
+ Specifies the name of the <productname>PostgreSQL</productname> user to be removed.
+ You will be prompted for a name if none is specified on the command line.
</para>
</listitem>
</varlistentry>
@@ -74,7 +73,7 @@ PostgreSQL documentation
<listitem>
<para>
Echo the commands that <application>dropuser</application> generates
- and sends to the server.
+ and sends to the server.
</para>
</listitem>
</varlistentry>
@@ -111,10 +110,10 @@ PostgreSQL documentation
<term><option>--host <replaceable class="parameter">host</replaceable></></term>
<listitem>
<para>
- Specifies the host name of the machine on which the
- server
- is running. If the value begins with a slash, it is used
- as the directory for the Unix domain socket.
+ Specifies the host name of the machine on which the
+ server
+ is running. If the value begins with a slash, it is used
+ as the directory for the Unix domain socket.
</para>
</listitem>
</varlistentry>
@@ -124,9 +123,9 @@ PostgreSQL documentation
<term><option>--port <replaceable class="parameter">port</replaceable></></term>
<listitem>
<para>
- Specifies the TCP port or local Unix domain socket file
- extension on which the server
- is listening for connections.
+ Specifies the TCP port or local Unix domain socket file
+ extension on which the server
+ is listening for connections.
</para>
</listitem>
</varlistentry>
@@ -179,8 +178,8 @@ PostgreSQL documentation
<title>Diagnostics</title>
<para>
- In case of difficulty, see <xref linkend="SQL-DROPUSER"
- endterm="sql-dropuser-title"> and <xref linkend="APP-PSQL"> for
+ In case of difficulty, see <xref linkend="SQL-DROPROLE"
+ endterm="sql-droprole-title"> and <xref linkend="APP-PSQL"> for
discussions of potential problems and error messages.
The database server must be running at the
targeted host. Also, any default connection settings and environment
@@ -199,7 +198,7 @@ PostgreSQL documentation
server:
<screen>
<prompt>$ </prompt><userinput>dropuser joe</userinput>
-<computeroutput>DROP USER</computeroutput>
+<computeroutput>DROP ROLE</computeroutput>
</screen>
</para>
@@ -209,10 +208,10 @@ PostgreSQL documentation
command:
<screen>
<prompt>$ </prompt><userinput>dropuser -p 5000 -h eden -i -e joe</userinput>
-<computeroutput>User "joe" and any owned databases will be permanently deleted.
+<computeroutput>Role "joe" will be permanently removed.
Are you sure? (y/n) </computeroutput><userinput>y</userinput>
-<computeroutput>DROP USER "joe"
-DROP USER</computeroutput>
+<computeroutput>DROP ROLE "joe"
+DROP ROLE</computeroutput>
</screen>
</para>
</refsect1>
@@ -223,7 +222,7 @@ DROP USER</computeroutput>
<simplelist type="inline">
<member><xref linkend="app-createuser"></member>
- <member><xref linkend="sql-dropuser" endterm="sql-dropuser-title"></member>
+ <member><xref linkend="sql-droprole" endterm="sql-droprole-title"></member>
<member>Environment Variables (<xref linkend="libpq-envars">)</member>
</simplelist>
</refsect1>
diff --git a/doc/src/sgml/ref/reindex.sgml b/doc/src/sgml/ref/reindex.sgml
index 96ebb65740..0cc508599a 100644
--- a/doc/src/sgml/ref/reindex.sgml
+++ b/doc/src/sgml/ref/reindex.sgml
@@ -176,9 +176,10 @@ REINDEX { INDEX | TABLE | DATABASE | SYSTEM } <replaceable class="PARAMETER">nam
<para>
If corruption is suspected in the indexes of any of the shared
- system catalogs (<structname>pg_database</structname>,
- <structname>pg_group</structname>,
- <structname>pg_shadow</structname>, or
+ system catalogs (<structname>pg_authid</structname>,
+ <structname>pg_auth_members</structname>,
+ <structname>pg_database</structname>,
+ <structname>pg_shdepend</structname>, or
<structname>pg_tablespace</structname>), then a standalone server
must be used to repair it. <command>REINDEX</> will not process
shared catalogs in multiuser mode.
diff --git a/doc/src/sgml/xaggr.sgml b/doc/src/sgml/xaggr.sgml
index 6b20b4abdc..7810fc628e 100644
--- a/doc/src/sgml/xaggr.sgml
+++ b/doc/src/sgml/xaggr.sgml
@@ -141,22 +141,22 @@ CREATE AGGREGATE array_accum (
<programlisting>
SELECT attrelid::regclass, array_accum(attname)
FROM pg_attribute
- WHERE attnum &gt; 0 AND attrelid = 'pg_user'::regclass
+ WHERE attnum &gt; 0 AND attrelid = 'pg_tablespace'::regclass
GROUP BY attrelid;
- attrelid | array_accum
-----------+-----------------------------------------------------------------------------
- pg_user | {usename,usesysid,usecreatedb,usesuper,usecatupd,passwd,valuntil,useconfig}
+ attrelid | array_accum
+---------------+---------------------------------------
+ pg_tablespace | {spcname,spcowner,spclocation,spcacl}
(1 row)
SELECT attrelid::regclass, array_accum(atttypid)
FROM pg_attribute
- WHERE attnum &gt; 0 AND attrelid = 'pg_user'::regclass
+ WHERE attnum &gt; 0 AND attrelid = 'pg_tablespace'::regclass
GROUP BY attrelid;
- attrelid | array_accum
-----------+------------------------------
- pg_user | {19,23,16,16,16,25,702,1009}
+ attrelid | array_accum
+---------------+-----------------
+ pg_tablespace | {19,26,25,1034}
(1 row)
</programlisting>
</para>
diff --git a/src/backend/libpq/crypt.c b/src/backend/libpq/crypt.c
index 54ec7bdfa9..6705576ab8 100644
--- a/src/backend/libpq/crypt.c
+++ b/src/backend/libpq/crypt.c
@@ -57,7 +57,7 @@ md5_crypt_verify(const Port *port, const char *role, char *client_pass)
if (shadow_pass == NULL || *shadow_pass == '\0')
return STATUS_ERROR;
- /* We can't do crypt with pg_shadow MD5 passwords */
+ /* We can't do crypt with MD5 passwords */
if (isMD5(shadow_pass) && port->auth_method == uaCrypt)
{
ereport(LOG,
@@ -75,7 +75,7 @@ md5_crypt_verify(const Port *port, const char *role, char *client_pass)
crypt_pwd = palloc(MD5_PASSWD_LEN + 1);
if (isMD5(shadow_pass))
{
- /* pg_shadow already encrypted, only do salt */
+ /* stored password already encrypted, only do salt */
if (!EncryptMD5(shadow_pass + strlen("md5"),
(char *) port->md5Salt,
sizeof(port->md5Salt), crypt_pwd))
@@ -86,7 +86,7 @@ md5_crypt_verify(const Port *port, const char *role, char *client_pass)
}
else
{
- /* pg_shadow plain, double-encrypt */
+ /* stored password is plain, double-encrypt */
char *crypt_pwd2 = palloc(MD5_PASSWD_LEN + 1);
if (!EncryptMD5(shadow_pass,
@@ -121,10 +121,7 @@ md5_crypt_verify(const Port *port, const char *role, char *client_pass)
default:
if (isMD5(shadow_pass))
{
- /*
- * Encrypt user-supplied password to match MD5 in
- * pg_shadow
- */
+ /* Encrypt user-supplied password to match stored MD5 */
crypt_client_pass = palloc(MD5_PASSWD_LEN + 1);
if (!EncryptMD5(client_pass,
port->user_name,
diff --git a/src/backend/libpq/pg_hba.conf.sample b/src/backend/libpq/pg_hba.conf.sample
index b47ca578ae..7e1dde784b 100644
--- a/src/backend/libpq/pg_hba.conf.sample
+++ b/src/backend/libpq/pg_hba.conf.sample
@@ -20,7 +20,7 @@
# "host" is either a plain or SSL-encrypted TCP/IP socket, "hostssl" is an
# SSL-encrypted TCP/IP socket, and "hostnossl" is a plain TCP/IP socket.
#
-# DATABASE can be "all", "sameuser", "samegroup", a database name, or
+# DATABASE can be "all", "sameuser", "samerole", a database name, or
# a comma-separated list thereof.
#
# USER can be "all", a user name, a group name prefixed with "+", or
@@ -42,7 +42,7 @@
#
# Database and user names containing spaces, commas, quotes and other special
# characters must be quoted. Quoting one of the keywords "all", "sameuser" or
-# "samegroup" makes the name lose its special character, and just match a
+# "samerole" makes the name lose its special character, and just match a
# database or username with that name.
#
# This file is read on server startup and when the postmaster receives
diff --git a/src/backend/utils/misc/superuser.c b/src/backend/utils/misc/superuser.c
index 2c8f26a501..25a9c0119a 100644
--- a/src/backend/utils/misc/superuser.c
+++ b/src/backend/utils/misc/superuser.c
@@ -5,7 +5,7 @@
*
* All code should use either of these two functions to find out
* whether a given user is a superuser, rather than examining
- * pg_shadow.usesuper directly, so that the escape hatch built in for
+ * pg_authid.rolsuper directly, so that the escape hatch built in for
* the single-user case works.
*
*
diff --git a/src/bin/scripts/dropuser.c b/src/bin/scripts/dropuser.c
index f75b99a7d9..b0ca63c144 100644
--- a/src/bin/scripts/dropuser.c
+++ b/src/bin/scripts/dropuser.c
@@ -101,20 +101,20 @@ main(int argc, char *argv[])
}
if (dropuser == NULL)
- dropuser = simple_prompt("Enter name of user to drop: ", 128, true);
+ dropuser = simple_prompt("Enter name of role to drop: ", 128, true);
if (interactive)
{
char *reply;
- printf(_("User \"%s\" will be permanently removed.\n"), dropuser);
+ printf(_("Role \"%s\" will be permanently removed.\n"), dropuser);
reply = simple_prompt("Are you sure? (y/n) ", 1, true);
if (check_yesno_response(reply) != 1)
exit(0);
}
initPQExpBuffer(&sql);
- appendPQExpBuffer(&sql, "DROP USER %s;\n", fmtId(dropuser));
+ appendPQExpBuffer(&sql, "DROP ROLE %s;\n", fmtId(dropuser));
conn = connectDatabase("postgres", host, port, username, password, progname);
@@ -124,7 +124,7 @@ main(int argc, char *argv[])
if (PQresultStatus(result) != PGRES_COMMAND_OK)
{
- fprintf(stderr, _("%s: removal of user \"%s\" failed: %s"),
+ fprintf(stderr, _("%s: removal of role \"%s\" failed: %s"),
progname, dropuser, PQerrorMessage(conn));
PQfinish(conn);
exit(1);
@@ -133,7 +133,7 @@ main(int argc, char *argv[])
PQfinish(conn);
if (!quiet)
{
- puts("DROP USER");
+ puts("DROP ROLE");
fflush(stdout);
}
exit(0);
diff --git a/src/test/regress/expected/privileges.out b/src/test/regress/expected/privileges.out
index 293d84e8f4..354f5b2984 100644
--- a/src/test/regress/expected/privileges.out
+++ b/src/test/regress/expected/privileges.out
@@ -306,15 +306,15 @@ select has_table_privilege(current_user,'pg_authid','insert');
t
(1 row)
-select has_table_privilege(t2.usesysid,'pg_authid','update')
-from (select usesysid from pg_user where usename = current_user) as t2;
+select has_table_privilege(t2.oid,'pg_authid','update')
+from (select oid from pg_roles where rolname = current_user) as t2;
has_table_privilege
---------------------
t
(1 row)
-select has_table_privilege(t2.usesysid,'pg_authid','delete')
-from (select usesysid from pg_user where usename = current_user) as t2;
+select has_table_privilege(t2.oid,'pg_authid','delete')
+from (select oid from pg_roles where rolname = current_user) as t2;
has_table_privilege
---------------------
t
@@ -334,17 +334,17 @@ from (select oid from pg_class where relname = 'pg_authid') as t1;
t
(1 row)
-select has_table_privilege(t2.usesysid,t1.oid,'select')
+select has_table_privilege(t2.oid,t1.oid,'select')
from (select oid from pg_class where relname = 'pg_authid') as t1,
- (select usesysid from pg_user where usename = current_user) as t2;
+ (select oid from pg_roles where rolname = current_user) as t2;
has_table_privilege
---------------------
t
(1 row)
-select has_table_privilege(t2.usesysid,t1.oid,'insert')
+select has_table_privilege(t2.oid,t1.oid,'insert')
from (select oid from pg_class where relname = 'pg_authid') as t1,
- (select usesysid from pg_user where usename = current_user) as t2;
+ (select oid from pg_roles where rolname = current_user) as t2;
has_table_privilege
---------------------
t
@@ -390,15 +390,15 @@ select has_table_privilege(current_user,'pg_class','insert');
f
(1 row)
-select has_table_privilege(t2.usesysid,'pg_class','update')
-from (select usesysid from pg_user where usename = current_user) as t2;
+select has_table_privilege(t2.oid,'pg_class','update')
+from (select oid from pg_roles where rolname = current_user) as t2;
has_table_privilege
---------------------
f
(1 row)
-select has_table_privilege(t2.usesysid,'pg_class','delete')
-from (select usesysid from pg_user where usename = current_user) as t2;
+select has_table_privilege(t2.oid,'pg_class','delete')
+from (select oid from pg_roles where rolname = current_user) as t2;
has_table_privilege
---------------------
f
@@ -418,17 +418,17 @@ from (select oid from pg_class where relname = 'pg_class') as t1;
f
(1 row)
-select has_table_privilege(t2.usesysid,t1.oid,'select')
+select has_table_privilege(t2.oid,t1.oid,'select')
from (select oid from pg_class where relname = 'pg_class') as t1,
- (select usesysid from pg_user where usename = current_user) as t2;
+ (select oid from pg_roles where rolname = current_user) as t2;
has_table_privilege
---------------------
t
(1 row)
-select has_table_privilege(t2.usesysid,t1.oid,'insert')
+select has_table_privilege(t2.oid,t1.oid,'insert')
from (select oid from pg_class where relname = 'pg_class') as t1,
- (select usesysid from pg_user where usename = current_user) as t2;
+ (select oid from pg_roles where rolname = current_user) as t2;
has_table_privilege
---------------------
f
@@ -472,15 +472,15 @@ select has_table_privilege(current_user,'atest1','insert');
f
(1 row)
-select has_table_privilege(t2.usesysid,'atest1','update')
-from (select usesysid from pg_user where usename = current_user) as t2;
+select has_table_privilege(t2.oid,'atest1','update')
+from (select oid from pg_roles where rolname = current_user) as t2;
has_table_privilege
---------------------
f
(1 row)
-select has_table_privilege(t2.usesysid,'atest1','delete')
-from (select usesysid from pg_user where usename = current_user) as t2;
+select has_table_privilege(t2.oid,'atest1','delete')
+from (select oid from pg_roles where rolname = current_user) as t2;
has_table_privilege
---------------------
f
@@ -500,17 +500,17 @@ from (select oid from pg_class where relname = 'atest1') as t1;
f
(1 row)
-select has_table_privilege(t2.usesysid,t1.oid,'select')
+select has_table_privilege(t2.oid,t1.oid,'select')
from (select oid from pg_class where relname = 'atest1') as t1,
- (select usesysid from pg_user where usename = current_user) as t2;
+ (select oid from pg_roles where rolname = current_user) as t2;
has_table_privilege
---------------------
t
(1 row)
-select has_table_privilege(t2.usesysid,t1.oid,'insert')
+select has_table_privilege(t2.oid,t1.oid,'insert')
from (select oid from pg_class where relname = 'atest1') as t1,
- (select usesysid from pg_user where usename = current_user) as t2;
+ (select oid from pg_roles where rolname = current_user) as t2;
has_table_privilege
---------------------
f
diff --git a/src/test/regress/sql/privileges.sql b/src/test/regress/sql/privileges.sql
index ce65fefe61..ad08b7968e 100644
--- a/src/test/regress/sql/privileges.sql
+++ b/src/test/regress/sql/privileges.sql
@@ -205,22 +205,22 @@ select has_table_privilege(1,'rule');
select has_table_privilege(current_user,'pg_authid','select');
select has_table_privilege(current_user,'pg_authid','insert');
-select has_table_privilege(t2.usesysid,'pg_authid','update')
-from (select usesysid from pg_user where usename = current_user) as t2;
-select has_table_privilege(t2.usesysid,'pg_authid','delete')
-from (select usesysid from pg_user where usename = current_user) as t2;
+select has_table_privilege(t2.oid,'pg_authid','update')
+from (select oid from pg_roles where rolname = current_user) as t2;
+select has_table_privilege(t2.oid,'pg_authid','delete')
+from (select oid from pg_roles where rolname = current_user) as t2;
select has_table_privilege(current_user,t1.oid,'rule')
from (select oid from pg_class where relname = 'pg_authid') as t1;
select has_table_privilege(current_user,t1.oid,'references')
from (select oid from pg_class where relname = 'pg_authid') as t1;
-select has_table_privilege(t2.usesysid,t1.oid,'select')
+select has_table_privilege(t2.oid,t1.oid,'select')
from (select oid from pg_class where relname = 'pg_authid') as t1,
- (select usesysid from pg_user where usename = current_user) as t2;
-select has_table_privilege(t2.usesysid,t1.oid,'insert')
+ (select oid from pg_roles where rolname = current_user) as t2;
+select has_table_privilege(t2.oid,t1.oid,'insert')
from (select oid from pg_class where relname = 'pg_authid') as t1,
- (select usesysid from pg_user where usename = current_user) as t2;
+ (select oid from pg_roles where rolname = current_user) as t2;
select has_table_privilege('pg_authid','update');
select has_table_privilege('pg_authid','delete');
@@ -236,22 +236,22 @@ SET SESSION AUTHORIZATION regressuser3;
select has_table_privilege(current_user,'pg_class','select');
select has_table_privilege(current_user,'pg_class','insert');
-select has_table_privilege(t2.usesysid,'pg_class','update')
-from (select usesysid from pg_user where usename = current_user) as t2;
-select has_table_privilege(t2.usesysid,'pg_class','delete')
-from (select usesysid from pg_user where usename = current_user) as t2;
+select has_table_privilege(t2.oid,'pg_class','update')
+from (select oid from pg_roles where rolname = current_user) as t2;
+select has_table_privilege(t2.oid,'pg_class','delete')
+from (select oid from pg_roles where rolname = current_user) as t2;
select has_table_privilege(current_user,t1.oid,'rule')
from (select oid from pg_class where relname = 'pg_class') as t1;
select has_table_privilege(current_user,t1.oid,'references')
from (select oid from pg_class where relname = 'pg_class') as t1;
-select has_table_privilege(t2.usesysid,t1.oid,'select')
+select has_table_privilege(t2.oid,t1.oid,'select')
from (select oid from pg_class where relname = 'pg_class') as t1,
- (select usesysid from pg_user where usename = current_user) as t2;
-select has_table_privilege(t2.usesysid,t1.oid,'insert')
+ (select oid from pg_roles where rolname = current_user) as t2;
+select has_table_privilege(t2.oid,t1.oid,'insert')
from (select oid from pg_class where relname = 'pg_class') as t1,
- (select usesysid from pg_user where usename = current_user) as t2;
+ (select oid from pg_roles where rolname = current_user) as t2;
select has_table_privilege('pg_class','update');
select has_table_privilege('pg_class','delete');
@@ -264,22 +264,22 @@ from (select oid from pg_class where relname = 'pg_class') as t1;
select has_table_privilege(current_user,'atest1','select');
select has_table_privilege(current_user,'atest1','insert');
-select has_table_privilege(t2.usesysid,'atest1','update')
-from (select usesysid from pg_user where usename = current_user) as t2;
-select has_table_privilege(t2.usesysid,'atest1','delete')
-from (select usesysid from pg_user where usename = current_user) as t2;
+select has_table_privilege(t2.oid,'atest1','update')
+from (select oid from pg_roles where rolname = current_user) as t2;
+select has_table_privilege(t2.oid,'atest1','delete')
+from (select oid from pg_roles where rolname = current_user) as t2;
select has_table_privilege(current_user,t1.oid,'rule')
from (select oid from pg_class where relname = 'atest1') as t1;
select has_table_privilege(current_user,t1.oid,'references')
from (select oid from pg_class where relname = 'atest1') as t1;
-select has_table_privilege(t2.usesysid,t1.oid,'select')
+select has_table_privilege(t2.oid,t1.oid,'select')
from (select oid from pg_class where relname = 'atest1') as t1,
- (select usesysid from pg_user where usename = current_user) as t2;
-select has_table_privilege(t2.usesysid,t1.oid,'insert')
+ (select oid from pg_roles where rolname = current_user) as t2;
+select has_table_privilege(t2.oid,t1.oid,'insert')
from (select oid from pg_class where relname = 'atest1') as t1,
- (select usesysid from pg_user where usename = current_user) as t2;
+ (select oid from pg_roles where rolname = current_user) as t2;
select has_table_privilege('atest1','update');
select has_table_privilege('atest1','delete');
diff --git a/src/tutorial/syscat.source b/src/tutorial/syscat.source
index 27f50df14b..f84b9d7326 100644
--- a/src/tutorial/syscat.source
+++ b/src/tutorial/syscat.source
@@ -18,13 +18,12 @@
SET SEARCH_PATH TO pg_catalog;
--
--- lists the name of all database adminstrators and the name of their
--- database(s)
+-- lists the names of all database owners and the name of their database(s)
--
-SELECT usename, datname
- FROM pg_user, pg_database
- WHERE usesysid = datdba
- ORDER BY usename, datname;
+SELECT rolname, datname
+ FROM pg_roles, pg_database
+ WHERE pg_roles.oid = datdba
+ ORDER BY rolname, datname;
--
-- lists all user-defined classes
@@ -81,15 +80,15 @@ SELECT n.nspname, c.relname, a.attname, format_type(t.oid, null) as typname
--
-- lists all user-defined base types (not including array types)
--
-SELECT n.nspname, u.usename, format_type(t.oid, null) as typname
- FROM pg_type t, pg_user u, pg_namespace n
- WHERE u.usesysid = t.typowner
+SELECT n.nspname, r.rolname, format_type(t.oid, null) as typname
+ FROM pg_type t, pg_roles r, pg_namespace n
+ WHERE r.oid = t.typowner
and t.typnamespace = n.oid
- and t.typrelid = '0'::oid -- no complex types
- and t.typelem = '0'::oid -- no arrays
- and n.nspname not like 'pg\\_%' -- no catalogs
+ and t.typrelid = 0 -- no complex types
+ and t.typelem = 0 -- no arrays
+ and n.nspname not like 'pg\\_%' -- no built-in types
and n.nspname != 'information_schema' -- no information_schema
- ORDER BY nspname, usename, typname;
+ ORDER BY nspname, rolname, typname;
--