Re: Pluggable Storage - Andres's take
Andres Freund <andres@anarazel.de>
Attachments
- v19-0001-tableam-Add-and-use-scan-APIs.patch.gz (application/x-patch-gzip) patch v19-0001
- v19-0002-tableam-Only-allow-heap-in-a-number-of-contrib-m.patch.gz (application/x-patch-gzip) patch v19-0002
- v19-0003-tableam-Add-insert-delete-update-lock_tuple.patch.gz (application/x-patch-gzip) patch v19-0003
- v19-0004-tableam-Add-fetch_row_version.patch.gz (application/x-patch-gzip) patch v19-0004
- v19-0005-tableam-Add-use-tableam_fetch_follow_check.patch.gz (application/x-patch-gzip) patch v19-0005
- v19-0006-tableam-Add-table_get_latest_tid.patch.gz (application/x-patch-gzip) patch v19-0006
- v19-0007-tableam-multi_insert-and-slotify-COPY.patch.gz (application/x-patch-gzip) patch v19-0007
- v19-0008-tableam-finish_bulk_insert.patch.gz (application/x-patch-gzip) patch v19-0008
- v19-0009-tableam-slotify-CREATE-TABLE-AS-and-CREATE-MATER.patch.gz (application/x-patch-gzip) patch v19-0009
- v19-0010-tableam-index-builds.patch.gz (application/x-patch-gzip) patch v19-0010
- v19-0011-tableam-relation-creation-VACUUM-FULL-CLUSTER-SE.patch.gz (application/x-patch-gzip) patch v19-0011
- v19-0012-tableam-VACUUM-and-ANALYZE.patch.gz (application/x-patch-gzip) patch v19-0012
- v19-0013-tableam-planner-size-estimation.patch.gz (application/x-patch-gzip) patch v19-0013
- v19-0014-tableam-Sample-Scan-Support.patch.gz (application/x-patch-gzip) patch v19-0014
- v19-0015-tableam-bitmap-heap-scan.patch.gz (application/x-patch-gzip) patch v19-0015
- v19-0016-WIP-Move-xid-horizon-computation-for-page-level-.patch.gz (application/x-patch-gzip) patch v19-0016
- v19-0017-tableam-Add-function-to-determine-newest-xid-amo.patch.gz (application/x-patch-gzip) patch v19-0017
- v19-0018-tableam-Fetch-tuples-for-triggers-EPQ-using-a-pr.patch.gz (application/x-patch-gzip) patch v19-0018
Hi, On 2019-03-08 19:13:10 -0800, Andres Freund wrote: > Changes: > - I've added comments to all the callbacks in the first commit / the > scan commit > - I've renamed table_gimmegimmeslot to table_slot_create > - I've made the callbacks and their wrappers more consistently named > - I've added asserts for necessary callbacks in scan commit > - Lots of smaller cleanup > - Added a commit message > > While 0001 is pretty bulky, the interesting bits concentrate on a > comparatively small area. I'd appreciate if somebody could give the > comments added in tableam.h a read (both on callbacks, and their > wrappers, as they have different audiences). It'd make sense to first > read the commit message, to understand the goal (and I'd obviously also > appreciate suggestions for improvements there as well). > > I'm pretty happy with the current state of the scan patch. I plan to do > two more passes through it (formatting, comment polishing, etc. I don't > know of any functional changes needed), and then commit it, lest > somebody objects. Here's a further polished version. Pretty boring changes: - newlines - put tableam.h into the correct place - a few comment improvements, including typos - changed reorderqueue_push() to accept the slot. That avoids an unnecessary heap_copytuple() in some cases No meaningful changes in later patches. Greetings, Andres Freund
Commits
-
Add default_table_access_method to postgresql.conf.sample.
- 3a5c08aa0267 12.0 landed
- f7db0ac7d5b6 13.0 landed
-
tableam: Avoid relying on relation size to determine validity of tids.
- 147e3722f7e5 12.0 landed
-
tableam: Don't assume that every AM uses md.c style storage.
- 7f44ede59414 12.0 landed
-
Allow pg_class xid & multixid horizons to not be set.
- fdc7efcc30b1 12.0 landed
-
Fix slot type issue for fuzzy distance index scan over out-of-core table AM.
- b8b94ea129ff 12.0 cited
-
tableam: comment and formatting fixes.
- 6421011ea24d 12.0 landed
-
table: docs: fix typos and grammar.
- 86cc06d1cf9c 12.0 landed
-
tableam: basic documentation.
- b73c3a11963c 12.0 landed
-
Only allow heap in a number of contrib modules.
- 4b82664156c2 12.0 landed
-
tableam: Add table_finish_bulk_insert().
- d45e40158623 12.0 landed
-
tableam: sample scan.
- 73c954d24896 12.0 landed
-
tableam: bitmap table scan.
- bfbcad478f05 12.0 landed
-
tableam: Move heap specific logic from estimate_rel_size below tableam.
- 696d78469f37 12.0 landed
-
tableam: VACUUM and ANALYZE support.
- 737a292b5de2 12.0 landed
-
tableam: relation creation, VACUUM FULL/CLUSTER, SET TABLESPACE.
- d25f519107bf 12.0 landed
-
tableam: Support for an index build's initial table scan(s).
- 2a96909a4a8c 12.0 landed
-
tableam: Add table_get_latest_tid, to wrap heap_get_latest_tid.
- 2e3da03e9ee4 12.0 landed
-
tableam: Add helper for indexes to check if a corresponding table tuples exist.
- 71bdc99d0d7c 12.0 landed
-
tableam: Add and use table_fetch_row_version().
- 9a8ee1dc650b 12.0 landed
-
tableam: Use in CREATE TABLE AS and CREATE MATERIALIZED VIEW.
- 919e48b94301 12.0 landed
-
Ensure sufficient alignment for ParallelTableScanDescData in BTShared.
- 8cacea7a7251 12.0 landed
-
Don't reuse slots between root and partition in ON CONFLICT ... UPDATE.
- 277cb789836b 12.0 landed
-
Use a virtual rather than a heap slot in two places where that suffices.
- 70b9bda65f81 12.0 landed
-
Store tuples for EvalPlanQual in slots, rather than as HeapTuples.
- ad0bda5d24ea 12.0 landed
-
Use slots in trigger infrastructure, except for the actual invocation.
- ff11e7f4b9ae 12.0 landed
-
Store table oid and tuple's tid in tuple slots directly.
- b8d71745eac0 12.0 landed
-
Allow to use HeapTupleData embedded in [Buffer]HeapTupleTableSlot.
- 5408e233f066 12.0 landed
-
Add ExecStorePinnedBufferHeapTuple.
- 8aa02b52db11 12.0 landed
-
Add ArchiveOpts to pass options to ArchiveEntry
- f831d4accda0 12.0 cited
-
Rename RelationData.rd_amroutine to rd_indam.
- 346ed70b0ad7 12.0 landed
-
Rephrase references to "time qualification".
- ebcc7bf949ba 12.0 landed
-
Move remaining code from tqual.[ch] to heapam.h / heapam_visibility.c.
- c91560defc57 12.0 landed
-
Move generic snapshot related code from tqual.h to snapmgr.h.
- b7eda3e0e334 12.0 landed
-
Remove superfluous tqual.h includes.
- e7cc78ad43eb 12.0 landed
-
Don't duplicate parallel seqscan shmem sizing logic in nbtree.
- 90525d7b4e0f 12.0 landed
-
Move vacuumlazy.c into access/heap.
- 285d8e12055f 12.0 landed
-
Support parallel bitmap heap scans.
- f35742ccb7aa 10.0 cited