Skip to content

Commit 2355b69

Browse files
committed
Small refactoring of makeVar() from a TargetEntry
1 parent c10575f commit 2355b69

File tree

8 files changed

+37
-56
lines changed

8 files changed

+37
-56
lines changed

src/backend/nodes/makefuncs.c

Lines changed: 18 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,14 +9,15 @@
99
*
1010
*
1111
* IDENTIFICATION
12-
* $PostgreSQL: pgsql/src/backend/nodes/makefuncs.c,v 1.66 2010/01/02 16:57:46 momjian Exp $
12+
* $PostgreSQL: pgsql/src/backend/nodes/makefuncs.c,v 1.67 2010/08/27 20:30:07 petere Exp $
1313
*
1414
*-------------------------------------------------------------------------
1515
*/
1616
#include "postgres.h"
1717

1818
#include "catalog/pg_type.h"
1919
#include "nodes/makefuncs.h"
20+
#include "nodes/nodeFuncs.h"
2021
#include "utils/lsyscache.h"
2122

2223

@@ -90,6 +91,22 @@ makeVar(Index varno,
9091
return var;
9192
}
9293

94+
/*
95+
* makeVarFromTargetEntry -
96+
* convenience function to create a same-level Var node from a
97+
* TargetEntry
98+
*/
99+
Var *
100+
makeVarFromTargetEntry(Index varno,
101+
TargetEntry *tle)
102+
{
103+
return makeVar(varno,
104+
tle->resno,
105+
exprType((Node *) tle->expr),
106+
exprTypmod((Node *) tle->expr),
107+
0);
108+
}
109+
93110
/*
94111
* makeTargetEntry -
95112
* creates a TargetEntry node

src/backend/optimizer/path/pathkeys.c

Lines changed: 4 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@
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

630630
Assert(list_length(sub_eclass->ec_members) == 1);
631631
sub_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,
712707
if (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
}
722712
else
723713
{
@@ -730,12 +720,7 @@ convert_subquery_pathkeys(PlannerInfo *root, RelOptInfo *rel,
730720
if (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);
739724
if (exprType((Node *) outer_expr) !=
740725
exprType((Node *) sub_expr))
741726
outer_expr = (Expr *)

src/backend/optimizer/plan/setrefs.c

Lines changed: 3 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99
*
1010
*
1111
* IDENTIFICATION
12-
* $PostgreSQL: pgsql/src/backend/optimizer/plan/setrefs.c,v 1.161 2010/07/12 17:01:06 tgl Exp $
12+
* $PostgreSQL: pgsql/src/backend/optimizer/plan/setrefs.c,v 1.162 2010/08/27 20:30:08 petere Exp $
1313
*
1414
*-------------------------------------------------------------------------
1515
*/
@@ -1283,11 +1283,7 @@ search_indexed_tlist_for_non_var(Node *node,
12831283
/* Found a matching subplan output expression */
12841284
Var *newvar;
12851285

1286-
newvar = makeVar(newvarno,
1287-
tle->resno,
1288-
exprType((Node *) tle->expr),
1289-
exprTypmod((Node *) tle->expr),
1290-
0);
1286+
newvar = makeVarFromTargetEntry(newvarno, tle);
12911287
newvar->varnoold = 0; /* wasn't ever a plain Var */
12921288
newvar->varoattno = 0;
12931289
return newvar;
@@ -1325,11 +1321,7 @@ search_indexed_tlist_for_sortgroupref(Node *node,
13251321
/* Found a matching subplan output expression */
13261322
Var *newvar;
13271323

1328-
newvar = makeVar(newvarno,
1329-
tle->resno,
1330-
exprType((Node *) tle->expr),
1331-
exprTypmod((Node *) tle->expr),
1332-
0);
1324+
newvar = makeVarFromTargetEntry(newvarno, tle);
13331325
newvar->varnoold = 0; /* wasn't ever a plain Var */
13341326
newvar->varoattno = 0;
13351327
return newvar;

src/backend/optimizer/plan/subselect.c

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
* Portions Copyright (c) 1994, Regents of the University of California
88
*
99
* IDENTIFICATION
10-
* $PostgreSQL: pgsql/src/backend/optimizer/plan/subselect.c,v 1.163 2010/07/12 17:01:06 tgl Exp $
10+
* $PostgreSQL: pgsql/src/backend/optimizer/plan/subselect.c,v 1.164 2010/08/27 20:30:08 petere Exp $
1111
*
1212
*-------------------------------------------------------------------------
1313
*/
@@ -737,11 +737,7 @@ generate_subquery_vars(PlannerInfo *root, List *tlist, Index varno)
737737
if (tent->resjunk)
738738
continue;
739739

740-
var = makeVar(varno,
741-
tent->resno,
742-
exprType((Node *) tent->expr),
743-
exprTypmod((Node *) tent->expr),
744-
0);
740+
var = makeVarFromTargetEntry(varno, tent);
745741
result = lappend(result, var);
746742
}
747743

src/backend/optimizer/prep/prepjointree.c

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@
1616
*
1717
*
1818
* IDENTIFICATION
19-
* $PostgreSQL: pgsql/src/backend/optimizer/prep/prepjointree.c,v 1.73 2010/07/06 19:18:56 momjian Exp $
19+
* $PostgreSQL: pgsql/src/backend/optimizer/prep/prepjointree.c,v 1.74 2010/08/27 20:30:08 petere Exp $
2020
*
2121
*-------------------------------------------------------------------------
2222
*/
@@ -991,11 +991,7 @@ make_setop_translation_list(Query *query, Index newvarno,
991991
if (tle->resjunk)
992992
continue;
993993

994-
vars = lappend(vars, makeVar(newvarno,
995-
tle->resno,
996-
exprType((Node *) tle->expr),
997-
exprTypmod((Node *) tle->expr),
998-
0));
994+
vars = lappend(vars, makeVarFromTargetEntry(newvarno, tle));
999995
}
1000996

1001997
*translated_vars = vars;

src/backend/optimizer/util/plancat.c

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99
*
1010
*
1111
* IDENTIFICATION
12-
* $PostgreSQL: pgsql/src/backend/optimizer/util/plancat.c,v 1.163 2010/03/30 21:58:10 tgl Exp $
12+
* $PostgreSQL: pgsql/src/backend/optimizer/util/plancat.c,v 1.164 2010/08/27 20:30:08 petere Exp $
1313
*
1414
*-------------------------------------------------------------------------
1515
*/
@@ -727,11 +727,7 @@ build_physical_tlist(PlannerInfo *root, RelOptInfo *rel)
727727
* A resjunk column of the subquery can be reflected as
728728
* resjunk in the physical tlist; we need not punt.
729729
*/
730-
var = makeVar(varno,
731-
tle->resno,
732-
exprType((Node *) tle->expr),
733-
exprTypmod((Node *) tle->expr),
734-
0);
730+
var = makeVarFromTargetEntry(varno, tle);
735731

736732
tlist = lappend(tlist,
737733
makeTargetEntry((Expr *) var,

src/backend/parser/analyze.c

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@
1717
* Portions Copyright (c) 1996-2010, PostgreSQL Global Development Group
1818
* Portions Copyright (c) 1994, Regents of the University of California
1919
*
20-
* $PostgreSQL: pgsql/src/backend/parser/analyze.c,v 1.402 2010/02/26 02:00:49 momjian Exp $
20+
* $PostgreSQL: pgsql/src/backend/parser/analyze.c,v 1.403 2010/08/27 20:30:08 petere Exp $
2121
*
2222
*-------------------------------------------------------------------------
2323
*/
@@ -484,11 +484,7 @@ transformInsertStmt(ParseState *pstate, InsertStmt *stmt)
484484
expr = tle->expr;
485485
else
486486
{
487-
Var *var = makeVar(rtr->rtindex,
488-
tle->resno,
489-
exprType((Node *) tle->expr),
490-
exprTypmod((Node *) tle->expr),
491-
0);
487+
Var *var = makeVarFromTargetEntry(rtr->rtindex, tle);
492488

493489
var->location = exprLocation((Node *) tle->expr);
494490
expr = (Expr *) var;

src/include/nodes/makefuncs.h

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
* Portions Copyright (c) 1996-2010, PostgreSQL Global Development Group
88
* Portions Copyright (c) 1994, Regents of the University of California
99
*
10-
* $PostgreSQL: pgsql/src/include/nodes/makefuncs.h,v 1.70 2010/01/02 16:58:04 momjian Exp $
10+
* $PostgreSQL: pgsql/src/include/nodes/makefuncs.h,v 1.71 2010/08/27 20:30:08 petere Exp $
1111
*
1212
*-------------------------------------------------------------------------
1313
*/
@@ -29,6 +29,9 @@ extern Var *makeVar(Index varno,
2929
int32 vartypmod,
3030
Index varlevelsup);
3131

32+
extern Var *makeVarFromTargetEntry(Index varno,
33+
TargetEntry *tle);
34+
3235
extern TargetEntry *makeTargetEntry(Expr *expr,
3336
AttrNumber resno,
3437
char *resname,

0 commit comments

Comments
 (0)
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy