aboutsummaryrefslogtreecommitdiff
path: root/src/backend/optimizer/util/pathnode.c
diff options
context:
space:
mode:
authorBruce Momjian <bruce@momjian.us>1999-11-23 20:07:06 +0000
committerBruce Momjian <bruce@momjian.us>1999-11-23 20:07:06 +0000
commit6f9ff92cc0ff6a07d2fe38abe044286ee98d44a0 (patch)
tree797395e647f1e8a741214d5eaafb9ee66a64c462 /src/backend/optimizer/util/pathnode.c
parent54ffd4677aaf56e928af9e3f689297d6c06d1fe9 (diff)
downloadpostgresql-6f9ff92cc0ff6a07d2fe38abe044286ee98d44a0.tar.gz
postgresql-6f9ff92cc0ff6a07d2fe38abe044286ee98d44a0.zip
Tid access method feature from Hiroshi Inoue, Inoue@tpf.co.jp
Diffstat (limited to 'src/backend/optimizer/util/pathnode.c')
-rw-r--r--src/backend/optimizer/util/pathnode.c28
1 files changed, 27 insertions, 1 deletions
diff --git a/src/backend/optimizer/util/pathnode.c b/src/backend/optimizer/util/pathnode.c
index f3b99f88929..0f9bf1b8bbb 100644
--- a/src/backend/optimizer/util/pathnode.c
+++ b/src/backend/optimizer/util/pathnode.c
@@ -7,7 +7,7 @@
*
*
* IDENTIFICATION
- * $Header: /cvsroot/pgsql/src/backend/optimizer/util/pathnode.c,v 1.54 1999/08/16 02:17:58 tgl Exp $
+ * $Header: /cvsroot/pgsql/src/backend/optimizer/util/pathnode.c,v 1.55 1999/11/23 20:07:00 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -319,6 +319,32 @@ create_index_path(Query *root,
}
/*
+ * create_tidscan_path
+ * Creates a path corresponding to a tid_direct scan, returning the
+ * pathnode.
+ *
+ */
+TidPath *
+create_tidscan_path(RelOptInfo *rel, List *tideval)
+{
+ TidPath *pathnode = makeNode(TidPath);
+
+ pathnode->path.pathtype = T_TidScan;
+ pathnode->path.parent = rel;
+ pathnode->path.path_cost = 0.0;
+ pathnode->path.pathkeys = NIL;
+
+ pathnode->path.path_cost = cost_tidscan(tideval);
+ /* divide selectivity for each clause to get an equal selectivity
+ * as IndexScan does OK ?
+ */
+ pathnode->tideval = copyObject(tideval);
+ pathnode->unjoined_relids = NIL;
+
+ return pathnode;
+}
+
+/*
* create_nestloop_path
* Creates a pathnode corresponding to a nestloop join between two
* relations.