32#ifndef ddl0impl_cursor_h
33#define ddl0impl_cursor_h
57 virtual void open() noexcept = 0;
72 Row &row) noexcept = 0;
99 [[nodiscard]]
virtual bool eof() const noexcept = 0;
const char * p
Definition: ctype-mb.cc:1237
dberr_t
Definition: db0err.h:39
@ DB_OUT_OF_MEMORY
Definition: db0err.h:49
@ DB_SUCCESS
Definition: db0err.h:43
Create Full Text Index with (parallel) merge sort.
DDL implementation include file.
static my_thread_id thread_id
Definition: my_thr_init.cc:63
The general architecture is that the work is done in two phases, roughly the read and write phase.
Definition: btr0load.cc:42
std::vector< Builder *, ut::allocator< Builder * > > Builders
Definition: ddl0impl.h:61
byte[UNIV_PAGE_SIZE_MAX] mrec_buf_t
Secondary buffer for I/O operations of merge records.
Definition: ddl0ddl.h:72
static Value err()
Create a Value object that represents an error condition.
Definition: json_binary.cc:910
void * malloc_withkey(PSI_memory_key_t key, std::size_t size) noexcept
Dynamically allocates storage of given size.
Definition: ut0new.h:596
void free(void *ptr) noexcept
Releases storage which has been dynamically allocated through any of the ut::malloc*(),...
Definition: ut0new.h:717
Heap wrapper that destroys the heap instance when it goes out of scope.
Definition: mem0mem.h:439
void create(size_t n, ut::Location location) noexcept
Create the heap, it must not already be created.
Definition: mem0mem.h:457
Type * get() noexcept
Definition: mem0mem.h:464
DDL context/configuration.
Definition: ddl0ddl.h:321
Cursor for reading the data.
Definition: ddl0impl-cursor.h:41
static Cursor * create_cursor(ddl::Context &ctx) noexcept
Create a cluster index scan cursor.
Definition: ddl0par-scan.cc:407
std::function< dberr_t()> Post_row
Definition: ddl0impl-cursor.h:42
virtual bool eof() const noexcept=0
virtual ~Cursor() noexcept
Destructor.
Definition: ddl0impl-cursor.h:49
Cursor(ddl::Context &ctx) noexcept
Constructor.
Definition: ddl0impl-cursor.h:46
Scoped_heap m_row_heap
Scoped heap to use for rows.
Definition: ddl0impl-cursor.h:111
ddl::Context & m_ctx
DDL context.
Definition: ddl0impl-cursor.h:108
dberr_t setup_pk_sort(size_t n_uniq) noexcept
Setup the primary key sort data structures.
Definition: ddl0impl-cursor.h:77
virtual dberr_t finish(dberr_t err) noexcept
Do any post processing.
Definition: ddl0ddl.cc:528
virtual void open() noexcept=0
Open the cursor.
virtual dict_index_t * index() noexcept=0
dfield_t * m_prev_fields
Previous fields.
Definition: ddl0impl-cursor.h:117
Scoped_heap m_tuple_heap
Scoped heap to use for tuple instances.
Definition: ddl0impl-cursor.h:114
virtual dberr_t copy_row(size_t thread_id, Row &row) noexcept=0
Copy the row data, by default only the pointers are copied.
virtual dberr_t scan(Builders &builders) noexcept=0
Reads clustered index of the table and create temporary file(s) containing the index entries for the ...
Physical row context.
Definition: ddl0impl.h:121
Structure for an SQL data field.
Definition: data0data.h:605
Data structure for an index.
Definition: dict0mem.h:1046
#define UT_LOCATION_HERE
Definition: ut0core.h:47
#define UT_NEW_THIS_FILE_PSI_KEY
Definition: ut0new.h:564