Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
Skip to content

Commit 660f458

Browse files
committed
Clean up of copyfuncs.
1 parent f3dbe73 commit 660f458

File tree

4 files changed

+55
-88
lines changed

4 files changed

+55
-88
lines changed

src/backend/nodes/copyfuncs.c

+39-80
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
*
88
*
99
* IDENTIFICATION
10-
* $Header: /cvsroot/pgsql/src/backend/nodes/copyfuncs.c,v 1.28 1998/01/09 05:48:10 momjian Exp $
10+
* $Header: /cvsroot/pgsql/src/backend/nodes/copyfuncs.c,v 1.29 1998/01/11 20:01:53 momjian Exp $
1111
*
1212
*-------------------------------------------------------------------------
1313
*/
@@ -82,6 +82,7 @@ CopyPlanFields(Plan *from, Plan *newnode)
8282
newnode->cost = from->cost;
8383
newnode->plan_size = from->plan_size;
8484
newnode->plan_width = from->plan_width;
85+
newnode->plan_tupperpage = from->plan_tupperpage;
8586
newnode->state = from->state;
8687
newnode->targetlist = copyObject(from->targetlist);
8788
newnode->qual = copyObject(from->qual);
@@ -153,6 +154,7 @@ _copyAppend(Append *from)
153154
* ----------------
154155
*/
155156
Node_Copy(from, newnode, unionplans);
157+
Node_Copy(from, newnode, unionrts);
156158
newnode->unionrelid = from->unionrelid;
157159
Node_Copy(from, newnode, unionrtentries);
158160
Node_Copy(from, newnode, unionstate);
@@ -190,7 +192,7 @@ _copyScan(Scan *from)
190192
* ----------------
191193
*/
192194
CopyPlanFields((Plan *) from, (Plan *) newnode);
193-
CopyScanFields(from, newnode);
195+
CopyScanFields((Scan *) from, (Scan *) newnode);
194196

195197
return newnode;
196198
}
@@ -310,7 +312,6 @@ static MergeJoin *
310312
_copyMergeJoin(MergeJoin *from)
311313
{
312314
MergeJoin *newnode = makeNode(MergeJoin);
313-
List *newlist;
314315

315316
/* ----------------
316317
* copy node superclass fields
@@ -326,7 +327,6 @@ _copyMergeJoin(MergeJoin *from)
326327
Node_Copy(from, newnode, mergeclauses);
327328

328329
newnode->mergesortop = from->mergesortop;
329-
newlist = NIL;
330330

331331
newnode->mergerightorder = (Oid *) palloc(sizeof(Oid) * 2);
332332
newnode->mergerightorder[0] = from->mergerightorder[0];
@@ -458,7 +458,9 @@ _copySort(Sort *from)
458458
* ----------------
459459
*/
460460
Node_Copy(from, newnode, sortstate);
461-
461+
Node_Copy(from, newnode, psortstate);
462+
newnode->cleaned = from->cleaned;
463+
462464
return newnode;
463465
}
464466

@@ -473,8 +475,7 @@ _copyGroup(Group *from)
473475
Group *newnode = makeNode(Group);
474476

475477
CopyPlanFields((Plan *) from, (Plan *) newnode);
476-
CopyTempFields((Temp *) from, (Temp *) newnode);
477-
478+
478479
newnode->tuplePerGroup = from->tuplePerGroup;
479480
newnode->numCols = from->numCols;
480481
newnode->grpColIdx = palloc (from->numCols * sizeof (AttrNumber));
@@ -495,14 +496,11 @@ _copyAgg(Agg *from)
495496
int i;
496497

497498
CopyPlanFields((Plan *) from, (Plan *) newnode);
498-
CopyTempFields((Temp *) from, (Temp *) newnode);
499499

500500
newnode->numAgg = from->numAgg;
501501
newnode->aggs = palloc(sizeof(Aggreg *));
502502
for (i = 0; i < from->numAgg; i++)
503-
{
504503
newnode->aggs[i] = copyObject(from->aggs[i]);
505-
}
506504

507505
Node_Copy(from, newnode, aggstate);
508506

@@ -518,8 +516,8 @@ _copyGroupClause(GroupClause *from)
518516
{
519517
GroupClause *newnode = makeNode(GroupClause);
520518

519+
Node_Copy(from, newnode, entry);
521520
newnode->grpOpoid = from->grpOpoid;
522-
newnode->entry = copyObject(from->entry);
523521

524522
return newnode;
525523
}
@@ -545,6 +543,8 @@ _copyUnique(Unique *from)
545543
* copy remainder of node
546544
* ----------------
547545
*/
546+
newnode->uniqueAttr = pstrdup(from->uniqueAttr);
547+
newnode->uniqueAttrNum = from->uniqueAttrNum;
548548
Node_Copy(from, newnode, uniquestate);
549549

550550
return newnode;
@@ -599,13 +599,7 @@ _copyResdom(Resdom *from)
599599
newnode->reslen = from->reslen;
600600

601601
if (from->resname != NULL)
602-
{
603-
newnode->resname = palloc(strlen(from->resname) + 1);
604-
strcpy(newnode->resname, from->resname);
605-
}
606-
else
607-
newnode->resname = (char *) NULL;
608-
602+
newnode->resname = pstrdup(from->resname);
609603
newnode->reskey = from->reskey;
610604
newnode->reskeyop = from->reskeyop;
611605
newnode->resjunk = from->resjunk;
@@ -630,14 +624,12 @@ _copyFjoin(Fjoin *from)
630624

631625
newnode->fj_results = (DatumPtr)
632626
palloc((from->fj_nNodes) * sizeof(Datum));
633-
634-
newnode->fj_alwaysDone = (BoolPtr)
635-
palloc((from->fj_nNodes) * sizeof(bool));
636-
637627
memmove(from->fj_results,
638628
newnode->fj_results,
639629
(from->fj_nNodes) * sizeof(Datum));
640630

631+
newnode->fj_alwaysDone = (BoolPtr)
632+
palloc((from->fj_nNodes) * sizeof(bool));
641633
memmove(from->fj_alwaysDone,
642634
newnode->fj_alwaysDone,
643635
(from->fj_nNodes) * sizeof(bool));
@@ -741,6 +733,8 @@ _copyConst(Const *from)
741733
/* ----------------
742734
* XXX super cheesy hack until parser/planner
743735
* puts in the right values here.
736+
*
737+
* But I like cheese.
744738
* ----------------
745739
*/
746740
if (!from->constisnull && cached_type != from->consttype)
@@ -826,6 +820,8 @@ _copyConst(Const *from)
826820
}
827821
newnode->constisnull = from->constisnull;
828822
newnode->constbyval = from->constbyval;
823+
newnode->constisset = from->constisset;
824+
newnode->constiscast = from->constiscast;
829825

830826
return newnode;
831827
}
@@ -847,12 +843,7 @@ _copyParam(Param *from)
847843
newnode->paramid = from->paramid;
848844

849845
if (from->paramname != NULL)
850-
{
851846
newnode->paramname = pstrdup(from->paramname);
852-
}
853-
else
854-
newnode->paramname = (char *) NULL;
855-
856847
newnode->paramtype = from->paramtype;
857848
Node_Copy(from, newnode, param_tlist);
858849

@@ -899,11 +890,9 @@ _copyAggreg(Aggreg *from)
899890
newnode->aggname = pstrdup(from->aggname);
900891
newnode->basetype = from->basetype;
901892
newnode->aggtype = from->aggtype;
902-
newnode->usenulls = from->usenulls;
903-
904893
Node_Copy(from, newnode, target);
905-
906894
newnode->aggno = from->aggno;
895+
newnode->usenulls = from->usenulls;
907896

908897
return newnode;
909898
}
@@ -937,9 +926,9 @@ _copyArrayRef(ArrayRef *from)
937926
* copy remainder of node
938927
* ----------------
939928
*/
940-
newnode->refelemtype = from->refelemtype;
941929
newnode->refattrlength = from->refattrlength;
942930
newnode->refelemlength = from->refelemlength;
931+
newnode->refelemtype = from->refelemtype;
943932
newnode->refelembyval = from->refelembyval;
944933

945934
Node_Copy(from, newnode, refupperindexpr);
@@ -982,24 +971,19 @@ _copyRel(Rel *from)
982971
newnode->tuples = from->tuples;
983972
newnode->size = from->size;
984973
newnode->width = from->width;
985-
newnode->indproc = from->indproc;
986-
987974
Node_Copy(from, newnode, targetlist);
988975
Node_Copy(from, newnode, pathlist);
989976
Node_Copy(from, newnode, unorderedpath);
990977
Node_Copy(from, newnode, cheapestpath);
991978
newnode->pruneable = from->pruneable;
992-
newnode->relam = from->relam;
993979

994980
if (from->classlist)
995981
{
996982
for (len = 0; from->classlist[len] != 0; len++)
997983
;
998984
newnode->classlist = (Oid *) palloc(sizeof(Oid) * (len + 1));
999985
for (i = 0; i < len; i++)
1000-
{
1001986
newnode->classlist[i] = from->classlist[i];
1002-
}
1003987
newnode->classlist[len] = 0;
1004988
}
1005989

@@ -1009,21 +993,21 @@ _copyRel(Rel *from)
1009993
;
1010994
newnode->indexkeys = (int *) palloc(sizeof(int) * (len + 1));
1011995
for (i = 0; i < len; i++)
1012-
{
1013996
newnode->indexkeys[i] = from->indexkeys[i];
1014-
}
1015997
newnode->indexkeys[len] = 0;
1016998
}
1017999

1000+
newnode->relam = from->relam;
1001+
newnode->indproc = from->indproc;
1002+
Node_Copy(from, newnode, indpred);
1003+
10181004
if (from->ordering)
10191005
{
10201006
for (len = 0; from->ordering[len] != 0; len++)
10211007
;
10221008
newnode->ordering = (Oid *) palloc(sizeof(Oid) * (len + 1));
10231009
for (i = 0; i < len; i++)
1024-
{
10251010
newnode->ordering[i] = from->ordering[i];
1026-
}
10271011
newnode->ordering[len] = 0;
10281012
}
10291013

@@ -1070,15 +1054,9 @@ CopyPathFields(Path *from, Path *newnode)
10701054
newnode->p_ordering.ord.sortop =
10711055
(Oid *) palloc(sizeof(Oid) * (len + 1));
10721056
for (i = 0; i < len; i++)
1073-
{
10741057
newnode->p_ordering.ord.sortop[i] = ordering[i];
1075-
}
10761058
newnode->p_ordering.ord.sortop[len] = 0;
10771059
}
1078-
else
1079-
{
1080-
newnode->p_ordering.ord.sortop = NULL;
1081-
}
10821060
}
10831061
else
10841062
{
@@ -1138,9 +1116,7 @@ _copyIndexPath(IndexPath *from)
11381116
;
11391117
newnode->indexkeys = (int *) palloc(sizeof(int) * (len + 1));
11401118
for (i = 0; i < len; i++)
1141-
{
11421119
newnode->indexkeys[i] = from->indexkeys[i];
1143-
}
11441120
newnode->indexkeys[len] = 0;
11451121
}
11461122

@@ -1364,6 +1340,7 @@ _copyHInfo(HInfo *from)
13641340
* copy remainder of node
13651341
* ----------------
13661342
*/
1343+
CopyJoinMethodFields((JoinMethod *)from, (JoinMethod *)newnode);
13671344
newnode->hashop = from->hashop;
13681345

13691346
return newnode;
@@ -1382,6 +1359,7 @@ _copyMInfo(MInfo *from)
13821359
* copy remainder of node
13831360
* ----------------
13841361
*/
1362+
CopyJoinMethodFields((JoinMethod *)from, (JoinMethod *)newnode);
13851363
Node_Copy(from, newnode, m_ordering);
13861364

13871365
return newnode;
@@ -1429,15 +1407,17 @@ _copyStream(Stream *from)
14291407
newnode->pathptr = from->pathptr;
14301408
newnode->cinfo = from->cinfo;
14311409
newnode->clausetype = from->clausetype;
1432-
newnode->groupup = from->groupup;
1433-
newnode->groupcost = from->groupcost;
1434-
newnode->groupsel = from->groupsel;
1410+
14351411
newnode->upstream = (StreamPtr) NULL; /* only copy nodes
14361412
* downwards! */
14371413
Node_Copy(from, newnode, downstream);
14381414
if (newnode->downstream)
14391415
((Stream *) newnode->downstream)->upstream = (Stream *) newnode;
14401416

1417+
newnode->groupup = from->groupup;
1418+
newnode->groupcost = from->groupcost;
1419+
newnode->groupsel = from->groupsel;
1420+
14411421
return newnode;
14421422
}
14431423

@@ -1462,12 +1442,15 @@ _copyRangeTblEntry(RangeTblEntry *from)
14621442
{
14631443
RangeTblEntry *newnode = makeNode(RangeTblEntry);
14641444

1465-
memcpy(newnode, from, sizeof(RangeTblEntry));
14661445
if (from->relname)
14671446
newnode->relname = pstrdup(from->relname);
14681447
if (from->refname)
14691448
newnode->refname = pstrdup(from->refname);
1449+
newnode->relid = from->relid;
1450+
newnode->inh = from->inh;
1451+
newnode->inFromCl = from->inFromCl;
14701452

1453+
14711454
return newnode;
14721455
}
14731456

@@ -1499,13 +1482,8 @@ _copyTypeName(TypeName *from)
14991482
TypeName *newnode = makeNode(TypeName);
15001483

15011484
if (from->name)
1502-
{
15031485
newnode->name = pstrdup(from->name);
1504-
}
1505-
else
1506-
{
1507-
from->name = (char *) 0;
1508-
}
1486+
newnode->timezone = from->timezone;
15091487
newnode->setof = from->setof;
15101488
Node_Copy(from, newnode, arrayBounds);
15111489
newnode->typlen = from->typlen;
@@ -1524,40 +1502,25 @@ _copyQuery(Query *from)
15241502
{
15251503
NotifyStmt *from_notify = (NotifyStmt *) from->utilityStmt;
15261504
NotifyStmt *n = makeNode(NotifyStmt);
1527-
int length = strlen(from_notify->relname);
15281505

1529-
n->relname = palloc(length + 1);
1530-
strcpy(n->relname, from_notify->relname);
1506+
n->relname = pstrdup(from_notify->relname);
15311507
newnode->utilityStmt = (Node *) n;
15321508
}
15331509
newnode->resultRelation = from->resultRelation;
1534-
/* probably should dup this string instead of just pointing */
1535-
/* to the old one --djm */
15361510
if (from->into)
1537-
{
15381511
newnode->into = pstrdup(from->into);
1539-
}
1540-
else
1541-
{
1542-
newnode->into = (char *) 0;
1543-
}
15441512
newnode->isPortal = from->isPortal;
15451513
newnode->isBinary = from->isBinary;
15461514
newnode->unionall = from->unionall;
15471515
if (from->uniqueFlag)
1548-
{
1549-
newnode->uniqueFlag = (char *) palloc(strlen(from->uniqueFlag) + 1);
1550-
strcpy(newnode->uniqueFlag, from->uniqueFlag);
1551-
}
1552-
else
1553-
newnode->uniqueFlag = NULL;
1516+
newnode->uniqueFlag = pstrdup(from->uniqueFlag);
15541517
Node_Copy(from, newnode, sortClause);
15551518
Node_Copy(from, newnode, rtable);
15561519
Node_Copy(from, newnode, targetList);
15571520
Node_Copy(from, newnode, qual);
15581521

15591522
Node_Copy(from, newnode, groupClause);
1560-
Node_Copy(from, newnode, havingQual); /* currently ignored */
1523+
Node_Copy(from, newnode, havingQual);
15611524

15621525
newnode->qry_numAgg = from->qry_numAgg;
15631526
if (from->qry_numAgg > 0)
@@ -1567,8 +1530,6 @@ _copyQuery(Query *from)
15671530
for (i=0; i < from->qry_numAgg; i++)
15681531
newnode->qry_aggs[i] = _copyAggreg(from->qry_aggs[i]);
15691532
}
1570-
else
1571-
newnode->qry_aggs = NULL;
15721533

15731534
if (from->unionClause)
15741535
{
@@ -1578,8 +1539,6 @@ _copyQuery(Query *from)
15781539
temp_list = lappend(temp_list,copyObject(lfirst(ulist)));
15791540
newnode->unionClause = temp_list;
15801541
}
1581-
else
1582-
newnode->unionClause = NULL;
15831542

15841543
return newnode;
15851544
}

0 commit comments

Comments
 (0)