ecpg - GRANT bug

From: Lee Kindness <lkindness(at)csl(dot)co(dot)uk>
To: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
Cc: Lee Kindness <lkindness(at)csl(dot)co(dot)uk>, pgsql-hackers(at)postgresql(dot)org, Michael Meskes <meskes(at)postgresql(dot)org>, Bruce Momjian <pgman(at)candle(dot)pha(dot)pa(dot)us>
Subject: ecpg - GRANT bug
Date: 2001-10-15 09:09:03
Message-ID: 15306.42927.291752.242179@elsick.csl.co.uk
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-bugs pgsql-hackers

Tom Lane writes:
> Uh, isn't the correct fix
> ! $$ = cat_str(8, make_str("grant"), $2, make_str("on"), $4, $5,
> make_str("to"), $7, $8);
> ISTM your patch loses the opt_with_grant clause. (Of course the
> backend doesn't currently accept that clause anyway, but that's no
> reason for ecpg to drop it.)

My patch doesn't loose the option, it's never been passed on anyway:

opt_with_grant: WITH GRANT OPTION
{
mmerror(ET_ERROR, "WITH GRANT OPTION is not supported. Only relation owners can set privileges");
}
| /*EMPTY*/
;

The existing code in ecpg/preproc/preproc.y to handle the WITH option
simply throws an error and aborts the processing... The patch below
prevents the segfault and also passes on the WITH option to the
backend, probably a better fix.

Regards, Lee.

Index: interfaces/ecpg/preproc/preproc.y
===================================================================
RCS file: /projects/cvsroot/pgsql/src/interfaces/ecpg/preproc/preproc.y,v
retrieving revision 1.159
diff -c -r1.159 preproc.y
*** interfaces/ecpg/preproc/preproc.y 2001/10/14 12:07:57 1.159
--- interfaces/ecpg/preproc/preproc.y 2001/10/15 09:06:29
***************
*** 1693,1699 ****

GrantStmt: GRANT privileges ON opt_table relation_name_list TO grantee_list opt_with_grant
{
! $$ = cat_str(7, make_str("grant"), $2, make_str("on"), $4, $5, make_str("to"), $7);
}
;

--- 1693,1699 ----

GrantStmt: GRANT privileges ON opt_table relation_name_list TO grantee_list opt_with_grant
{
! $$ = cat_str(8, make_str("grant"), $2, make_str("on"), $4, $5, make_str("to"), $7, $8);
}
;

***************
*** 1769,1779 ****
| grantee_list ',' grantee { $$ = cat_str(3, $1, make_str(","), $3); }
;

! opt_with_grant: WITH GRANT OPTION
! {
! mmerror(ET_ERROR, "WITH GRANT OPTION is not supported. Only relation owners can set privileges");
! }
! | /*EMPTY*/
;


--- 1769,1776 ----
| grantee_list ',' grantee { $$ = cat_str(3, $1, make_str(","), $3); }
;

! opt_with_grant: WITH GRANT OPTION { $$ = make_str("with grant option"); }
! | /*EMPTY*/ { $$ = EMPTY; }
;

In response to

Responses

Browse pgsql-bugs by date

  From Date Subject
Next Message Mika Mantyla 2001-10-15 09:50:54 Re: [BUGS] SQLPutData bug ?
Previous Message Peter Eisentraut 2001-10-14 21:44:28 Re: Bug #481: java-building ant confused with xscreenhack-ant

Browse pgsql-hackers by date

  From Date Subject
Next Message Zeugswetter Andreas SB SD 2001-10-15 09:43:57 http link to ftp download area broken
Previous Message Teodor Sigaev 2001-10-15 08:55:58 Re: New contrib/tsearch module for 7.2