7
7
*
8
8
*
9
9
* 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 $
11
11
*
12
12
*-------------------------------------------------------------------------
13
13
*/
@@ -453,31 +453,23 @@ flatten_tlistentry(Node *tlistentry, List *flat_tlist)
453
453
{
454
454
if (tlistentry == NULL )
455
455
{
456
-
457
456
return NULL ;
458
-
459
457
}
460
458
else if (IsA (tlistentry , Var ))
461
459
{
462
-
463
- return
464
- ((Node * ) get_expr (match_varid ((Var * ) tlistentry ,
460
+ return ((Node * ) get_expr (match_varid ((Var * ) tlistentry ,
465
461
flat_tlist )));
466
462
}
467
463
else if (IsA (tlistentry , Iter ))
468
464
{
469
-
470
465
((Iter * ) tlistentry )-> iterexpr =
471
466
flatten_tlistentry ((Node * ) ((Iter * ) tlistentry )-> iterexpr ,
472
467
flat_tlist );
473
468
return tlistentry ;
474
-
475
469
}
476
470
else if (single_node (tlistentry ))
477
471
{
478
-
479
472
return tlistentry ;
480
-
481
473
}
482
474
else if (is_funcclause (tlistentry ))
483
475
{
@@ -489,15 +481,12 @@ flatten_tlistentry(Node *tlistentry, List *flat_tlist)
489
481
temp_result = lappend (temp_result ,
490
482
flatten_tlistentry (lfirst (elt ), flat_tlist ));
491
483
492
- return
493
- ((Node * ) make_funcclause ((Func * ) expr -> oper , temp_result ));
484
+ return ((Node * ) make_funcclause ((Func * ) expr -> oper , temp_result ));
494
485
495
486
}
496
487
else if (IsA (tlistentry , Aggreg ))
497
488
{
498
-
499
489
return tlistentry ;
500
-
501
490
}
502
491
else if (IsA (tlistentry , ArrayRef ))
503
492
{
@@ -514,26 +503,26 @@ flatten_tlistentry(Node *tlistentry, List *flat_tlist)
514
503
temp = lappend (temp , flatten_tlistentry (lfirst (elt ), flat_tlist ));
515
504
aref -> reflowerindexpr = temp ;
516
505
517
- aref -> refexpr =
518
- flatten_tlistentry (aref -> refexpr , flat_tlist );
506
+ aref -> refexpr = flatten_tlistentry (aref -> refexpr , flat_tlist );
519
507
520
- aref -> refassgnexpr =
521
- flatten_tlistentry (aref -> refassgnexpr , flat_tlist );
508
+ aref -> refassgnexpr = flatten_tlistentry (aref -> refassgnexpr , flat_tlist );
522
509
523
510
return tlistentry ;
524
511
}
525
512
else
526
513
{
527
514
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 ),
530
517
flat_tlist );
531
- Var * right =
532
- (Var * ) flatten_tlistentry ((Node * ) get_rightop (expr ),
518
+ Var * right = (Var * ) flatten_tlistentry ((Node * ) get_rightop (expr ),
533
519
flat_tlist );
520
+ Expr * final = make_opclause ((Oper * ) expr -> oper , left , right );
534
521
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 ;
537
526
}
538
527
}
539
528
0 commit comments