Hi, While working on one of the crash reported on default partition for list partitioning table[1] I found some strange behavior in get_qual_for_list() while I tried to call it from the new code I wrote for default partition.
After debugging, I noticed that the function get_qual_for_list() is implicitly manipulating the (PartitionBoundSpec) spec->listdatums list. AFAICU, this manipulation is needed just to construct a list of datums to be passed to ArrayExpr, and this should be done without manipulating the original list. The function name is get_qual_for_list(), which implies that this function returns something and does not modify anything. I have made this change in attached patch, as I think this is useful for future developments, as there may be a need in future to call get_qual_for_list() from other places, and the caller might not expect that PartitionBoundSpec gets modified. PFA. [1] *https://www.postgresql.org/message-id/flat/CAOgcT0PLPge%3D5U6%3DGU5SnC3_8yutCbWWOiUva3Cw94M9zpbvgQ%40mail.gmail.com <https://www.postgresql.org/message-id/flat/CAOgcT0PLPge%3D5U6%3DGU5SnC3_8yutCbWWOiUva3Cw94M9zpbvgQ%40mail.gmail.com>* Regards, Jeevan Ladhe
fix_listdatums_get_qual_for_list.patch
Description: Binary data
-- Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-hackers