postgresql/contrib/ltree
Tom Lane 330cad2c4b 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
2018-07-13 18:45:30 -04:00
..
data Add ltree data type to contrib, from Teodor Sigaev and Oleg Bartunov. 2002-07-30 16:40:34 +00:00
expected Fix crash in contrib/ltree's lca() function for empty input array. 2018-07-13 18:45:30 -04:00
sql Fix crash in contrib/ltree's lca() function for empty input array. 2018-07-13 18:45:30 -04:00
_ltree_gist.c ltree: Zero padding bytes when allocating memory for externally visible data. 2016-03-08 14:59:29 -08:00
_ltree_op.c ltree: Zero padding bytes when allocating memory for externally visible data. 2016-03-08 14:59:29 -08:00
.gitignore Support "make check" in contrib 2011-04-25 22:27:11 +03:00
crc32.c pgindent run for 9.5 2015-05-23 21:35:49 -04:00
crc32.h Remove cvs keywords from all files. 2010-09-20 22:08:53 +02:00
lquery_op.c Remove unnecessary #include references, per pgrminclude script. 2011-09-01 10:04:27 -04:00
ltree_gist.c ltree: Zero padding bytes when allocating memory for externally visible data. 2016-03-08 14:59:29 -08:00
ltree_io.c Create function prototype as part of PG_FUNCTION_INFO_V1 macro 2014-04-18 00:03:19 -04:00
ltree_op.c Fix crash in contrib/ltree's lca() function for empty input array. 2018-07-13 18:45:30 -04:00
ltree--1.0--1.1.sql Update extensions with GIN/GIST support for parallel query. 2016-06-14 13:34:37 -04:00
ltree--1.1.sql Update extensions with GIN/GIST support for parallel query. 2016-06-14 13:34:37 -04:00
ltree--unpackaged--1.0.sql Fix typos in some error messages thrown by extension scripts when fed to psql. 2014-08-25 18:30:37 +02:00
ltree.control Handle contrib's GIN/GIST support function signature changes honestly. 2016-06-09 16:44:25 -04:00
ltree.h Use FLEXIBLE_ARRAY_MEMBER in a bunch more places. 2015-02-20 00:11:42 -05:00
ltreetest.sql Remove cvs keywords from all files. 2010-09-20 22:08:53 +02:00
ltxtquery_io.c Spelling fixes 2017-03-14 13:45:54 -04:00
ltxtquery_op.c Prevent stack overflow in query-type functions. 2015-10-05 10:06:30 -04:00
Makefile Handle contrib's GIN/GIST support function signature changes honestly. 2016-06-09 16:44:25 -04:00