63 DBUG_PRINT(
"ha_archive", (
"~Archive_share: %p",
this));
84#define ARCHIVE_VERSION 3
109 const char *
table_type()
const override {
return "ARCHIVE"; }
126 [[maybe_unused]])
const override {
141 int close(
void)
override;
145 int rnd_init(
bool scan =
true)
override;
181 uint table_changes)
override;
Definition: ha_archive.h:49
Archive_share()
Definition: ha_archive.cc:246
ha_rows rows_recorded
Definition: ha_archive.h:54
bool crashed
Definition: ha_archive.h:60
azio_stream archive_write
Definition: ha_archive.h:53
~Archive_share() override
Definition: ha_archive.h:62
THR_LOCK lock
Definition: ha_archive.h:52
char table_name[FN_REFLEN]
Definition: ha_archive.h:55
int read_v1_metafile()
Read version 1 meta file (5.0 compatibility routine).
Definition: ha_archive.cc:285
int init_archive_writer()
Definition: ha_archive.cc:466
bool archive_write_open
Definition: ha_archive.h:58
bool dirty
Definition: ha_archive.h:59
void close_archive_writer()
Definition: ha_archive.cc:483
int write_v1_metafile()
Write version 1 meta file (5.0 compatibility routine).
Definition: ha_archive.cc:315
char data_file_name[FN_REFLEN]
Definition: ha_archive.h:56
bool in_optimize
Definition: ha_archive.h:57
mysql_mutex_t mutex
Definition: ha_archive.h:51
Base class to be used by handlers different shares.
Definition: handler.h:3907
Using this class is fraught with peril, and you need to be very careful when doing so.
Definition: sql_string.h:166
For each client connection we create a separate thread with THD serving as a thread/connection descri...
Definition: sql_lexer_thd.h:33
Definition: ha_archive.h:86
archive_record_buffer * record_buffer
Definition: ha_archive.h:99
ha_rows scan_rows
Definition: ha_archive.h:94
~ha_archive() override=default
int truncate(dd::Table *table_def) override
Quickly remove all rows from a table.
Definition: ha_archive.cc:1468
virtual int index_read_idx(uchar *buf, uint index, const uchar *key, uint key_len, enum ha_rkey_function find_flag)
Definition: ha_archive.cc:861
int check(THD *thd, HA_CHECK_OPT *check_opt) override
Definition: ha_archive.cc:1501
uint32 max_row_length(const uchar *buf)
Definition: ha_archive.cc:732
uint max_supported_key_length() const override
Definition: ha_archive.h:124
int close(void) override
Definition: ha_archive.cc:577
int write_row(uchar *buf) override
Write a row.
Definition: ha_archive.cc:783
THR_LOCK_DATA lock
Definition: ha_archive.h:87
bool bulk_insert
Definition: ha_archive.h:95
int real_write_row(uchar *buf, azio_stream *writer)
Definition: ha_archive.cc:707
bool auto_repair() const override
Check if the table can be automatically repaired.
Definition: ha_archive.h:153
int get_row_version3(azio_stream *file_to_read, uchar *buf)
Definition: ha_archive.cc:1030
archive_record_buffer * create_record_buffer(unsigned int length)
Definition: ha_archive.cc:1555
int rnd_pos(uchar *buf, uchar *pos) override
Definition: ha_archive.cc:1142
int extra(enum ha_extra_function operation) override
Handler hints.
Definition: ha_archive.cc:1413
my_off_t current_position
Definition: ha_archive.h:91
int info(uint) override
General method to gather info from handler.
Definition: ha_archive.cc:1347
ulong index_flags(uint, uint, bool) const override
Definition: ha_archive.h:117
void update_create_info(HA_CREATE_INFO *create_info) override
Update create info as part of ALTER TABLE.
Definition: ha_archive.cc:1331
int get_row_version2(azio_stream *file_to_read, uchar *buf)
Definition: ha_archive.cc:1038
int get_row(azio_stream *file_to_read, uchar *buf)
Definition: ha_archive.cc:938
bool archive_reader_open
Definition: ha_archive.h:100
Archive_share * get_share(const char *table_name, int *rc)
Definition: ha_archive.cc:414
int repair(THD *thd, HA_CHECK_OPT *check_opt) override
In this method check_opt can be modified to specify CHECK option to use to call check() upon the tabl...
Definition: ha_archive.cc:1161
int rnd_init(bool scan=true) override
rnd_init() can be called two times without rnd_end() in between (it only makes sense if scan=1).
Definition: ha_archive.cc:915
int rnd_next(uchar *buf) override
Definition: ha_archive.cc:1105
unsigned int pack_row(uchar *record, azio_stream *writer)
Definition: ha_archive.cc:746
bool fix_rec_buff(unsigned int length)
Definition: ha_archive.cc:954
uchar byte_buffer[IO_SIZE]
Definition: ha_archive.h:92
ulonglong table_flags() const override
Definition: ha_archive.h:110
void destroy_record_buffer(archive_record_buffer *r)
Definition: ha_archive.cc:1574
unsigned int pack_row_v1(uchar *record)
Pack version 1 row (5.0 compatibility routine).
Definition: ha_archive.cc:349
int create(const char *name, TABLE *form, HA_CREATE_INFO *create_info, dd::Table *table_def) override
Create table (implementation).
Definition: ha_archive.cc:599
int index_next(uchar *buf) override
Definition: ha_archive.cc:892
THR_LOCK_DATA ** store_lock(THD *thd, THR_LOCK_DATA **to, enum thr_lock_type lock_type) override
Is not invoked for non-transactional temporary tables.
Definition: ha_archive.cc:1298
bool check_if_incompatible_data(HA_CREATE_INFO *info, uint table_changes) override
Part of old, deprecated in-place ALTER API.
Definition: ha_archive.cc:1580
int end_bulk_insert() override
Definition: ha_archive.cc:1454
int unpack_row(azio_stream *file_to_read, uchar *record)
Definition: ha_archive.cc:974
const char * table_type() const override
The following can be called without an open handler.
Definition: ha_archive.h:109
ha_archive(handlerton *hton, TABLE_SHARE *table_arg)
Definition: ha_archive.cc:260
int init_archive_reader()
Definition: ha_archive.cc:496
String buffer
Definition: ha_archive.h:93
bool check_and_repair(THD *thd) override
Check and repair the table if necessary.
Definition: ha_archive.cc:1548
void position(const uchar *record) override
Definition: ha_archive.cc:1130
int index_read(uchar *buf, const uchar *key, uint key_len, enum ha_rkey_function find_flag) override
Definition: ha_archive.cc:853
int open(const char *name, int mode, uint test_if_locked, const dd::Table *table_def) override
Definition: ha_archive.cc:522
int records(ha_rows *num_rows) override
Number of rows in table.
Definition: ha_archive.h:129
Archive_share * share
Definition: ha_archive.h:88
enum row_type get_real_row_type(const HA_CREATE_INFO *) const override
Get real row type for the table created based on one specified by user, CREATE TABLE options and SE c...
Definition: ha_archive.h:167
uint max_supported_keys() const override
Definition: ha_archive.h:123
uint current_k_offset
Definition: ha_archive.h:98
bool is_crashed() const override
Check if the table is crashed.
Definition: ha_archive.cc:1476
void start_bulk_insert(ha_rows rows) override
Definition: ha_archive.cc:1444
int read_data_header(azio_stream *file_to_read)
Definition: ha_archive.cc:371
uint max_supported_key_part_length(HA_CREATE_INFO *create_info) const override
Definition: ha_archive.h:125
uint current_key_len
Definition: ha_archive.h:97
azio_stream archive
Definition: ha_archive.h:90
int check_for_upgrade(HA_CHECK_OPT *check_opt) override
Check for upgrade.
Definition: ha_archive.cc:1490
int index_init(uint keynr, bool sorted) override
Definition: ha_archive.cc:843
void get_auto_increment(ulonglong offset, ulonglong increment, ulonglong nb_desired_values, ulonglong *first_value, ulonglong *nb_reserved_values) override
Reserves an interval of auto_increment values from the handler.
Definition: ha_archive.cc:835
int optimize(THD *thd, HA_CHECK_OPT *check_opt) override
Definition: ha_archive.cc:1175
const uchar * current_key
Definition: ha_archive.h:96
The handler class is the interface for dynamically loadable storage engines.
Definition: handler.h:4365
A table definition from the master.
Definition: rpl_utility.h:247
#define mysql_mutex_lock(M)
Definition: mysql_mutex.h:49
#define mysql_mutex_destroy(M)
Definition: mysql_mutex.h:45
#define mysql_mutex_unlock(M)
Definition: mysql_mutex.h:56
ha_rkey_function
Definition: my_base.h:77
my_off_t ha_rows
Definition: my_base.h:1139
ha_extra_function
Definition: my_base.h:183
#define DBUG_PRINT(keyword, arglist)
Definition: my_dbug.h:180
Some integer typedefs for easier portability.
unsigned long long int ulonglong
Definition: my_inttypes.h:55
ulonglong my_off_t
Definition: my_inttypes.h:71
unsigned char uchar
Definition: my_inttypes.h:51
uint32_t uint32
Definition: my_inttypes.h:66
Common #defines and includes for file and socket I/O.
#define FN_REFLEN
Definition: my_io.h:82
constexpr const size_t IO_SIZE
Definition: my_io.h:158
static int record
Definition: mysqltest.cc:187
Definition: buf0block_hint.cc:29
bool length(const dd::Spatial_reference_system *srs, const Geometry *g1, double *length, bool *null) noexcept
Computes the length of linestrings and multilinestrings.
Definition: length.cc:75
Provides atomic access in shared-exclusive modes.
Definition: shared_spin_lock.h:78
const char * table_name
Definition: rules_table_service.cc:55
mode
Definition: file_handle.h:59
const mysql_service_registry_t * r
Definition: pfs_example_plugin_employee.cc:85
required string key
Definition: replication_asynchronous_connection_failover.proto:59
#define HA_COUNT_ROWS_INSTANT
Definition: handler.h:331
#define HA_BINLOG_ROW_CAPABLE
Definition: handler.h:338
#define HA_CAN_BIT_FIELD
Definition: handler.h:328
#define HA_FILE_BASED
Definition: handler.h:323
#define HA_UPDATE_NOT_SUPPORTED
Handlers with this flag set do not support UPDATE operations.
Definition: handler.h:498
#define HA_DELETE_NOT_SUPPORTED
Handlers with this flag set do not support DELETE operations.
Definition: handler.h:503
#define HA_CAN_REPAIR
Definition: handler.h:368
#define HA_CAN_GEOMETRY
Definition: handler.h:227
row_type
Definition: handler.h:675
@ ROW_TYPE_COMPRESSED
Definition: handler.h:680
#define HA_BINLOG_STMT_CAPABLE
Definition: handler.h:339
#define HA_NO_TRANSACTIONS
Definition: handler.h:209
#define HA_STATS_RECORDS_IS_EXACT
Definition: handler.h:271
#define HA_ONLY_WHOLE_INDEX
Definition: handler.h:553
Our own string classes, used pervasively throughout the executor.
case opt name
Definition: sslopt-case.h:32
Definition: handler.h:3583
Definition: handler.h:2998
This structure is shared between different table objects.
Definition: table.h:688
Definition: thr_lock.h:123
Definition: thr_lock.h:138
Definition: ha_archive.h:44
uint32 length
Definition: ha_archive.h:46
uchar * buffer
Definition: ha_archive.h:45
handlerton is a singleton structure - one instance per storage engine - to provide access to storage ...
Definition: handler.h:2594
An instrumented mutex structure.
Definition: mysql_mutex_bits.h:49
thr_lock_type
Definition: thr_lock.h:50
void thr_lock_delete(THR_LOCK *lock)
Definition: thr_lock.cc:321
unsigned int uint
Definition: uca9-dump.cc:74