Re: ALTER TABLE...SET WITHOUT CLUSTER - Mailing list pgsql-patches

From Bruce Momjian
Subject Re: ALTER TABLE...SET WITHOUT CLUSTER
Date
Msg-id 200404271415.i3REFBu06927@candle.pha.pa.us
Whole thread Raw
In response to Re: ALTER TABLE...SET WITHOUT CLUSTER  (Christopher Kings-Lynne <chriskl@familyhealth.com.au>)
Responses Re: ALTER TABLE...SET WITHOUT CLUSTER  (Christopher Kings-Lynne <chriskl@familyhealth.com.au>)
List pgsql-patches
Christopher Kings-Lynne wrote:
> > This patch imlements the TODO that calls for the ability to turn off all
> > clustering on a table.
> >
> > Syntax is ALTER TABLE ... SET WITHOUT CLUSTER;
> >
> > Doc patch plus regression test is included.
>
> OK, I have a problem here.  This is the new grammar that I added:
>
> /* ALTER TABLE <name> SET WITHOUT CLUSTER */
> | ALTER TABLE relation_expr SET WITHOUT CLUSTER
>          {
>                  AlterTableStmt *n = makeNode(AlterTableStmt);
>                  n->subtype = 'L';
>                  n->relation = $3;
>                  n->name = NULL;
>                  $$ = (Node *)n;
>          }
>
> Now, I have to change that relation_expr to qualified_name.  However,
> this causes shift/reduce errors. (Due to ALTER TABLE relation_expr SET
> WITHOUT OIDS.)
>
> Even changing the syntax to "qualified_name DROP CLUSTER" doesn't work
> due to the existence of "relation_expr DROP ...".

I have an idea.  Change the code to use relation_expr, then throw an
error from gram.y if $$->inhOpt != INH_DEFAULT.

--
  Bruce Momjian                        |  http://candle.pha.pa.us
  pgman@candle.pha.pa.us               |  (610) 359-1001
  +  If your life is a hard drive,     |  13 Roberts Road
  +  Christ can be your backup.        |  Newtown Square, Pennsylvania 19073

pgsql-patches by date:

Previous
From: Bruce Momjian
Date:
Subject: Re: [BUGS] BUG #1134: ALTER USER ... RENAME breaks md5
Next
From: Christopher Kings-Lynne
Date:
Subject: Re: ALTER TABLE...SET WITHOUT CLUSTER