diff options
author | Bruce Momjian <bruce@momjian.us> | 1999-02-19 02:05:20 +0000 |
---|---|---|
committer | Bruce Momjian <bruce@momjian.us> | 1999-02-19 02:05:20 +0000 |
commit | 8ab72a38df82a863f787c65a4b8998893a946377 (patch) | |
tree | c8f37ab81890724b300e51249c275478ade3e4dd /src/backend/optimizer/README | |
parent | 61f40ac3f2fb81dfccba4f6c8f39202c49da177e (diff) | |
download | postgresql-8ab72a38df82a863f787c65a4b8998893a946377.tar.gz |
optimizer cleanup
Diffstat (limited to 'src/backend/optimizer/README')
-rw-r--r-- | src/backend/optimizer/README | 16 |
1 files changed, 9 insertions, 7 deletions
diff --git a/src/backend/optimizer/README b/src/backend/optimizer/README index e7aa29295f..2b6ff52c5f 100644 --- a/src/backend/optimizer/README +++ b/src/backend/optimizer/README @@ -5,12 +5,14 @@ The optimizer generates optimial query plans by doing several steps: 1) Take each relation in a query, and make a RelOptInfo structure for it. Find each way of accessing the relation, called a Path, including -sequential and index scans, and add it to RelOptInfo.pathlist. +sequential and index scans, and add it to RelOptInfo.pathlist. Also +create RelOptInfo.joininfo that lists all the joins that involve this +relation. -2) Join each RelOptInfo to each other RelOptInfo as specified in the -WHERE clause. At this point each RelOptInfo is a single relation, so -you are joining every relation to every relation as joined in the WHERE -clause. +2) Join each RelOptInfo to other RelOptInfo as specified in +RelOptInfo.joininfo. At this point each RelOptInfo is a single +relation, so you are joining every relation to the other relations as +joined in the WHERE clause. Joins occur using two RelOptInfos. One is outer, the other inner. Outers drive lookups of values in the inner. In a nested loop, lookups @@ -137,8 +139,8 @@ Optimizer Structures RelOptInfo - a relation or joined relations - RestrictInfo - restriction clauses - JoinInfo - join clauses + RestrictInfo - restriction clauses, like "x = 3" + JoinInfo - join clauses, including the relids needed for the join Path - every way to generate a RelOptInfo(sequential,index,joins) IndexPath - index scans |