Thread: WITH handling in CREATE USER, etc

WITH handling in CREATE USER, etc

From
Bruce Momjian
Date:
I noticed that gram.y doesn't handle with optional WITH in CREATE USER,
ALTER USER, CREATE GROUP very well.  It duplicates the actions, rather
than creating an optional WITH clause.

I have fixed this, and made WITH in CREATE DATABASE optional for
constency.

--  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
 


Re: WITH handling in CREATE USER, etc

From
Vince Vielhaber
Date:
On Mon, 17 Jun 2002, Bruce Momjian wrote:

> I noticed that gram.y doesn't handle with optional WITH in CREATE USER,
> ALTER USER, CREATE GROUP very well.  It duplicates the actions, rather
> than creating an optional WITH clause.

Care to elaborate?

Vince.
-- 
==========================================================================
Vince Vielhaber -- KA8CSH    email: vev@michvhf.com    http://www.pop4.net        56K Nationwide Dialup from $16.00/mo
atPop4 Networking       Online Campground Directory    http://www.camping-usa.com      Online Giftshop Superstore
http://www.cloudninegifts.com
==========================================================================





Re: WITH handling in CREATE USER, etc

From
Bruce Momjian
Date:
Vince Vielhaber wrote:
> On Mon, 17 Jun 2002, Bruce Momjian wrote:
> 
> > I noticed that gram.y doesn't handle with optional WITH in CREATE USER,
> > ALTER USER, CREATE GROUP very well.  It duplicates the actions, rather
> > than creating an optional WITH clause.
> 
> Care to elaborate?

Sure, here is a sample where there were two rules that were merged into
one with opt_with:

Index: gram.y
===================================================================
RCS file: /cvsroot/pgsql/src/backend/parser/gram.y,v
retrieving revision 2.323
retrieving revision 2.324
diff -c -r2.323 -r2.324
*** gram.y    15 Jun 2002 03:00:03 -0000    2.323
--- gram.y    17 Jun 2002 05:40:32 -0000    2.324
***************
*** 518,537 ****  *  *****************************************************************************/ 
! CreateUserStmt:  CREATE USER UserId OptUserList 
!                 {
!                     CreateUserStmt *n = makeNode(CreateUserStmt);
!                     n->user = $3;
!                     n->options = $4;
!                     $$ = (Node *)n;
!                 }
!             | CREATE USER UserId WITH OptUserList                 {                     CreateUserStmt *n =
makeNode(CreateUserStmt);                    n->user = $3;                     n->options = $5;                     $$
=(Node *)n;
 
!                 }                            ;
/*****************************************************************************
--- 518,535 ----  *  *****************************************************************************/ 
! CreateUserStmt:  CREATE USER UserId opt_with OptUserList                 {                     CreateUserStmt *n =
makeNode(CreateUserStmt);                    n->user = $3;                     n->options = $5;                     $$
=(Node *)n;
 
!                 }
!         ;
! 
! 
! opt_with:    WITH                                { $$ = TRUE; }
!         | /*EMPTY*/                                { $$ = TRUE; }         ;
/*****************************************************************************



Re: WITH handling in CREATE USER, etc

From
Vince Vielhaber
Date:
On Mon, 17 Jun 2002, Bruce Momjian wrote:

> Vince Vielhaber wrote:
> > On Mon, 17 Jun 2002, Bruce Momjian wrote:
> >
> > > I noticed that gram.y doesn't handle with optional WITH in CREATE USER,
> > > ALTER USER, CREATE GROUP very well.  It duplicates the actions, rather
> > > than creating an optional WITH clause.
> >
> > Care to elaborate?
>
> Sure, here is a sample where there were two rules that were merged into
> one with opt_with:

That makes sense.

Vince.
-- 
==========================================================================
Vince Vielhaber -- KA8CSH    email: vev@michvhf.com    http://www.pop4.net        56K Nationwide Dialup from $16.00/mo
atPop4 Networking       Online Campground Directory    http://www.camping-usa.com      Online Giftshop Superstore
http://www.cloudninegifts.com
==========================================================================