32#ifndef ddl0impl_file_reader_h 
   33#define ddl0impl_file_reader_h 
   44using Range = std::pair<os_offset_t, os_offset_t>;
 
  132  using Bounds = std::pair<const byte *, const byte *>;
 
Captures ownership and manages lifetime of an already opened OS file descriptor.
Definition: ddl0ddl.h:200
 
bool is_open() const
Definition: ddl0ddl.h:218
 
A utility class which, if inherited from, prevents the descendant class from being copied,...
Definition: ut0class_life_cycle.h:41
 
dberr_t
Definition: db0err.h:39
 
DDL buffer infrastructure.
 
The general architecture is that the work is done in two phases, roughly the read and write phase.
Definition: btr0load.cc:42
 
std::pair< os_offset_t, os_offset_t > Range
Represents the chunk in bytes : first element represents the beginning offset of the chunk and,...
Definition: ddl0impl-file-reader.h:44
 
byte mrec_t
Merge record in Aligned_buffer.
Definition: ddl0ddl.h:78
 
std::pair< byte *, os_offset_t > IO_buffer
Block size for DDL I/O operations.
Definition: ddl0impl.h:47
 
bool index(const std::string &value, const String &search_for, uint32_t *idx)
Definition: contains.h:76
 
size_t buffer_size(const ConstBufferSequence &buffers) noexcept
Definition: buffer.h:313
 
Definition: gcs_xcom_synode.h:64
 
This file contains a set of libraries providing overloads for regular dynamic allocation routines whi...
Definition: aligned_alloc.h:48
 
std::vector< T, ut::allocator< T > > vector
Specialization of vector which uses allocator.
Definition: ut0new.h:2880
 
void delete_arr(T *ptr) noexcept
Releases storage which has been dynamically allocated through any of the ut::new_arr*() variants.
Definition: ut0new.h:1111
 
std::conditional_t< !std::is_array< T >::value, std::unique_ptr< T, detail::Aligned_deleter< T > >, std::conditional_t< detail::is_unbounded_array_v< T >, std::unique_ptr< T, detail::Aligned_array_deleter< std::remove_extent_t< T > > >, void > > unique_ptr_aligned
The following is a common type that is returned by all the ut::make_unique_aligned (non-aligned) spec...
Definition: ut0new.h:2578
 
For loading indexes.
Definition: ddl0impl-builder.h:48
 
Read rows from the temporary file.
Definition: ddl0impl-file-reader.h:48
 
std::vector< ulint, ut::allocator< ulint > > Offsets
Definition: ddl0impl-file-reader.h:117
 
uint64_t m_n_rows_read
Number of rows read from the file.
Definition: ddl0impl-file-reader.h:156
 
Bounds m_bounds
File buffer bounds.
Definition: ddl0impl-file-reader.h:141
 
dberr_t seek() noexcept
Read the page in the file buffer from the start offset, and reset the cursor to the beginning of the ...
Definition: ddl0file-reader.cc:91
 
size_t m_buffer_size
IO buffer size in bytes.
Definition: ddl0impl-file-reader.h:147
 
File_reader(const Unique_os_file_descriptor &file, dict_index_t *index, size_t buffer_size, const Range &range) noexcept
Constructor.
Definition: ddl0impl-file-reader.h:54
 
uint64_t get_n_rows_read() const noexcept
Definition: ddl0impl-file-reader.h:98
 
const byte * m_ptr
Pointer current offset within file buffer.
Definition: ddl0impl-file-reader.h:138
 
const Unique_os_file_descriptor & m_file
File handle to read from.
Definition: ddl0impl-file-reader.h:129
 
dberr_t read(const Range &range) noexcept
Set the start and end offsets to read from, to avoid the possibility of overlapping reads from the ot...
Definition: ddl0file-reader.cc:106
 
byte * m_aux_buf
Auxiliary buffer for records that span across pages.
Definition: ddl0impl-file-reader.h:144
 
dict_index_t * m_index
Index that the records belong to.
Definition: ddl0impl-file-reader.h:120
 
friend File_cursor
Definition: ddl0impl-file-reader.h:158
 
const mrec_t * m_mrec
Pointer to current row.
Definition: ddl0impl-file-reader.h:123
 
dberr_t next() noexcept
Advance the "cursor".
Definition: ddl0file-reader.cc:126
 
dberr_t get_tuple(Builder *builder, mem_heap_t *heap, dtuple_t *&dtuple) noexcept
The current row as a tuple.
Definition: ddl0builder.cc:238
 
IO_buffer m_io_buffer
File buffer for reading.
Definition: ddl0impl-file-reader.h:153
 
Offsets m_field_offsets
Columns offsets.
Definition: ddl0impl-file-reader.h:126
 
~File_reader() noexcept
Destructor.
Definition: ddl0impl-file-reader.h:67
 
dberr_t read_next() noexcept
Advance page number to the next and read in.
Definition: ddl0file-reader.cc:121
 
Range m_range
Definition: ddl0impl-file-reader.h:135
 
ut::unique_ptr_aligned< byte[]> m_aligned_buffer
Aligned IO buffer.
Definition: ddl0impl-file-reader.h:150
 
bool end_of_range() const noexcept
Definition: ddl0impl-file-reader.h:93
 
std::pair< const byte *, const byte * > Bounds
Definition: ddl0impl-file-reader.h:132
 
dberr_t prepare() noexcept
Prepare the file for reading.
Definition: ddl0file-reader.cc:39
 
Data structure for an index.
Definition: dict0mem.h:1041
 
Structure for an SQL data tuple of fields (logical record)
Definition: data0data.h:696
 
The info structure stored at the beginning of a heap block.
Definition: mem0mem.h:302
 
Definition: gen_lex_token.cc:149
 
unsigned long int ulint
Definition: univ.i:406
 
#define ut_a(EXPR)
Abort execution if EXPR does not evaluate to nonzero.
Definition: ut0dbg.h:93