]> granicus.if.org Git - postgresql/commitdiff
Don't include heapam.h from others headers.
authorAndres Freund <andres@anarazel.de>
Mon, 14 Jan 2019 23:54:18 +0000 (15:54 -0800)
committerAndres Freund <andres@anarazel.de>
Tue, 15 Jan 2019 00:24:41 +0000 (16:24 -0800)
heapam.h previously was included in a number of widely used
headers (e.g. execnodes.h, indirectly in executor.h, ...). That's
problematic on its own, as heapam.h contains a lot of low-level
details that don't need to be exposed that widely, but becomes more
problematic with the upcoming introduction of pluggable table storage
- it seems inappropriate for heapam.h to be included that widely
afterwards.

heapam.h was largely only included in other headers to get the
HeapScanDesc typedef (which was defined in heapam.h, even though
HeapScanDescData is defined in relscan.h). The better solution here
seems to be to just use the underlying struct (forward declared where
necessary). Similar for BulkInsertState.

Another problem was that LockTupleMode was used in executor.h - parts
of the file tried to cope without heapam.h, but due to the fact that
it indirectly included it, several subsequent violations of that goal
were not not noticed. We could just reuse the approach of declaring
parameters as int, but it seems nicer to move LockTupleMode to
lockoptions.h - that's not a perfect location, but also doesn't seem
bad.

As a number of files relied on implicitly included heapam.h, a
significant number of files grew an explicit include. It's quite
probably that a few external projects will need to do the same.

Author: Andres Freund
Reviewed-By: Alvaro Herrera
Discussion: https://postgr.es/m/20190114000701.y4ttcb74jpskkcfb@alap3.anarazel.de

71 files changed:
contrib/amcheck/verify_nbtree.c
contrib/dblink/dblink.c
contrib/file_fdw/file_fdw.c
contrib/pageinspect/btreefuncs.c
contrib/pageinspect/heapfuncs.c
contrib/pageinspect/rawpage.c
contrib/pg_freespacemap/pg_freespacemap.c
contrib/pg_visibility/pg_visibility.c
contrib/pgrowlocks/pgrowlocks.c
contrib/pgstattuple/pgstatapprox.c
contrib/pgstattuple/pgstattuple.c
contrib/postgres_fdw/postgres_fdw.c
contrib/tsm_system_rows/tsm_system_rows.c
contrib/tsm_system_time/tsm_system_time.c
src/backend/access/brin/brin.c
src/backend/access/common/indextuple.c
src/backend/access/index/genam.c
src/backend/access/index/indexam.c
src/backend/access/nbtree/nbtsort.c
src/backend/access/tablesample/system.c
src/backend/bootstrap/bootstrap.c
src/backend/catalog/dependency.c
src/backend/catalog/heap.c
src/backend/catalog/index.c
src/backend/catalog/indexing.c
src/backend/catalog/objectaddress.c
src/backend/catalog/pg_proc.c
src/backend/catalog/toasting.c
src/backend/commands/alter.c
src/backend/commands/analyze.c
src/backend/commands/cluster.c
src/backend/commands/constraint.c
src/backend/commands/createas.c
src/backend/commands/event_trigger.c
src/backend/commands/extension.c
src/backend/commands/indexcmds.c
src/backend/commands/matview.c
src/backend/commands/sequence.c
src/backend/commands/statscmds.c
src/backend/commands/typecmds.c
src/backend/executor/execMain.c
src/backend/executor/execPartition.c
src/backend/executor/execReplication.c
src/backend/executor/execUtils.c
src/backend/executor/nodeBitmapHeapscan.c
src/backend/executor/nodeLockRows.c
src/backend/executor/nodeModifyTable.c
src/backend/executor/nodeSamplescan.c
src/backend/executor/nodeSeqscan.c
src/backend/executor/nodeTidscan.c
src/backend/optimizer/plan/planner.c
src/backend/parser/parse_relation.c
src/backend/parser/parse_utilcmd.c
src/backend/partitioning/partbounds.c
src/backend/replication/logical/tablesync.c
src/backend/replication/logical/worker.c
src/backend/rewrite/rewriteHandler.c
src/backend/utils/adt/misc.c
src/backend/utils/adt/ri_triggers.c
src/backend/utils/adt/ruleutils.c
src/backend/utils/adt/selfuncs.c
src/backend/utils/adt/xml.c
src/backend/utils/cache/relcache.c
src/backend/utils/fmgr/funcapi.c
src/include/access/heapam.h
src/include/access/hio.h
src/include/access/relscan.h
src/include/catalog/index.h
src/include/executor/executor.h
src/include/nodes/execnodes.h
src/include/nodes/lockoptions.h

index a8a0ec70e1aa789429ea1ecec87ce7fab75d4aeb..055bfa05707433579b9c6953a42719ae57a778a2 100644 (file)
@@ -23,6 +23,7 @@
  */
 #include "postgres.h"
 
+#include "access/heapam.h"
 #include "access/htup_details.h"
 #include "access/nbtree.h"
 #include "access/transam.h"
index bf2a6c343d371a2ba1227c393510cdf9acbb218e..203f6fd3f018705429d4a256a7651ed7dfb175a5 100644 (file)
@@ -38,6 +38,7 @@
 
 #include "access/htup_details.h"
 #include "access/reloptions.h"
+#include "access/heapam.h"
 #include "catalog/indexing.h"
 #include "catalog/namespace.h"
 #include "catalog/pg_foreign_data_wrapper.h"
index 9ff34b4357f62a3d610cc3062e3ad5be8775daf2..ad4da6b5ed450cbb5665961457d2cc23c735c3d1 100644 (file)
@@ -18,6 +18,7 @@
 #include "access/htup_details.h"
 #include "access/reloptions.h"
 #include "access/sysattr.h"
+#include "access/heapam.h"
 #include "catalog/pg_authid.h"
 #include "catalog/pg_foreign_table.h"
 #include "commands/copy.h"
index 184ac62255c42da33b143d5f1e4add3dad28d3da..454e488f86a2c9f6c1a0276a895283c7a1f4316c 100644 (file)
@@ -30,6 +30,7 @@
 #include "pageinspect.h"
 
 #include "access/nbtree.h"
+#include "access/heapam.h"
 #include "catalog/namespace.h"
 #include "catalog/pg_am.h"
 #include "funcapi.h"
index a0c703750a543832197dc650f8e3859ed0f4ef40..b98c4881ac576c075ddd0b16fc6096c439fc214b 100644 (file)
@@ -27,6 +27,7 @@
 
 #include "pageinspect.h"
 
+#include "access/heapam.h"
 #include "access/htup_details.h"
 #include "funcapi.h"
 #include "catalog/pg_type.h"
index abd17d331bde172a4792b361923a2e269854947d..2d91954cb7d3d811c927fa9e7cad56451f4f35bc 100644 (file)
@@ -18,6 +18,7 @@
 #include "pageinspect.h"
 
 #include "access/htup_details.h"
+#include "access/heapam.h"
 #include "catalog/namespace.h"
 #include "catalog/pg_type.h"
 #include "funcapi.h"
index 7d939a7d207c6fe38e8acea6a118f9855946ef46..5ad680055737fc14b4c7d62a692dcdfc11baf100 100644 (file)
@@ -8,6 +8,7 @@
  */
 #include "postgres.h"
 
+#include "access/heapam.h"
 #include "funcapi.h"
 #include "storage/freespace.h"
 
index 210224e8e14769f28e1f28594fa9dc1d0bc46892..22adca18e64473f9ee386f08b8a62be7d8436715 100644 (file)
@@ -10,6 +10,7 @@
  */
 #include "postgres.h"
 
+#include "access/heapam.h"
 #include "access/htup_details.h"
 #include "access/visibilitymap.h"
 #include "catalog/pg_type.h"
index 94e051d642b435b88baee4b0e931715b5c0f2852..fffee6e27e05a939e3677d6dba123a77e1189ea5 100644 (file)
@@ -24,6 +24,7 @@
 
 #include "postgres.h"
 
+#include "access/heapam.h"
 #include "access/multixact.h"
 #include "access/relscan.h"
 #include "access/xact.h"
index ca8ccc360d15f3a37dd34520d87b17d6cb8d12c7..9729d8eb1bd5cf18250eb2508db9d9133494e425 100644 (file)
@@ -13,6 +13,7 @@
 #include "postgres.h"
 
 #include "access/visibilitymap.h"
+#include "access/heapam.h"
 #include "access/transam.h"
 #include "access/xact.h"
 #include "access/multixact.h"
index 6d67bd8271c63c732360910c865956809593f18e..8f67c3c2209b5d98811ae222c360c1fb98351a80 100644 (file)
@@ -26,6 +26,7 @@
 
 #include "access/gist_private.h"
 #include "access/hash.h"
+#include "access/heapam.h"
 #include "access/nbtree.h"
 #include "access/relscan.h"
 #include "catalog/namespace.h"
index e0c68dc6b4c2329b29f8695465109cc0c251e7b2..64efbdff082227b2bdb9b7077de911eb4817663c 100644 (file)
@@ -14,6 +14,7 @@
 
 #include "postgres_fdw.h"
 
+#include "access/heapam.h"
 #include "access/htup_details.h"
 #include "access/sysattr.h"
 #include "catalog/pg_class.h"
index 2dc14461cdc3b3c41e661b0759bb3f67ad7bed3b..69944f61c8d211732ea3eaff08969ec380b946fb 100644 (file)
@@ -28,6 +28,7 @@
 
 #include "postgres.h"
 
+#include "access/heapam.h"
 #include "access/relscan.h"
 #include "access/tsmapi.h"
 #include "catalog/pg_type.h"
index 50c3db0642848b647192d7497c1749c35abb44fa..f516552cc02b6ba5b158c935eae39b1124b405d8 100644 (file)
@@ -26,6 +26,7 @@
 
 #include <math.h>
 
+#include "access/heapam.h"
 #include "access/relscan.h"
 #include "access/tsmapi.h"
 #include "catalog/pg_type.h"
index 03c8a6b3ce70b507f595021d67b27ae5985b28dc..52144271c1c5d8c6da7beef8d5f8e4513a6337d8 100644 (file)
@@ -19,6 +19,7 @@
 #include "access/brin_page.h"
 #include "access/brin_pageops.h"
 #include "access/brin_xlog.h"
+#include "access/heapam.h"
 #include "access/reloptions.h"
 #include "access/relscan.h"
 #include "access/xloginsert.h"
index bc0c614f3b7a8e8520c04b1918f21efa3ec35cb7..6a22b172036bab1c65fb6338c8075ed8922110b9 100644 (file)
@@ -16,7 +16,7 @@
 
 #include "postgres.h"
 
-#include "access/heapam.h"
+#include "access/htup_details.h"
 #include "access/itup.h"
 #include "access/tuptoaster.h"
 
index 4d46257d6a0429d3a12edacadf8b71baa8e79051..e632ad0a9bc9212294d1db170414fb9634c7b25f 100644 (file)
@@ -19,6 +19,7 @@
 
 #include "postgres.h"
 
+#include "access/heapam.h"
 #include "access/relscan.h"
 #include "access/transam.h"
 #include "catalog/index.h"
index 4a0238f9edc5594f93b4088420b5e23a942d24fa..676355501bfc9615b31ac9765a781cdf3400a0e1 100644 (file)
@@ -70,6 +70,7 @@
 #include "postgres.h"
 
 #include "access/amapi.h"
+#include "access/heapam.h"
 #include "access/relscan.h"
 #include "access/transam.h"
 #include "access/xlog.h"
index d9b9229ab764ed4bb909e01509ab58518359d6a5..83966dc4d414fdb257a08991f63d649c8bc16b0a 100644 (file)
@@ -57,6 +57,7 @@
 
 #include "postgres.h"
 
+#include "access/heapam.h"
 #include "access/nbtree.h"
 #include "access/parallel.h"
 #include "access/relscan.h"
index e9d5e6d22216465605e01fbc40ce7a2a4f98e615..383387bc695b84ae1e375946539b944745884b08 100644 (file)
@@ -27,6 +27,7 @@
 #include <math.h>
 
 #include "access/hash.h"
+#include "access/heapam.h"
 #include "access/relscan.h"
 #include "access/tsmapi.h"
 #include "catalog/pg_type.h"
index 5274e26783e0e4beb58d23caaf7008d95fcb3d7b..776533a2efbcce024ca2dde30fd2d51c6fb646bc 100644 (file)
@@ -17,6 +17,7 @@
 #include <unistd.h>
 #include <signal.h>
 
+#include "access/heapam.h"
 #include "access/htup_details.h"
 #include "access/xact.h"
 #include "access/xlog_internal.h"
index dc679ed8b99907ffa1b2e77722e7ce00c14577d5..f5560e6f7064a20551d6ea8acfb4eb1af887523f 100644 (file)
@@ -15,6 +15,7 @@
 #include "postgres.h"
 
 #include "access/htup_details.h"
+#include "access/heapam.h"
 #include "access/xact.h"
 #include "catalog/dependency.h"
 #include "catalog/heap.h"
index 472285d3913eebe0afd3184bbdbb64f9acc99095..149d97e3c3b1fcaefc24bc7a9640c82acec2d118 100644 (file)
@@ -29,6 +29,7 @@
  */
 #include "postgres.h"
 
+#include "access/heapam.h"
 #include "access/htup_details.h"
 #include "access/multixact.h"
 #include "access/sysattr.h"
index c91408046af3b956f39de2a891cd2ce55a5d3dcb..761218f0574b8c56135b75b6160075ed1774b626 100644 (file)
@@ -24,6 +24,7 @@
 #include <unistd.h>
 
 #include "access/amapi.h"
+#include "access/heapam.h"
 #include "access/multixact.h"
 #include "access/relscan.h"
 #include "access/reloptions.h"
index 20ae5a771898957e06c2bbcdb32ee05af9fc096b..954e3f9ab654d447b31b9a4a6e196e813bb06756 100644 (file)
@@ -15,6 +15,7 @@
  */
 #include "postgres.h"
 
+#include "access/heapam.h"
 #include "access/htup_details.h"
 #include "catalog/index.h"
 #include "catalog/indexing.h"
index 0ad8e46b10566e11cb806de44c42423af134d3cd..66c2f54d5bf54eeef9ce6f218a3453392f45a81b 100644 (file)
@@ -15,6 +15,7 @@
 
 #include "postgres.h"
 
+#include "access/heapam.h"
 #include "access/htup_details.h"
 #include "access/sysattr.h"
 #include "catalog/catalog.h"
index 88d6f5d0f98f35679e11fc11e407139316916242..8c2e42d75900ecc7c873207e4fe13e8651f34896 100644 (file)
@@ -15,6 +15,7 @@
 #include "postgres.h"
 
 #include "access/htup_details.h"
+#include "access/heapam.h"
 #include "access/xact.h"
 #include "catalog/catalog.h"
 #include "catalog/dependency.h"
index 052a0a1305152eb2b7beeb4fa86a978e30ec41d9..827e1c82dd6c873dbdd71f4c489244c4536a6f97 100644 (file)
@@ -14,6 +14,7 @@
  */
 #include "postgres.h"
 
+#include "access/heapam.h"
 #include "access/tuptoaster.h"
 #include "access/xact.h"
 #include "catalog/binary_upgrade.h"
index 0217c537a77267774127fc0cc80e7f1a555a1baf..3c53178f75c45ed6ce59d52704ecb9a091601671 100644 (file)
@@ -14,6 +14,7 @@
  */
 #include "postgres.h"
 
+#include "access/heapam.h"
 #include "access/htup_details.h"
 #include "access/sysattr.h"
 #include "catalog/dependency.h"
index 9581c2c0287776639fb2fc50df598a301c031cf1..4248def61a7464d59752176eb2ba09c6455cfb9c 100644 (file)
@@ -16,6 +16,7 @@
 
 #include <math.h>
 
+#include "access/heapam.h"
 #include "access/multixact.h"
 #include "access/sysattr.h"
 #include "access/transam.h"
index 32f55cda570f78d1834de530ab0e826f3ea5dc39..a89210808b307b1bd697745b3250bc2ed58d0e56 100644 (file)
@@ -18,6 +18,7 @@
 #include "postgres.h"
 
 #include "access/amapi.h"
+#include "access/heapam.h"
 #include "access/multixact.h"
 #include "access/relscan.h"
 #include "access/rewriteheap.h"
index 7fc3bcad89bd5970ef8ad2b0f61f376d77b6c24f..b9aec7d18be96108816afcf47c5fc4feb24c120b 100644 (file)
@@ -13,6 +13,7 @@
  */
 #include "postgres.h"
 
+#include "access/heapam.h"
 #include "catalog/index.h"
 #include "commands/trigger.h"
 #include "executor/executor.h"
index 7185432763fdd57fa801d75fbd3407a559b646ee..5947996d673f6547828483062af432451c77a29d 100644 (file)
@@ -24,6 +24,7 @@
  */
 #include "postgres.h"
 
+#include "access/heapam.h"
 #include "access/reloptions.h"
 #include "access/htup_details.h"
 #include "access/sysattr.h"
index e61c84ce721eccdf1654656929856b0af3a69337..e508334981437f729e26d7cd02e6e956b201ea85 100644 (file)
@@ -13,6 +13,7 @@
  */
 #include "postgres.h"
 
+#include "access/heapam.h"
 #include "access/htup_details.h"
 #include "access/xact.h"
 #include "catalog/catalog.h"
index 1f85f223a0a0141c7d7ee62697d65a7924f65584..f63238454a34fbc9c2c14a26773e275ec07fd3f7 100644 (file)
@@ -29,6 +29,7 @@
 #include <sys/stat.h>
 #include <unistd.h>
 
+#include "access/heapam.h"
 #include "access/htup_details.h"
 #include "access/sysattr.h"
 #include "access/xact.h"
index c8c64d9a425e9439d597939f6bbb80655b9f86e1..1959e8a82eed98e5704ed6d16b198790c44f3c9d 100644 (file)
@@ -16,6 +16,7 @@
 #include "postgres.h"
 
 #include "access/amapi.h"
+#include "access/heapam.h"
 #include "access/htup_details.h"
 #include "access/reloptions.h"
 #include "access/sysattr.h"
index c322d0088861ec9734bf8f5fe24aed9bffee25db..846bd7608ceb810904adfb82525a753584a8b969 100644 (file)
@@ -14,6 +14,7 @@
  */
 #include "postgres.h"
 
+#include "access/heapam.h"
 #include "access/htup_details.h"
 #include "access/multixact.h"
 #include "access/xact.h"
index 46e9c91ede785e8d5a3b36875fee3a22e8001c78..1df2df8ff5502be4757d0dba02985a9737f7cc12 100644 (file)
@@ -15,6 +15,7 @@
 #include "postgres.h"
 
 #include "access/bufmask.h"
+#include "access/heapam.h"
 #include "access/htup_details.h"
 #include "access/multixact.h"
 #include "access/transam.h"
index ad385785daaa18663615bd3faecfe172d6e5464e..86a96ac05dcd301856a3597a7537e22637f6ef0f 100644 (file)
@@ -14,6 +14,7 @@
  */
 #include "postgres.h"
 
+#include "access/heapam.h"
 #include "access/relscan.h"
 #include "catalog/catalog.h"
 #include "catalog/dependency.h"
index 22b0d5d47e849ea7ecc6847774c8abe877fa1cb8..769504c4591b87887ac726dd5a819d08054edd42 100644 (file)
@@ -31,6 +31,7 @@
  */
 #include "postgres.h"
 
+#include "access/heapam.h"
 #include "access/htup_details.h"
 #include "access/xact.h"
 #include "catalog/binary_upgrade.h"
index 26e41902f3aed912748917340620bdd7acd88537..ed0330056bfb5e4f3889cbcf1e6a5ca213afbf72 100644 (file)
@@ -37,6 +37,7 @@
  */
 #include "postgres.h"
 
+#include "access/heapam.h"
 #include "access/htup_details.h"
 #include "access/sysattr.h"
 #include "access/transam.h"
@@ -2435,13 +2436,10 @@ ExecBuildAuxRowMark(ExecRowMark *erm, List *targetlist)
  *
  * Returns a slot containing the new candidate update/delete tuple, or
  * NULL if we determine we shouldn't process the row.
- *
- * Note: properly, lockmode should be declared as enum LockTupleMode,
- * but we use "int" to avoid having to include heapam.h in executor.h.
  */
 TupleTableSlot *
 EvalPlanQual(EState *estate, EPQState *epqstate,
-                        Relation relation, Index rti, int lockmode,
+                        Relation relation, Index rti, LockTupleMode lockmode,
                         ItemPointer tid, TransactionId priorXmax)
 {
        TupleTableSlot *slot;
@@ -2522,12 +2520,9 @@ EvalPlanQual(EState *estate, EPQState *epqstate,
  *
  * If successful, we have locked the newest tuple version, so caller does not
  * need to worry about it changing anymore.
- *
- * Note: properly, lockmode should be declared as enum LockTupleMode,
- * but we use "int" to avoid having to include heapam.h in executor.h.
  */
 HeapTuple
-EvalPlanQualFetch(EState *estate, Relation relation, int lockmode,
+EvalPlanQualFetch(EState *estate, Relation relation, LockTupleMode lockmode,
                                  LockWaitPolicy wait_policy,
                                  ItemPointer tid, TransactionId priorXmax)
 {
index 3a1004ff477e1577724ed03462a762722db244de..7415dfa45eb8605eca1b493dd582c63d6aadcbf3 100644 (file)
@@ -13,6 +13,7 @@
  */
 #include "postgres.h"
 
+#include "access/heapam.h"
 #include "catalog/partition.h"
 #include "catalog/pg_inherits.h"
 #include "catalog/pg_type.h"
index a7eebc45e36a04dde46d12a14aab08ba1af7959a..f7602f25553ec0b8283026eac7ac91813d6cdb4d 100644 (file)
@@ -14,6 +14,7 @@
 
 #include "postgres.h"
 
+#include "access/heapam.h"
 #include "access/relscan.h"
 #include "access/transam.h"
 #include "access/xact.h"
index 24ab43d5e5ca175e5dc2705889dad2b007fc5b9d..d914d4b5006b6696847041c11af0eb15f2c1feb9 100644 (file)
@@ -45,6 +45,7 @@
 
 #include "postgres.h"
 
+#include "access/heapam.h"
 #include "access/parallel.h"
 #include "access/relscan.h"
 #include "access/transam.h"
index f8d70f259203d021c102ef03c2b116b8f5e8653c..cd20abc141e5f7a32214969d9a085a153e49e592 100644 (file)
@@ -37,6 +37,7 @@
 
 #include <math.h>
 
+#include "access/heapam.h"
 #include "access/relscan.h"
 #include "access/transam.h"
 #include "access/visibilitymap.h"
index c80536931ec3b3deac642bfce91b7406f3aa242e..6b9d9bf2b8d89d42fc11812694c5de2b57b2b326 100644 (file)
@@ -21,6 +21,7 @@
 
 #include "postgres.h"
 
+#include "access/heapam.h"
 #include "access/htup_details.h"
 #include "access/xact.h"
 #include "executor/executor.h"
index 84ac2e63adde6f36e90460a6c4bb94e26feaa1d8..e18bc2a42e201496534964e46ba204868108922c 100644 (file)
@@ -37,6 +37,7 @@
 
 #include "postgres.h"
 
+#include "access/heapam.h"
 #include "access/htup_details.h"
 #include "access/xact.h"
 #include "catalog/catalog.h"
index c75f9f3a75bd64d5ef0f250a2ef2b527586c48c2..7d4f17b4e99201f177d3d27dd8342cec072b1630 100644 (file)
@@ -15,6 +15,7 @@
 #include "postgres.h"
 
 #include "access/hash.h"
+#include "access/heapam.h"
 #include "access/relscan.h"
 #include "access/tsmapi.h"
 #include "executor/executor.h"
index 8c46873daaf499d8092a9589fa07034bfcd1f1ba..e5482859efc82a33395a5f7dbd69d51561a0cfdb 100644 (file)
@@ -27,6 +27,7 @@
  */
 #include "postgres.h"
 
+#include "access/heapam.h"
 #include "access/relscan.h"
 #include "executor/execdebug.h"
 #include "executor/nodeSeqscan.h"
index 9961e2b2c1afd66b5206b8c1927ee1f9462babb9..b7a8725e2dc2644b9c24b0fef3e4930341d0eb61 100644 (file)
@@ -22,6 +22,7 @@
  */
 #include "postgres.h"
 
+#include "access/heapam.h"
 #include "access/sysattr.h"
 #include "catalog/pg_type.h"
 #include "executor/execdebug.h"
index b849ae03b836fe11b132ba67768110cc5e41e790..8cdcf2368b2bc6d9d1cd4c72a124fc1046ae0572 100644 (file)
@@ -18,6 +18,7 @@
 #include <limits.h>
 #include <math.h>
 
+#include "access/heapam.h"
 #include "access/htup_details.h"
 #include "access/parallel.h"
 #include "access/sysattr.h"
index dfbc1cc4995e098852d99ea9e71677989786a173..e6af7a431f71fed167d927802cf1e62dc09b9218 100644 (file)
@@ -16,6 +16,7 @@
 
 #include <ctype.h>
 
+#include "access/heapam.h"
 #include "access/htup_details.h"
 #include "access/sysattr.h"
 #include "catalog/heap.h"
index f3530c3a541067a247da783d1f4f3b6529a04f55..bebee9d540bdc04a9465dbdc5e88f81b9f96e728 100644 (file)
@@ -27,6 +27,7 @@
 #include "postgres.h"
 
 #include "access/amapi.h"
+#include "access/heapam.h"
 #include "access/htup_details.h"
 #include "access/reloptions.h"
 #include "catalog/dependency.h"
index 71446963a445d5b28d09164164e3c8ce51ff044b..60993c3a7a56d4c405800a944e8b9ea83265cc7b 100644 (file)
@@ -13,6 +13,7 @@
 */
 #include "postgres.h"
 
+#include "access/heapam.h"
 #include "catalog/partition.h"
 #include "catalog/pg_inherits.h"
 #include "catalog/pg_type.h"
index adfa48e3ff896503c1baa2dd04dd65de1db6cacb..d87cf8afe5650d2c732a589a83ba11159ac766ef 100644 (file)
@@ -88,6 +88,7 @@
 #include "miscadmin.h"
 #include "pgstat.h"
 
+#include "access/heapam.h"
 #include "access/xact.h"
 
 #include "catalog/pg_subscription_rel.h"
index f5d622193c27d9c9bdac1f254c76c363bc66f1a9..de23ced9aff8680d54bdded84979778a6619af6c 100644 (file)
@@ -27,6 +27,7 @@
 #include "pgstat.h"
 #include "funcapi.h"
 
+#include "access/heapam.h"
 #include "access/xact.h"
 #include "access/xlog_internal.h"
 
index c7a5e630b777f2884f4fc7124bdc842d5255753d..4e5dcabf160225f78a4cb14bd4492ea1a5a00fde 100644 (file)
@@ -20,6 +20,7 @@
  */
 #include "postgres.h"
 
+#include "access/heapam.h"
 #include "access/sysattr.h"
 #include "catalog/dependency.h"
 #include "catalog/pg_type.h"
index 746b7d2fbacbdede2dea8acb2458698bb7b28d58..f4d3eab2ea8666a343df19a4e7e1bd68b563933e 100644 (file)
@@ -19,6 +19,7 @@
 #include <math.h>
 #include <unistd.h>
 
+#include "access/heapam.h"
 #include "access/sysattr.h"
 #include "catalog/catalog.h"
 #include "catalog/pg_tablespace.h"
index 590df56a0a489c6b5cd5ecacee12a3187df8e69b..e606eb342fdeb88f4a0b856ad72eb7a9ca49aa72 100644 (file)
@@ -30,6 +30,7 @@
 
 #include "postgres.h"
 
+#include "access/heapam.h"
 #include "access/htup_details.h"
 #include "access/sysattr.h"
 #include "access/xact.h"
index 77811f6818aae6559dbb8bce393fe3e9e77ae887..8ed72bd2683fa977d00d4ea2f6c1043b5a6c8738 100644 (file)
@@ -20,6 +20,7 @@
 #include <fcntl.h>
 
 #include "access/amapi.h"
+#include "access/heapam.h"
 #include "access/htup_details.h"
 #include "access/sysattr.h"
 #include "catalog/dependency.h"
index e8f51d2d0d4182e5d1f9df48087a054349b6ba8f..27e5bfef36c7f4434a0e5e275d7760df66d8db7c 100644 (file)
 
 #include "access/brin.h"
 #include "access/gin.h"
+#include "access/heapam.h"
 #include "access/htup_details.h"
 #include "access/sysattr.h"
 #include "catalog/index.h"
index 1cec168b2a194c8ceafb92a9b86eb14e9fac9ac4..1db560cd66d0cefb45e17ed852983df9a97f2698 100644 (file)
@@ -67,6 +67,7 @@
 #endif
 #endif                                                 /* USE_LIBXML */
 
+#include "access/heapam.h"
 #include "access/htup_details.h"
 #include "catalog/namespace.h"
 #include "catalog/pg_class.h"
index 06503bc98b2a50d23c8d2be8174082cafc1c83d8..df30bff6c999f350dabce48a1a25e0b1b19296e9 100644 (file)
@@ -31,6 +31,7 @@
 #include <unistd.h>
 
 #include "access/hash.h"
+#include "access/heapam.h"
 #include "access/htup_details.h"
 #include "access/multixact.h"
 #include "access/nbtree.h"
index 7199c2119a511ff35874c7dc800c89821571c44e..8fba7791cf8d9e2ed813f56405d7231882a82140 100644 (file)
@@ -13,6 +13,7 @@
  */
 #include "postgres.h"
 
+#include "access/heapam.h"
 #include "access/htup_details.h"
 #include "catalog/namespace.h"
 #include "catalog/pg_proc.h"
index 17ab75fd3d6bf9070540029b42b89900988f4906..cf2ac151241f701efbfb0117de61cb093128bee4 100644 (file)
 
 typedef struct BulkInsertStateData *BulkInsertState;
 
-/*
- * Possible lock modes for a tuple.
- */
-typedef enum LockTupleMode
-{
-       /* SELECT FOR KEY SHARE */
-       LockTupleKeyShare,
-       /* SELECT FOR SHARE */
-       LockTupleShare,
-       /* SELECT FOR NO KEY UPDATE, and UPDATEs that don't modify key columns */
-       LockTupleNoKeyExclusive,
-       /* SELECT FOR UPDATE, UPDATEs that modify key columns, and DELETE */
-       LockTupleExclusive
-} LockTupleMode;
-
 #define MaxLockTupleMode       LockTupleExclusive
 
 /*
index 84174766b98c2b05dad8a15b1ba40a8e3e21c09c..cec087cb1a59492113ac6d2749263625e624f7ed 100644 (file)
@@ -14,7 +14,6 @@
 #ifndef HIO_H
 #define HIO_H
 
-#include "access/heapam.h"
 #include "access/htup.h"
 #include "utils/relcache.h"
 #include "storage/buf.h"
@@ -39,7 +38,7 @@ extern void RelationPutHeapTuple(Relation relation, Buffer buffer,
                                         HeapTuple tuple, bool token);
 extern Buffer RelationGetBufferForTuple(Relation relation, Size len,
                                                  Buffer otherBuffer, int options,
-                                                 BulkInsertState bistate,
+                                                 BulkInsertStateData *bistate,
                                                  Buffer *vmbuffer, Buffer *vmbuffer_other);
 
 #endif                                                 /* HIO_H */
index 7bd32e18524ec0bf1af42c6833548b2ff7872328..43a2286c17272286245ab7529e87bc24a8df69df 100644 (file)
@@ -15,7 +15,6 @@
 #define RELSCAN_H
 
 #include "access/genam.h"
-#include "access/heapam.h"
 #include "access/htup_details.h"
 #include "access/itup.h"
 #include "access/tupdesc.h"
@@ -71,7 +70,7 @@ typedef struct HeapScanDescData
        BlockNumber rs_cblock;          /* current block # in scan, if any */
        Buffer          rs_cbuf;                /* current buffer in scan, if any */
        /* NB: if rs_cbuf is not InvalidBuffer, we hold a pin on that buffer */
-       ParallelHeapScanDesc rs_parallel;       /* parallel scan information */
+       struct ParallelHeapScanDescData *rs_parallel;   /* parallel scan information */
 
        /* these fields only used in page-at-a-time mode and for bitmap scans */
        int                     rs_cindex;              /* current tuple's index in vistuples */
@@ -155,7 +154,7 @@ typedef struct SysScanDescData
 {
        Relation        heap_rel;               /* catalog being scanned */
        Relation        irel;                   /* NULL if doing heap scan */
-       HeapScanDesc scan;                      /* only valid in heap-scan case */
+       struct HeapScanDescData *scan;                  /* only valid in heap-scan case */
        IndexScanDesc iscan;            /* only valid in index-scan case */
        Snapshot        snapshot;               /* snapshot to unregister at end of scan */
 }                      SysScanDescData;
index 0f1f63b38e84729ea4092362db3c49fea4a9d095..8daac5663cdc5edf4e8842f78632a9a9bdd1ded8 100644 (file)
@@ -117,7 +117,7 @@ extern double IndexBuildHeapScan(Relation heapRelation,
                                   bool allow_sync,
                                   IndexBuildCallback callback,
                                   void *callback_state,
-                                  HeapScanDesc scan);
+                                  struct HeapScanDescData *scan);
 extern double IndexBuildHeapRangeScan(Relation heapRelation,
                                                Relation indexRelation,
                                                IndexInfo *indexInfo,
@@ -127,7 +127,7 @@ extern double IndexBuildHeapRangeScan(Relation heapRelation,
                                                BlockNumber end_blockno,
                                                IndexBuildCallback callback,
                                                void *callback_state,
-                                               HeapScanDesc scan);
+                                               struct HeapScanDescData *scan);
 
 extern void validate_index(Oid heapId, Oid indexId, Snapshot snapshot);
 
index 50a943b618375033112f1e891f38e1b8e3a63a1c..3831cceedfaba20a084eb734576d6920ac0dfc73 100644 (file)
@@ -15,6 +15,7 @@
 #define EXECUTOR_H
 
 #include "executor/execdesc.h"
+#include "nodes/lockoptions.h"
 #include "nodes/parsenodes.h"
 #include "utils/memutils.h"
 
@@ -184,11 +185,11 @@ extern LockTupleMode ExecUpdateLockMode(EState *estate, ResultRelInfo *relinfo);
 extern ExecRowMark *ExecFindRowMark(EState *estate, Index rti, bool missing_ok);
 extern ExecAuxRowMark *ExecBuildAuxRowMark(ExecRowMark *erm, List *targetlist);
 extern TupleTableSlot *EvalPlanQual(EState *estate, EPQState *epqstate,
-                        Relation relation, Index rti, int lockmode,
+                        Relation relation, Index rti, LockTupleMode lockmode,
                         ItemPointer tid, TransactionId priorXmax);
 extern HeapTuple EvalPlanQualFetch(EState *estate, Relation relation,
-                                 int lockmode, LockWaitPolicy wait_policy, ItemPointer tid,
-                                 TransactionId priorXmax);
+                                 LockTupleMode lockmode, LockWaitPolicy wait_policy,
+                                 ItemPointer tid, TransactionId priorXmax);
 extern void EvalPlanQualInit(EPQState *epqstate, EState *estate,
                                 Plan *subplan, List *auxrowmarks, int epqParam);
 extern void EvalPlanQualSetPlan(EPQState *epqstate,
index a93bb61bf518ce8d3bbfaf33755feb007a6524a8..57031654900fabf66cd6be15736b0f5d2733e397 100644 (file)
@@ -15,7 +15,6 @@
 #define EXECNODES_H
 
 #include "access/genam.h"
-#include "access/heapam.h"
 #include "access/tupconvert.h"
 #include "executor/instrument.h"
 #include "lib/pairingheap.h"
@@ -1268,7 +1267,7 @@ typedef struct ScanState
 {
        PlanState       ps;                             /* its first field is NodeTag */
        Relation        ss_currentRelation;
-       HeapScanDesc ss_currentScanDesc;
+       struct HeapScanDescData *ss_currentScanDesc;
        TupleTableSlot *ss_ScanTupleSlot;
 } ScanState;
 
index c293595ccb8f1116077c3701ecaaf2e4d6fdd5a5..8e8ccff43cac95322f73000f4eace9485ec8aa99 100644 (file)
@@ -43,4 +43,19 @@ typedef enum LockWaitPolicy
        LockWaitError
 } LockWaitPolicy;
 
+/*
+ * Possible lock modes for a tuple.
+ */
+typedef enum LockTupleMode
+{
+       /* SELECT FOR KEY SHARE */
+       LockTupleKeyShare,
+       /* SELECT FOR SHARE */
+       LockTupleShare,
+       /* SELECT FOR NO KEY UPDATE, and UPDATEs that don't modify key columns */
+       LockTupleNoKeyExclusive,
+       /* SELECT FOR UPDATE, UPDATEs that modify key columns, and DELETE */
+       LockTupleExclusive
+} LockTupleMode;
+
 #endif                                                 /* LOCKOPTIONS_H */