aboutsummaryrefslogtreecommitdiff
path: root/contrib/tsearch2/query_gist.c
diff options
context:
space:
mode:
authorTom Lane <tgl@sss.pgh.pa.us>2006-09-10 17:36:52 +0000
committerTom Lane <tgl@sss.pgh.pa.us>2006-09-10 17:36:52 +0000
commit684ad6a92fcc33adebdab65c4e7d72a68ba05408 (patch)
tree4cd0fc427b2100214e18452cc528e1b2e2d150fb /contrib/tsearch2/query_gist.c
parentba920e1c9182eac55d5f1327ab0d29b721154277 (diff)
downloadpostgresql-684ad6a92fcc33adebdab65c4e7d72a68ba05408.tar.gz
postgresql-684ad6a92fcc33adebdab65c4e7d72a68ba05408.zip
Rename contrib contains/contained-by operators to @> and <@, per discussion.
Diffstat (limited to 'contrib/tsearch2/query_gist.c')
-rw-r--r--contrib/tsearch2/query_gist.c25
1 files changed, 21 insertions, 4 deletions
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