From ece869b11eedd082ccd0bbd73ab9013c9ad9fa13 Mon Sep 17 00:00:00 2001
From: Tom Lane <tgl@sss.pgh.pa.us>
Date: Fri, 28 May 2010 18:18:19 +0000
Subject: [PATCH] Fix oversight in the previous patch that made LIKE throw
 error for \ at the end of the pattern: the code path that handles \ just
 after % should throw error too.  As in the previous patch, not back-patching
 for fear of breaking apps that worked before.

---
 src/backend/utils/adt/like_match.c | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/src/backend/utils/adt/like_match.c b/src/backend/utils/adt/like_match.c
index b67ba020cf3..be3b9515dfe 100644
--- a/src/backend/utils/adt/like_match.c
+++ b/src/backend/utils/adt/like_match.c
@@ -19,7 +19,7 @@
  * Copyright (c) 1996-2010, PostgreSQL Global Development Group
  *
  * IDENTIFICATION
- *	$PostgreSQL: pgsql/src/backend/utils/adt/like_match.c,v 1.28 2010/05/28 17:35:23 tgl Exp $
+ *	$PostgreSQL: pgsql/src/backend/utils/adt/like_match.c,v 1.29 2010/05/28 18:18:19 tgl Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -158,7 +158,9 @@ MatchText(char *t, int tlen, char *p, int plen)
 			if (*p == '\\')
 			{
 				if (plen < 2)
-					return LIKE_FALSE; /* XXX should throw error */
+					ereport(ERROR,
+							(errcode(ERRCODE_INVALID_ESCAPE_SEQUENCE),
+							 errmsg("LIKE pattern must not end with escape character")));
 				firstpat = GETCHAR(p[1]);
 			}
 			else
-- 
GitLab