Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
Skip to content

Commit f09346a

Browse files
committed
Refactor planner's header files.
Create a new header optimizer/optimizer.h, which exposes just the planner functions that can be used "at arm's length", without need to access Paths or the other planner-internal data structures defined in nodes/relation.h. This is intended to provide the whole planner API seen by most of the rest of the system; although FDWs still need to use additional stuff, and more thought is also needed about just what selfuncs.c should rely on. The main point of doing this now is to limit the amount of new #include baggage that will be needed by "planner support functions", which I expect to introduce later, and which will be in relevant datatype modules rather than anywhere near the planner. This commit just moves relevant declarations into optimizer.h from other header files (a couple of which go away because everything got moved), and adjusts #include lists to match. There's further cleanup that could be done if we want to decide that some stuff being exposed by optimizer.h doesn't belong in the planner at all, but I'll leave that for another day. Discussion: https://postgr.es/m/11460.1548706639@sss.pgh.pa.us
1 parent a1b8c41 commit f09346a

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

91 files changed

+278
-303
lines changed

contrib/bloom/blcost.c

-1
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,6 @@
1313
#include "postgres.h"
1414

1515
#include "fmgr.h"
16-
#include "optimizer/cost.h"
1716
#include "utils/selfuncs.h"
1817

1918
#include "bloom.h"

contrib/file_fdw/file_fdw.c

+1-2
Original file line numberDiff line numberDiff line change
@@ -29,11 +29,10 @@
2929
#include "foreign/foreign.h"
3030
#include "miscadmin.h"
3131
#include "nodes/makefuncs.h"
32-
#include "optimizer/cost.h"
32+
#include "optimizer/optimizer.h"
3333
#include "optimizer/pathnode.h"
3434
#include "optimizer/planmain.h"
3535
#include "optimizer/restrictinfo.h"
36-
#include "optimizer/var.h"
3736
#include "utils/memutils.h"
3837
#include "utils/rel.h"
3938
#include "utils/sampling.h"

contrib/postgres_fdw/deparse.c

+1-2
Original file line numberDiff line numberDiff line change
@@ -48,10 +48,9 @@
4848
#include "nodes/makefuncs.h"
4949
#include "nodes/nodeFuncs.h"
5050
#include "nodes/plannodes.h"
51-
#include "optimizer/clauses.h"
51+
#include "optimizer/optimizer.h"
5252
#include "optimizer/prep.h"
5353
#include "optimizer/tlist.h"
54-
#include "optimizer/var.h"
5554
#include "parser/parsetree.h"
5655
#include "utils/builtins.h"
5756
#include "utils/lsyscache.h"

contrib/postgres_fdw/postgres_fdw.c

+1-1
Original file line numberDiff line numberDiff line change
@@ -28,11 +28,11 @@
2828
#include "nodes/nodeFuncs.h"
2929
#include "optimizer/cost.h"
3030
#include "optimizer/clauses.h"
31+
#include "optimizer/optimizer.h"
3132
#include "optimizer/pathnode.h"
3233
#include "optimizer/paths.h"
3334
#include "optimizer/planmain.h"
3435
#include "optimizer/restrictinfo.h"
35-
#include "optimizer/var.h"
3636
#include "optimizer/tlist.h"
3737
#include "parser/parsetree.h"
3838
#include "utils/builtins.h"

contrib/tsm_system_rows/tsm_system_rows.c

+1-2
Original file line numberDiff line numberDiff line change
@@ -33,8 +33,7 @@
3333
#include "access/tsmapi.h"
3434
#include "catalog/pg_type.h"
3535
#include "miscadmin.h"
36-
#include "optimizer/clauses.h"
37-
#include "optimizer/cost.h"
36+
#include "optimizer/optimizer.h"
3837
#include "utils/sampling.h"
3938

4039
PG_MODULE_MAGIC;

contrib/tsm_system_time/tsm_system_time.c

+1-2
Original file line numberDiff line numberDiff line change
@@ -31,8 +31,7 @@
3131
#include "access/tsmapi.h"
3232
#include "catalog/pg_type.h"
3333
#include "miscadmin.h"
34-
#include "optimizer/clauses.h"
35-
#include "optimizer/cost.h"
34+
#include "optimizer/optimizer.h"
3635
#include "utils/sampling.h"
3736
#include "utils/spccache.h"
3837

src/backend/access/gist/gistbuild.c

+1-1
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@
2222
#include "access/xloginsert.h"
2323
#include "catalog/index.h"
2424
#include "miscadmin.h"
25-
#include "optimizer/cost.h"
25+
#include "optimizer/optimizer.h"
2626
#include "storage/bufmgr.h"
2727
#include "storage/smgr.h"
2828
#include "utils/memutils.h"

src/backend/access/spgist/spgutils.c

-4
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,6 @@
2222
#include "access/transam.h"
2323
#include "access/xact.h"
2424
#include "catalog/pg_amop.h"
25-
#include "optimizer/paths.h"
2625
#include "storage/bufmgr.h"
2726
#include "storage/indexfsm.h"
2827
#include "storage/lmgr.h"
@@ -32,9 +31,6 @@
3231
#include "utils/lsyscache.h"
3332
#include "utils/syscache.h"
3433

35-
extern Expr *spgcanorderbyop(IndexOptInfo *index,
36-
PathKey *pathkey, int pathkeyno,
37-
Expr *orderby_clause, int *indexcol_p);
3834

3935
/*
4036
* SP-GiST handler function: return IndexAmRoutine with access method parameters

src/backend/access/tablesample/bernoulli.c

+1-2
Original file line numberDiff line numberDiff line change
@@ -29,8 +29,7 @@
2929
#include "access/hash.h"
3030
#include "access/tsmapi.h"
3131
#include "catalog/pg_type.h"
32-
#include "optimizer/clauses.h"
33-
#include "optimizer/cost.h"
32+
#include "optimizer/optimizer.h"
3433
#include "utils/builtins.h"
3534

3635

src/backend/access/tablesample/system.c

+1-2
Original file line numberDiff line numberDiff line change
@@ -31,8 +31,7 @@
3131
#include "access/relscan.h"
3232
#include "access/tsmapi.h"
3333
#include "catalog/pg_type.h"
34-
#include "optimizer/clauses.h"
35-
#include "optimizer/cost.h"
34+
#include "optimizer/optimizer.h"
3635
#include "utils/builtins.h"
3736

3837

src/backend/access/transam/parallel.c

+1-1
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@
2828
#include "libpq/pqformat.h"
2929
#include "libpq/pqmq.h"
3030
#include "miscadmin.h"
31-
#include "optimizer/planmain.h"
31+
#include "optimizer/optimizer.h"
3232
#include "pgstat.h"
3333
#include "storage/ipc.h"
3434
#include "storage/sinval.h"

src/backend/catalog/heap.c

+1-3
Original file line numberDiff line numberDiff line change
@@ -64,9 +64,7 @@
6464
#include "executor/executor.h"
6565
#include "miscadmin.h"
6666
#include "nodes/nodeFuncs.h"
67-
#include "optimizer/clauses.h"
68-
#include "optimizer/var.h"
69-
#include "optimizer/planner.h"
67+
#include "optimizer/optimizer.h"
7068
#include "parser/parse_coerce.h"
7169
#include "parser/parse_collate.h"
7270
#include "parser/parse_expr.h"

src/backend/catalog/index.c

+1-2
Original file line numberDiff line numberDiff line change
@@ -56,8 +56,7 @@
5656
#include "miscadmin.h"
5757
#include "nodes/makefuncs.h"
5858
#include "nodes/nodeFuncs.h"
59-
#include "optimizer/clauses.h"
60-
#include "optimizer/planner.h"
59+
#include "optimizer/optimizer.h"
6160
#include "parser/parser.h"
6261
#include "rewrite/rewriteManip.h"
6362
#include "storage/bufmgr.h"

src/backend/catalog/partition.c

+1-3
Original file line numberDiff line numberDiff line change
@@ -24,9 +24,7 @@
2424
#include "catalog/pg_inherits.h"
2525
#include "catalog/pg_partitioned_table.h"
2626
#include "nodes/makefuncs.h"
27-
#include "optimizer/clauses.h"
28-
#include "optimizer/prep.h"
29-
#include "optimizer/var.h"
27+
#include "optimizer/optimizer.h"
3028
#include "partitioning/partbounds.h"
3129
#include "rewrite/rewriteManip.h"
3230
#include "utils/fmgroids.h"

src/backend/commands/cluster.c

+1-1
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@
3838
#include "commands/tablecmds.h"
3939
#include "commands/vacuum.h"
4040
#include "miscadmin.h"
41-
#include "optimizer/planner.h"
41+
#include "optimizer/optimizer.h"
4242
#include "storage/bufmgr.h"
4343
#include "storage/lmgr.h"
4444
#include "storage/predicate.h"

src/backend/commands/copy.c

+1-3
Original file line numberDiff line numberDiff line change
@@ -37,9 +37,7 @@
3737
#include "libpq/pqformat.h"
3838
#include "mb/pg_wchar.h"
3939
#include "miscadmin.h"
40-
#include "optimizer/clauses.h"
41-
#include "optimizer/planner.h"
42-
#include "optimizer/prep.h"
40+
#include "optimizer/optimizer.h"
4341
#include "nodes/makefuncs.h"
4442
#include "parser/parse_coerce.h"
4543
#include "parser/parse_collate.h"

src/backend/commands/explain.c

-2
Original file line numberDiff line numberDiff line change
@@ -24,8 +24,6 @@
2424
#include "nodes/extensible.h"
2525
#include "nodes/makefuncs.h"
2626
#include "nodes/nodeFuncs.h"
27-
#include "optimizer/clauses.h"
28-
#include "optimizer/planmain.h"
2927
#include "parser/parsetree.h"
3028
#include "rewrite/rewriteHandler.h"
3129
#include "storage/bufmgr.h"

src/backend/commands/functioncmds.c

+1-2
Original file line numberDiff line numberDiff line change
@@ -54,8 +54,7 @@
5454
#include "executor/executor.h"
5555
#include "funcapi.h"
5656
#include "miscadmin.h"
57-
#include "optimizer/clauses.h"
58-
#include "optimizer/var.h"
57+
#include "optimizer/optimizer.h"
5958
#include "parser/parse_coerce.h"
6059
#include "parser/parse_collate.h"
6160
#include "parser/parse_expr.h"

src/backend/commands/indexcmds.c

+1-3
Original file line numberDiff line numberDiff line change
@@ -42,9 +42,7 @@
4242
#include "miscadmin.h"
4343
#include "nodes/makefuncs.h"
4444
#include "nodes/nodeFuncs.h"
45-
#include "optimizer/clauses.h"
46-
#include "optimizer/planner.h"
47-
#include "optimizer/var.h"
45+
#include "optimizer/optimizer.h"
4846
#include "parser/parse_coerce.h"
4947
#include "parser/parse_func.h"
5048
#include "parser/parse_oper.h"

src/backend/commands/tablecmds.c

+1-5
Original file line numberDiff line numberDiff line change
@@ -63,11 +63,7 @@
6363
#include "nodes/makefuncs.h"
6464
#include "nodes/nodeFuncs.h"
6565
#include "nodes/parsenodes.h"
66-
#include "optimizer/clauses.h"
67-
#include "optimizer/planner.h"
68-
#include "optimizer/predtest.h"
69-
#include "optimizer/prep.h"
70-
#include "optimizer/var.h"
66+
#include "optimizer/optimizer.h"
7167
#include "parser/parse_clause.h"
7268
#include "parser/parse_coerce.h"
7369
#include "parser/parse_collate.h"

src/backend/commands/trigger.c

+1-2
Original file line numberDiff line numberDiff line change
@@ -36,8 +36,7 @@
3636
#include "miscadmin.h"
3737
#include "nodes/bitmapset.h"
3838
#include "nodes/makefuncs.h"
39-
#include "optimizer/clauses.h"
40-
#include "optimizer/var.h"
39+
#include "optimizer/optimizer.h"
4140
#include "parser/parse_clause.h"
4241
#include "parser/parse_collate.h"
4342
#include "parser/parse_func.h"

src/backend/commands/typecmds.c

+1-1
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,7 @@
5656
#include "executor/executor.h"
5757
#include "miscadmin.h"
5858
#include "nodes/makefuncs.h"
59-
#include "optimizer/var.h"
59+
#include "optimizer/optimizer.h"
6060
#include "parser/parse_coerce.h"
6161
#include "parser/parse_collate.h"
6262
#include "parser/parse_expr.h"

src/backend/executor/execExpr.c

+1-2
Original file line numberDiff line numberDiff line change
@@ -40,8 +40,7 @@
4040
#include "miscadmin.h"
4141
#include "nodes/makefuncs.h"
4242
#include "nodes/nodeFuncs.h"
43-
#include "optimizer/clauses.h"
44-
#include "optimizer/planner.h"
43+
#include "optimizer/optimizer.h"
4544
#include "pgstat.h"
4645
#include "utils/builtins.h"
4746
#include "utils/datum.h"

src/backend/executor/execMain.c

-1
Original file line numberDiff line numberDiff line change
@@ -52,7 +52,6 @@
5252
#include "jit/jit.h"
5353
#include "mb/pg_wchar.h"
5454
#include "miscadmin.h"
55-
#include "optimizer/clauses.h"
5655
#include "parser/parsetree.h"
5756
#include "rewrite/rewriteManip.h"
5857
#include "storage/bufmgr.h"

src/backend/executor/execParallel.c

-2
Original file line numberDiff line numberDiff line change
@@ -39,8 +39,6 @@
3939
#include "executor/tqueue.h"
4040
#include "jit/jit.h"
4141
#include "nodes/nodeFuncs.h"
42-
#include "optimizer/planmain.h"
43-
#include "optimizer/planner.h"
4442
#include "storage/spin.h"
4543
#include "tcop/tcopprot.h"
4644
#include "utils/datum.h"

src/backend/executor/nodeAgg.c

+1-2
Original file line numberDiff line numberDiff line change
@@ -226,8 +226,7 @@
226226
#include "miscadmin.h"
227227
#include "nodes/makefuncs.h"
228228
#include "nodes/nodeFuncs.h"
229-
#include "optimizer/clauses.h"
230-
#include "optimizer/tlist.h"
229+
#include "optimizer/optimizer.h"
231230
#include "parser/parse_agg.h"
232231
#include "parser/parse_coerce.h"
233232
#include "utils/acl.h"

src/backend/executor/nodeGather.c

+1-1
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@
3838
#include "executor/nodeSubplan.h"
3939
#include "executor/tqueue.h"
4040
#include "miscadmin.h"
41-
#include "optimizer/planmain.h"
41+
#include "optimizer/optimizer.h"
4242
#include "pgstat.h"
4343
#include "utils/memutils.h"
4444
#include "utils/rel.h"

src/backend/executor/nodeGatherMerge.c

+1-1
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@
2323
#include "executor/tqueue.h"
2424
#include "lib/binaryheap.h"
2525
#include "miscadmin.h"
26-
#include "optimizer/planmain.h"
26+
#include "optimizer/optimizer.h"
2727
#include "utils/memutils.h"
2828
#include "utils/rel.h"
2929

src/backend/executor/nodeIndexscan.c

-1
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,6 @@
3737
#include "lib/pairingheap.h"
3838
#include "miscadmin.h"
3939
#include "nodes/nodeFuncs.h"
40-
#include "optimizer/clauses.h"
4140
#include "utils/array.h"
4241
#include "utils/datum.h"
4342
#include "utils/lsyscache.h"

src/backend/executor/nodeWindowAgg.c

+1-1
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@
4141
#include "executor/nodeWindowAgg.h"
4242
#include "miscadmin.h"
4343
#include "nodes/nodeFuncs.h"
44-
#include "optimizer/clauses.h"
44+
#include "optimizer/optimizer.h"
4545
#include "parser/parse_agg.h"
4646
#include "parser/parse_coerce.h"
4747
#include "utils/acl.h"

src/backend/jit/llvm/llvmjit_expr.c

-1
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,6 @@
3333
#include "miscadmin.h"
3434
#include "nodes/makefuncs.h"
3535
#include "nodes/nodeFuncs.h"
36-
#include "optimizer/planner.h"
3736
#include "parser/parse_coerce.h"
3837
#include "parser/parsetree.h"
3938
#include "pgstat.h"

src/backend/optimizer/path/allpaths.c

+1-1
Original file line numberDiff line numberDiff line change
@@ -35,13 +35,13 @@
3535
#include "optimizer/cost.h"
3636
#include "optimizer/geqo.h"
3737
#include "optimizer/inherit.h"
38+
#include "optimizer/optimizer.h"
3839
#include "optimizer/pathnode.h"
3940
#include "optimizer/paths.h"
4041
#include "optimizer/plancat.h"
4142
#include "optimizer/planner.h"
4243
#include "optimizer/restrictinfo.h"
4344
#include "optimizer/tlist.h"
44-
#include "optimizer/var.h"
4545
#include "parser/parse_clause.h"
4646
#include "parser/parsetree.h"
4747
#include "partitioning/partprune.h"

src/backend/optimizer/path/clausesel.c

+1
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@
1818
#include "nodes/nodeFuncs.h"
1919
#include "optimizer/clauses.h"
2020
#include "optimizer/cost.h"
21+
#include "optimizer/optimizer.h"
2122
#include "optimizer/pathnode.h"
2223
#include "optimizer/plancat.h"
2324
#include "utils/fmgroids.h"

src/backend/optimizer/path/costsize.c

+1
Original file line numberDiff line numberDiff line change
@@ -83,6 +83,7 @@
8383
#include "nodes/nodeFuncs.h"
8484
#include "optimizer/clauses.h"
8585
#include "optimizer/cost.h"
86+
#include "optimizer/optimizer.h"
8687
#include "optimizer/pathnode.h"
8788
#include "optimizer/paths.h"
8889
#include "optimizer/placeholder.h"

src/backend/optimizer/path/equivclass.c

+1-1
Original file line numberDiff line numberDiff line change
@@ -24,11 +24,11 @@
2424
#include "nodes/nodeFuncs.h"
2525
#include "optimizer/appendinfo.h"
2626
#include "optimizer/clauses.h"
27+
#include "optimizer/optimizer.h"
2728
#include "optimizer/pathnode.h"
2829
#include "optimizer/paths.h"
2930
#include "optimizer/planmain.h"
3031
#include "optimizer/restrictinfo.h"
31-
#include "optimizer/var.h"
3232
#include "utils/lsyscache.h"
3333

3434

src/backend/optimizer/path/indxpath.c

+1-2
Original file line numberDiff line numberDiff line change
@@ -28,12 +28,11 @@
2828
#include "nodes/nodeFuncs.h"
2929
#include "optimizer/clauses.h"
3030
#include "optimizer/cost.h"
31+
#include "optimizer/optimizer.h"
3132
#include "optimizer/pathnode.h"
3233
#include "optimizer/paths.h"
33-
#include "optimizer/predtest.h"
3434
#include "optimizer/prep.h"
3535
#include "optimizer/restrictinfo.h"
36-
#include "optimizer/var.h"
3736
#include "utils/builtins.h"
3837
#include "utils/bytea.h"
3938
#include "utils/lsyscache.h"

src/backend/optimizer/path/pathkeys.c

+1-2
Original file line numberDiff line numberDiff line change
@@ -21,10 +21,9 @@
2121
#include "nodes/makefuncs.h"
2222
#include "nodes/nodeFuncs.h"
2323
#include "nodes/plannodes.h"
24-
#include "optimizer/clauses.h"
24+
#include "optimizer/optimizer.h"
2525
#include "optimizer/pathnode.h"
2626
#include "optimizer/paths.h"
27-
#include "optimizer/tlist.h"
2827
#include "utils/lsyscache.h"
2928

3029

src/backend/optimizer/path/tidpath.c

+1-1
Original file line numberDiff line numberDiff line change
@@ -40,10 +40,10 @@
4040
#include "catalog/pg_type.h"
4141
#include "nodes/nodeFuncs.h"
4242
#include "optimizer/clauses.h"
43+
#include "optimizer/optimizer.h"
4344
#include "optimizer/pathnode.h"
4445
#include "optimizer/paths.h"
4546
#include "optimizer/restrictinfo.h"
46-
#include "optimizer/var.h"
4747

4848

4949
/*

0 commit comments

Comments
 (0)