pgsql: Fix crash in contrib/ltree's lca() function for empty inputarra - Mailing list pgsql-committers

From Tom Lane
Subject pgsql: Fix crash in contrib/ltree's lca() function for empty inputarra
Date
Msg-id E1fe6ou-0001wO-1m@gemulon.postgresql.org
Whole thread Raw
List pgsql-committers
Fix crash in contrib/ltree's lca() function for empty input array.

lca_inner() wasn't prepared for the possibility of getting no inputs.
Fix that, and make some cosmetic improvements to the code while at it.

Also, I thought the documentation of this function as returning the
"longest common prefix" of the paths was entirely misleading; it really
returns a path one shorter than the longest common prefix, for the typical
definition of "prefix".  Don't use that term in the docs, and adjust the
examples to clarify what really happens.

This has been broken since its beginning, so back-patch to all supported
branches.

Per report from Hailong Li.  Thanks to Pierre Ducroquet for diagnosing
and for the initial patch, though I whacked it around some and added
test cases.

Discussion: https://postgr.es/m/5b0d8e4f-f2a3-1305-d612-e00e35a7be66@qunar.com

Branch
------
master

Details
-------
https://git.postgresql.org/pg/commitdiff/28a1ae5342fe39b7c4057d3f872cb6057f5f33bf

Modified Files
--------------
contrib/ltree/expected/ltree.out | 18 ++++++++++++++++++
contrib/ltree/ltree_op.c         | 34 +++++++++++++++++++++++++---------
contrib/ltree/sql/ltree.sql      |  3 +++
doc/src/sgml/ltree.sgml          |  8 ++++----
4 files changed, 50 insertions(+), 13 deletions(-)


pgsql-committers by date:

Previous
From: Robert Haas
Date:
Subject: Re: pgsql: Add wait event for fsync of WAL segments
Next
From: Michael Paquier
Date:
Subject: Re: pgsql: Fix FK checks of TRUNCATE involving partitioned tables