diff options
Diffstat (limited to 'src/backend')
-rw-r--r-- | src/backend/utils/adt/tsquery.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/src/backend/utils/adt/tsquery.c b/src/backend/utils/adt/tsquery.c index 72e608eb913..ab4aa7ca2d6 100644 --- a/src/backend/utils/adt/tsquery.c +++ b/src/backend/utils/adt/tsquery.c @@ -455,7 +455,9 @@ cleanOpStack(TSQueryParserState state, while(*lenstack) { - if (opPriority > OP_PRIORITY(stack[*lenstack - 1].op)) + /* NOT is right associative unlike to others */ + if ((op != OP_NOT && opPriority > OP_PRIORITY(stack[*lenstack - 1].op)) || + (op == OP_NOT && opPriority >= OP_PRIORITY(stack[*lenstack - 1].op))) break; (*lenstack)--; |