pg_get_indexdef() didn't do quite the right thing with identifying
authorTom Lane <tgl@sss.pgh.pa.us>
Sun, 17 Oct 2004 21:17:27 +0000 (21:17 +0000)
committerTom Lane <tgl@sss.pgh.pa.us>
Sun, 17 Oct 2004 21:17:27 +0000 (21:17 +0000)
an index's tablespace.

src/backend/utils/adt/ruleutils.c

index a05bc8489ddfa123c2402e52e868d06d0568bf6a..3833ee2ee2f5439a47c91e151d390522041a6e59 100644 (file)
@@ -3,7 +3,7 @@
  *                             back to source text
  *
  * IDENTIFICATION
- *       $PostgreSQL: pgsql/src/backend/utils/adt/ruleutils.c,v 1.182 2004/10/07 20:36:52 tgl Exp $
+ *       $PostgreSQL: pgsql/src/backend/utils/adt/ruleutils.c,v 1.183 2004/10/17 21:17:27 tgl Exp $
  *
  *       This software is copyrighted by Jan Wieck - Hamburg.
  *
@@ -58,6 +58,7 @@
 #include "commands/tablespace.h"
 #include "executor/spi.h"
 #include "lib/stringinfo.h"
+#include "miscadmin.h"
 #include "nodes/makefuncs.h"
 #include "optimizer/clauses.h"
 #include "optimizer/tlist.h"
@@ -777,10 +778,14 @@ pg_get_indexdef_worker(Oid indexrelid, int colno, int prettyFlags)
                 * If the index is in a different tablespace from its parent, tell
                 * about that
                 */
-               if (OidIsValid(idxrelrec->reltablespace) &&
-                       idxrelrec->reltablespace != get_rel_tablespace(indrelid))
+               if (idxrelrec->reltablespace != get_rel_tablespace(indrelid))
                {
-                       char       *spcname = get_tablespace_name(idxrelrec->reltablespace);
+                       char       *spcname;
+
+                       if (OidIsValid(idxrelrec->reltablespace))
+                               spcname = get_tablespace_name(idxrelrec->reltablespace);
+                       else
+                               spcname = get_tablespace_name(MyDatabaseTableSpace);
 
                        if (spcname)            /* just paranoia... */
                        {