31#ifndef ddl0impl_cursor_h
32#define ddl0impl_cursor_h
56 virtual void open() noexcept = 0;
71 Row &row) noexcept = 0;
98 [[nodiscard]]
virtual bool eof() const noexcept = 0;
const char * p
Definition: ctype-mb.cc:1234
dberr_t
Definition: db0err.h:38
@ DB_OUT_OF_MEMORY
Definition: db0err.h:48
@ DB_SUCCESS
Definition: db0err.h:42
Create Full Text Index with (parallel) merge sort.
DDL implementation include file.
static my_thread_id thread_id
Definition: my_thr_init.cc:62
The general architecture is that the work is done in two phases, roughly the read and write phase.
Definition: btr0load.cc:41
std::vector< Builder *, ut::allocator< Builder * > > Builders
Definition: ddl0impl.h:60
byte[UNIV_PAGE_SIZE_MAX] mrec_buf_t
Secondary buffer for I/O operations of merge records.
Definition: ddl0ddl.h:71
static Value err()
Create a Value object that represents an error condition.
Definition: json_binary.cc:921
void * malloc_withkey(PSI_memory_key_t key, std::size_t size) noexcept
Dynamically allocates storage of given size.
Definition: ut0new.h:595
void free(void *ptr) noexcept
Releases storage which has been dynamically allocated through any of the ut::malloc*(),...
Definition: ut0new.h:716
Heap wrapper that destroys the heap instance when it goes out of scope.
Definition: mem0mem.h:438
void create(size_t n, ut::Location location) noexcept
Create the heap, it must not already be created.
Definition: mem0mem.h:456
Type * get() noexcept
Definition: mem0mem.h:467
DDL context/configuration.
Definition: ddl0ddl.h:320
Cursor for reading the data.
Definition: ddl0impl-cursor.h:40
static Cursor * create_cursor(ddl::Context &ctx) noexcept
Create a cluster index scan cursor.
Definition: ddl0par-scan.cc:406
std::function< dberr_t()> Post_row
Definition: ddl0impl-cursor.h:41
virtual bool eof() const noexcept=0
virtual ~Cursor() noexcept
Destructor.
Definition: ddl0impl-cursor.h:48
Cursor(ddl::Context &ctx) noexcept
Constructor.
Definition: ddl0impl-cursor.h:45
Scoped_heap m_row_heap
Scoped heap to use for rows.
Definition: ddl0impl-cursor.h:110
ddl::Context & m_ctx
DDL context.
Definition: ddl0impl-cursor.h:107
dberr_t setup_pk_sort(size_t n_uniq) noexcept
Setup the primary key sort data structures.
Definition: ddl0impl-cursor.h:76
virtual dberr_t finish(dberr_t err) noexcept
Do any post processing.
Definition: ddl0ddl.cc:527
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:116
Scoped_heap m_tuple_heap
Scoped heap to use for tuple instances.
Definition: ddl0impl-cursor.h:113
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:120
Structure for an SQL data field.
Definition: data0data.h:604
Data structure for an index.
Definition: dict0mem.h:1045
#define UT_LOCATION_HERE
Definition: ut0core.h:72
#define UT_NEW_THIS_FILE_PSI_KEY
Definition: ut0new.h:563