Always initialize PartitionBoundInfoData's null_index.
authorRobert Haas <[email protected]>
Tue, 13 Jun 2017 16:36:45 +0000 (12:36 -0400)
committerRobert Haas <[email protected]>
Tue, 13 Jun 2017 16:39:20 +0000 (12:39 -0400)
This doesn't actually matter at present, because the current code
never consults null_index for range partitions.  However, leaving
it uninitialized is still a bad idea, so let's not do that.

Amul Sul, reviewed by Ashutosh Bapat

Discussion: http://postgr.es/m/CAAJ_b94AkEzcx+12ySCnbMDX7=UdF4BjnoBGfMQbB0RNSTo3Ng@mail.gmail.com

src/backend/catalog/partition.c

index 5c5a9e11ab122c5e3e8df088f3a939346336d41e..a7c9b9a46c19a932da1ee0cdadf975d33f1b33f8 100644 (file)
@@ -454,6 +454,7 @@ RelationBuildPartitionDesc(Relation rel)
            palloc0(sizeof(PartitionBoundInfoData));
        boundinfo->strategy = key->strategy;
        boundinfo->ndatums = ndatums;
+       boundinfo->null_index = -1;
        boundinfo->datums = (Datum **) palloc0(ndatums * sizeof(Datum *));
 
        /* Initialize mapping array with invalid values */
@@ -503,8 +504,6 @@ RelationBuildPartitionDesc(Relation rel)
                            mapping[null_index] = next_index++;
                        boundinfo->null_index = mapping[null_index];
                    }
-                   else
-                       boundinfo->null_index = -1;
 
                    /* All partition must now have a valid mapping */
                    Assert(next_index == nparts);