diff options
author | Tom Lane <tgl@sss.pgh.pa.us> | 2006-09-10 17:36:52 +0000 |
---|---|---|
committer | Tom Lane <tgl@sss.pgh.pa.us> | 2006-09-10 17:36:52 +0000 |
commit | 684ad6a92fcc33adebdab65c4e7d72a68ba05408 (patch) | |
tree | 4cd0fc427b2100214e18452cc528e1b2e2d150fb /contrib/tsearch2/query_gist.c | |
parent | ba920e1c9182eac55d5f1327ab0d29b721154277 (diff) | |
download | postgresql-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.c | 25 |
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 |