Re: fix for BUG #3720: wrong results at using ltree
Tom Lane <tgl@sss.pgh.pa.us>
From: Tom Lane <tgl@sss.pgh.pa.us>
To: Filip Rembiałkowski <filip.rembialkowski@gmail.com>
Cc: Nikita Glukhov <n.gluhov@postgrespro.ru>,
Tomas Vondra <tomas.vondra@2ndquadrant.com>,
Alexander Korotkov <a.korotkov@postgrespro.ru>,
Pgsql Hackers <pgsql-hackers@postgresql.org>,
Oleg Bartunov <obartunov@postgrespro.ru>,
Thomas Munro <thomas.munro@gmail.com>,
Teodor Sigaev <teodor@sigaev.ru>
Date: 2020-03-30T18:00:42Z
Lists: pgsql-hackers
Attachments
- 0001-rationalize-ltree-input-errors-2.patch (text/x-diff) patch 0001
- 0002-ltree-not-fixes-and-better-quantifiers-2.patch (text/x-diff) patch 0002
I wrote: > Hence, attached are two revised patches that attack the problem > this way. The first one is somewhat unrelated to the original > point --- it's trying to clean up the error messages in ltree_in > and lquery_in so that they are more consistent and agree with > the terminology used in the documentation. (Notably, the term > "level" is used nowhere in the ltree docs, except in the legacy > function name nlevel().) One thing I changed in that patch was to change the syntax error reports to say "at character %d" not "in position %d", because I thought the latter was pretty confusing --- it's not obvious whether it's counting characters or labels or what. However, I now notice that what the code is providing is a zero-based character index, which is out of line with our practice elsewhere: core parser errors are reported using 1-based indexes. If we reword these messages then we should adopt that practice too. Hence, new patch versions that do it like that. (0002 is unchanged.) regards, tom lane
Commits
-
Back-patch addition of stack overflow and interrupt checks for lquery.
- fade4d4dffca 11.8 landed
- e48ff22d39db 9.6.18 landed
- cffa57f52cc4 9.5.22 landed
- 94c9152dc880 12.3 landed
- 8b902e438608 10.13 landed
-
Fix lquery's NOT handling, and add ability to quantify non-'*' items.
- 70dc4c509b33 13.0 landed
-
Improve error messages in ltree_in and lquery_in.
- e07e2a40bd0c 13.0 landed
-
Fix lquery's behavior for consecutive '*' items.
- 9950c8aadf0e 13.0 landed
-
Protect against overflow of ltree.numlevel and lquery.numlevel.
- 8e1e630d004e 9.5.22 landed
- 95f7ddfdad99 13.0 landed
- 5feb3d0b3f6b 11.8 landed
- 39491aa0da48 9.6.18 landed
- 2bb6bdbe5da7 12.3 landed
- 2618ac6c6535 10.13 landed