Thread: [COMMITTERS] pgsql: Fix multi-column range partitioning constraints.

[COMMITTERS] pgsql: Fix multi-column range partitioning constraints.

From
Robert Haas
Date:
Fix multi-column range partitioning constraints.

The old logic was just plain wrong.

Report by Olaf Gawenda.  Patch by Amit Langote, reviewed by
Beena Emerson and by me.  Minor adjustments by me also.

Branch
------
master

Details
-------
https://git.postgresql.org/pg/commitdiff/f8bffe9e6d700fd34759a92e47930ce9ba7dcbd5

Modified Files
--------------
src/backend/catalog/partition.c       | 663 ++++++++++++++++++++++------------
src/include/nodes/pg_list.h           |  14 +
src/test/regress/expected/inherit.out |  90 +++++
src/test/regress/expected/insert.out  |  59 +++
src/test/regress/sql/inherit.sql      |  18 +
src/test/regress/sql/insert.sql       |  43 +++
6 files changed, 666 insertions(+), 221 deletions(-)


Robert Haas <rhaas@postgresql.org> writes:
> Fix multi-column range partitioning constraints.

Newer gcc versions are not very happy with this:

partition.c: In function 'get_qual_from_partbound':
partition.c:1642:18: warning: 'partexprs_item_saved' may be used uninitialized in this function [-Wmaybe-uninitialized]
   partexprs_item = partexprs_item_saved;
   ~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~
partition.c:1500:8: note: 'partexprs_item_saved' was declared here
       *partexprs_item_saved;
        ^~~~~~~~~~~~~~~~~~~~

$ gcc -v
gcc version 6.3.1 20161221 (Red Hat 6.3.1-1) (GCC)

Please fix.

            regards, tom lane