|
PostgreSQL Source Code git master
|
#include "postgres.h"#include "miscadmin.h"#include "storage/aio.h"#include "storage/fd.h"#include "storage/smgr.h"#include "storage/read_stream.h"#include "utils/memdebug.h"#include "utils/rel.h"#include "utils/spccache.h"
Go to the source code of this file.
Data Structures | |
| struct | InProgressIO |
| struct | ReadStream |
Typedefs | |
| typedef struct InProgressIO | InProgressIO |
| typedef struct InProgressIO InProgressIO |
| BlockNumber block_range_read_stream_cb | ( | ReadStream * | stream, |
| void * | callback_private_data, | ||
| void * | per_buffer_data | ||
| ) |
Definition at line 163 of file read_stream.c.
References BlockRangeReadStreamPrivate::current_blocknum, InvalidBlockNumber, and BlockRangeReadStreamPrivate::last_exclusive.
Referenced by blbulkdelete(), blgetbitmap(), blvacuumcleanup(), brin_vacuum_scan(), btvacuumscan(), collect_visibility_data(), ginvacuumcleanup(), gistvacuumscan(), pg_prewarm(), pgstathashindex(), pgstatindex_impl(), RelationCopyStorageUsingBuffer(), spgvacuumscan(), and verify_heapam().
|
inlinestatic |
Definition at line 152 of file read_stream.c.
References ReadStream::per_buffer_data, and ReadStream::per_buffer_data_size.
Referenced by read_stream_look_ahead(), and read_stream_next_buffer().
|
static |
Definition at line 539 of file read_stream.c.
References ReadStream::advice_enabled, ReadStream::batch_mode, ReadStream::buffered_blocknum, ReadStream::buffers, ReadStream::callback, callback(), ReadStream::callback_private_data, ReadStream::distance, effective_io_concurrency, fb(), ReadBuffersOperation::forknum, get_tablespace_io_concurrency(), get_tablespace_maintenance_io_concurrency(), GetAccessStrategyPinLimit(), GetLocalPinLimit(), GetPinLimit(), i, InvalidBlockNumber, ReadStream::io_combine_limit, io_combine_limit, IO_DIRECT_DATA, io_direct_flags, io_method, IOMETHOD_SYNC, ReadStream::ios, IsCatalogRelation(), IsCatalogRelationOid(), RelFileLocatorBackend::locator, Max, ReadStream::max_ios, ReadStream::max_pinned_buffers, MAXALIGN, Min, MyDatabaseId, OidIsValid, InProgressIO::op, palloc(), ReadStream::per_buffer_data, ReadStream::per_buffer_data_size, ReadBuffersOperation::persistence, PG_INT16_MAX, ReadStream::queue_size, ReadStream::read_buffers_flags, READ_BUFFERS_SYNCHRONOUSLY, READ_STREAM_FULL, READ_STREAM_MAINTENANCE, READ_STREAM_SEQUENTIAL, READ_STREAM_USE_BATCHING, ReadBuffersOperation::rel, RelFileLocator::relNumber, ReadStream::resume_distance, ReadStream::seq_blocknum, ReadStream::seq_until_processed, ReadBuffersOperation::smgr, SMgrRelationData::smgr_rlocator, SmgrIsTemp, RelFileLocator::spcOid, ReadBuffersOperation::strategy, ReadStream::sync_mode, and ReadStream::temporary.
Referenced by read_stream_begin_relation(), and read_stream_begin_smgr_relation().
| ReadStream * read_stream_begin_relation | ( | int | flags, |
| BufferAccessStrategy | strategy, | ||
| Relation | rel, | ||
| ForkNumber | forknum, | ||
| ReadStreamBlockNumberCB | callback, | ||
| void * | callback_private_data, | ||
| size_t | per_buffer_data_size | ||
| ) |
Definition at line 739 of file read_stream.c.
References callback(), RelationData::rd_rel, read_stream_begin_impl(), and RelationGetSmgr().
Referenced by acquire_sample_rows(), autoprewarm_database_main(), blbulkdelete(), blgetbitmap(), blvacuumcleanup(), brin_vacuum_scan(), btvacuumscan(), collect_corrupt_items(), collect_visibility_data(), ginvacuumcleanup(), gistvacuumscan(), hashbulkdelete(), heap_beginscan(), lazy_scan_heap(), lazy_vacuum_heap_rel(), pg_prewarm(), pgstathashindex(), pgstatindex_impl(), spgvacuumscan(), statapprox_heap(), and verify_heapam().
| ReadStream * read_stream_begin_smgr_relation | ( | int | flags, |
| BufferAccessStrategy | strategy, | ||
| SMgrRelation | smgr, | ||
| char | smgr_persistence, | ||
| ForkNumber | forknum, | ||
| ReadStreamBlockNumberCB | callback, | ||
| void * | callback_private_data, | ||
| size_t | per_buffer_data_size | ||
| ) |
Definition at line 763 of file read_stream.c.
References callback(), fb(), and read_stream_begin_impl().
Referenced by RelationCopyStorageUsingBuffer().
| void read_stream_end | ( | ReadStream * | stream | ) |
Definition at line 1116 of file read_stream.c.
References pfree(), and read_stream_reset().
Referenced by acquire_sample_rows(), autoprewarm_database_main(), blbulkdelete(), blgetbitmap(), blvacuumcleanup(), brin_vacuum_scan(), btvacuumscan(), collect_corrupt_items(), collect_visibility_data(), ginvacuumcleanup(), gistvacuumscan(), hashbulkdelete(), heap_endscan(), lazy_scan_heap(), lazy_vacuum_heap_rel(), pg_prewarm(), pgstathashindex(), pgstatindex_impl(), RelationCopyStorageUsingBuffer(), spgvacuumscan(), statapprox_heap(), and verify_heapam().
|
inlinestatic |
Definition at line 180 of file read_stream.c.
References ReadStream::buffered_blocknum, ReadStream::callback, ReadStream::callback_private_data, InvalidBlockNumber, ReadStream::per_buffer_data_size, and VALGRIND_MAKE_MEM_UNDEFINED.
Referenced by read_stream_look_ahead(), read_stream_next_block(), and read_stream_next_buffer().
|
static |
Definition at line 430 of file read_stream.c.
References Assert, ReadStream::batch_mode, ReadStream::distance, fb(), get_per_buffer_data(), InvalidBlockNumber, ReadStream::io_combine_limit, ReadStream::ios_in_progress, ReadStream::max_ios, ReadStream::next_buffer_index, ReadStream::pending_read_blocknum, ReadStream::pending_read_nblocks, pgaio_enter_batchmode(), pgaio_exit_batchmode(), ReadStream::pinned_buffers, ReadStream::queue_size, read_stream_get_block(), read_stream_start_pending_read(), and read_stream_unget_block().
Referenced by read_stream_next_buffer().
| BlockNumber read_stream_next_block | ( | ReadStream * | stream, |
| BufferAccessStrategy * | strategy | ||
| ) |
Definition at line 1033 of file read_stream.c.
References fb(), ReadStream::ios, InProgressIO::op, read_stream_get_block(), and ReadBuffersOperation::strategy.
| Buffer read_stream_next_buffer | ( | ReadStream * | stream, |
| void ** | per_buffer_data | ||
| ) |
Definition at line 793 of file read_stream.c.
References ReadStream::advice_enabled, Assert, ReadBuffersOperation::blocknum, InProgressIO::buffer_index, BufferIsValid(), ReadStream::buffers, ReadBuffersOperation::buffers, ReadStream::distance, ReadStream::fast_path, fb(), ReadStream::forwarded_buffers, get_per_buffer_data(), ReadStream::initialized_buffers, InvalidBlockNumber, InvalidBuffer, ReadStream::io_combine_limit, io_combine_limit, ReadStream::ios, ReadStream::ios_in_progress, likely, ReadStream::max_ios, ReadStream::max_pinned_buffers, Min, ReadStream::next_buffer_index, ReadStream::next_io_index, ReadStream::oldest_buffer_index, ReadStream::oldest_io_index, InProgressIO::op, ReadStream::pending_read_nblocks, ReadStream::per_buffer_data, ReadStream::per_buffer_data_size, ReadStream::pinned_buffers, ReadStream::queue_size, ReadStream::read_buffers_flags, READ_BUFFERS_ISSUE_ADVICE, read_stream_get_block(), read_stream_look_ahead(), ReadStream::seq_blocknum, ReadStream::seq_until_processed, StartReadBuffer(), unlikely, VALGRIND_MAKE_MEM_NOACCESS, and WaitReadBuffers().
Referenced by autoprewarm_database_main(), BitmapHeapScanNextBlock(), blbulkdelete(), blgetbitmap(), blvacuumcleanup(), brin_vacuum_scan(), btvacuumscan(), collect_corrupt_items(), collect_visibility_data(), ginvacuumcleanup(), gistvacuumscan(), hashbulkdelete(), heap_fetch_next_buffer(), heapam_scan_analyze_next_block(), lazy_scan_heap(), lazy_vacuum_heap_rel(), pg_prewarm(), pgstathashindex(), pgstatindex_impl(), read_stream_reset(), RelationCopyStorageUsingBuffer(), spgvacuumscan(), statapprox_heap(), and verify_heapam().
| BlockNumber read_stream_pause | ( | ReadStream * | stream | ) |
Definition at line 1045 of file read_stream.c.
References ReadStream::distance, InvalidBlockNumber, and ReadStream::resume_distance.
| void read_stream_reset | ( | ReadStream * | stream | ) |
Definition at line 1070 of file read_stream.c.
References Assert, ReadStream::buffered_blocknum, ReadStream::buffers, ReadStream::distance, ReadStream::fast_path, fb(), ReadStream::forwarded_buffers, InvalidBlockNumber, InvalidBuffer, io_combine_limit, ReadStream::ios_in_progress, ReadStream::next_buffer_index, ReadStream::pinned_buffers, ReadStream::queue_size, read_stream_next_buffer(), ReleaseBuffer(), and ReadStream::resume_distance.
Referenced by btvacuumscan(), gistvacuumscan(), hashbulkdelete(), heap_fetch_next_buffer(), heap_rescan(), read_stream_end(), and spgvacuumscan().
| void read_stream_resume | ( | ReadStream * | stream | ) |
Definition at line 1058 of file read_stream.c.
References ReadStream::distance, and ReadStream::resume_distance.
|
static |
Definition at line 231 of file read_stream.c.
References ReadStream::advice_enabled, Assert, InProgressIO::buffer_index, BufferGetBlockNumber(), ReadStream::buffers, ReadStream::distance, fb(), ReadStream::forwarded_buffers, GetAdditionalLocalPinLimit(), GetAdditionalPinLimit(), i, ReadStream::initialized_buffers, InvalidBlockNumber, InvalidBuffer, ReadStream::io_combine_limit, ReadStream::ios, ReadStream::ios_in_progress, ReadStream::max_ios, ReadStream::max_pinned_buffers, Min, ReadStream::next_buffer_index, ReadStream::next_io_index, ReadStream::oldest_buffer_index, InProgressIO::op, ReadStream::pending_read_blocknum, ReadStream::pending_read_nblocks, PG_INT16_MAX, ReadStream::pinned_buffers, ReadStream::queue_size, ReadStream::read_buffers_flags, READ_BUFFERS_ISSUE_ADVICE, ReadStream::seq_blocknum, ReadStream::seq_until_processed, StartReadBuffers(), and ReadStream::temporary.
Referenced by read_stream_look_ahead().
|
inlinestatic |
Definition at line 212 of file read_stream.c.
References Assert, ReadStream::buffered_blocknum, and InvalidBlockNumber.
Referenced by read_stream_look_ahead().