|  | 
| 15 | 15 |  * Portions Copyright (c) 1994, Regents of the University of California | 
| 16 | 16 |  * | 
| 17 | 17 |  * IDENTIFICATION | 
| 18 |  | - *	  $Header: /cvsroot/pgsql/src/backend/nodes/copyfuncs.c,v 1.220 2002/11/23 03:59:07 momjian Exp $ | 
|  | 18 | + *	  $Header: /cvsroot/pgsql/src/backend/nodes/copyfuncs.c,v 1.221 2002/11/24 21:52:13 tgl Exp $ | 
| 19 | 19 |  * | 
| 20 | 20 |  *------------------------------------------------------------------------- | 
| 21 | 21 |  */ | 
| @@ -1148,7 +1148,9 @@ _copyRelOptInfo(RelOptInfo *from) | 
| 1148 | 1148 | 	newnode->baserestrictcost = from->baserestrictcost; | 
| 1149 | 1149 | 	newnode->outerjoinset = listCopy(from->outerjoinset); | 
| 1150 | 1150 | 	Node_Copy(from, newnode, joininfo); | 
| 1151 |  | -	Node_Copy(from, newnode, innerjoin); | 
|  | 1151 | + | 
|  | 1152 | +	newnode->index_outer_relids = listCopy(from->index_outer_relids); | 
|  | 1153 | +	Node_Copy(from, newnode, index_inner_paths); | 
| 1152 | 1154 | 
 | 
| 1153 | 1155 | 	return newnode; | 
| 1154 | 1156 | } | 
| @@ -1200,6 +1202,9 @@ _copyIndexOptInfo(IndexOptInfo *from) | 
| 1200 | 1202 | 	Node_Copy(from, newnode, indpred); | 
| 1201 | 1203 | 	newnode->unique = from->unique; | 
| 1202 | 1204 | 
 | 
|  | 1205 | +	newnode->outer_relids = listCopy(from->outer_relids); | 
|  | 1206 | +	Node_Copy(from, newnode, inner_paths); | 
|  | 1207 | + | 
| 1203 | 1208 | 	return newnode; | 
| 1204 | 1209 | } | 
| 1205 | 1210 | 
 | 
| @@ -1262,8 +1267,6 @@ _copyIndexPath(IndexPath *from) | 
| 1262 | 1267 | 	Node_Copy(from, newnode, indexinfo); | 
| 1263 | 1268 | 	Node_Copy(from, newnode, indexqual); | 
| 1264 | 1269 | 	newnode->indexscandir = from->indexscandir; | 
| 1265 |  | -	newnode->joinrelids = listCopy(from->joinrelids); | 
| 1266 |  | -	newnode->alljoinquals = from->alljoinquals; | 
| 1267 | 1270 | 	newnode->rows = from->rows; | 
| 1268 | 1271 | 
 | 
| 1269 | 1272 | 	return newnode; | 
| @@ -1491,6 +1494,25 @@ _copyJoinInfo(JoinInfo *from) | 
| 1491 | 1494 | 	return newnode; | 
| 1492 | 1495 | } | 
| 1493 | 1496 | 
 | 
|  | 1497 | +/* ---------------- | 
|  | 1498 | + *		_copyInnerIndexscanInfo | 
|  | 1499 | + * ---------------- | 
|  | 1500 | + */ | 
|  | 1501 | +static InnerIndexscanInfo * | 
|  | 1502 | +_copyInnerIndexscanInfo(InnerIndexscanInfo *from) | 
|  | 1503 | +{ | 
|  | 1504 | +	InnerIndexscanInfo   *newnode = makeNode(InnerIndexscanInfo); | 
|  | 1505 | + | 
|  | 1506 | +	/* | 
|  | 1507 | +	 * copy remainder of node | 
|  | 1508 | +	 */ | 
|  | 1509 | +	newnode->other_relids = listCopy(from->other_relids); | 
|  | 1510 | +	newnode->isouterjoin = from->isouterjoin; | 
|  | 1511 | +	Node_Copy(from, newnode, best_innerpath); | 
|  | 1512 | + | 
|  | 1513 | +	return newnode; | 
|  | 1514 | +} | 
|  | 1515 | + | 
| 1494 | 1516 | /* **************************************************************** | 
| 1495 | 1517 |  *					parsenodes.h copy functions | 
| 1496 | 1518 |  * **************************************************************** | 
| @@ -2952,6 +2974,9 @@ copyObject(void *from) | 
| 2952 | 2974 | 		case T_IndexOptInfo: | 
| 2953 | 2975 | 			retval = _copyIndexOptInfo(from); | 
| 2954 | 2976 | 			break; | 
|  | 2977 | +		case T_InnerIndexscanInfo: | 
|  | 2978 | +			retval = _copyInnerIndexscanInfo(from); | 
|  | 2979 | +			break; | 
| 2955 | 2980 | 
 | 
| 2956 | 2981 | 			/* | 
| 2957 | 2982 | 			 * VALUE NODES | 
|  | 
0 commit comments