diff options
Diffstat (limited to 'src/backend')
-rw-r--r-- | src/backend/nodes/outfuncs.c | 23 | ||||
-rw-r--r-- | src/backend/optimizer/README | 1 | ||||
-rw-r--r-- | src/backend/optimizer/util/pathnode.c | 4 |
3 files changed, 24 insertions, 4 deletions
diff --git a/src/backend/nodes/outfuncs.c b/src/backend/nodes/outfuncs.c index e2f177515da..07c93b4737a 100644 --- a/src/backend/nodes/outfuncs.c +++ b/src/backend/nodes/outfuncs.c @@ -1955,13 +1955,29 @@ _outProjectSetPath(StringInfo str, const ProjectSetPath *node) } static void +_outSortPathInfo(StringInfo str, const SortPath *node) +{ + _outPathInfo(str, (const Path *) node); + + WRITE_NODE_FIELD(subpath); +} + +static void _outSortPath(StringInfo str, const SortPath *node) { WRITE_NODE_TYPE("SORTPATH"); - _outPathInfo(str, (const Path *) node); + _outSortPathInfo(str, node); +} - WRITE_NODE_FIELD(subpath); +static void +_outIncrementalSortPath(StringInfo str, const IncrementalSortPath *node) +{ + WRITE_NODE_TYPE("INCREMENTALSORTPATH"); + + _outSortPathInfo(str, (const SortPath *) node); + + WRITE_INT_FIELD(nPresortedCols); } static void @@ -4058,6 +4074,9 @@ outNode(StringInfo str, const void *obj) case T_SortPath: _outSortPath(str, obj); break; + case T_IncrementalSortPath: + _outIncrementalSortPath(str, obj); + break; case T_GroupPath: _outGroupPath(str, obj); break; diff --git a/src/backend/optimizer/README b/src/backend/optimizer/README index d174b8cb73a..efb52858c88 100644 --- a/src/backend/optimizer/README +++ b/src/backend/optimizer/README @@ -387,6 +387,7 @@ RelOptInfo - a relation or joined relations ProjectionPath - a Result plan node with child (used for projection) ProjectSetPath - a ProjectSet plan node applied to some sub-path SortPath - a Sort plan node applied to some sub-path + IncrementalSortPath - an IncrementalSort plan node applied to some sub-path GroupPath - a Group plan node applied to some sub-path UpperUniquePath - a Unique plan node applied to some sub-path AggPath - an Agg plan node applied to some sub-path diff --git a/src/backend/optimizer/util/pathnode.c b/src/backend/optimizer/util/pathnode.c index c1fc866cbf9..5778f80c01e 100644 --- a/src/backend/optimizer/util/pathnode.c +++ b/src/backend/optimizer/util/pathnode.c @@ -2798,7 +2798,7 @@ create_set_projection_path(PlannerInfo *root, * 'limit_tuples' is the estimated bound on the number of output tuples, * or -1 if no LIMIT or couldn't estimate */ -SortPath * +IncrementalSortPath * create_incremental_sort_path(PlannerInfo *root, RelOptInfo *rel, Path *subpath, @@ -2834,7 +2834,7 @@ create_incremental_sort_path(PlannerInfo *root, sort->nPresortedCols = presorted_keys; - return pathnode; + return sort; } /* |