Re: ecpg - GRANT bug - Mailing list pgsql-hackers
| From | Bruce Momjian |
|---|---|
| Subject | Re: ecpg - GRANT bug |
| Date | |
| Msg-id | 200110151816.f9FIGOg13596@candle.pha.pa.us Whole thread Raw |
| In response to | ecpg - GRANT bug (Lee Kindness <lkindness@csl.co.uk>) |
| List | pgsql-hackers |
Patch applied. Thanks.
---------------------------------------------------------------------------
> 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; }
> ;
>
>
>
>
>
-- Bruce Momjian | http://candle.pha.pa.us pgman@candle.pha.pa.us | (610)
853-3000+ If your life is a hard drive, | 830 Blythe Avenue + Christ can be your backup. | Drexel Hill,
Pennsylvania19026
pgsql-hackers by date: