summaryrefslogtreecommitdiff
path: root/src/backend/optimizer/README
diff options
context:
space:
mode:
authorBruce Momjian <bruce@momjian.us>1999-02-03 20:15:53 +0000
committerBruce Momjian <bruce@momjian.us>1999-02-03 20:15:53 +0000
commit8d9237d48510464dc03e8b00e7203927dc07c4d4 (patch)
treea7a2cbcecc176e358cc5f0c3dcb49c193b9aed00 /src/backend/optimizer/README
parentf3a6b38e321a30a447c31404d127eee9d01582df (diff)
downloadpostgresql-8d9237d48510464dc03e8b00e7203927dc07c4d4.tar.gz
Optimizer rename ClauseInfo -> RestrictInfo. Update optimizer README.
Diffstat (limited to 'src/backend/optimizer/README')
-rw-r--r--src/backend/optimizer/README14
1 files changed, 12 insertions, 2 deletions
diff --git a/src/backend/optimizer/README b/src/backend/optimizer/README
index 8e9684c6d9..0bce226a79 100644
--- a/src/backend/optimizer/README
+++ b/src/backend/optimizer/README
@@ -1,4 +1,4 @@
-Thse directories take the Query structure returned by the parser, and
+These directories take the Query structure returned by the parser, and
generate a plan used by the executor. The /plan directory generates the
plan, the /path generates all possible ways to join the tables, and
/prep handles special cases like inheritance. /utils is utility stuff.
@@ -81,10 +81,20 @@ planner()
remove from the join list the relation we just added to each join
prune_rel_paths()
set cheapest and perhaps remove unordered path, recompute table sizes
- if we have not done all the tables, go to "again"
+ if we have not done all the tables, go to again:
do group(GROUP)
do aggregate
put back constants
re-flatten target list
make unique(DISTINCT)
make sort(ORDER BY)
+
+
+
+Optimizer Structures
+--------------------
+Path - info about every way to access a relation(sequential, index)
+ PathOrder - info about every ordering (sort, merge of relations)
+RelOptInfo - info about every relation
+ JoinInfo - info about join combinations
+RestrictInfo - info about restrictions