Ensure attcacheoff is written out as -1 when writing pg_attribute
authorTom Lane
Mon, 1 Jan 2001 21:33:31 +0000 (21:33 +0000)
committerTom Lane
Mon, 1 Jan 2001 21:33:31 +0000 (21:33 +0000)
tuples for a relation.  Needed to prevent Assert failure in CLUSTER.

src/backend/catalog/heap.c

index abcc9951b4bf5397db2ea5d5bd37a4448c9c9fec..b869480fe309586f234b586cc5bff99b4d874844 100644 (file)
@@ -8,7 +8,7 @@
  *
  *
  * IDENTIFICATION
- *   $Header: /cvsroot/pgsql/src/backend/catalog/heap.c,v 1.155 2000/12/27 23:59:11 tgl Exp $
+ *   $Header: /cvsroot/pgsql/src/backend/catalog/heap.c,v 1.156 2001/01/01 21:33:31 tgl Exp $
  *
  *
  * INTERFACE ROUTINES
@@ -590,8 +590,11 @@ AddNewAttributeTuples(Oid new_rel_oid,
    dpp = tupdesc->attrs;
    for (i = 0; i < natts; i++)
    {
+       /* Fill in the correct relation OID */
        (*dpp)->attrelid = new_rel_oid;
+       /* Make sure these are OK, too */
        (*dpp)->attdispersion = 0;
+       (*dpp)->attcacheoff = -1;
 
        tup = heap_addheader(Natts_pg_attribute,
                             ATTRIBUTE_TUPLE_SIZE,
@@ -613,8 +616,12 @@ AddNewAttributeTuples(Oid new_rel_oid,
    dpp = HeapAtt;
    for (i = 0; i < -1 - FirstLowInvalidHeapAttributeNumber; i++)
    {
+       /* Fill in the correct relation OID */
+       /* HACK: we are writing on static data here */
        (*dpp)->attrelid = new_rel_oid;
-       /* (*dpp)->attdispersion = 0;      unneeded */
+       /* Unneeded since they should be OK in the constant data anyway */
+       /* (*dpp)->attdispersion = 0; */
+       /* (*dpp)->attcacheoff = -1; */
 
        tup = heap_addheader(Natts_pg_attribute,
                             ATTRIBUTE_TUPLE_SIZE,