Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
Skip to content

Commit 3ce8a1b

Browse files
committed
Fix for SELECT NOT boolfield FROM table
1 parent a3c5a3c commit 3ce8a1b

File tree

1 file changed

+13
-24
lines changed

1 file changed

+13
-24
lines changed

src/backend/optimizer/util/tlist.c

+13-24
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
*
88
*
99
* IDENTIFICATION
10-
* $Header: /cvsroot/pgsql/src/backend/optimizer/util/tlist.c,v 1.19 1998/09/22 20:28:07 momjian Exp $
10+
* $Header: /cvsroot/pgsql/src/backend/optimizer/util/tlist.c,v 1.20 1998/09/22 21:48:27 momjian Exp $
1111
*
1212
*-------------------------------------------------------------------------
1313
*/
@@ -453,31 +453,23 @@ flatten_tlistentry(Node *tlistentry, List *flat_tlist)
453453
{
454454
if (tlistentry == NULL)
455455
{
456-
457456
return NULL;
458-
459457
}
460458
else if (IsA(tlistentry, Var))
461459
{
462-
463-
return
464-
((Node *) get_expr(match_varid((Var *) tlistentry,
460+
return ((Node *) get_expr(match_varid((Var *) tlistentry,
465461
flat_tlist)));
466462
}
467463
else if (IsA(tlistentry, Iter))
468464
{
469-
470465
((Iter *) tlistentry)->iterexpr =
471466
flatten_tlistentry((Node *) ((Iter *) tlistentry)->iterexpr,
472467
flat_tlist);
473468
return tlistentry;
474-
475469
}
476470
else if (single_node(tlistentry))
477471
{
478-
479472
return tlistentry;
480-
481473
}
482474
else if (is_funcclause(tlistentry))
483475
{
@@ -489,15 +481,12 @@ flatten_tlistentry(Node *tlistentry, List *flat_tlist)
489481
temp_result = lappend(temp_result,
490482
flatten_tlistentry(lfirst(elt), flat_tlist));
491483

492-
return
493-
((Node *) make_funcclause((Func *) expr->oper, temp_result));
484+
return ((Node *) make_funcclause((Func *) expr->oper, temp_result));
494485

495486
}
496487
else if (IsA(tlistentry, Aggreg))
497488
{
498-
499489
return tlistentry;
500-
501490
}
502491
else if (IsA(tlistentry, ArrayRef))
503492
{
@@ -514,26 +503,26 @@ flatten_tlistentry(Node *tlistentry, List *flat_tlist)
514503
temp = lappend(temp, flatten_tlistentry(lfirst(elt), flat_tlist));
515504
aref->reflowerindexpr = temp;
516505

517-
aref->refexpr =
518-
flatten_tlistentry(aref->refexpr, flat_tlist);
506+
aref->refexpr = flatten_tlistentry(aref->refexpr, flat_tlist);
519507

520-
aref->refassgnexpr =
521-
flatten_tlistentry(aref->refassgnexpr, flat_tlist);
508+
aref->refassgnexpr = flatten_tlistentry(aref->refassgnexpr, flat_tlist);
522509

523510
return tlistentry;
524511
}
525512
else
526513
{
527514
Expr *expr = (Expr *) tlistentry;
528-
Var *left =
529-
(Var *) flatten_tlistentry((Node *) get_leftop(expr),
515+
516+
Var *left = (Var *) flatten_tlistentry((Node *) get_leftop(expr),
530517
flat_tlist);
531-
Var *right =
532-
(Var *) flatten_tlistentry((Node *) get_rightop(expr),
518+
Var *right = (Var *) flatten_tlistentry((Node *) get_rightop(expr),
533519
flat_tlist);
520+
Expr *final = make_opclause((Oper *) expr->oper, left, right);
534521

535-
return ((Node *)
536-
make_opclause((Oper *) expr->oper, left, right));
522+
Assert(IsA(tlistentry, Expr));
523+
final->opType = expr->opType;
524+
final->typeOid = expr->typeOid;
525+
return (Node *)final;
537526
}
538527
}
539528

0 commit comments

Comments
 (0)