Re: [PATCHES] [PATCH] add CLUSTER table USING index (take 2)

2007-03-29 Thread Tom Lane
Holger Schurig <[EMAIL PROTECTED]> writes:
> I agree that the example should be re-written. But I'm not sure if I need
> to have a paragraph about the old syntax. There are two reasons:
> - I haven't seen any other SQL command where an old syntax was
>   documented

If we were deprecating the old syntax with intention to remove it, that
might be a defensible position, but I didn't think we were doing that.

IMHO both forms seriously do need to be documented so that people will
understand that the index/table order is different.  Otherwise there'll
be enormous confusion.

> - I thought I could come away without writing doc. After all, I'm
>   not a native english speaker. That's a point where I could need
>   some help ...  (maybe my english is good enought, but it's not
>   worth to make a "take 4" to "take 17" patch just for english
>   grammar, typos, subtle meanings, whatever.

Your English seems fine to me, certainly more than good enough to
produce first-draft documentation.  Whoever reviews/commits it will
help out as needed.

>> Is the placement of opt_cluster_using completely arbitrary? I'm not very 
>> familiar with the parser, it really looks like those type-definitions 
>> are in random order.

> I thought so.

Yeah, it's just a mess :=(.  Somebody might go through and sort them
into alphabetical order or something someday, but not today.

regards, tom lane

---(end of broadcast)---
TIP 4: Have you searched our list archives?

   http://archives.postgresql.org


Re: [PATCHES] [PATCH] add CLUSTER table USING index (take 2)

2007-03-29 Thread Bruce Momjian
Holger Schurig wrote:
> > FYI, this is a great example of valuable patch review.
> 
> It would have been better if the TODO entry would have
> been rigth :-)

It was right when I wrote it.  ;-)  I have updated it now.

-- 
  Bruce Momjian  <[EMAIL PROTECTED]>  http://momjian.us
  EnterpriseDB   http://www.enterprisedb.com

  + If your life is a hard drive, Christ can be your backup. +

---(end of broadcast)---
TIP 2: Don't 'kill -9' the postmaster


Re: [PATCHES] [PATCH] add CLUSTER table USING index (take 2)

2007-03-29 Thread Holger Schurig
> We still need to document the old syntax, especially if we don't change 
> the example as well.

I agree that the example should be re-written. But I'm not sure if I need
to have a paragraph about the old syntax. There are two reasons:

- I haven't seen any other SQL command where an old syntax was
  documented

- I thought I could come away without writing doc. After all, I'm
  not a native english speaker. That's a point where I could need
  some help ...  (maybe my english is good enought, but it's not
  worth to make a "take 4" to "take 17" patch just for english
  grammar, typos, subtle meanings, whatever.




> > Index: src/src/backend/parser/gram.y
> > ===
> > *** src.orig/src/backend/parser/gram.y  2007-03-28 22:58:48.0 
> > +0200
> > --- src/src/backend/parser/gram.y   2007-03-28 22:59:15.0 +0200
> > ***
> > *** 209,215 
> >   
> >   %typerelation_name copy_file_name
> > database_name access_method_clause 
> > access_method attr_name
> > !   index_name name file_name
> >   
> >   %type   func_name handler_name qual_Op qual_all_Op subquery_Op
> > opt_class opt_validator
> > --- 209,215 
> >   
> >   %typerelation_name copy_file_name
> > database_name access_method_clause 
> > access_method attr_name
> > !   index_name name file_name opt_cluster_using
> >   
> >   %type   func_name handler_name qual_Op qual_all_Op subquery_Op
> > opt_class opt_validator
> 
> Is the placement of opt_cluster_using completely arbitrary? I'm not very 
> familiar with the parser, it really looks like those type-definitions 
> are in random order.

I thought so. As you can see in the above patch, there are things
like opt_validator in the next "%type " section.

There are many other "%type " section in gram.y, but I haven't
found a structure yet. For example, some tokens are named
"OptSchemaName", some are named "opt_encoding". Let's look at
this one. It's used in line 1090, defined in 1218. Before and
after the usage there is "transaction_mode_list" and
"Colid_or_Sconst". Before and after the definition is
"zone_value" and again "ColId_or_Sconst". But neither of this
three is defined at the same "%type " as "opt_encoding"
is.


---(end of broadcast)---
TIP 6: explain analyze is your friend


Re: [PATCHES] [PATCH] add CLUSTER table USING index (take 2)

2007-03-29 Thread Holger Schurig
> FYI, this is a great example of valuable patch review.

It would have been better if the TODO entry would have
been rigth :-)

---(end of broadcast)---
TIP 7: You can help support the PostgreSQL project by donating at

http://www.postgresql.org/about/donate


Re: [PATCHES] [PATCH] add CLUSTER table USING index (take 2)

2007-03-29 Thread Bruce Momjian

FYI, this is a great example of valuable patch review.

---

Heikki Linnakangas wrote:
> Holger Schurig wrote:
> > Index: src/doc/src/sgml/ref/cluster.sgml
> > ===
> > *** src.orig/doc/src/sgml/ref/cluster.sgml  2007-03-28 23:02:12.0 
> > +0200
> > --- src/doc/src/sgml/ref/cluster.sgml   2007-03-28 23:03:14.0 
> > +0200
> > ***
> > *** 20,27 
> >   
> >
> >   
> > ! CLUSTER indexname ON 
> > tablename
> > ! CLUSTER tablename
> >   CLUSTER
> >   
> >
> > --- 20,26 
> >   
> >
> >   
> > ! CLUSTER tablename [ USING 
> > indexname ]
> >   CLUSTER
> >   
> >
> 
> We still need to document the old syntax, especially if we don't change 
> the example as well.
> 
> > Index: src/src/backend/parser/gram.y
> > ===
> > *** src.orig/src/backend/parser/gram.y  2007-03-28 22:58:48.0 
> > +0200
> > --- src/src/backend/parser/gram.y   2007-03-28 22:59:15.0 +0200
> > ***
> > *** 209,215 
> >   
> >   %typerelation_name copy_file_name
> > database_name access_method_clause 
> > access_method attr_name
> > !   index_name name file_name
> >   
> >   %type   func_name handler_name qual_Op qual_all_Op subquery_Op
> > opt_class opt_validator
> > --- 209,215 
> >   
> >   %typerelation_name copy_file_name
> > database_name access_method_clause 
> > access_method attr_name
> > !   index_name name file_name opt_cluster_using
> >   
> >   %type   func_name handler_name qual_Op qual_all_Op subquery_Op
> > opt_class opt_validator
> 
> Is the placement of opt_cluster_using completely arbitrary? I'm not very 
> familiar with the parser, it really looks like those type-definitions 
> are in random order.
> 
> -- 
>Heikki Linnakangas
>EnterpriseDB   http://www.enterprisedb.com
> 
> ---(end of broadcast)---
> TIP 2: Don't 'kill -9' the postmaster

-- 
  Bruce Momjian  <[EMAIL PROTECTED]>  http://momjian.us
  EnterpriseDB   http://www.enterprisedb.com

  + If your life is a hard drive, Christ can be your backup. +

---(end of broadcast)---
TIP 6: explain analyze is your friend


Re: [PATCHES] [PATCH] add CLUSTER table USING index (take 2)

2007-03-29 Thread Heikki Linnakangas

Holger Schurig wrote:

Index: src/doc/src/sgml/ref/cluster.sgml
===
*** src.orig/doc/src/sgml/ref/cluster.sgml  2007-03-28 23:02:12.0 
+0200
--- src/doc/src/sgml/ref/cluster.sgml   2007-03-28 23:03:14.0 +0200
***
*** 20,27 
  
   

  
! CLUSTER indexname ON tablename
! CLUSTER tablename
  CLUSTER
  
   
--- 20,26 
  
   

  
! CLUSTER tablename [ USING indexname ]
  CLUSTER
  
   


We still need to document the old syntax, especially if we don't change 
the example as well.



Index: src/src/backend/parser/gram.y
===
*** src.orig/src/backend/parser/gram.y  2007-03-28 22:58:48.0 +0200
--- src/src/backend/parser/gram.y   2007-03-28 22:59:15.0 +0200
***
*** 209,215 
  
  %type 		relation_name copy_file_name

database_name access_method_clause 
access_method attr_name
!   index_name name file_name
  
  %type 	func_name handler_name qual_Op qual_all_Op subquery_Op

opt_class opt_validator
--- 209,215 
  
  %type 		relation_name copy_file_name

database_name access_method_clause 
access_method attr_name
!   index_name name file_name opt_cluster_using
  
  %type 	func_name handler_name qual_Op qual_all_Op subquery_Op

opt_class opt_validator


Is the placement of opt_cluster_using completely arbitrary? I'm not very 
familiar with the parser, it really looks like those type-definitions 
are in random order.


--
  Heikki Linnakangas
  EnterpriseDB   http://www.enterprisedb.com

---(end of broadcast)---
TIP 2: Don't 'kill -9' the postmaster