Clean up some loose ends from the column privileges patch: add
authorTom Lane <tgl@sss.pgh.pa.us>
Fri, 6 Feb 2009 21:15:12 +0000 (21:15 +0000)
committerTom Lane <tgl@sss.pgh.pa.us>
Fri, 6 Feb 2009 21:15:12 +0000 (21:15 +0000)
commit159036181b9ed36ddf6dfa591ae40c48ea57ac32
tree56d44d2ad2348cc62209458ffd7a702677615108
parent4c7f9c1988b2a7506e3a60a9d5c086d5a0037fcd
Clean up some loose ends from the column privileges patch: add
has_column_privilege and has_any_column_privilege SQL functions; fix the
information_schema views that are supposed to pay attention to column
privileges; adjust pg_stats to show stats for any column you have select
privilege on; and fix COPY to allow copying a subset of columns if the user
has suitable per-column privileges for all the columns.

To improve efficiency of some of the information_schema views, extend the
has_xxx_privilege functions to allow inquiring about the OR of a set of
privileges in just one call.  This is just exposing capability that already
existed in the underlying aclcheck routines.

In passing, make the information_schema views report the owner's own
privileges as being grantable, since Postgres assumes this even when the grant
option bit is not set in the ACL.  This is a longstanding oversight.

Also, make the new has_xxx_privilege functions for foreign data objects follow
the same coding conventions used by the older ones.

Stephen Frost and Tom Lane
14 files changed:
doc/src/sgml/func.sgml
doc/src/sgml/information_schema.sgml
src/backend/catalog/aclchk.c
src/backend/catalog/information_schema.sql
src/backend/catalog/system_views.sql
src/backend/commands/copy.c
src/backend/utils/adt/acl.c
src/include/catalog/catversion.h
src/include/catalog/pg_proc.h
src/include/utils/builtins.h
src/test/regress/expected/foreign_data.out
src/test/regress/expected/privileges.out
src/test/regress/expected/rules.out
src/test/regress/sql/privileges.sql