From be939544a68f852107c912da2f35f5d36958deb2 Mon Sep 17 00:00:00 2001
From: Teodor Sigaev <teodor@sigaev.ru>
Date: Sun, 20 Apr 2008 09:17:57 +0000
Subject: [PATCH] Fix broken compare function for tsquery_ops. Per Tom's
 report.

I never understood why initial authors GiST in pgsql choose so
stgrange signature for 'same' method:
bool *sameFn(Datum a, Datum b, bool* result)
instead of simple, logical
bool sameFn(Datum a, Datum b)
This change will break any existing GiST extension, so we still live with
it and will live.
---
 src/backend/utils/adt/tsquery_gist.c | 7 +++++--
 1 file changed, 5 insertions(+), 2 deletions(-)

diff --git a/src/backend/utils/adt/tsquery_gist.c b/src/backend/utils/adt/tsquery_gist.c
index df813b59223..52ba7716fff 100644
--- a/src/backend/utils/adt/tsquery_gist.c
+++ b/src/backend/utils/adt/tsquery_gist.c
@@ -7,7 +7,7 @@
  *
  *
  * IDENTIFICATION
- *	  $PostgreSQL: pgsql/src/backend/utils/adt/tsquery_gist.c,v 1.5 2008/04/14 17:05:33 tgl Exp $
+ *	  $PostgreSQL: pgsql/src/backend/utils/adt/tsquery_gist.c,v 1.6 2008/04/20 09:17:57 teodor Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -106,8 +106,11 @@ gtsquery_same(PG_FUNCTION_ARGS)
 {
 	TSQuerySign *a = (TSQuerySign *) PG_GETARG_POINTER(0);
 	TSQuerySign *b = (TSQuerySign *) PG_GETARG_POINTER(1);
+	bool		*result = (bool *) PG_GETARG_POINTER(2);
 
-	PG_RETURN_POINTER(*a == *b);
+	*result = (*a == *b) ? true : false;
+
+	PG_RETURN_POINTER(result);
 }
 
 static int
-- 
GitLab