aboutsummaryrefslogtreecommitdiff
path: root/src/backend
diff options
context:
space:
mode:
Diffstat (limited to 'src/backend')
-rw-r--r--src/backend/nodes/outfuncs.c23
-rw-r--r--src/backend/optimizer/README1
-rw-r--r--src/backend/optimizer/util/pathnode.c4
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;
}
/*