]> 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)
commit08adf688f3e9218890929b5d687078974fb8d3de
tree0e3ed5860ebc5acf0cdce7d001ab1c74ce1b3991
parent7eb0187a97674210515d167e022429c24d74d47c
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