KaiGai, * KaiGai Kohei (kai...@ak.jp.nec.com) wrote: > The attached patch put invocations of markColumnForSelectPriv() > at transformJoinUsingClause() to mark those columns are used.
Thanks for the update! Attached is a patch which: - incorporates KaiGai's latest patches to deal with JOINs and NATURAL JOINs - adds regression tests following Tom's suggestion to check whole-row vars in the face of column add/deletes - adds regression tests for NATURAL JOIN and successful JOINs with table sub-sets - reworks pg_attribute_aclmask() to remove the looping component - adds a new pg_attribute_aclcheck_all() to handle the ANY/ALL needs of execMain and the looping - removes special handling of system columns, they can still be granted/revoked, but they won't be included in ANY/ALL tests and a table-wide REVOKE won't affect them. After thinking about it for a while, I felt this was the most sensible compromise between code complexity, following the SQL spec, and user freedom. - split out adding column revokes for table-level commands into a add_col_revokes function to clean up ExecGrant_Relation a bit. - when handling table-level revokes, skips over columns which do not have an ACL defined, since it clearly has no effect except to force creation of a default ACL that's just clutter. Comments, testing, etc, most appreciated! Thanks, Stephen
colprivs_2009011401.diff.gz
Description: Binary data
signature.asc
Description: Digital signature