Re: ecpg - GRANT bug

Поиск
Список
Период
Сортировка
От Bruce Momjian
Тема Re: ecpg - GRANT bug
Дата
Msg-id 200110181459.f9IExql10220@candle.pha.pa.us
обсуждение исходный текст
Ответ на ecpg - GRANT bug  (Lee Kindness <lkindness@csl.co.uk>)
Список pgsql-hackers
Michael will apply the required patches.

> 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; }
>           ;
>   
>   
> 
> 
> 
> ---------------------------(end of broadcast)---------------------------
> TIP 5: Have you checked our extensive FAQ?
> 
> http://www.postgresql.org/users-lounge/docs/faq.html
> 

--  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 по дате отправления:

Предыдущее
От: Bruce Momjian
Дата:
Сообщение: Re: ecpg - GRANT bug
Следующее
От: Bruce Momjian
Дата:
Сообщение: Re: ecpg - GRANT bug