Re: [HACKERS] Re: [SQL] prob with aggregate and group by - returns multiplesh - Mailing list pgsql-hackers

From Bruce Momjian
Subject Re: [HACKERS] Re: [SQL] prob with aggregate and group by - returns multiplesh
Date
Msg-id 200002291721.MAA26276@candle.pha.pa.us
Whole thread Raw
In response to Re: [HACKERS] Re: [SQL] prob with aggregate and group by - returns multiplesh  (Tom Lane <tgl@sss.pgh.pa.us>)
List pgsql-hackers
Looks good to me.

> Don Baccus <dhogaza@pacifier.com> writes:
> > I vote for the SQL92 TEMPORARY.  Let's not add a keyword that is non-standard
> > just because one or another commercial database makes use of it,
> 
> You're missing the point: we are not talking about *adding* a keyword,
> we're talking about *removing* one that we've already supported for
> a year or so.  That changes matters considerably, IMHO.
> 
> I have in fact been able to make a conflict-free grammar in which TEMP
> is accepted but not reserved.  It requires a certain amount of
> redundancy in the productions (see below), but I think this is a
> worthwhile tradeoff for not breaking existing user code.
> 
> Shall I commit this?
> 
>             regards, tom lane
> 
> 
> /*
>  * Redundancy here is needed to avoid shift/reduce conflicts,
>  * since TEMP is not a reserved word.  See also OptTemp.
>  *
>  * The result is a cons cell (not a true list!) containing
>  * a boolean and a table name.
>  */
> OptTempTableName:  TEMPORARY opt_table relation_name
>                 { $$ = lcons(makeInteger(TRUE), (List *) $3); }
>             | TEMP opt_table relation_name
>                 { $$ = lcons(makeInteger(TRUE), (List *) $3); }
>             | LOCAL TEMPORARY opt_table relation_name
>                 { $$ = lcons(makeInteger(TRUE), (List *) $4); }
>             | LOCAL TEMP opt_table relation_name
>                 { $$ = lcons(makeInteger(TRUE), (List *) $4); }
>             | GLOBAL TEMPORARY opt_table relation_name
>                 {
>                     elog(ERROR, "GLOBAL TEMPORARY TABLE is not currently supported");
>                     $$ = lcons(makeInteger(TRUE), (List *) $4);
>                 }
>             | GLOBAL TEMP opt_table relation_name
>                 {
>                     elog(ERROR, "GLOBAL TEMPORARY TABLE is not currently supported");
>                     $$ = lcons(makeInteger(TRUE), (List *) $4);
>                 }
>             | TABLE relation_name
>                 { $$ = lcons(makeInteger(FALSE), (List *) $2); }
>             | relation_name
>                 { $$ = lcons(makeInteger(FALSE), (List *) $1); }
>         ;
> 


--  Bruce Momjian                        |  http://www.op.net/~candle 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 by date:

Previous
From: Bruce Momjian
Date:
Subject: Re: [HACKERS] Re: [SQL] prob with aggregate and group by - returns multiplesh
Next
From: Tom Lane
Date:
Subject: Re: [HACKERS] Re: NOT {NULL|DEFERRABLE} (was: bug in 7.0)