From 684ad6a92fcc33adebdab65c4e7d72a68ba05408 Mon Sep 17 00:00:00 2001 From: Tom Lane Date: Sun, 10 Sep 2006 17:36:52 +0000 Subject: Rename contrib contains/contained-by operators to @> and <@, per discussion. --- contrib/tsearch2/query_gist.c | 25 +++++++++++++++++++++---- 1 file changed, 21 insertions(+), 4 deletions(-) (limited to 'contrib/tsearch2/query_gist.c') diff --git a/contrib/tsearch2/query_gist.c b/contrib/tsearch2/query_gist.c index d9a55d088c8..ffa765560d9 100644 --- a/contrib/tsearch2/query_gist.c +++ b/contrib/tsearch2/query_gist.c @@ -184,11 +184,28 @@ gtsq_consistent(PG_FUNCTION_ARGS) QUERYTYPE *query = (QUERYTYPE *) DatumGetPointer(PG_DETOAST_DATUM(PG_GETARG_DATUM(1))); StrategyNumber strategy = (StrategyNumber) PG_GETARG_UINT16(2); TPQTGist sq = makesign(query); + bool retval; - if (GIST_LEAF(entry)) - PG_RETURN_BOOL(((*key) & sq) == ((strategy == 1) ? sq : *key)); - else - PG_RETURN_BOOL((*key) & sq); + switch (strategy) + { + case RTContainsStrategyNumber: + case RTOldContainsStrategyNumber: + if (GIST_LEAF(entry)) + retval = (*key & sq) == sq; + else + retval = (*key & sq) != 0; + break; + case RTContainedByStrategyNumber: + case RTOldContainedByStrategyNumber: + if (GIST_LEAF(entry)) + retval = (*key & sq) == *key; + else + retval = (*key & sq) != 0; + break; + default: + retval = FALSE; + } + PG_RETURN_BOOL(retval); } Datum -- cgit v1.2.3