|
7 | 7 | *
|
8 | 8 | *
|
9 | 9 | * IDENTIFICATION
|
10 |
| - * $Header: /cvsroot/pgsql/src/backend/optimizer/plan/setrefs.c,v 1.42 1999/04/26 00:37:46 tgl Exp $ |
| 10 | + * $Header: /cvsroot/pgsql/src/backend/optimizer/plan/setrefs.c,v 1.43 1999/04/29 00:20:27 tgl Exp $ |
11 | 11 | *
|
12 | 12 | *-------------------------------------------------------------------------
|
13 | 13 | */
|
@@ -747,6 +747,9 @@ replace_agg_clause(Node *clause, List *subplanTargetList)
|
747 | 747 | List*t;
|
748 | 748 | List*agg_list=NIL;
|
749 | 749 |
|
| 750 | +if (clause==NULL) |
| 751 | +returnNIL; |
| 752 | + |
750 | 753 | if (IsA(clause,Var))
|
751 | 754 | {
|
752 | 755 | TargetEntry*subplanVar;
|
@@ -864,6 +867,9 @@ del_agg_clause(Node *clause)
|
864 | 867 | {
|
865 | 868 | List*t;
|
866 | 869 |
|
| 870 | +if (clause==NULL) |
| 871 | +returnclause; |
| 872 | + |
867 | 873 | if (IsA(clause,Var))
|
868 | 874 | returnclause;
|
869 | 875 | elseif (is_funcclause(clause))
|
@@ -942,6 +948,9 @@ check_having_qual_for_vars(Node *clause, List *targetlist_so_far)
|
942 | 948 | {
|
943 | 949 | List*t;
|
944 | 950 |
|
| 951 | +if (clause==NULL) |
| 952 | +returntargetlist_so_far; |
| 953 | + |
945 | 954 | if (IsA(clause,Var))
|
946 | 955 | {
|
947 | 956 | RelOptInfotmp_rel;
|
@@ -1035,6 +1044,9 @@ check_having_for_ungrouped_vars(Node *clause, List *groupClause)
|
1035 | 1044 | {
|
1036 | 1045 | List*t;
|
1037 | 1046 |
|
| 1047 | +if (clause==NULL) |
| 1048 | +return; |
| 1049 | + |
1038 | 1050 | if (IsA(clause,Var))
|
1039 | 1051 | {
|
1040 | 1052 | /* Ignore vars elsewhere in the having clause, since the
|
|