Re: Index USING in pg_dump - Mailing list pgsql-hackers

From Bruce Momjian
Subject Re: Index USING in pg_dump
Date
Msg-id 200203081726.g28HQ8229130@candle.pha.pa.us
Whole thread Raw
In response to Re: Index USING in pg_dump  (nconway@klamath.dyndns.org (Neil Conway))
Responses Re: Index USING in pg_dump  (Bruce Momjian <pgman@candle.pha.pa.us>)
List pgsql-hackers
Neil Conway wrote:
> On Fri, Mar 08, 2002 at 11:07:57AM -0500, Bruce Momjian wrote:
> > Tom Lane wrote:
> > > Bruce Momjian <pgman@candle.pha.pa.us> writes:
> > > > This is possible because btree is the default.  TODO item is:
> > > >     * Remove USING clause from pg_get_indexdef() if index is btree (Bruce)
> > >
> > > I do not think this is necessary or helpful.  The only possible
> > > reason to change it would be if we thought btree might someday
> > > not be the default index type --- but no such change is on the
> > > horizon.  And if one was, you've just embedded special knowledge
> > > about btree in yet one more place...
> >
> > Yes, but it doesn't look like the way they created it.
>
> Why is this relevant?
>
> > Very few use
> > USING in there queries.  Why show it in pg_dump output?
>
> I agree with Tom: this seems like a waste of time, and may even be worse
> than the current pg_dump output. The type of the index is "btree"; by
> assuming that Pg happens to default to "btree", you're just making the
> process of index restoration more fragile.

OK, how about this patch?  It just creates a macro so btree is a clear
default.  It no longer affects pg_dump.

--
  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, Pennsylvania 19026
Index: src/backend/parser/analyze.c
===================================================================
RCS file: /cvsroot/pgsql/src/backend/parser/analyze.c,v
retrieving revision 1.217
diff -c -r1.217 analyze.c
*** src/backend/parser/analyze.c    6 Mar 2002 06:09:51 -0000    1.217
--- src/backend/parser/analyze.c    8 Mar 2002 16:25:59 -0000
***************
*** 16,21 ****
--- 16,22 ----
  #include "access/heapam.h"
  #include "catalog/catname.h"
  #include "catalog/heap.h"
+ #include "catalog/index.h"
  #include "catalog/pg_index.h"
  #include "catalog/pg_type.h"
  #include "nodes/makefuncs.h"
***************
*** 1049,1055 ****
              index->idxname = NULL;        /* will set it later */

          index->relname = cxt->relname;
!         index->accessMethod = "btree";
          index->indexParams = NIL;
          index->whereClause = NULL;

--- 1050,1056 ----
              index->idxname = NULL;        /* will set it later */

          index->relname = cxt->relname;
!         index->accessMethod = DEFAULT_INDEX_TYPE;
          index->indexParams = NIL;
          index->whereClause = NULL;

Index: src/backend/parser/gram.y
===================================================================
RCS file: /cvsroot/pgsql/src/backend/parser/gram.y,v
retrieving revision 2.287
diff -c -r2.287 gram.y
*** src/backend/parser/gram.y    7 Mar 2002 16:35:35 -0000    2.287
--- src/backend/parser/gram.y    8 Mar 2002 16:26:03 -0000
***************
*** 51,56 ****
--- 51,57 ----
  #include <ctype.h>

  #include "access/htup.h"
+ #include "catalog/index.h"
  #include "catalog/pg_type.h"
  #include "nodes/params.h"
  #include "nodes/parsenodes.h"
***************
*** 2539,2545 ****
          ;

  access_method_clause:  USING access_method        { $$ = $2; }
!         | /*EMPTY*/                                { $$ = "btree"; }
          ;

  index_params:  index_list                        { $$ = $1; }
--- 2540,2547 ----
          ;

  access_method_clause:  USING access_method        { $$ = $2; }
!         /* If btree changes as our default, update pg_get_indexdef() */
!         | /*EMPTY*/                                { $$ = DEFAULT_INDEX_TYPE; }
          ;

  index_params:  index_list                        { $$ = $1; }
Index: src/include/catalog/index.h
===================================================================
RCS file: /cvsroot/pgsql/src/include/catalog/index.h,v
retrieving revision 1.44
diff -c -r1.44 index.h
*** src/include/catalog/index.h    19 Feb 2002 20:11:19 -0000    1.44
--- src/include/catalog/index.h    8 Mar 2002 16:26:12 -0000
***************
*** 18,23 ****
--- 18,24 ----
  #include "catalog/pg_index.h"
  #include "nodes/execnodes.h"

+ #define DEFAULT_INDEX_TYPE    "btree"

  /* Typedef for callback function for IndexBuildHeapScan */
  typedef void (*IndexBuildCallback) (Relation index,

pgsql-hackers by date:

Previous
From: nconway@klamath.dyndns.org (Neil Conway)
Date:
Subject: Re: Index USING in pg_dump
Next
From: "Zeugswetter Andreas SB SD"
Date:
Subject: Re: Index USING in pg_dump