|
7 | 7 | *
|
8 | 8 | *
|
9 | 9 | * IDENTIFICATION
|
10 |
| - * $Header: /cvsroot/pgsql/src/backend/optimizer/plan/createplan.c,v 1.64 1999/07/27 03:51:03 tgl Exp $ |
| 10 | + * $Header: /cvsroot/pgsql/src/backend/optimizer/plan/createplan.c,v 1.65 1999/07/29 02:48:05 tgl Exp $ |
11 | 11 | *
|
12 | 12 | *-------------------------------------------------------------------------
|
13 | 13 | */
|
@@ -740,6 +740,37 @@ fix_indxqual_references(Node *clause, Path *index_path)
|
740 | 740 |
|
741 | 741 | return (Node*)newnode;
|
742 | 742 | }
|
| 743 | +elseif (IsA(clause,CaseExpr)) |
| 744 | +{ |
| 745 | +CaseExpr*oldnode= (CaseExpr*)clause; |
| 746 | +CaseExpr*newnode=makeNode(CaseExpr); |
| 747 | + |
| 748 | +newnode->casetype=oldnode->casetype; |
| 749 | +newnode->arg=oldnode->arg;/* XXX should always be null |
| 750 | + * anyway ... */ |
| 751 | +newnode->args= (List*) |
| 752 | +fix_indxqual_references((Node*)oldnode->args, |
| 753 | +index_path); |
| 754 | +newnode->defresult= |
| 755 | +fix_indxqual_references(oldnode->defresult, |
| 756 | +index_path); |
| 757 | + |
| 758 | +return (Node*)newnode; |
| 759 | +} |
| 760 | +elseif (IsA(clause,CaseWhen)) |
| 761 | +{ |
| 762 | +CaseWhen*oldnode= (CaseWhen*)clause; |
| 763 | +CaseWhen*newnode=makeNode(CaseWhen); |
| 764 | + |
| 765 | +newnode->expr= |
| 766 | +fix_indxqual_references(oldnode->expr, |
| 767 | +index_path); |
| 768 | +newnode->result= |
| 769 | +fix_indxqual_references(oldnode->result, |
| 770 | +index_path); |
| 771 | + |
| 772 | +return (Node*)newnode; |
| 773 | +} |
743 | 774 | else
|
744 | 775 | {
|
745 | 776 | elog(ERROR,"fix_indxqual_references: Cannot handle node type %d",
|
|