diff options
author | Tom Lane <tgl@sss.pgh.pa.us> | 2018-01-10 17:13:29 -0500 |
---|---|---|
committer | Tom Lane <tgl@sss.pgh.pa.us> | 2018-01-10 17:13:29 -0500 |
commit | 45bfef7fbae98a076c86e23f3b59eab81e3cb70b (patch) | |
tree | 1ce9302b68de66ae86bc98fe3cb6b851f14084bc /src/backend/executor/nodeWindowAgg.c | |
parent | 469fa9ad6d0564b7252e89726533c0b7ccb2c4ec (diff) |
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
Diffstat (limited to 'src/backend/executor/nodeWindowAgg.c')
0 files changed, 0 insertions, 0 deletions