Merge the sorted files.
More...
#include <ddl0impl-builder.h>
◆ File_cursors
File cursors to use for the scan.
◆ File_readers
File cursors to use for the scan.
◆ Queue
Priority queue for ordering the rows.
◆ Merge_cursor()
Constructor.
- Parameters
-
[in,out] | builder | Index builder. |
[in,out] | dup | If not nullptr, then report duplicates. |
[in,out] | stage | PFS stage monitoring. |
◆ ~Merge_cursor()
ddl::Merge_cursor::~Merge_cursor |
( |
| ) |
|
|
overridenoexcept |
◆ add_file() [1/2]
Add the cursor to use for merge load.
- Parameters
-
[in] | file | File to merge from. |
[in] | buffer_size | IO buffer size to use for reading. |
- Returns
- DB_SUCCESS or error code.
◆ add_file() [2/2]
Add the cursor to use for merge load.
- Parameters
-
[in] | file | File file to read. |
[in] | buffer_size | IO buffer size to use for reading. |
[in] | offset | Page to read from. |
- Returns
- DB_SUCCESS or error code.
◆ clear_eof()
void ddl::Merge_cursor::clear_eof |
( |
| ) |
|
|
noexcept |
Add the active cursors to the priority queue.
◆ fetch() [1/2]
Fetch the current row.
- Parameters
-
[out] | mrec | Current merge record. |
[out] | offsets | Columns offsets inside mrec. |
- Returns
- DB_SUCCESS, DB_END_OF_INDEX or error code.
◆ fetch() [2/2]
Fetch the current row as a tuple.
Note: Tuple columns are shallow copies.
- Parameters
-
[out] | dtuple | Row represented as a tuple. |
- Returns
- DB_SUCCESS, DB_END_OF_INDEX or error code.
Implements Btree_load::Cursor.
◆ file_readers()
- Returns
- the file reader instances.
◆ get_n_rows()
uint64_t ddl::Merge_cursor::get_n_rows |
( |
| ) |
const |
|
noexcept |
- Returns
- the number of rows read from the files.
◆ next()
dberr_t ddl::Merge_cursor::next |
( |
void |
| ) |
|
|
overridevirtualnoexcept |
Move to the next record.
- Returns
- DB_SUCCESS, DB_END_OF_INDEX or error code.
Implements Btree_load::Cursor.
◆ number_of_cursors()
size_t ddl::Merge_cursor::number_of_cursors |
( |
| ) |
const |
|
inlinenoexcept |
- Returns
- the number of cursors being merged.
◆ open()
dberr_t ddl::Merge_cursor::open |
( |
| ) |
|
|
noexcept |
Open the cursor.
- Returns
- DB_SUCCESS or error code.
◆ pop()
- Returns
- the current cursor at the head of the queue.
◆ size()
size_t ddl::Merge_cursor::size |
( |
| ) |
const |
|
inlinenoexcept |
- Returns
- the number of active readers.
◆ m_cursor
◆ m_cursors
Cursors to use for parallel loading of the index.
◆ m_pq
Queue ddl::Merge_cursor::m_pq {} |
|
private |
Priority queue for merging the file cursors.
◆ m_stage
The documentation for this struct was generated from the following files: