ecpg - GRANT bug

Поиск
Список
Период
Сортировка
От Lee Kindness
Тема ecpg - GRANT bug
Дата
Msg-id 15306.42927.291752.242179@elsick.csl.co.uk
обсуждение исходный текст
Ответы Re: ecpg - GRANT bug  (Bruce Momjian <pgman@candle.pha.pa.us>)
Re: ecpg - GRANT bug  (Tom Lane <tgl@sss.pgh.pa.us>)
Re: ecpg - GRANT bug  (Bruce Momjian <pgman@candle.pha.pa.us>)
Re: ecpg - GRANT bug  (Bruce Momjian <pgman@candle.pha.pa.us>)
Список 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
acceptthat 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.
Onlyrelation 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; }         ;  




В списке pgsql-hackers по дате отправления:

Предыдущее
От: Teodor Sigaev
Дата:
Сообщение: Re: New contrib/tsearch module for 7.2
Следующее
От: "Zeugswetter Andreas SB SD"
Дата:
Сообщение: http link to ftp download area broken