@@ -25,33 +25,33 @@ <H2 ALIGN=CENTER>
25
25
The query is then identified as a < I > Utility</ I > query or a more complex
26
26
query. A < I > Utility</ I > query is processed by a query-specific function
27
27
in < A HREF ="../../backend/commands "> commands.</ A > A complex query, like
28
- < CODE > SELECT, UPDATE,</ CODE > and
29
- < CODE > DELETE</ CODE > requires much more handling.
28
+ < I > SELECT, UPDATE,</ I > and
29
+ < I > DELETE</ I > requires much more handling.
30
30
< P >
31
31
The parser takes a complex query, and creates a
32
32
< A HREF ="../../include/nodes/parsenodes.h "> Query</ A > structure that
33
33
contains all the elements used by complex queries. Query.qual holds the
34
- < CODE > WHERE</ CODE > clause qualification, which is filled in by
34
+ < I > WHERE</ I > clause qualification, which is filled in by
35
35
< A HREF ="../../backend/parser/parse_clause.c "> transformWhereClause().</ A >
36
36
Each table referenced in the query is represented by a < A
37
37
HREF ="../../include/nodes/parsenodes.h "> RangeTableEntry,</ A > and they
38
38
are linked together to form the < I > range table</ I > of the query, which is
39
39
generated by < A HREF ="../../backend/parser/parse_clause.c ">
40
40
makeRangeTable().</ A > Query.rtable holds the query's range table.
41
41
< P >
42
- Certain queries, like < CODE > SELECT,</ CODE > return columns of data. Other
43
- queries, like < CODE > INSERT</ CODE > and < CODE > UPDATE,</ CODE > specify the columns
42
+ Certain queries, like < I > SELECT,</ I > return columns of data. Other
43
+ queries, like < I > INSERT</ I > and < I > UPDATE,</ I > specify the columns
44
44
modified by the query. These column references are converted to < A
45
45
HREF ="../../include/nodes/primnodes.h "> Resdom</ A > entries, which are
46
46
linked together to make up the < I > target list</ I > of the query. The
47
47
target list is stored in Query.targetList, which is generated by
48
48
< A HREF ="../../backend/parser/parse_target.c "> transformTargetList().</ A >
49
49
< P >
50
- Other query elements, like aggregates(< CODE > SUM()</ CODE > ), < CODE > GROUP BY,</ CODE >
51
- and < CODE > ORDER BY</ CODE > are also stored in their own Query fields.
50
+ Other query elements, like aggregates(< I > SUM()</ I > ), < I > GROUP BY,</ I >
51
+ and < I > ORDER BY</ I > are also stored in their own Query fields.
52
52
< P >
53
- The next step is for the Query to be modified by any < CODE > VIEWS</ CODE > or
54
- < CODE > RULES</ CODE > that may apply to the query. This is performed by the < A
53
+ The next step is for the Query to be modified by any < I > VIEWS</ I > or
54
+ < I > RULES</ I > that may apply to the query. This is performed by the < A
55
55
HREF ="../../backend/rewrite "> rewrite</ A > system.
56
56
< P >
57
57
The < A HREF ="../../backend/optimizer "> optimizer</ A > takes the Query
@@ -60,7 +60,7 @@ <H2 ALIGN=CENTER>
60
60
operations to be performed to execute the query. The < A
61
61
HREF ="../../backend/optimizer/path "> path</ A > module determines the best
62
62
table join order and join type of each table in the RangeTable, using
63
- Query.qual(< CODE > WHERE</ CODE > clause) to consider optimal index usage.
63
+ Query.qual(< I > WHERE</ I > clause) to consider optimal index usage.
64
64
< P >
65
65
The Plan is then passed to the < A
66
66
HREF ="../../backend/executor "> executor</ A > for execution, and the result
0 commit comments