Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commitc01a56c

Browse files
committed
Fix BuildIndexValueDescription for expressions
In804b6b6 we modifiedBuildIndexValueDescription to pay attention to which columns are visibleto the user, but unfortunatley that commit neglected to consider indexeswhich are built on expressions.Handle error-reporting of violations of constraint indexes based onexpressions by not returning any detail when the user does not havetable-level SELECT rights.Backpatch to 9.0, as the prior commit was.Pointed out by Tom.
1 parent290c2da commitc01a56c

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
AttrNumberattnum=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)

[8]ページ先頭

©2009-2025 Movatter.jp