On Thu, Sep 22, 2016 at 1:02 PM, Ashutosh Bapat <ashutosh.ba...@enterprisedb.com> wrote: > For list partitions, the ListInfo stores the index maps for values > i.e. the index of the partition to which the value belongs. Those > indexes are same as the indexes in partition OIDs array and come from > the catalogs. In case a user creates two partitioned tables with > exactly same lists for partitions but specifies them in a different > order, the OIDs are stored in the order specified. This means that > index array for these tables come out different. equal_list_info() > works around that by creating an array of mappings and checks whether > that mapping is consistent for all values. This means we will create > the mapping as many times as equal_list_info() is called, which is > expected to be more than the number of time > RelationBuildPartitionDescriptor() is called. Instead, if we > "canonicalise" the indexes so that they come out exactly same for > similarly partitioned tables, we build the mapping only once and > arrange OIDs accordingly. > > Here's patch to do that. I have ran make check with this and it didn't > show any failure. Please consider this to be included in your next set > of patches.
The patch has an if condition as statement by itself + if (l1->null_index != l2->null_index); return false; There shouldn't be ';' at the end. It looks like in the tests you have added the function always bails out before it reaches this statement. -- Best Wishes, Ashutosh Bapat EnterpriseDB Corporation The Postgres Database Company -- Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-hackers