From 74a8af099f0095bc87f25dfa9b54f09d6a8972d4 Mon Sep 17 00:00:00 2001 From: Bruce Momjian Date: Fri, 7 Jun 2002 21:52:33 +0000 Subject: Please apply attached patch to contrib/intarray (7.2, 7.3). Fixed bug with '=' operator for gist__int_ops and define '=' operator for gist__intbig_ops opclass. Now '=' operator is consistent with standard 'array' type. Thanks Achilleus Mantzios for bug report and suggestion. Oleg Bartunov --- contrib/intarray/_int.c | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) (limited to 'contrib/intarray/_int.c') diff --git a/contrib/intarray/_int.c b/contrib/intarray/_int.c index ba91a0eba4a..d956543af5f 100644 --- a/contrib/intarray/_int.c +++ b/contrib/intarray/_int.c @@ -312,6 +312,17 @@ g_int_consistent(PG_FUNCTION_ARGS) { query); break; case RTSameStrategyNumber: + if ( GIST_LEAF(entry) ) + DirectFunctionCall3( + g_int_same, + entry->key, + PointerGetDatum(query), + PointerGetDatum(&retval) + ); + else + retval = inner_int_contains((ArrayType *) DatumGetPointer(entry->key), + query); + break; case RTContainsStrategyNumber: retval = inner_int_contains((ArrayType *) DatumGetPointer(entry->key), query); @@ -1263,6 +1274,16 @@ g_intbig_consistent(PG_FUNCTION_ARGS) { retval = _intbig_overlap((ArrayType *) DatumGetPointer(entry->key), q); break; case RTSameStrategyNumber: + if ( GIST_LEAF(entry) ) + DirectFunctionCall3( + g_intbig_same, + entry->key, + PointerGetDatum(q), + PointerGetDatum(&retval) + ); + else + retval = _intbig_contains((ArrayType *) DatumGetPointer(entry->key), q); + break; case RTContainsStrategyNumber: retval = _intbig_contains((ArrayType *) DatumGetPointer(entry->key), q); break; -- cgit v1.2.3