Thanks for the quick turnaround! Tom Lane <t...@sss.pgh.pa.us> schrieb am Mo., 28. Okt. 2019, 16:57:
> Robert Haas <robertmh...@gmail.com> writes: > > On Mon, Oct 28, 2019 at 11:02 AM Shay Rojansky <r...@roji.org> wrote: > >> Before PG12, select strpos('test', '') returns 1 (empty substring found > at first position of the string), whereas starting with PG12 it returns 0 > (empty substring not found). > > > It looks to me like this got broken here: > > > commit 9556aa01c69a26ca726d8dda8e395acc7c1e30fc > > Author: Heikki Linnakangas <heikki.linnakan...@iki.fi> > > Date: Fri Jan 25 16:25:05 2019 +0200 > > Use single-byte Boyer-Moore-Horspool search even with multibyte > encodings. > > > Not sure what happened exactly. > > I think the problem is lack of clarity about the edge cases. > The patch added this short-circuit right at the top of text_position(): > > + if (VARSIZE_ANY_EXHDR(t1) < 1 || VARSIZE_ANY_EXHDR(t2) < 1) > + return 0; > > and as this example shows, that's the Wrong Thing. Fortunately, > it also seems easily fixed. > > regards, tom lane >