Re: ecpg - GRANT bug

From: Bruce Momjian <pgman(at)candle(dot)pha(dot)pa(dot)us>
To: Lee Kindness <lkindness(at)csl(dot)co(dot)uk>
Cc: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>, pgsql-hackers(at)postgresql(dot)org, Michael Meskes <meskes(at)postgresql(dot)org>
Subject: Re: ecpg - GRANT bug
Date: 2001-10-18 14:59:56
Message-ID: 200110181459.f9IExuU10227@candle.pha.pa.us
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-bugs 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 will use 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(at)candle(dot)pha(dot)pa(dot)us | (610) 853-3000
+ If your life is a hard drive, | 830 Blythe Avenue
+ Christ can be your backup. | Drexel Hill, Pennsylvania 19026

In response to

Browse pgsql-bugs by date

  From Date Subject
Next Message SunMie Won 2001-10-18 16:16:38 library path
Previous Message Bruce Momjian 2001-10-18 14:59:51 Re: ecpg - GRANT bug

Browse pgsql-hackers by date

  From Date Subject
Next Message Bill Studenmund 2001-10-18 16:28:13 Re: schema support, was Package support for Postgres
Previous Message Bruce Momjian 2001-10-18 14:59:51 Re: ecpg - GRANT bug