diff options
author | Teodor Sigaev <teodor@sigaev.ru> | 2008-03-09 10:42:48 +0000 |
---|---|---|
committer | Teodor Sigaev <teodor@sigaev.ru> | 2008-03-09 10:42:48 +0000 |
commit | d19d35431bf05508bbfb59732222133f862a5d36 (patch) | |
tree | f728ebe3f94a3fb1452e6a1d06882adc3a87b47c | |
parent | f647ed438a65580564d34a69b28bc2d31cc0c687 (diff) | |
download | postgresql-d19d35431bf05508bbfb59732222133f862a5d36.tar.gz postgresql-d19d35431bf05508bbfb59732222133f862a5d36.zip |
Revert changes of CompareTSQ: it affects existing btree indexes.
-rw-r--r-- | src/backend/utils/adt/tsquery_op.c | 27 |
1 files changed, 20 insertions, 7 deletions
diff --git a/src/backend/utils/adt/tsquery_op.c b/src/backend/utils/adt/tsquery_op.c index 3e5b8d30057..a0b103984dd 100644 --- a/src/backend/utils/adt/tsquery_op.c +++ b/src/backend/utils/adt/tsquery_op.c @@ -7,7 +7,7 @@ * * * IDENTIFICATION - * $PostgreSQL: pgsql/src/backend/utils/adt/tsquery_op.c,v 1.3.2.1 2008/03/07 15:29:27 teodor Exp $ + * $PostgreSQL: pgsql/src/backend/utils/adt/tsquery_op.c,v 1.3.2.2 2008/03/09 10:42:48 teodor Exp $ * *------------------------------------------------------------------------- */ @@ -141,14 +141,27 @@ tsquery_not(PG_FUNCTION_ARGS) static int CompareTSQ(TSQuery a, TSQuery b) { - QTNode *an = QT2QTN(GETQUERY(a), GETOPERAND(a)); - QTNode *bn = QT2QTN(GETQUERY(b), GETOPERAND(b)); - int res = QTNodeCompare(an, bn); + if (a->size != b->size) + { + return (a->size < b->size) ? -1 : 1; + } + else if (VARSIZE(a) != VARSIZE(b)) + { + return (VARSIZE(a) < VARSIZE(b)) ? -1 : 1; + } + else + { + QTNode *an = QT2QTN(GETQUERY(a), GETOPERAND(a)); + QTNode *bn = QT2QTN(GETQUERY(b), GETOPERAND(b)); + int res = QTNodeCompare(an, bn); - QTNFree(an); - QTNFree(bn); + QTNFree(an); + QTNFree(bn); - return res; + return res; + } + + return 0; } Datum |