MySQL 5.6.14 Source Code Document
|
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
#include <errno.h>
#include <sys/time.h>
#include "innodb_api.h"
#include "memcached/util.h"
#include <innodb_cb_api.h>
#include <innodb_config.h>
Go to the source code of this file.
Macros | |
#define | UPDATE_ALL_VAL_COL -1 |
#define | SET_EXP_TIME(exp) |
Functions | |
void | register_innodb_cb (void *p) |
ib_err_t | innodb_api_begin (innodb_engine_t *engine, const char *dbname, const char *name, innodb_conn_data_t *conn_data, ib_trx_t ib_trx, ib_crsr_t *crsr, ib_crsr_t *idx_crsr, ib_lck_mode_t lock_mode) |
ib_err_t | innodb_api_search (innodb_conn_data_t *cursor_data, ib_crsr_t *crsr, const char *key, int len, mci_item_t *item, ib_tpl_t *r_tpl, bool sel_only) |
uint64_t | mci_get_time (void) |
ib_err_t | innodb_api_insert (innodb_engine_t *engine, innodb_conn_data_t *cursor_data, const char *key, int len, uint32_t val_len, uint64_t exp, uint64_t *cas, uint64_t flags) |
ENGINE_ERROR_CODE | innodb_api_delete (innodb_engine_t *engine, innodb_conn_data_t *cursor_data, const char *key, int len) |
ENGINE_ERROR_CODE | innodb_api_arithmetic (innodb_engine_t *engine, innodb_conn_data_t *cursor_data, const char *key, int len, int delta, bool increment, uint64_t *cas, rel_time_t exp_time __attribute__((unused)), bool create, uint64_t initial, uint64_t *out_result) |
ENGINE_ERROR_CODE | innodb_api_store (innodb_engine_t *engine, innodb_conn_data_t *cursor_data, const char *key, int len, uint32_t val_len, uint64_t exp, uint64_t *cas, uint64_t input_cas, uint64_t flags, ENGINE_STORE_OPERATION op) |
ENGINE_ERROR_CODE | innodb_api_flush (innodb_engine_t *engine, innodb_conn_data_t *conn_data, const char *dbname, const char *name) |
bool | innodb_reset_conn (innodb_conn_data_t *conn_data, bool has_lock, bool commit, bool has_binlog) |
void | innodb_api_cursor_reset (innodb_engine_t *engine, innodb_conn_data_t *conn_data, conn_op_type_t op_type, bool commit) |
ib_err_t | innodb_cb_cursor_close (ib_crsr_t ib_crsr) |
ib_err_t | innodb_cb_trx_commit (ib_trx_t ib_trx) |
ib_err_t | innodb_cb_close_thd (void *thd) |
ib_trx_t | innodb_cb_trx_begin (ib_trx_level_t ib_trx_level) |
ib_err_t | innodb_cb_cursor_new_trx (ib_crsr_t ib_crsr, ib_trx_t ib_trx) |
ib_err_t | innodb_cb_cursor_lock (innodb_engine_t *eng, ib_crsr_t ib_crsr, ib_lck_mode_t ib_lck_mode) |
ib_tpl_t | innodb_cb_read_tuple_create (ib_crsr_t ib_crsr) |
ib_err_t | innodb_cb_cursor_first (ib_crsr_t ib_crsr) |
ib_err_t | innodb_cb_read_row (ib_crsr_t ib_crsr, ib_tpl_t ib_tpl) |
ib_ulint_t | innodb_cb_col_get_meta (ib_tpl_t ib_tpl, ib_ulint_t i, ib_col_meta_t *ib_col_meta) |
void | innodb_cb_tuple_delete (ib_tpl_t ib_tpl) |
ib_ulint_t | innodb_cb_tuple_get_n_cols (const ib_tpl_t ib_tpl) |
const void * | innodb_cb_col_get_value (ib_tpl_t ib_tpl, ib_ulint_t i) |
ib_err_t | innodb_cb_open_table (const char *name, ib_trx_t ib_trx, ib_crsr_t *ib_crsr) |
char * | innodb_cb_col_get_name (ib_crsr_t ib_crsr, ib_ulint_t i) |
ib_err_t | innodb_cb_cursor_open_index_using_name (ib_crsr_t ib_open_crsr, const char *index_name, ib_crsr_t *ib_crsr, int *idx_type, ib_id_u64_t *idx_id) |
int | innodb_cb_get_cfg () |
Variables | |
option_t | config_option_names [] |
InnoDB APIs to support memcached commands
Created 04/12/2011 Jimmy Yang
Definition in file innodb_api.c.
#define SET_EXP_TIME | ( | exp | ) |
Set expiration time. If the exp sent by client is larger than
60*60*24*30 (number of seconds in 30 days), it will be considered to be real Unix time value rather than an offset from current time
Definition at line 108 of file innodb_api.c.
#define UPDATE_ALL_VAL_COL -1 |
Whether to update all columns' value or a specific column value
Definition at line 38 of file innodb_api.c.
ENGINE_ERROR_CODE innodb_api_arithmetic | ( | innodb_engine_t * | engine, |
innodb_conn_data_t * | cursor_data, | ||
const char * | key, | ||
int | len, | ||
int | delta, | ||
bool | increment, | ||
uint64_t * | cas, | ||
rel_time_t exp_time | __attribute__(unused), | ||
bool | create, | ||
uint64_t | initial, | ||
uint64_t * | out_result | ||
) |
Update a row with arithmetic operations
engine | in: InnoDB Memcached engine |
cursor_data | in/out: cursor info |
key | in: key value |
len | in: key length |
delta | in: value to add or subtract |
increment | in: increment or decrement |
cas | out: cas |
__attribute__ | in: expire time |
create | in: whether to create new entry if not found |
initial | in: initialize value |
out_result | in: arithmetic result |
Definition at line 1533 of file innodb_api.c.
ib_err_t innodb_api_begin | ( | innodb_engine_t * | engine, |
const char * | dbname, | ||
const char * | name, | ||
innodb_conn_data_t * | conn_data, | ||
ib_trx_t | ib_trx, | ||
ib_crsr_t * | crsr, | ||
ib_crsr_t * | idx_crsr, | ||
ib_lck_mode_t | lock_mode | ||
) |
Open a table and return a cursor for the table.
engine | in: InnoDB Memcached engine |
dbname | in: NUL terminated database name |
name | in: NUL terminated table name |
conn_data | in/out: connnection specific data |
ib_trx | in: transaction |
crsr | out: innodb cursor |
idx_crsr | out: innodb index cursor |
lock_mode | in: lock mode |
Definition at line 139 of file innodb_api.c.
void innodb_api_cursor_reset | ( | innodb_engine_t * | engine, |
innodb_conn_data_t * | conn_data, | ||
conn_op_type_t | op_type, | ||
bool | commit | ||
) |
Increment read and write counters, if they exceed the batch size, commit the transaction.
engine | in: InnoDB Memcached engine |
conn_data | in/out: cursor affiliated with a connection |
op_type | in: type of DML performed |
commit | in: commit or abort trx |
Definition at line 1984 of file innodb_api.c.
ENGINE_ERROR_CODE innodb_api_delete | ( | innodb_engine_t * | engine, |
innodb_conn_data_t * | cursor_data, | ||
const char * | key, | ||
int | len | ||
) |
Delete a row, support the memcached "remove" command
engine | in: InnoDB Memcached engine |
cursor_data | in/out: cursor info |
key | in: value to insert |
len | in: value length |
Definition at line 1367 of file innodb_api.c.
ENGINE_ERROR_CODE innodb_api_flush | ( | innodb_engine_t * | engine, |
innodb_conn_data_t * | conn_data, | ||
const char * | dbname, | ||
const char * | name | ||
) |
Implement the "flush_all" command, map to InnoDB's "trunk table" operation return ENGINE_SUCCESS is all successful
engine | in: InnoDB Memcached engine |
conn_data | in/out: cursor affiliated with a connection |
dbname | in: database name |
name | in: table name |
Definition at line 1842 of file innodb_api.c.
ib_err_t innodb_api_insert | ( | innodb_engine_t * | engine, |
innodb_conn_data_t * | cursor_data, | ||
const char * | key, | ||
int | len, | ||
uint32_t | val_len, | ||
uint64_t | exp, | ||
uint64_t * | cas, | ||
uint64_t | flags | ||
) |
Insert a row
engine | in: InnoDB Memcached engine |
cursor_data | in/out: cursor info |
key | in: key and value to insert |
len | in: key length |
val_len | in: value length |
exp | in: expiration time |
cas | in/out: cas value |
flags | in: flags |
Definition at line 1234 of file innodb_api.c.
ib_err_t innodb_api_search | ( | innodb_conn_data_t * | cursor_data, |
ib_crsr_t * | crsr, | ||
const char * | key, | ||
int | len, | ||
mci_item_t * | item, | ||
ib_tpl_t * | r_tpl, | ||
bool | sel_only | ||
) |
Position a row according to the search key, and fetch value if needed
cursor_data | in/out: cursor info |
crsr | in/out: cursor used to search |
key | in: key to search |
len | in: key length |
item | in: result |
r_tpl | in: tpl for other DML operations |
sel_only | in: for select only |
Definition at line 748 of file innodb_api.c.
ENGINE_ERROR_CODE innodb_api_store | ( | innodb_engine_t * | engine, |
innodb_conn_data_t * | cursor_data, | ||
const char * | key, | ||
int | len, | ||
uint32_t | val_len, | ||
uint64_t | exp, | ||
uint64_t * | cas, | ||
uint64_t | input_cas, | ||
uint64_t | flags, | ||
ENGINE_STORE_OPERATION | op | ||
) |
This is the main interface to following memcached commands: 1) add 2) replace 3) append 4) prepend 5) set 6) cas
engine | in: InnoDB Memcached engine |
cursor_data | in/out: cursor info |
key | in: key value |
len | in: key length |
val_len | in: value length |
exp | in: expire time |
cas | out: cas value |
input_cas | in: cas value supplied by user |
flags | in: flags |
op | in: Operations |
Definition at line 1727 of file innodb_api.c.
ib_err_t innodb_cb_close_thd | ( | void * | thd | ) |
Close table associated to the connection
thd | in: THD |
Definition at line 2059 of file innodb_api.c.
ib_ulint_t innodb_cb_col_get_meta | ( | ib_tpl_t | ib_tpl, |
ib_ulint_t | i, | ||
ib_col_meta_t * | ib_col_meta | ||
) |
Get a column type, length and attributes from the tuple.
ib_tpl | in: tuple instance |
i | in: column index in tuple |
ib_col_meta | out: column meta data |
Definition at line 2156 of file innodb_api.c.
char* innodb_cb_col_get_name | ( | ib_crsr_t | ib_crsr, |
ib_ulint_t | i | ||
) |
Get a column name from the tuple.
ib_crsr | in: InnoDB cursor instance |
i | in: column index in tuple |
Definition at line 2216 of file innodb_api.c.
const void* innodb_cb_col_get_value | ( | ib_tpl_t | ib_tpl, |
ib_ulint_t | i | ||
) |
Get a column value pointer from the tuple.
ib_tpl | in: tuple instance |
i | in: column index in tuple |
Definition at line 2191 of file innodb_api.c.
Following are a set of InnoDB callback function wrappers for functions
that will be used outside innodb_api.c Close a cursor
ib_crsr | in/out: cursor to close |
Definition at line 2037 of file innodb_api.c.
Move cursor to the first record in the table.
ib_crsr | in: InnoDB cursor instance |
Definition at line 2133 of file innodb_api.c.
ib_err_t innodb_cb_cursor_lock | ( | innodb_engine_t * | eng, |
ib_crsr_t | ib_crsr, | ||
ib_lck_mode_t | ib_lck_mode | ||
) |
Set the Lock an InnoDB cursor/table.
eng | in: InnoDB Memcached engine |
ib_crsr | in/out: InnoDB cursor |
ib_lck_mode | in: InnoDB lock mode |
Definition at line 2093 of file innodb_api.c.
update the cursor with new transactions and also reset the cursor
ib_crsr | in/out: InnoDB cursor |
ib_trx | in: transaction |
Definition at line 2081 of file innodb_api.c.
ib_err_t innodb_cb_cursor_open_index_using_name | ( | ib_crsr_t | ib_open_crsr, |
const char * | index_name, | ||
ib_crsr_t * | ib_crsr, | ||
int * | idx_type, | ||
ib_id_u64_t * | idx_id | ||
) |
Open an InnoDB secondary index cursor and return a cursor handle to it.
ib_open_crsr | in: open/active cursor |
index_name | in: secondary index name |
ib_crsr | out,own: InnoDB index cursor |
idx_type | out: index is cluster index |
idx_id | out: index id |
Definition at line 2228 of file innodb_api.c.
int innodb_cb_get_cfg | ( | ) |
Get InnoDB API configure option
Definition at line 2243 of file innodb_api.c.
Open a table using the table name.
name | in: table name to lookup |
ib_trx | in: transaction |
ib_crsr | in: cursor to be used |
Definition at line 2203 of file innodb_api.c.
Read current row.
ib_crsr | in: InnoDB cursor instance |
ib_tpl | out: read cols into this tuple |
Definition at line 2144 of file innodb_api.c.
Create an InnoDB tuple used for index/table search.
ib_crsr | in: Cursor instance |
Definition at line 2122 of file innodb_api.c.
ib_trx_t innodb_cb_trx_begin | ( | ib_trx_level_t | ib_trx_level | ) |
Start a transaction
ib_trx_level | in: trx isolation level |
Definition at line 2070 of file innodb_api.c.
Commit the transaction
ib_trx | in/out: transaction to commit |
Definition at line 2048 of file innodb_api.c.
void innodb_cb_tuple_delete | ( | ib_tpl_t | ib_tpl | ) |
Destroy an InnoDB tuple.
ib_tpl | in,own: Tuple instance to delete |
Definition at line 2168 of file innodb_api.c.
ib_ulint_t innodb_cb_tuple_get_n_cols | ( | const ib_tpl_t | ib_tpl | ) |
Return the number of columns in the tuple definition.
ib_tpl | in: Tuple for table/index |
Definition at line 2180 of file innodb_api.c.
bool innodb_reset_conn | ( | innodb_conn_data_t * | conn_data, |
bool | has_lock, | ||
bool | commit, | ||
bool | has_binlog | ||
) |
Increment read and write counters, if they exceed the batch size, commit the transaction.
conn_data | in/out: cursor affiliated with a connection |
has_lock | in: has lock on connection |
commit | in: commit or abort trx |
has_binlog | in: binlog enabled |
Definition at line 1878 of file innodb_api.c.
uint64_t mci_get_time | ( | void | ) |
void register_innodb_cb | ( | void * | p | ) |
Register InnoDB Callback functions
p | in: Pointer to callback function array |
Definition at line 118 of file innodb_api.c.
option_t config_option_names[] |
Configure options enum IDs, their "names" and their default value
Definition at line 38 of file innodb_config.c.