|
28 | 28 | #include "nodes/plannodes.h"
|
29 | 29 | #include "nodes/relation.h"
|
30 | 30 | #include "utils/datum.h"
|
| 31 | +#include "../../include/nodes/plannodes.h" |
31 | 32 |
|
32 | 33 |
|
33 | 34 | /*
|
@@ -402,6 +403,32 @@ _copyIndexOnlyScan(const IndexOnlyScan *from)
|
402 | 403 | return newnode;
|
403 | 404 | }
|
404 | 405 |
|
| 406 | +/* |
| 407 | + * _copyIndexOnlyScan |
| 408 | + */ |
| 409 | +static RecScan * |
| 410 | +_copyRecScan(const RecScan *from) |
| 411 | +{ |
| 412 | + RecScan *newnode = makeNode(RecScan); |
| 413 | + |
| 414 | + /* |
| 415 | + * copy node superclass fields |
| 416 | + */ |
| 417 | + |
| 418 | + |
| 419 | + CopyScanFields((const Scan *) from, (Scan *) newnode); |
| 420 | + |
| 421 | + /* |
| 422 | + * copy remainder of node |
| 423 | + */ |
| 424 | + |
| 425 | + COPY_NODE_FIELD(recommender); |
| 426 | + // CopyScanFields((const Scan *) from, (Scan *) newnode); |
| 427 | + COPY_NODE_FIELD(subscan); |
| 428 | + |
| 429 | + return newnode; |
| 430 | +} |
| 431 | + |
405 | 432 | /*
|
406 | 433 | * _copyBitmapIndexScan
|
407 | 434 | */
|
@@ -3829,9 +3856,9 @@ copyObject(const void *from)
|
3829 | 3856 |
|
3830 | 3857 | switch (nodeTag(from))
|
3831 | 3858 | {
|
3832 | | - /* |
3833 | | - * PLAN NODES |
3834 | | - */ |
| 3859 | + /* |
| 3860 | + * PLAN NODES |
| 3861 | + */ |
3835 | 3862 | case T_PlannedStmt:
|
3836 | 3863 | retval = _copyPlannedStmt(from);
|
3837 | 3864 | break;
|
@@ -3949,6 +3976,9 @@ copyObject(const void *from)
|
3949 | 3976 | case T_PlanInvalItem:
|
3950 | 3977 | retval = _copyPlanInvalItem(from);
|
3951 | 3978 | break;
|
| 3979 | + case T_RecScan: |
| 3980 | + retval = _copyRecScan(from); |
| 3981 | + break; |
3952 | 3982 |
|
3953 | 3983 | /*
|
3954 | 3984 | * PRIMITIVE NODES
|
|
0 commit comments