Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit660f458

Browse files
committed
Clean up of copyfuncs.
1 parentf3dbe73 commit660f458

File tree

4 files changed

+55
-88
lines changed

4 files changed

+55
-88
lines changed

‎src/backend/nodes/copyfuncs.c‎

Lines changed: 39 additions & 80 deletions
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
returnnewnode;
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
returnnewnode;
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
inti;
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
returnnewnode;
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
returnnewnode;
@@ -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
returnnewnode;
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
returnnewnode;
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
returnnewnode;
@@ -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
returnnewnode;
@@ -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
returnnewnode;
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
returnnewnode;
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-
intlength=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
returnnewnode;
15851544
}

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp