From bcc15f15e10630b2624a1610d61bedb88e4c4901 Mon Sep 17 00:00:00 2001
From: Bruce Momjian <bruce@momjian.us>
Date: Wed, 2 Sep 1998 23:37:13 +0000
Subject: [PATCH] > David Hartwig wrote: > > Please apply this HAVING
 regression patch. > > My bad.   It is caused by a known bug having to do with
 GROUP BY. It ain't$ > > nothing to do with HAVING.  For some reason the bug
 went away for a while, $ > > script.  It must have, because that is how I
 created the expected file.   :( > > > > A patch to the regression will be
 forthcoming. >

---
 src/backend/utils/adt/varlena.c             |  8 +++++---
 src/test/regress/expected/select_having.out | 12 ++++++------
 src/test/regress/sql/select_having.sql      |  4 ++--
 3 files changed, 13 insertions(+), 11 deletions(-)

diff --git a/src/backend/utils/adt/varlena.c b/src/backend/utils/adt/varlena.c
index 4410aa1c9a..0de5ec07b9 100644
--- a/src/backend/utils/adt/varlena.c
+++ b/src/backend/utils/adt/varlena.c
@@ -7,7 +7,7 @@
  *
  *
  * IDENTIFICATION
- *	  $Header: /cvsroot/pgsql/src/backend/utils/adt/varlena.c,v 1.42 1998/09/01 04:32:54 momjian Exp $
+ *	  $Header: /cvsroot/pgsql/src/backend/utils/adt/varlena.c,v 1.43 1998/09/02 23:37:08 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -610,9 +610,11 @@ byteaGetByte(text *v, int32 n)
 		elog(ERROR, "byteaGetByte: index (=%d) out of range [0..%d]",
 			 n, len - 1);
 	}
-
+#ifdef USE_LOCALE
 	byte = (unsigned char) (v->vl_dat[n]);
-
+#else
+	byte = v->vl_dat[n];
+#endif
 	return (int32) byte;
 }
 
diff --git a/src/test/regress/expected/select_having.out b/src/test/regress/expected/select_having.out
index f9188a08fb..37a5a442f7 100644
--- a/src/test/regress/expected/select_having.out
+++ b/src/test/regress/expected/select_having.out
@@ -9,12 +9,12 @@ QUERY: INSERT INTO test_having VALUES (6, 4, 'cccc', 'g');
 QUERY: INSERT INTO test_having VALUES (7, 4, 'cccc', 'h');
 QUERY: INSERT INTO test_having VALUES (8, 4, 'CCCC', 'I');
 QUERY: INSERT INTO test_having VALUES (9, 4, 'CCCC', 'j');
-QUERY: SELECT max(a) FROM test_having
-	GROUP BY lower(c) HAVING count(*) > 2 OR min(b) = 3;
-max
----
-  5
-  9
+QUERY: SELECT b, c FROM test_having
+	GROUP BY b, c HAVING count(*) = 1;
+b|c       
+-+--------
+1|XXXX    
+3|bbbb    
 (2 rows)
 
 QUERY: SELECT lower(c), count(c) FROM test_having
diff --git a/src/test/regress/sql/select_having.sql b/src/test/regress/sql/select_having.sql
index cbb256e1da..95cff8501b 100644
--- a/src/test/regress/sql/select_having.sql
+++ b/src/test/regress/sql/select_having.sql
@@ -15,8 +15,8 @@ INSERT INTO test_having VALUES (7, 4, 'cccc', 'h');
 INSERT INTO test_having VALUES (8, 4, 'CCCC', 'I');
 INSERT INTO test_having VALUES (9, 4, 'CCCC', 'j');
 
-SELECT max(a) FROM test_having
-	GROUP BY lower(c) HAVING count(*) > 2 OR min(b) = 3;
+SELECT b, c FROM test_having
+	GROUP BY b, c HAVING count(*) = 1;
 
 SELECT lower(c), count(c) FROM test_having
 	GROUP BY lower(c) HAVING count(*) > 2 OR min(a) = max(a);
-- 
2.24.1