1111 * Portions Copyright (c) 1994, Regents of the University of California
1212 *
1313 * IDENTIFICATION
14- * $PostgreSQL: pgsql/src/backend/optimizer/path/pathkeys.c,v 1.101 2010/02/26 02:00:45 momjian Exp $
14+ * $PostgreSQL: pgsql/src/backend/optimizer/path/pathkeys.c,v 1.102 2010/08/27 20:30:08 petere Exp $
1515 *
1616 *-------------------------------------------------------------------------
1717 */
@@ -629,12 +629,7 @@ convert_subquery_pathkeys(PlannerInfo *root, RelOptInfo *rel,
629629
630630Assert (list_length (sub_eclass -> ec_members )== 1 );
631631sub_member = (EquivalenceMember * )linitial (sub_eclass -> ec_members );
632- outer_expr = (Expr * )
633- makeVar (rel -> relid ,
634- tle -> resno ,
635- exprType ((Node * )tle -> expr ),
636- exprTypmod ((Node * )tle -> expr ),
637- 0 );
632+ outer_expr = (Expr * )makeVarFromTargetEntry (rel -> relid ,tle );
638633
639634/*
640635 * Note: it might look funny to be setting sortref = 0 for a
@@ -712,12 +707,7 @@ convert_subquery_pathkeys(PlannerInfo *root, RelOptInfo *rel,
712707if (equal (tle -> expr ,sub_expr ))
713708{
714709/* Exact match */
715- outer_expr = (Expr * )
716- makeVar (rel -> relid ,
717- tle -> resno ,
718- exprType ((Node * )tle -> expr ),
719- exprTypmod ((Node * )tle -> expr ),
720- 0 );
710+ outer_expr = (Expr * )makeVarFromTargetEntry (rel -> relid ,tle );
721711}
722712else
723713{
@@ -730,12 +720,7 @@ convert_subquery_pathkeys(PlannerInfo *root, RelOptInfo *rel,
730720if (equal (tle_stripped ,sub_stripped ))
731721{
732722/* Match after discarding RelabelType */
733- outer_expr = (Expr * )
734- makeVar (rel -> relid ,
735- tle -> resno ,
736- exprType ((Node * )tle -> expr ),
737- exprTypmod ((Node * )tle -> expr ),
738- 0 );
723+ outer_expr = (Expr * )makeVarFromTargetEntry (rel -> relid ,tle );
739724if (exprType ((Node * )outer_expr )!=
740725exprType ((Node * )sub_expr ))
741726outer_expr = (Expr * )