]> granicus.if.org Git - postgresql/commit
Fix sample INSTR() functions in the plpgsql documentation.
authorTom Lane <tgl@sss.pgh.pa.us>
Wed, 10 Jan 2018 22:13:29 +0000 (17:13 -0500)
committerTom Lane <tgl@sss.pgh.pa.us>
Wed, 10 Jan 2018 22:13:29 +0000 (17:13 -0500)
commit1226051948e00c3fcadf82da47e9513572a1d5dc
tree53405650c20c065f5a28c6ac3afd802e3da3504e
parentc24a908d04806c34c3e5dda42d39bb5ca1fc5ffb
Fix sample INSTR() functions in the plpgsql documentation.

These functions are stated to be Oracle-compatible, but they weren't.
Yugo Nagata noticed that while our code returns zero for a zero or
negative fourth parameter (occur_index), Oracle throws an error.
Further testing by me showed that there was also a discrepancy in the
interpretation of a negative third parameter (beg_index): Oracle thinks
that a negative beg_index indicates the last place where the target
substring can *begin*, whereas our code thinks it is the last place
where the target can *end*.

Adjust the sample code to behave like Oracle in both these respects.
Also change it to be a CDATA[] section, simplifying copying-and-pasting
out of the documentation source file.  And fix minor problems in the
introductory comment, which wasn't very complete or accurate.

Back-patch to all supported branches.  Although this patch only touches
documentation, we should probably call it out as a bug fix in the next
minor release notes, since users who have adopted the functions will
likely want to update their versions.

Yugo Nagata and Tom Lane

Discussion: https://postgr.es/m/20171229191705.c0b43a8c.nagata@sraoss.co.jp
doc/src/sgml/plpgsql.sgml