Index: src/backend/catalog/aclchk.c
===================================================================
RCS file: /cvsroot/pgsql-server/src/backend/catalog/aclchk.c,v
retrieving revision 1.78
diff -c -c -r1.78 aclchk.c
*** src/backend/catalog/aclchk.c	24 Sep 2002 23:14:25 -0000	1.78
--- src/backend/catalog/aclchk.c	4 Dec 2002 05:16:29 -0000
***************
*** 893,899 ****
   * Exported routine for checking a user's access privileges to a table
   */
  AclResult
! pg_class_aclcheck(Oid table_oid, Oid userid, AclMode mode)
  {
  	AclResult	result;
  	bool		usesuper,
--- 893,899 ----
   * Exported routine for checking a user's access privileges to a table
   */
  AclResult
! pg_class_aclcheck(Oid table_oid, AclId userid, AclMode mode)
  {
  	AclResult	result;
  	bool		usesuper,
***************
*** 991,997 ****
   * Exported routine for checking a user's access privileges to a database
   */
  AclResult
! pg_database_aclcheck(Oid db_oid, Oid userid, AclMode mode)
  {
  	AclResult	result;
  	Relation	pg_database;
--- 991,997 ----
   * Exported routine for checking a user's access privileges to a database
   */
  AclResult
! pg_database_aclcheck(Oid db_oid, AclId userid, AclMode mode)
  {
  	AclResult	result;
  	Relation	pg_database;
***************
*** 1054,1060 ****
   * Exported routine for checking a user's access privileges to a function
   */
  AclResult
! pg_proc_aclcheck(Oid proc_oid, Oid userid, AclMode mode)
  {
  	AclResult	result;
  	HeapTuple	tuple;
--- 1054,1060 ----
   * Exported routine for checking a user's access privileges to a function
   */
  AclResult
! pg_proc_aclcheck(Oid proc_oid, AclId userid, AclMode mode)
  {
  	AclResult	result;
  	HeapTuple	tuple;
***************
*** 1107,1113 ****
   * Exported routine for checking a user's access privileges to a language
   */
  AclResult
! pg_language_aclcheck(Oid lang_oid, Oid userid, AclMode mode)
  {
  	AclResult	result;
  	HeapTuple	tuple;
--- 1107,1113 ----
   * Exported routine for checking a user's access privileges to a language
   */
  AclResult
! pg_language_aclcheck(Oid lang_oid, AclId userid, AclMode mode)
  {
  	AclResult	result;
  	HeapTuple	tuple;
***************
*** 1157,1163 ****
   * Exported routine for checking a user's access privileges to a namespace
   */
  AclResult
! pg_namespace_aclcheck(Oid nsp_oid, Oid userid, AclMode mode)
  {
  	AclResult	result;
  	HeapTuple	tuple;
--- 1157,1163 ----
   * Exported routine for checking a user's access privileges to a namespace
   */
  AclResult
! pg_namespace_aclcheck(Oid nsp_oid, AclId userid, AclMode mode)
  {
  	AclResult	result;
  	HeapTuple	tuple;
***************
*** 1218,1224 ****
   * Ownership check for a relation (specified by OID).
   */
  bool
! pg_class_ownercheck(Oid class_oid, Oid userid)
  {
  	HeapTuple	tuple;
  	AclId		owner_id;
--- 1218,1224 ----
   * Ownership check for a relation (specified by OID).
   */
  bool
! pg_class_ownercheck(Oid class_oid, AclId userid)
  {
  	HeapTuple	tuple;
  	AclId		owner_id;
***************
*** 1244,1250 ****
   * Ownership check for a type (specified by OID).
   */
  bool
! pg_type_ownercheck(Oid type_oid, Oid userid)
  {
  	HeapTuple	tuple;
  	AclId		owner_id;
--- 1244,1250 ----
   * Ownership check for a type (specified by OID).
   */
  bool
! pg_type_ownercheck(Oid type_oid, AclId userid)
  {
  	HeapTuple	tuple;
  	AclId		owner_id;
***************
*** 1270,1276 ****
   * Ownership check for an operator (specified by OID).
   */
  bool
! pg_oper_ownercheck(Oid oper_oid, Oid userid)
  {
  	HeapTuple	tuple;
  	AclId		owner_id;
--- 1270,1276 ----
   * Ownership check for an operator (specified by OID).
   */
  bool
! pg_oper_ownercheck(Oid oper_oid, AclId userid)
  {
  	HeapTuple	tuple;
  	AclId		owner_id;
***************
*** 1296,1302 ****
   * Ownership check for a function (specified by OID).
   */
  bool
! pg_proc_ownercheck(Oid proc_oid, Oid userid)
  {
  	HeapTuple	tuple;
  	AclId		owner_id;
--- 1296,1302 ----
   * Ownership check for a function (specified by OID).
   */
  bool
! pg_proc_ownercheck(Oid proc_oid, AclId userid)
  {
  	HeapTuple	tuple;
  	AclId		owner_id;
***************
*** 1322,1328 ****
   * Ownership check for a namespace (specified by OID).
   */
  bool
! pg_namespace_ownercheck(Oid nsp_oid, Oid userid)
  {
  	HeapTuple	tuple;
  	AclId		owner_id;
--- 1322,1328 ----
   * Ownership check for a namespace (specified by OID).
   */
  bool
! pg_namespace_ownercheck(Oid nsp_oid, AclId userid)
  {
  	HeapTuple	tuple;
  	AclId		owner_id;
***************
*** 1349,1355 ****
   * Ownership check for an operator class (specified by OID).
   */
  bool
! pg_opclass_ownercheck(Oid opc_oid, Oid userid)
  {
  	HeapTuple	tuple;
  	AclId		owner_id;
--- 1349,1355 ----
   * Ownership check for an operator class (specified by OID).
   */
  bool
! pg_opclass_ownercheck(Oid opc_oid, AclId userid)
  {
  	HeapTuple	tuple;
  	AclId		owner_id;
Index: src/backend/catalog/namespace.c
===================================================================
RCS file: /cvsroot/pgsql-server/src/backend/catalog/namespace.c,v
retrieving revision 1.40
diff -c -c -r1.40 namespace.c
*** src/backend/catalog/namespace.c	11 Nov 2002 22:19:21 -0000	1.40
--- src/backend/catalog/namespace.c	4 Dec 2002 05:16:36 -0000
***************
*** 1365,1371 ****
  static void
  recomputeNamespacePath(void)
  {
! 	Oid			userId = GetUserId();
  	char	   *rawname;
  	List	   *namelist;
  	List	   *oidlist;
--- 1365,1371 ----
  static void
  recomputeNamespacePath(void)
  {
! 	AclId		userId = GetUserId();
  	char	   *rawname;
  	List	   *namelist;
  	List	   *oidlist;
Index: src/backend/catalog/pg_conversion.c
===================================================================
RCS file: /cvsroot/pgsql-server/src/backend/catalog/pg_conversion.c,v
retrieving revision 1.8
diff -c -c -r1.8 pg_conversion.c
*** src/backend/catalog/pg_conversion.c	2 Nov 2002 18:41:21 -0000	1.8
--- src/backend/catalog/pg_conversion.c	4 Dec 2002 05:16:37 -0000
***************
*** 37,43 ****
   */
  Oid
  ConversionCreate(const char *conname, Oid connamespace,
! 				 int32 conowner,
  				 int32 conforencoding, int32 contoencoding,
  				 Oid conproc, bool def)
  {
--- 37,43 ----
   */
  Oid
  ConversionCreate(const char *conname, Oid connamespace,
! 				 AclId conowner,
  				 int32 conforencoding, int32 contoencoding,
  				 Oid conproc, bool def)
  {
Index: src/backend/commands/cluster.c
===================================================================
RCS file: /cvsroot/pgsql-server/src/backend/commands/cluster.c,v
retrieving revision 1.97
diff -c -c -r1.97 cluster.c
*** src/backend/commands/cluster.c	23 Nov 2002 18:26:45 -0000	1.97
--- src/backend/commands/cluster.c	4 Dec 2002 05:16:37 -0000
***************
*** 804,814 ****
  
  /* Get a list of tables that the current user owns and
   * have indisclustered set.  Return the list in a List * of rvsToCluster
!  * with the tableOid and the indexOid on which the table is already 
   * clustered.
   */
  List *
! get_tables_to_cluster(Oid owner)
  {
  	Relation		indRelation;
  	HeapScanDesc	scan;
--- 804,814 ----
  
  /* Get a list of tables that the current user owns and
   * have indisclustered set.  Return the list in a List * of rvsToCluster
!  * with the tableOid and the indexOid on which the table is already
   * clustered.
   */
  List *
! get_tables_to_cluster(AclId owner)
  {
  	Relation		indRelation;
  	HeapScanDesc	scan;
Index: src/backend/utils/adt/pgstatfuncs.c
===================================================================
RCS file: /cvsroot/pgsql-server/src/backend/utils/adt/pgstatfuncs.c,v
retrieving revision 1.8
diff -c -c -r1.8 pgstatfuncs.c
*** src/backend/utils/adt/pgstatfuncs.c	20 Aug 2002 04:47:52 -0000	1.8
--- src/backend/utils/adt/pgstatfuncs.c	4 Dec 2002 05:16:38 -0000
***************
*** 272,278 ****
  	if ((beentry = pgstat_fetch_stat_beentry(beid)) == NULL)
  		PG_RETURN_NULL();
  
! 	PG_RETURN_OID(beentry->userid);
  }
  
  
--- 272,278 ----
  	if ((beentry = pgstat_fetch_stat_beentry(beid)) == NULL)
  		PG_RETURN_NULL();
  
! 	PG_RETURN_INT32(beentry->userid);
  }
  
  
Index: src/include/miscadmin.h
===================================================================
RCS file: /cvsroot/pgsql-server/src/include/miscadmin.h,v
retrieving revision 1.111
diff -c -c -r1.111 miscadmin.h
*** src/include/miscadmin.h	3 Oct 2002 17:07:53 -0000	1.111
--- src/include/miscadmin.h	4 Dec 2002 05:16:39 -0000
***************
*** 202,208 ****
  
  extern char *GetUserNameFromId(Oid userid);
  
! extern Oid	GetUserId(void);
  extern void SetUserId(Oid userid);
  extern Oid	GetSessionUserId(void);
  extern void SetSessionUserId(Oid userid);
--- 202,214 ----
  
  extern char *GetUserNameFromId(Oid userid);
  
! /*
!  * AclId		system identifier for the user, group, etc.
!  *				XXX Perhaps replace this type by OID?
!  */
! typedef uint32 AclId;
! 
! extern AclId GetUserId(void);
  extern void SetUserId(Oid userid);
  extern Oid	GetSessionUserId(void);
  extern void SetSessionUserId(Oid userid);
Index: src/include/catalog/catversion.h
===================================================================
RCS file: /cvsroot/pgsql-server/src/include/catalog/catversion.h,v
retrieving revision 1.166
diff -c -c -r1.166 catversion.h
*** src/include/catalog/catversion.h	25 Nov 2002 18:12:11 -0000	1.166
--- src/include/catalog/catversion.h	4 Dec 2002 05:16:39 -0000
***************
*** 53,58 ****
   */
  
  /*							yyyymmddN */
! #define CATALOG_VERSION_NO	200211251
  
  #endif
--- 53,58 ----
   */
  
  /*							yyyymmddN */
! #define CATALOG_VERSION_NO	200212031
  
  #endif
Index: src/include/catalog/pg_conversion.h
===================================================================
RCS file: /cvsroot/pgsql-server/src/include/catalog/pg_conversion.h,v
retrieving revision 1.7
diff -c -c -r1.7 pg_conversion.h
*** src/include/catalog/pg_conversion.h	2 Nov 2002 02:33:03 -0000	1.7
--- src/include/catalog/pg_conversion.h	4 Dec 2002 05:16:40 -0000
***************
*** 19,24 ****
--- 19,26 ----
  #ifndef PG_CONVERSION_H
  #define PG_CONVERSION_H
  
+ #include "miscadmin.h"
+ 
  /* ----------------
   *		postgres.h contains the system type definitions and the
   *		CATALOG(), BOOTSTRAP and DATA() sugar words so this file
***************
*** 84,90 ****
  #include "nodes/parsenodes.h"
  
  extern Oid ConversionCreate(const char *conname, Oid connamespace,
! 				 int32 conowner,
  				 int32 conforencoding, int32 contoencoding,
  				 Oid conproc, bool def);
  extern void ConversionDrop(Oid conversionOid, DropBehavior behavior);
--- 86,92 ----
  #include "nodes/parsenodes.h"
  
  extern Oid ConversionCreate(const char *conname, Oid connamespace,
! 				 AclId conowner,
  				 int32 conforencoding, int32 contoencoding,
  				 Oid conproc, bool def);
  extern void ConversionDrop(Oid conversionOid, DropBehavior behavior);
Index: src/include/catalog/pg_proc.h
===================================================================
RCS file: /cvsroot/pgsql-server/src/include/catalog/pg_proc.h,v
retrieving revision 1.276
diff -c -c -r1.276 pg_proc.h
*** src/include/catalog/pg_proc.h	8 Nov 2002 17:27:03 -0000	1.276
--- src/include/catalog/pg_proc.h	4 Dec 2002 05:16:48 -0000
***************
*** 2738,2744 ****
  DESCR("Statistics: PID of backend");
  DATA(insert OID = 1938 (  pg_stat_get_backend_dbid		PGNSP PGUID 12 f f t f s 1 26 "23"	pg_stat_get_backend_dbid - _null_ ));
  DESCR("Statistics: Database ID of backend");
! DATA(insert OID = 1939 (  pg_stat_get_backend_userid	PGNSP PGUID 12 f f t f s 1 26 "23"	pg_stat_get_backend_userid - _null_ ));
  DESCR("Statistics: User ID of backend");
  DATA(insert OID = 1940 (  pg_stat_get_backend_activity	PGNSP PGUID 12 f f t f s 1 25 "23"	pg_stat_get_backend_activity - _null_ ));
  DESCR("Statistics: Current query of backend");
--- 2738,2744 ----
  DESCR("Statistics: PID of backend");
  DATA(insert OID = 1938 (  pg_stat_get_backend_dbid		PGNSP PGUID 12 f f t f s 1 26 "23"	pg_stat_get_backend_dbid - _null_ ));
  DESCR("Statistics: Database ID of backend");
! DATA(insert OID = 1939 (  pg_stat_get_backend_userid	PGNSP PGUID 12 f f t f s 1 23 "23"	pg_stat_get_backend_userid - _null_ ));
  DESCR("Statistics: User ID of backend");
  DATA(insert OID = 1940 (  pg_stat_get_backend_activity	PGNSP PGUID 12 f f t f s 1 25 "23"	pg_stat_get_backend_activity - _null_ ));
  DESCR("Statistics: Current query of backend");
Index: src/include/utils/acl.h
===================================================================
RCS file: /cvsroot/pgsql-server/src/include/utils/acl.h,v
retrieving revision 1.47
diff -c -c -r1.47 acl.h
*** src/include/utils/acl.h	4 Sep 2002 20:31:45 -0000	1.47
--- src/include/utils/acl.h	4 Dec 2002 05:16:48 -0000
***************
*** 22,37 ****
  #ifndef ACL_H
  #define ACL_H
  
  #include "nodes/parsenodes.h"
  #include "utils/array.h"
  
  
- /*
-  * AclId		system identifier for the user, group, etc.
-  *				XXX Perhaps replace this type by OID?
-  */
- typedef uint32 AclId;
- 
  #define ACL_ID_WORLD	0		/* placeholder for id in a WORLD acl item */
  
  /*
--- 22,32 ----
  #ifndef ACL_H
  #define ACL_H
  
+ #include "miscadmin.h"
  #include "nodes/parsenodes.h"
  #include "utils/array.h"
  
  
  #define ACL_ID_WORLD	0		/* placeholder for id in a WORLD acl item */
  
  /*
***************
*** 204,214 ****
  extern void aclcheck_error(AclResult errcode, const char *objectname);
  
  /* ownercheck routines just return true (owner) or false (not) */
! extern bool pg_class_ownercheck(Oid class_oid, Oid userid);
! extern bool pg_type_ownercheck(Oid type_oid, Oid userid);
! extern bool pg_oper_ownercheck(Oid oper_oid, Oid userid);
! extern bool pg_proc_ownercheck(Oid proc_oid, Oid userid);
! extern bool pg_namespace_ownercheck(Oid nsp_oid, Oid userid);
! extern bool pg_opclass_ownercheck(Oid opc_oid, Oid userid);
  
  #endif   /* ACL_H */
--- 199,209 ----
  extern void aclcheck_error(AclResult errcode, const char *objectname);
  
  /* ownercheck routines just return true (owner) or false (not) */
! extern bool pg_class_ownercheck(Oid class_oid, AclId userid);
! extern bool pg_type_ownercheck(Oid type_oid, AclId userid);
! extern bool pg_oper_ownercheck(Oid oper_oid, AclId userid);
! extern bool pg_proc_ownercheck(Oid proc_oid, AclId userid);
! extern bool pg_namespace_ownercheck(Oid nsp_oid, AclId userid);
! extern bool pg_opclass_ownercheck(Oid opc_oid, AclId userid);
  
  #endif   /* ACL_H */
Index: src/test/regress/expected/rules.out
===================================================================
RCS file: /cvsroot/pgsql-server/src/test/regress/expected/rules.out,v
retrieving revision 1.68
diff -c -c -r1.68 rules.out
*** src/test/regress/expected/rules.out	21 Nov 2002 22:26:01 -0000	1.68
--- src/test/regress/expected/rules.out	4 Dec 2002 05:16:50 -0000
***************
*** 1274,1280 ****
   pg_locks                 | SELECT l.relation, l."database", l."transaction", l.pid, l."mode", l.granted FROM pg_lock_status() l(relation oid, "database" oid, "transaction" xid, pid integer, "mode" text, granted boolean);
   pg_rules                 | SELECT n.nspname AS schemaname, c.relname AS tablename, r.rulename, pg_get_ruledef(r.oid) AS definition FROM ((pg_rewrite r JOIN pg_class c ON ((c.oid = r.ev_class))) LEFT JOIN pg_namespace n ON ((n.oid = c.relnamespace))) WHERE (r.rulename <> '_RETURN'::name);
   pg_settings              | SELECT a.name, a.setting FROM pg_show_all_settings() a(name text, setting text);
!  pg_stat_activity         | SELECT d.oid AS datid, d.datname, pg_stat_get_backend_pid(s.backendid) AS procpid, pg_stat_get_backend_userid(s.backendid) AS usesysid, u.usename, pg_stat_get_backend_activity(s.backendid) AS current_query FROM pg_database d, (SELECT pg_stat_get_backend_idset() AS backendid) s, pg_shadow u WHERE ((pg_stat_get_backend_dbid(s.backendid) = d.oid) AND (pg_stat_get_backend_userid(s.backendid) = (u.usesysid)::oid));
   pg_stat_all_indexes      | SELECT c.oid AS relid, i.oid AS indexrelid, n.nspname AS schemaname, c.relname, i.relname AS indexrelname, pg_stat_get_numscans(i.oid) AS idx_scan, pg_stat_get_tuples_returned(i.oid) AS idx_tup_read, pg_stat_get_tuples_fetched(i.oid) AS idx_tup_fetch FROM (((pg_class c JOIN pg_index x ON ((c.oid = x.indrelid))) JOIN pg_class i ON ((i.oid = x.indexrelid))) LEFT JOIN pg_namespace n ON ((n.oid = c.relnamespace))) WHERE (c.relkind = 'r'::"char");
   pg_stat_all_tables       | SELECT c.oid AS relid, n.nspname AS schemaname, c.relname, pg_stat_get_numscans(c.oid) AS seq_scan, pg_stat_get_tuples_returned(c.oid) AS seq_tup_read, sum(pg_stat_get_numscans(i.indexrelid)) AS idx_scan, sum(pg_stat_get_tuples_fetched(i.indexrelid)) AS idx_tup_fetch, pg_stat_get_tuples_inserted(c.oid) AS n_tup_ins, pg_stat_get_tuples_updated(c.oid) AS n_tup_upd, pg_stat_get_tuples_deleted(c.oid) AS n_tup_del FROM ((pg_class c LEFT JOIN pg_index i ON ((c.oid = i.indrelid))) LEFT JOIN pg_namespace n ON ((n.oid = c.relnamespace))) WHERE (c.relkind = 'r'::"char") GROUP BY c.oid, n.nspname, c.relname;
   pg_stat_database         | SELECT d.oid AS datid, d.datname, pg_stat_get_db_numbackends(d.oid) AS numbackends, pg_stat_get_db_xact_commit(d.oid) AS xact_commit, pg_stat_get_db_xact_rollback(d.oid) AS xact_rollback, (pg_stat_get_db_blocks_fetched(d.oid) - pg_stat_get_db_blocks_hit(d.oid)) AS blks_read, pg_stat_get_db_blocks_hit(d.oid) AS blks_hit FROM pg_database d;
--- 1274,1280 ----
   pg_locks                 | SELECT l.relation, l."database", l."transaction", l.pid, l."mode", l.granted FROM pg_lock_status() l(relation oid, "database" oid, "transaction" xid, pid integer, "mode" text, granted boolean);
   pg_rules                 | SELECT n.nspname AS schemaname, c.relname AS tablename, r.rulename, pg_get_ruledef(r.oid) AS definition FROM ((pg_rewrite r JOIN pg_class c ON ((c.oid = r.ev_class))) LEFT JOIN pg_namespace n ON ((n.oid = c.relnamespace))) WHERE (r.rulename <> '_RETURN'::name);
   pg_settings              | SELECT a.name, a.setting FROM pg_show_all_settings() a(name text, setting text);
!  pg_stat_activity         | SELECT d.oid AS datid, d.datname, pg_stat_get_backend_pid(s.backendid) AS procpid, pg_stat_get_backend_userid(s.backendid) AS usesysid, u.usename, pg_stat_get_backend_activity(s.backendid) AS current_query FROM pg_database d, (SELECT pg_stat_get_backend_idset() AS backendid) s, pg_shadow u WHERE ((pg_stat_get_backend_dbid(s.backendid) = d.oid) AND (pg_stat_get_backend_userid(s.backendid) = u.usesysid));
   pg_stat_all_indexes      | SELECT c.oid AS relid, i.oid AS indexrelid, n.nspname AS schemaname, c.relname, i.relname AS indexrelname, pg_stat_get_numscans(i.oid) AS idx_scan, pg_stat_get_tuples_returned(i.oid) AS idx_tup_read, pg_stat_get_tuples_fetched(i.oid) AS idx_tup_fetch FROM (((pg_class c JOIN pg_index x ON ((c.oid = x.indrelid))) JOIN pg_class i ON ((i.oid = x.indexrelid))) LEFT JOIN pg_namespace n ON ((n.oid = c.relnamespace))) WHERE (c.relkind = 'r'::"char");
   pg_stat_all_tables       | SELECT c.oid AS relid, n.nspname AS schemaname, c.relname, pg_stat_get_numscans(c.oid) AS seq_scan, pg_stat_get_tuples_returned(c.oid) AS seq_tup_read, sum(pg_stat_get_numscans(i.indexrelid)) AS idx_scan, sum(pg_stat_get_tuples_fetched(i.indexrelid)) AS idx_tup_fetch, pg_stat_get_tuples_inserted(c.oid) AS n_tup_ins, pg_stat_get_tuples_updated(c.oid) AS n_tup_upd, pg_stat_get_tuples_deleted(c.oid) AS n_tup_del FROM ((pg_class c LEFT JOIN pg_index i ON ((c.oid = i.indrelid))) LEFT JOIN pg_namespace n ON ((n.oid = c.relnamespace))) WHERE (c.relkind = 'r'::"char") GROUP BY c.oid, n.nspname, c.relname;
   pg_stat_database         | SELECT d.oid AS datid, d.datname, pg_stat_get_db_numbackends(d.oid) AS numbackends, pg_stat_get_db_xact_commit(d.oid) AS xact_commit, pg_stat_get_db_xact_rollback(d.oid) AS xact_rollback, (pg_stat_get_db_blocks_fetched(d.oid) - pg_stat_get_db_blocks_hit(d.oid)) AS blks_read, pg_stat_get_db_blocks_hit(d.oid) AS blks_hit FROM pg_database d;
