aboutsummaryrefslogtreecommitdiff
path: root/src/include/nodes/relation.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/include/nodes/relation.h')
-rw-r--r--src/include/nodes/relation.h24
1 files changed, 23 insertions, 1 deletions
diff --git a/src/include/nodes/relation.h b/src/include/nodes/relation.h
index 1c864f2e721..45d53be5f62 100644
--- a/src/include/nodes/relation.h
+++ b/src/include/nodes/relation.h
@@ -7,7 +7,7 @@
* Portions Copyright (c) 1996-2000, PostgreSQL, Inc
* Portions Copyright (c) 1994, Regents of the University of California
*
- * $Id: relation.h,v 1.49 2000/09/29 18:21:39 tgl Exp $
+ * $Id: relation.h,v 1.50 2000/11/12 00:37:01 tgl Exp $
*
*-------------------------------------------------------------------------
*/
@@ -82,6 +82,14 @@ typedef enum CostSelector
* upon creation of the RelOptInfo object; they are filled in when
* set_base_rel_pathlist processes the object.
*
+ * Note: if a base relation is the root of an inheritance tree
+ * (SELECT FROM foo*) it is still considered a base rel. We will
+ * generate a list of candidate Paths for accessing that table itself,
+ * and also generate baserel RelOptInfo nodes for each child table,
+ * with their own candidate Path lists. Then, an AppendPath is built
+ * from the cheapest Path for each of these tables, and set to be the
+ * only available Path for the inheritance baserel.
+ *
* * The presence of the remaining fields depends on the restrictions
* and joins that the relation participates in:
*
@@ -313,6 +321,9 @@ typedef struct IndexPath
double rows; /* estimated number of result tuples */
} IndexPath;
+/*
+ * TidPath represents a scan by TID
+ */
typedef struct TidPath
{
Path path;
@@ -321,6 +332,17 @@ typedef struct TidPath
} TidPath;
/*
+ * AppendPath represents an Append plan, ie, successive execution of
+ * several member plans. Currently it is only used to handle expansion
+ * of inheritance trees.
+ */
+typedef struct AppendPath
+{
+ Path path;
+ List *subpaths; /* list of component Paths */
+} AppendPath;
+
+/*
* All join-type paths share these fields.
*/