From 0fc32c00d74404a9a535e0e1b8d9437dfd8075db Mon Sep 17 00:00:00 2001 From: Robert Haas Date: Wed, 4 Jul 2012 17:19:23 -0400 Subject: [PATCH] Fix sample INSTR function to return 0 if third arg is 0. Albe Laurenz, per a report by Greg Smith that our sample function doesn't quite match Oracle's behavior. --- doc/src/sgml/plpgsql.sgml | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/doc/src/sgml/plpgsql.sgml b/doc/src/sgml/plpgsql.sgml index ba2c57b687..4840f6ea9c 100644 --- a/doc/src/sgml/plpgsql.sgml +++ b/doc/src/sgml/plpgsql.sgml @@ -5115,7 +5115,7 @@ BEGIN ELSE RETURN pos + beg_index - 1; END IF; - ELSE + ELSIF beg_index < 0 THEN ss_length := char_length(string_to_search); length := char_length(string); beg := length + beg_index - ss_length + 2; @@ -5131,6 +5131,8 @@ BEGIN beg := beg - 1; END LOOP; + RETURN 0; + ELSE RETURN 0; END IF; END; @@ -5170,7 +5172,7 @@ BEGIN ELSE RETURN beg; END IF; - ELSE + ELSIF beg_index < 0 THEN ss_length := char_length(string_to_search); length := char_length(string); beg := length + beg_index - ss_length + 2; @@ -5190,6 +5192,8 @@ BEGIN beg := beg - 1; END LOOP; + RETURN 0; + ELSE RETURN 0; END IF; END;