]> granicus.if.org Git - postgresql/commitdiff
Fix for SELECT NOT boolfield FROM table
authorBruce Momjian <bruce@momjian.us>
Tue, 22 Sep 1998 21:48:27 +0000 (21:48 +0000)
committerBruce Momjian <bruce@momjian.us>
Tue, 22 Sep 1998 21:48:27 +0000 (21:48 +0000)
src/backend/optimizer/util/tlist.c

index 6a7c743dd9b1fe1237d96dfecdb02fdb24885161..dba994423fac593c3f42cf86bb75ad53c021d9e1 100644 (file)
@@ -7,7 +7,7 @@
  *
  *
  * IDENTIFICATION
- *       $Header: /cvsroot/pgsql/src/backend/optimizer/util/tlist.c,v 1.19 1998/09/22 20:28:07 momjian Exp $
+ *       $Header: /cvsroot/pgsql/src/backend/optimizer/util/tlist.c,v 1.20 1998/09/22 21:48:27 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -453,31 +453,23 @@ flatten_tlistentry(Node *tlistentry, List *flat_tlist)
 {
        if (tlistentry == NULL)
        {
-
                return NULL;
-
        }
        else if (IsA(tlistentry, Var))
        {
-
-               return
-                       ((Node *) get_expr(match_varid((Var *) tlistentry,
+               return ((Node *) get_expr(match_varid((Var *) tlistentry,
                                                                                   flat_tlist)));
        }
        else if (IsA(tlistentry, Iter))
        {
-
                ((Iter *) tlistentry)->iterexpr =
                        flatten_tlistentry((Node *) ((Iter *) tlistentry)->iterexpr,
                                                           flat_tlist);
                return tlistentry;
-
        }
        else if (single_node(tlistentry))
        {
-
                return tlistentry;
-
        }
        else if (is_funcclause(tlistentry))
        {
@@ -489,15 +481,12 @@ flatten_tlistentry(Node *tlistentry, List *flat_tlist)
                        temp_result = lappend(temp_result,
                                                        flatten_tlistentry(lfirst(elt), flat_tlist));
 
-               return
-                       ((Node *) make_funcclause((Func *) expr->oper, temp_result));
+               return ((Node *) make_funcclause((Func *) expr->oper, temp_result));
 
        }
        else if (IsA(tlistentry, Aggreg))
        {
-
                return tlistentry;
-
        }
        else if (IsA(tlistentry, ArrayRef))
        {
@@ -514,26 +503,26 @@ flatten_tlistentry(Node *tlistentry, List *flat_tlist)
                        temp = lappend(temp, flatten_tlistentry(lfirst(elt), flat_tlist));
                aref->reflowerindexpr = temp;
 
-               aref->refexpr =
-                       flatten_tlistentry(aref->refexpr, flat_tlist);
+               aref->refexpr = flatten_tlistentry(aref->refexpr, flat_tlist);
 
-               aref->refassgnexpr =
-                       flatten_tlistentry(aref->refassgnexpr, flat_tlist);
+               aref->refassgnexpr = flatten_tlistentry(aref->refassgnexpr, flat_tlist);
 
                return tlistentry;
        }
        else
        {
                Expr       *expr = (Expr *) tlistentry;
-               Var                *left =
-               (Var *) flatten_tlistentry((Node *) get_leftop(expr),
+
+               Var        *left = (Var *) flatten_tlistentry((Node *) get_leftop(expr),
                                                                   flat_tlist);
-               Var                *right =
-               (Var *) flatten_tlistentry((Node *) get_rightop(expr),
+               Var                *right = (Var *) flatten_tlistentry((Node *) get_rightop(expr),
                                                                   flat_tlist);
+               Expr       *final = make_opclause((Oper *) expr->oper, left, right);
 
-               return ((Node *)
-                               make_opclause((Oper *) expr->oper, left, right));
+               Assert(IsA(tlistentry, Expr));
+               final->opType = expr->opType;
+               final->typeOid = expr->typeOid;
+               return (Node *)final;
        }
 }