Fix lquery's behavior for consecutive '*' items.
authorTom Lane
Sat, 28 Mar 2020 22:31:05 +0000 (18:31 -0400)
committerTom Lane
Sat, 28 Mar 2020 22:31:05 +0000 (18:31 -0400)
commit9950c8aadf0edd31baec74a729d47d94af636c06
treed2efb1062d84e485138236eb8068235a20adc0a1
parent95f7ddfdad99c5ea0500d90ce52075814e10ed8c
Fix lquery's behavior for consecutive '*' items.

Something like "*{2}.*{3}" should presumably mean the same as
"*{5}", but it didn't.  Improve that.

Get rid of an undocumented and remarkably ugly (though not, as far as
I can tell, actually unsafe) static variable in favor of passing more
arguments to checkCond().

Reverse-engineer some commentary.  This function, like all of ltree,
is still far short of what I would consider the minimum acceptable
level of internal documentation, but at least now it has more than
zero comments.

Although this certainly seems like a bug fix, people might not
thank us for changing query behavior in stable branches, so
no back-patch.

Nikita Glukhov, with cosmetic improvements by me

Discussion: https://postgr.es/m/CAP_rww=waX2Oo6q+MbMSiZ9ktdj6eaJj0cQzNu=Ry2cCDij5fw@mail.gmail.com
contrib/ltree/expected/ltree.out
contrib/ltree/lquery_op.c
contrib/ltree/ltree.h
contrib/ltree/sql/ltree.sql