Re: ecpg - GRANT bug
От | Bruce Momjian |
---|---|
Тема | Re: ecpg - GRANT bug |
Дата | |
Msg-id | 200110181459.f9IExuU10227@candle.pha.pa.us обсуждение исходный текст |
Ответ на | Re: ecpg - GRANT bug (Lee Kindness <lkindness@csl.co.uk>) |
Список | pgsql-hackers |
Michael will apply the required patches. > Bruce Momjian writes: > > Lee Kindness writes: > > > In which case a number of other cases should be weeded out of > > > parser.y and passed onto the backend: > > > [ snip ] > > > Let me known if you want a patch for these cases too. > > Sure, send them on over. > > Patch below, it changes: > > 1. A number of mmerror(ET_ERROR) to mmerror(ET_NOTICE), passing on > the (currently) unsupported options to the backend with warning. > > 2. Standardises warning messages in such cases. > > 3. Corrects typo in passing of 'CREATE FUNCTION/INOUT' parameter. > > Patch: > > ? interfaces/ecpg/preproc/ecpg > Index: interfaces/ecpg/preproc/preproc.y > =================================================================== > RCS file: /projects/cvsroot/pgsql/src/interfaces/ecpg/preproc/preproc.y,v > retrieving revision 1.161 > diff -c -r1.161 preproc.y > *** interfaces/ecpg/preproc/preproc.y 2001/10/15 20:15:09 1.161 > --- interfaces/ecpg/preproc/preproc.y 2001/10/16 09:15:53 > *************** > *** 1074,1084 **** > | LOCAL TEMPORARY { $$ = make_str("local temporary"); } > | LOCAL TEMP { $$ = make_str("local temp"); } > | GLOBAL TEMPORARY { > ! mmerror(ET_ERROR, "GLOBAL TEMPORARY TABLE is not currently supported"); > $$ = make_str("global temporary"); > } > | GLOBAL TEMP { > ! mmerror(ET_ERROR, "GLOBAL TEMPORARY TABLE is not currently supported"); > $$ = make_str("global temp"); > } > | /*EMPTY*/ { $$ = EMPTY; } > --- 1074,1084 ---- > | LOCAL TEMPORARY { $$ = make_str("local temporary"); } > | LOCAL TEMP { $$ = make_str("local temp"); } > | GLOBAL TEMPORARY { > ! mmerror(ET_NOTICE, "Currently unsupported CREATE TABLE/GLOBAL TEMPORARY will be passed to backend"); > $$ = make_str("global temporary"); > } > | GLOBAL TEMP { > ! mmerror(ET_NOTICE, "Currently unsupported CREATE TABLE/GLOBAL TEMP will be passed to backend"); > $$ = make_str("global temp"); > } > | /*EMPTY*/ { $$ = EMPTY; } > *************** > *** 1103,1110 **** > { > if (strlen($4) > 0) > { > ! sprintf(errortext, "CREATE TABLE/COLLATE %s not yet implemented; clause ignored", $4); > ! mmerror(ET_NOTICE, errortext); > } > $$ = cat_str(4, $1, $2, $3, $4); > } > --- 1103,1110 ---- > { > if (strlen($4) > 0) > { > ! sprintf(errortext, "Currently unsupported CREATE TABLE/COLLATE %s will be passed to backend",$4); > ! mmerror(ET_NOTICE, errortext); > } > $$ = cat_str(4, $1, $2, $3, $4); > } > *************** > *** 1219,1225 **** > } > | MATCH PARTIAL > { > ! mmerror(ET_NOTICE, "FOREIGN KEY/MATCH PARTIAL not yet implemented"); > $$ = make_str("match partial"); > } > | /*EMPTY*/ > --- 1219,1225 ---- > } > | MATCH PARTIAL > { > ! mmerror(ET_NOTICE, "Currently unsupported FOREIGN KEY/MATCH PARTIAL will be passed to backend"); > $$ = make_str("match partial"); > } > | /*EMPTY*/ > *************** > *** 1614,1620 **** > | BACKWARD { $$ = make_str("backward"); } > | RELATIVE { $$ = make_str("relative"); } > | ABSOLUTE { > ! mmerror(ET_NOTICE, "FETCH/ABSOLUTE not supported, backend will use RELATIVE"); > $$ = make_str("absolute"); > } > ; > --- 1614,1620 ---- > | BACKWARD { $$ = make_str("backward"); } > | RELATIVE { $$ = make_str("relative"); } > | ABSOLUTE { > ! mmerror(ET_NOTICE, "Currently unsupported FETCH/ABSOLUTE will be passed to backend, backend willuse RELATIVE"); > $$ = make_str("absolute"); > } > ; > *************** > *** 1769,1775 **** > | grantee_list ',' grantee { $$ = cat_str(3, $1, make_str(","), $3); } > ; > > ! opt_with_grant: WITH GRANT OPTION { $$ = make_str("with grant option"); } > | /*EMPTY*/ { $$ = EMPTY; } > ; > > --- 1769,1779 ---- > | grantee_list ',' grantee { $$ = cat_str(3, $1, make_str(","), $3); } > ; > > ! opt_with_grant: WITH GRANT OPTION > ! { > ! mmerror(ET_NOTICE, "Currently unsupported GRANT/WITH GRANT OPTION will be passed to backend"); > ! $$ = make_str("with grant option"); > ! } > | /*EMPTY*/ { $$ = EMPTY; } > ; > > *************** > *** 1919,1932 **** > > opt_arg: IN { $$ = make_str("in"); } > | OUT { > ! mmerror(ET_ERROR, "CREATE FUNCTION/OUT parameters are not supported"); > > $$ = make_str("out"); > } > | INOUT { > ! mmerror(ET_ERROR, "CREATE FUNCTION/INOUT parameters are not supported"); > > ! $$ = make_str("oinut"); > } > ; > > --- 1923,1936 ---- > > opt_arg: IN { $$ = make_str("in"); } > | OUT { > ! mmerror(ET_NOTICE, "Currently unsupported CREATE FUNCTION/OUT will be passed to backend"); > > $$ = make_str("out"); > } > | INOUT { > ! mmerror(ET_NOTICE, "Currently unsupported CREATE FUNCTION/INOUT will be passed to backend"); > > ! $$ = make_str("inout"); > } > ; > > *************** > *** 2164,2170 **** > > opt_chain: AND NO CHAIN { $$ = make_str("and no chain"); } > | AND CHAIN { > ! mmerror(ET_ERROR, "COMMIT/CHAIN not yet supported"); > > $$ = make_str("and chain"); > } > --- 2168,2174 ---- > > opt_chain: AND NO CHAIN { $$ = make_str("and no chain"); } > | AND CHAIN { > ! mmerror(ET_NOTICE, "Currently unsupported COMMIT/CHAIN will be passed to backend"); > > $$ = make_str("and chain"); > } > *************** > *** 2609,2620 **** > } > | GLOBAL TEMPORARY opt_table relation_name > { > ! mmerror(ET_ERROR, "GLOBAL TEMPORARY TABLE is not currently supported"); > $$ = cat_str(3, make_str("global temporary"), $3, $4); > } > | GLOBAL TEMP opt_table relation_name > { > ! mmerror(ET_ERROR, "GLOBAL TEMPORARY TABLE is not currently supported"); > $$ = cat_str(3, make_str("global temp"), $3, $4); > } > | TABLE relation_name > --- 2613,2624 ---- > } > | GLOBAL TEMPORARY opt_table relation_name > { > ! mmerror(ET_NOTICE, "Currently unsupported CREATE TABLE/GLOBAL TEMPORARY will be passed to backend"); > $$ = cat_str(3, make_str("global temporary"), $3, $4); > } > | GLOBAL TEMP opt_table relation_name > { > ! mmerror(ET_NOTICE, "Currently unsupported CREATE TABLE/GLOBAL TEMP will be passed to backend"); > $$ = cat_str(3, make_str("global temp"), $3, $4); > } > | TABLE relation_name > > ---------------------------(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 по дате отправления:
Предыдущее
От: Lee KindnessДата:
Сообщение: How do I get a list of DB's or Tables with a postgres SQL statement?