Fix incorrect cleanup of tsquery in ts_rewrite(). Per bug #4933 by
authorTeodor Sigaev <[email protected]>
Tue, 28 Jul 2009 09:32:45 +0000 (09:32 +0000)
committerTeodor Sigaev <[email protected]>
Tue, 28 Jul 2009 09:32:45 +0000 (09:32 +0000)
 Aaron Marcuse-Kubitza <[email protected]>

src/backend/utils/adt/tsquery_rewrite.c

index 89f11731dd4fd9c6cf7fe5605279525b63054554..729c878ecbdbfbb2c9f21a2c2250ee1c07ad8c7c 100644 (file)
@@ -7,7 +7,7 @@
  *
  *
  * IDENTIFICATION
- *   $PostgreSQL: pgsql/src/backend/utils/adt/tsquery_rewrite.c,v 1.11 2008/01/01 19:45:53 momjian Exp $
+ *   $PostgreSQL: pgsql/src/backend/utils/adt/tsquery_rewrite.c,v 1.11.2.1 2009/07/28 09:32:45 teodor Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -215,12 +215,12 @@ dropvoidsubtree(QTNode *root)
 
        root->nchild = j;
 
-       if (root->valnode->operator.oper == OP_NOT && root->nchild == 0)
+       if (root->nchild == 0)
        {
            QTNFree(root);
            root = NULL;
        }
-       else if (root->nchild == 1)
+       else if (root->nchild == 1 && root->valnode->operator.oper != OP_NOT)
        {
            QTNode     *nroot = root->child[0];