Content-Length: 279494 | pFad | http://github.com/postgrespro/postgres/commit/c01a56c884462f4ae09254db1f270032f9602b8c

99 Fix BuildIndexValueDescription for expressions · postgrespro/postgres@c01a56c · GitHub
Skip to content

Commit c01a56c

Browse files
committed
Fix BuildIndexValueDescription for expressions
In 804b6b6 we modified BuildIndexValueDescription to pay attention to which columns are visible to the user, but unfortunatley that commit neglected to consider indexes which are built on expressions. Handle error-reporting of violations of constraint indexes based on expressions by not returning any detail when the user does not have table-level SELECT rights. Backpatch to 9.0, as the prior commit was. Pointed out by Tom.
1 parent 290c2da commit c01a56c

File tree

1 file changed

+9
-4
lines changed

1 file changed

+9
-4
lines changed

src/backend/access/index/genam.c

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -206,10 +206,15 @@ BuildIndexValueDescription(Relation indexRelation,
206206
{
207207
AttrNumber attnum = idxrec->indkey.values[keyno];
208208

209-
aclresult = pg_attribute_aclcheck(indrelid, attnum, GetUserId(),
210-
ACL_SELECT);
211-
212-
if (aclresult != ACLCHECK_OK)
209+
/*
210+
* Note that if attnum == InvalidAttrNumber, then this is an
211+
* index based on an expression and we return no detail rather
212+
* than try to figure out what column(s) the expression includes
213+
* and if the user has SELECT rights on them.
214+
*/
215+
if (attnum == InvalidAttrNumber ||
216+
pg_attribute_aclcheck(indrelid, attnum, GetUserId(),
217+
ACL_SELECT) != ACLCHECK_OK)
213218
{
214219
/* No access, so clean up and return */
215220
ReleaseSysCache(ht_idx);

0 commit comments

Comments
 (0)








ApplySandwichStrip

pFad - (p)hone/(F)rame/(a)nonymizer/(d)eclutterfier!      Saves Data!


--- a PPN by Garber Painting Akron. With Image Size Reduction included!

Fetched URL: http://github.com/postgrespro/postgres/commit/c01a56c884462f4ae09254db1f270032f9602b8c

Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy