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