mirror of
https://github.com/MariaDB/server.git
synced 2025-07-29 05:21:33 +03:00
InnoDB cleanup: Add const qualifiers to many char* arguments
innobase/dict/dict0dict.c: Replace char* arguments with const char* innobase/dict/dict0load.c: Replace char* arguments with const char* innobase/dict/dict0mem.c: Replace char* arguments with const char* innobase/fil/fil0fil.c: Replace char* arguments with const char* innobase/include/data0data.h: dfield_set_data(): add const qualifier innobase/include/data0data.ic: dfield_set_data(): add const qualifier (temporarily shut up compiler warnings) innobase/include/dict0dict.h: Replace char* arguments with const char* innobase/include/dict0dict.ic: Replace char* arguments with const char* innobase/include/dict0load.h: Replace char* arguments with const char* innobase/include/dict0mem.h: Replace char* arguments with const char* innobase/include/fil0fil.h: Replace char* arguments with const char* innobase/include/os0file.h: Replace char* arguments with const char* innobase/include/os0sync.h: Replace char* arguments with const char* innobase/include/pars0pars.h: Replace char* arguments with const char* innobase/include/pars0sym.h: Replace char* arguments with const char* innobase/include/row0mysql.h: Replace char* arguments with const char* innobase/include/row0sel.h: Replace char* arguments with const char* innobase/include/trx0roll.h: Replace char* arguments with const char* innobase/include/trx0sys.h: Replace char* arguments with const char* innobase/include/trx0trx.h: Replace char* arguments with const char* innobase/include/ut0rnd.h: Replace char* arguments with const char* innobase/include/ut0rnd.ic: Replace char* arguments with const char* innobase/include/ut0ut.h: Remove unused function ut_printf() innobase/os/os0file.c: Replace char* arguments with const char* innobase/os/os0sync.c: Replace char* arguments with const char* innobase/pars/pars0pars.c: Replace char* arguments with const char* innobase/pars/pars0sym.c: Use mem_heap_strdupl() instead of mem_heap_alloc() and memcpy() innobase/row/row0mysql.c: Replace char* arguments with const char* innobase/row/row0sel.c: Replace char* arguments with const char* innobase/trx/trx0roll.c: Replace char* arguments with const char* innobase/trx/trx0sys.c: Replace char* arguments with const char*
This commit is contained in:
@ -70,7 +70,7 @@ dict_col_reposition_in_cache(
|
|||||||
/*=========================*/
|
/*=========================*/
|
||||||
dict_table_t* table, /* in: table */
|
dict_table_t* table, /* in: table */
|
||||||
dict_col_t* col, /* in: column */
|
dict_col_t* col, /* in: column */
|
||||||
char* new_name); /* in: new table name */
|
const char* new_name); /* in: new table name */
|
||||||
/**************************************************************************
|
/**************************************************************************
|
||||||
Removes a column from the data dictionary hash table. */
|
Removes a column from the data dictionary hash table. */
|
||||||
static
|
static
|
||||||
@ -309,7 +309,7 @@ dict_table_get_index_noninline(
|
|||||||
/*===========================*/
|
/*===========================*/
|
||||||
/* out: index, NULL if does not exist */
|
/* out: index, NULL if does not exist */
|
||||||
dict_table_t* table, /* in: table */
|
dict_table_t* table, /* in: table */
|
||||||
char* name) /* in: index name */
|
const char* name) /* in: index name */
|
||||||
{
|
{
|
||||||
return(dict_table_get_index(table, name));
|
return(dict_table_get_index(table, name));
|
||||||
}
|
}
|
||||||
@ -693,8 +693,9 @@ directory dict_table_get_low is usually the appropriate function. */
|
|||||||
dict_table_t*
|
dict_table_t*
|
||||||
dict_table_get(
|
dict_table_get(
|
||||||
/*===========*/
|
/*===========*/
|
||||||
/* out: table, NULL if does not exist */
|
/* out: table, NULL if
|
||||||
char* table_name, /* in: table name */
|
does not exist */
|
||||||
|
const char* table_name, /* in: table name */
|
||||||
trx_t* trx) /* in: transaction handle or NULL */
|
trx_t* trx) /* in: transaction handle or NULL */
|
||||||
{
|
{
|
||||||
dict_table_t* table;
|
dict_table_t* table;
|
||||||
@ -722,8 +723,9 @@ Returns a table object and increments MySQL open handle count on the table. */
|
|||||||
dict_table_t*
|
dict_table_t*
|
||||||
dict_table_get_and_increment_handle_count(
|
dict_table_get_and_increment_handle_count(
|
||||||
/*======================================*/
|
/*======================================*/
|
||||||
/* out: table, NULL if does not exist */
|
/* out: table, NULL if
|
||||||
char* table_name, /* in: table name */
|
does not exist */
|
||||||
|
const char* table_name, /* in: table name */
|
||||||
trx_t* trx) /* in: transaction handle or NULL */
|
trx_t* trx) /* in: transaction handle or NULL */
|
||||||
{
|
{
|
||||||
dict_table_t* table;
|
dict_table_t* table;
|
||||||
@ -886,7 +888,7 @@ dict_table_rename_in_cache(
|
|||||||
/*=======================*/
|
/*=======================*/
|
||||||
/* out: TRUE if success */
|
/* out: TRUE if success */
|
||||||
dict_table_t* table, /* in: table */
|
dict_table_t* table, /* in: table */
|
||||||
char* new_name, /* in: new name */
|
const char* new_name, /* in: new name */
|
||||||
ibool rename_also_foreigns)/* in: in ALTER TABLE we want
|
ibool rename_also_foreigns)/* in: in ALTER TABLE we want
|
||||||
to preserve the original table name
|
to preserve the original table name
|
||||||
in constraints which reference it */
|
in constraints which reference it */
|
||||||
@ -1294,7 +1296,7 @@ dict_col_reposition_in_cache(
|
|||||||
/*=========================*/
|
/*=========================*/
|
||||||
dict_table_t* table, /* in: table */
|
dict_table_t* table, /* in: table */
|
||||||
dict_col_t* col, /* in: column */
|
dict_col_t* col, /* in: column */
|
||||||
char* new_name) /* in: new table name */
|
const char* new_name) /* in: new table name */
|
||||||
{
|
{
|
||||||
ulint fold;
|
ulint fold;
|
||||||
|
|
||||||
@ -2019,7 +2021,7 @@ dict_foreign_find_index(
|
|||||||
column types must match */
|
column types must match */
|
||||||
{
|
{
|
||||||
dict_index_t* index;
|
dict_index_t* index;
|
||||||
char* col_name;
|
const char* col_name;
|
||||||
ulint i;
|
ulint i;
|
||||||
|
|
||||||
index = dict_table_get_first_index(table);
|
index = dict_table_get_first_index(table);
|
||||||
@ -2567,10 +2569,10 @@ dict_strip_comments(
|
|||||||
/* out, own: SQL string stripped from
|
/* out, own: SQL string stripped from
|
||||||
comments; the caller must free this
|
comments; the caller must free this
|
||||||
with mem_free()! */
|
with mem_free()! */
|
||||||
char* sql_string) /* in: SQL string */
|
const char* sql_string) /* in: SQL string */
|
||||||
{
|
{
|
||||||
char* str;
|
char* str;
|
||||||
char* sptr;
|
const char* sptr;
|
||||||
char* ptr;
|
char* ptr;
|
||||||
|
|
||||||
str = mem_alloc(strlen(sql_string) + 1);
|
str = mem_alloc(strlen(sql_string) + 1);
|
||||||
@ -2970,7 +2972,8 @@ col_loop1:
|
|||||||
}
|
}
|
||||||
|
|
||||||
foreign->foreign_table = table;
|
foreign->foreign_table = table;
|
||||||
foreign->foreign_table_name = table->name;
|
foreign->foreign_table_name = mem_heap_strdup(foreign->heap,
|
||||||
|
table->name);
|
||||||
foreign->foreign_index = index;
|
foreign->foreign_index = index;
|
||||||
foreign->n_fields = i;
|
foreign->n_fields = i;
|
||||||
foreign->foreign_col_names = mem_heap_alloc(foreign->heap,
|
foreign->foreign_col_names = mem_heap_alloc(foreign->heap,
|
||||||
@ -3246,13 +3249,16 @@ dict_create_foreign_constraints(
|
|||||||
/*============================*/
|
/*============================*/
|
||||||
/* out: error code or DB_SUCCESS */
|
/* out: error code or DB_SUCCESS */
|
||||||
trx_t* trx, /* in: transaction */
|
trx_t* trx, /* in: transaction */
|
||||||
char* sql_string, /* in: table create or ALTER TABLE
|
const char* sql_string, /* in: table create statement where
|
||||||
statement where foreign keys are declared like:
|
foreign keys are declared like:
|
||||||
FOREIGN KEY (a, b) REFERENCES table2(c, d),
|
FOREIGN KEY (a, b) REFERENCES
|
||||||
table2 can be written also with the database
|
table2(c, d), table2 can be written
|
||||||
name before it: test.table2; the default
|
also with the database
|
||||||
database is the database of parameter name */
|
name before it: test.table2; the
|
||||||
char* name) /* in: table full name in the normalized form
|
default database id the database of
|
||||||
|
parameter name */
|
||||||
|
const char* name) /* in: table full name in the
|
||||||
|
normalized form
|
||||||
database_name/table_name */
|
database_name/table_name */
|
||||||
{
|
{
|
||||||
char* str;
|
char* str;
|
||||||
|
@ -27,9 +27,10 @@ Finds the first table name in the given database. */
|
|||||||
char*
|
char*
|
||||||
dict_get_first_table_name_in_db(
|
dict_get_first_table_name_in_db(
|
||||||
/*============================*/
|
/*============================*/
|
||||||
/* out, own: table name, NULL if does not exist;
|
/* out, own: table name, NULL if
|
||||||
the caller must free the memory in the string! */
|
does not exist; the caller must
|
||||||
char* name) /* in: database name which ends to '/' */
|
free the memory in the string! */
|
||||||
|
const char* name) /* in: database name which ends to '/' */
|
||||||
{
|
{
|
||||||
dict_table_t* sys_tables;
|
dict_table_t* sys_tables;
|
||||||
btr_pcur_t pcur;
|
btr_pcur_t pcur;
|
||||||
@ -389,7 +390,7 @@ Report that an index field or index for a table has been delete marked. */
|
|||||||
static
|
static
|
||||||
void
|
void
|
||||||
dict_load_report_deleted_index(
|
dict_load_report_deleted_index(
|
||||||
char* name, /* in: table name */
|
const char* name, /* in: table name */
|
||||||
ulint field) /* in: index field, or ULINT_UNDEFINED */
|
ulint field) /* in: index field, or ULINT_UNDEFINED */
|
||||||
{
|
{
|
||||||
fputs("InnoDB: Error: data dictionary entry"
|
fputs("InnoDB: Error: data dictionary entry"
|
||||||
@ -688,12 +689,13 @@ dictionary cache. */
|
|||||||
dict_table_t*
|
dict_table_t*
|
||||||
dict_load_table(
|
dict_load_table(
|
||||||
/*============*/
|
/*============*/
|
||||||
/* out: table, NULL if does not exist; if the table is
|
/* out: table, NULL if does not exist;
|
||||||
stored in an .ibd file, but the file does not exist,
|
if the table is stored in an .ibd file,
|
||||||
then we set the ibd_file_missing flag TRUE in the table
|
but the file does not exist,
|
||||||
object we return */
|
then we set the ibd_file_missing flag TRUE
|
||||||
char* name) /* in: table name in the databasename/tablename
|
in the table object we return */
|
||||||
format */
|
const char* name) /* in: table name in the
|
||||||
|
databasename/tablename format */
|
||||||
{
|
{
|
||||||
ibool ibd_file_missing = FALSE;
|
ibool ibd_file_missing = FALSE;
|
||||||
dict_table_t* table;
|
dict_table_t* table;
|
||||||
@ -1186,7 +1188,7 @@ ulint
|
|||||||
dict_load_foreigns(
|
dict_load_foreigns(
|
||||||
/*===============*/
|
/*===============*/
|
||||||
/* out: DB_SUCCESS or error code */
|
/* out: DB_SUCCESS or error code */
|
||||||
char* table_name) /* in: table name */
|
const char* table_name) /* in: table name */
|
||||||
{
|
{
|
||||||
btr_pcur_t pcur;
|
btr_pcur_t pcur;
|
||||||
mem_heap_t* heap;
|
mem_heap_t* heap;
|
||||||
|
@ -30,7 +30,7 @@ dict_table_t*
|
|||||||
dict_mem_table_create(
|
dict_mem_table_create(
|
||||||
/*==================*/
|
/*==================*/
|
||||||
/* out, own: table object */
|
/* out, own: table object */
|
||||||
char* name, /* in: table name */
|
const char* name, /* in: table name */
|
||||||
ulint space, /* in: space where the clustered index of
|
ulint space, /* in: space where the clustered index of
|
||||||
the table is placed; this parameter is
|
the table is placed; this parameter is
|
||||||
ignored if the table is made a member of
|
ignored if the table is made a member of
|
||||||
@ -38,7 +38,6 @@ dict_mem_table_create(
|
|||||||
ulint n_cols) /* in: number of columns */
|
ulint n_cols) /* in: number of columns */
|
||||||
{
|
{
|
||||||
dict_table_t* table;
|
dict_table_t* table;
|
||||||
char* str;
|
|
||||||
mem_heap_t* heap;
|
mem_heap_t* heap;
|
||||||
|
|
||||||
ut_ad(name);
|
ut_ad(name);
|
||||||
@ -49,10 +48,8 @@ dict_mem_table_create(
|
|||||||
|
|
||||||
table->heap = heap;
|
table->heap = heap;
|
||||||
|
|
||||||
str = mem_heap_strdup(heap, name);
|
|
||||||
|
|
||||||
table->type = DICT_TABLE_ORDINARY;
|
table->type = DICT_TABLE_ORDINARY;
|
||||||
table->name = str;
|
table->name = mem_heap_strdup(heap, name);
|
||||||
table->space = space;
|
table->space = space;
|
||||||
table->ibd_file_missing = FALSE;
|
table->ibd_file_missing = FALSE;
|
||||||
table->tablespace_discarded = FALSE;
|
table->tablespace_discarded = FALSE;
|
||||||
@ -103,11 +100,11 @@ dict_table_t*
|
|||||||
dict_mem_cluster_create(
|
dict_mem_cluster_create(
|
||||||
/*====================*/
|
/*====================*/
|
||||||
/* out, own: cluster object */
|
/* out, own: cluster object */
|
||||||
char* name, /* in: cluster name */
|
const char* name, /* in: cluster name */
|
||||||
ulint space, /* in: space where the clustered indexes
|
ulint space, /* in: space where the clustered indexes
|
||||||
of the member tables are placed */
|
of the member tables are placed */
|
||||||
ulint n_cols, /* in: number of columns */
|
ulint n_cols, /* in: number of columns */
|
||||||
ulint mix_len) /* in: length of the common key prefix in the
|
ulint mix_len)/* in: length of the common key prefix in the
|
||||||
cluster */
|
cluster */
|
||||||
{
|
{
|
||||||
dict_table_t* cluster;
|
dict_table_t* cluster;
|
||||||
@ -127,7 +124,7 @@ void
|
|||||||
dict_mem_table_make_cluster_member(
|
dict_mem_table_make_cluster_member(
|
||||||
/*===============================*/
|
/*===============================*/
|
||||||
dict_table_t* table, /* in: non-published table */
|
dict_table_t* table, /* in: non-published table */
|
||||||
char* cluster_name) /* in: cluster name */
|
const char* cluster_name) /* in: cluster name */
|
||||||
{
|
{
|
||||||
table->type = DICT_TABLE_CLUSTER_MEMBER;
|
table->type = DICT_TABLE_CLUSTER_MEMBER;
|
||||||
table->cluster_name = cluster_name;
|
table->cluster_name = cluster_name;
|
||||||
@ -140,7 +137,7 @@ void
|
|||||||
dict_mem_table_add_col(
|
dict_mem_table_add_col(
|
||||||
/*===================*/
|
/*===================*/
|
||||||
dict_table_t* table, /* in: table */
|
dict_table_t* table, /* in: table */
|
||||||
char* name, /* in: column name */
|
const char* name, /* in: column name */
|
||||||
ulint mtype, /* in: main datatype */
|
ulint mtype, /* in: main datatype */
|
||||||
ulint prtype, /* in: precise type */
|
ulint prtype, /* in: precise type */
|
||||||
ulint len, /* in: length */
|
ulint len, /* in: length */
|
||||||
@ -175,12 +172,13 @@ dict_index_t*
|
|||||||
dict_mem_index_create(
|
dict_mem_index_create(
|
||||||
/*==================*/
|
/*==================*/
|
||||||
/* out, own: index object */
|
/* out, own: index object */
|
||||||
char* table_name, /* in: table name */
|
const char* table_name, /* in: table name */
|
||||||
char* index_name, /* in: index name */
|
const char* index_name, /* in: index name */
|
||||||
ulint space, /* in: space where the index tree is placed,
|
ulint space, /* in: space where the index tree is
|
||||||
ignored if the index is of the clustered
|
placed, ignored if the index is of
|
||||||
type */
|
the clustered type */
|
||||||
ulint type, /* in: DICT_UNIQUE, DICT_CLUSTERED, ... ORed */
|
ulint type, /* in: DICT_UNIQUE,
|
||||||
|
DICT_CLUSTERED, ... ORed */
|
||||||
ulint n_fields) /* in: number of fields */
|
ulint n_fields) /* in: number of fields */
|
||||||
{
|
{
|
||||||
dict_index_t* index;
|
dict_index_t* index;
|
||||||
@ -259,7 +257,7 @@ void
|
|||||||
dict_mem_index_add_field(
|
dict_mem_index_add_field(
|
||||||
/*=====================*/
|
/*=====================*/
|
||||||
dict_index_t* index, /* in: index */
|
dict_index_t* index, /* in: index */
|
||||||
char* name, /* in: column name */
|
const char* name, /* in: column name */
|
||||||
ulint order, /* in: order criterion; 0 means an
|
ulint order, /* in: order criterion; 0 means an
|
||||||
ascending order */
|
ascending order */
|
||||||
ulint prefix_len) /* in: 0 or the column prefix length
|
ulint prefix_len) /* in: 0 or the column prefix length
|
||||||
|
@ -390,11 +390,12 @@ Appends a new file to the chain of files of a space. File must be closed. */
|
|||||||
void
|
void
|
||||||
fil_node_create(
|
fil_node_create(
|
||||||
/*============*/
|
/*============*/
|
||||||
char* name, /* in: file name (file must be closed) */
|
const char* name, /* in: file name (file must be closed) */
|
||||||
ulint size, /* in: file size in database blocks, rounded downwards
|
ulint size, /* in: file size in database blocks, rounded
|
||||||
to an integer */
|
downwards to an integer */
|
||||||
ulint id, /* in: space id where to append */
|
ulint id, /* in: space id where to append */
|
||||||
ibool is_raw) /* in: TRUE if a raw device or a raw disk partition */
|
ibool is_raw) /* in: TRUE if a raw device or
|
||||||
|
a raw disk partition */
|
||||||
{
|
{
|
||||||
fil_system_t* system = fil_system;
|
fil_system_t* system = fil_system;
|
||||||
fil_node_t* node;
|
fil_node_t* node;
|
||||||
@ -805,7 +806,7 @@ ibool
|
|||||||
fil_space_create(
|
fil_space_create(
|
||||||
/*=============*/
|
/*=============*/
|
||||||
/* out: TRUE if success */
|
/* out: TRUE if success */
|
||||||
char* name, /* in: space name */
|
const char* name, /* in: space name */
|
||||||
ulint id, /* in: space id */
|
ulint id, /* in: space id */
|
||||||
ulint purpose)/* in: FIL_TABLESPACE, or FIL_LOG if log */
|
ulint purpose)/* in: FIL_TABLESPACE, or FIL_LOG if log */
|
||||||
{
|
{
|
||||||
@ -1542,15 +1543,17 @@ static
|
|||||||
void
|
void
|
||||||
fil_op_write_log(
|
fil_op_write_log(
|
||||||
/*=============*/
|
/*=============*/
|
||||||
ulint type, /* in: MLOG_FILE_CREATE, MLOG_FILE_DELETE, or
|
ulint type, /* in: MLOG_FILE_CREATE,
|
||||||
|
MLOG_FILE_DELETE, or
|
||||||
MLOG_FILE_RENAME */
|
MLOG_FILE_RENAME */
|
||||||
ulint space_id, /* in: space id */
|
ulint space_id, /* in: space id */
|
||||||
char* name, /* in: table name in the familiar
|
const char* name, /* in: table name in the familiar
|
||||||
'databasename/tablename' format, or the file
|
'databasename/tablename' format, or
|
||||||
path in the case of MLOG_FILE_DELETE */
|
the file path in the case of
|
||||||
char* new_name, /* in: if type is MLOG_FILE_RENAME, the new
|
MLOG_FILE_DELETE */
|
||||||
table name in the 'databasename/tablename'
|
const char* new_name, /* in: if type is MLOG_FILE_RENAME,
|
||||||
format */
|
the new table name in the
|
||||||
|
'databasename/tablename' format */
|
||||||
mtr_t* mtr) /* in: mini-transaction handle */
|
mtr_t* mtr) /* in: mini-transaction handle */
|
||||||
{
|
{
|
||||||
byte* log_ptr;
|
byte* log_ptr;
|
||||||
@ -1961,13 +1964,14 @@ ibool
|
|||||||
fil_rename_tablespace(
|
fil_rename_tablespace(
|
||||||
/*==================*/
|
/*==================*/
|
||||||
/* out: TRUE if success */
|
/* out: TRUE if success */
|
||||||
char* old_name, /* in: old table name in the standard
|
const char* old_name, /* in: old table name in the standard
|
||||||
databasename/tablename format of InnoDB, or
|
databasename/tablename format of
|
||||||
NULL if we do the rename based on the space
|
InnoDB, or NULL if we do the rename
|
||||||
id only */
|
based on the space id only */
|
||||||
ulint id, /* in: space id */
|
ulint id, /* in: space id */
|
||||||
char* new_name) /* in: new table name in the standard
|
const char* new_name) /* in: new table name in the standard
|
||||||
databasename/tablename format of InnoDB */
|
databasename/tablename format
|
||||||
|
of InnoDB */
|
||||||
{
|
{
|
||||||
fil_system_t* system = fil_system;
|
fil_system_t* system = fil_system;
|
||||||
ibool success;
|
ibool success;
|
||||||
@ -2125,14 +2129,15 @@ ulint
|
|||||||
fil_create_new_single_table_tablespace(
|
fil_create_new_single_table_tablespace(
|
||||||
/*===================================*/
|
/*===================================*/
|
||||||
/* out: DB_SUCCESS or error code */
|
/* out: DB_SUCCESS or error code */
|
||||||
ulint* space_id, /* in/out: space id; if this is != 0, then
|
ulint* space_id, /* in/out: space id; if this is != 0,
|
||||||
this is an input parameter, otherwise
|
then this is an input parameter,
|
||||||
output */
|
otherwise output */
|
||||||
char* tablename, /* in: the table name in the usual
|
const char* tablename, /* in: the table name in the usual
|
||||||
databasename/tablename format of InnoDB */
|
databasename/tablename format
|
||||||
ulint size) /* in: the initial size of the tablespace file
|
of InnoDB */
|
||||||
in pages, must be >= FIL_IBD_FILE_INITIAL_SIZE
|
ulint size) /* in: the initial size of the
|
||||||
*/
|
tablespace file in pages,
|
||||||
|
must be >= FIL_IBD_FILE_INITIAL_SIZE */
|
||||||
{
|
{
|
||||||
os_file_t file;
|
os_file_t file;
|
||||||
ibool ret;
|
ibool ret;
|
||||||
@ -2294,11 +2299,11 @@ ibool
|
|||||||
fil_reset_too_high_lsns(
|
fil_reset_too_high_lsns(
|
||||||
/*====================*/
|
/*====================*/
|
||||||
/* out: TRUE if success */
|
/* out: TRUE if success */
|
||||||
char* name, /* in: table name in the databasename/tablename
|
const char* name, /* in: table name in the
|
||||||
format */
|
databasename/tablename format */
|
||||||
dulint current_lsn) /* in: reset lsn's if the lsn stamped to
|
dulint current_lsn) /* in: reset lsn's if the lsn stamped
|
||||||
FIL_PAGE_FILE_FLUSH_LSN in the first page is
|
to FIL_PAGE_FILE_FLUSH_LSN in the
|
||||||
too high */
|
first page is too high */
|
||||||
{
|
{
|
||||||
os_file_t file;
|
os_file_t file;
|
||||||
char* filepath;
|
char* filepath;
|
||||||
@ -2435,8 +2440,8 @@ fil_open_single_table_tablespace(
|
|||||||
/*=============================*/
|
/*=============================*/
|
||||||
/* out: TRUE if success */
|
/* out: TRUE if success */
|
||||||
ulint id, /* in: space id */
|
ulint id, /* in: space id */
|
||||||
char* name) /* in: table name in the databasename/tablename
|
const char* name) /* in: table name in the
|
||||||
format */
|
databasename/tablename format */
|
||||||
{
|
{
|
||||||
os_file_t file;
|
os_file_t file;
|
||||||
char* filepath;
|
char* filepath;
|
||||||
@ -2937,20 +2942,22 @@ there may be many tablespaces which are not yet in the memory cache. */
|
|||||||
ibool
|
ibool
|
||||||
fil_space_for_table_exists_in_mem(
|
fil_space_for_table_exists_in_mem(
|
||||||
/*==============================*/
|
/*==============================*/
|
||||||
/* out: TRUE if a matching tablespace exists
|
/* out: TRUE if a matching tablespace
|
||||||
in the memory cache */
|
exists in the memory cache */
|
||||||
ulint id, /* in: space id */
|
ulint id, /* in: space id */
|
||||||
char* name, /* in: table name in the standard
|
const char* name, /* in: table name in the standard
|
||||||
'databasename/tablename' format */
|
'databasename/tablename' format */
|
||||||
ibool mark_space, /* in: in crash recovery, at database startup
|
ibool mark_space, /* in: in crash recovery, at database
|
||||||
we mark all spaces which have an associated
|
startup we mark all spaces which have
|
||||||
table in the InnoDB data dictionary, so that
|
an associated table in the InnoDB
|
||||||
|
data dictionary, so that
|
||||||
we can print a warning about orphaned
|
we can print a warning about orphaned
|
||||||
tablespaces */
|
tablespaces */
|
||||||
ibool print_error_if_does_not_exist)
|
ibool print_error_if_does_not_exist)
|
||||||
/* in: print detailed error information to
|
/* in: print detailed error
|
||||||
the .err log if a matching tablespace is
|
information to the .err log if a
|
||||||
not found from memory */
|
matching tablespace is not found from
|
||||||
|
memory */
|
||||||
{
|
{
|
||||||
fil_system_t* system = fil_system;
|
fil_system_t* system = fil_system;
|
||||||
fil_space_t* namespace;
|
fil_space_t* namespace;
|
||||||
|
@ -86,7 +86,7 @@ void
|
|||||||
dfield_set_data(
|
dfield_set_data(
|
||||||
/*============*/
|
/*============*/
|
||||||
dfield_t* field, /* in: field */
|
dfield_t* field, /* in: field */
|
||||||
void* data, /* in: data */
|
const void* data, /* in: data */
|
||||||
ulint len); /* in: length or UNIV_SQL_NULL */
|
ulint len); /* in: length or UNIV_SQL_NULL */
|
||||||
/**************************************************************************
|
/**************************************************************************
|
||||||
Writes an SQL null field full of zeros. */
|
Writes an SQL null field full of zeros. */
|
||||||
|
@ -93,7 +93,7 @@ void
|
|||||||
dfield_set_data(
|
dfield_set_data(
|
||||||
/*============*/
|
/*============*/
|
||||||
dfield_t* field, /* in: field */
|
dfield_t* field, /* in: field */
|
||||||
void* data, /* in: data */
|
const void* data, /* in: data */
|
||||||
ulint len) /* in: length or UNIV_SQL_NULL */
|
ulint len) /* in: length or UNIV_SQL_NULL */
|
||||||
{
|
{
|
||||||
ut_ad(field);
|
ut_ad(field);
|
||||||
|
@ -166,7 +166,7 @@ dict_table_rename_in_cache(
|
|||||||
/*=======================*/
|
/*=======================*/
|
||||||
/* out: TRUE if success */
|
/* out: TRUE if success */
|
||||||
dict_table_t* table, /* in: table */
|
dict_table_t* table, /* in: table */
|
||||||
char* new_name, /* in: new name */
|
const char* new_name, /* in: new name */
|
||||||
ibool rename_also_foreigns);/* in: in ALTER TABLE we want
|
ibool rename_also_foreigns);/* in: in ALTER TABLE we want
|
||||||
to preserve the original table name
|
to preserve the original table name
|
||||||
in constraints which reference it */
|
in constraints which reference it */
|
||||||
@ -212,13 +212,16 @@ dict_create_foreign_constraints(
|
|||||||
/*============================*/
|
/*============================*/
|
||||||
/* out: error code or DB_SUCCESS */
|
/* out: error code or DB_SUCCESS */
|
||||||
trx_t* trx, /* in: transaction */
|
trx_t* trx, /* in: transaction */
|
||||||
char* sql_string, /* in: table create statement where
|
const char* sql_string, /* in: table create statement where
|
||||||
foreign keys are declared like:
|
foreign keys are declared like:
|
||||||
FOREIGN KEY (a, b) REFERENCES table2(c, d),
|
FOREIGN KEY (a, b) REFERENCES
|
||||||
table2 can be written also with the database
|
table2(c, d), table2 can be written
|
||||||
name before it: test.table2; the default
|
also with the database
|
||||||
database id the database of parameter name */
|
name before it: test.table2; the
|
||||||
char* name); /* in: table full name in the normalized form
|
default database id the database of
|
||||||
|
parameter name */
|
||||||
|
const char* name); /* in: table full name in the
|
||||||
|
normalized form
|
||||||
database_name/table_name */
|
database_name/table_name */
|
||||||
/**************************************************************************
|
/**************************************************************************
|
||||||
Parses the CONSTRAINT id's to be dropped in an ALTER TABLE statement. */
|
Parses the CONSTRAINT id's to be dropped in an ALTER TABLE statement. */
|
||||||
@ -246,8 +249,9 @@ directory dict_table_get_low is usually the appropriate function. */
|
|||||||
dict_table_t*
|
dict_table_t*
|
||||||
dict_table_get(
|
dict_table_get(
|
||||||
/*===========*/
|
/*===========*/
|
||||||
/* out: table, NULL if does not exist */
|
/* out: table, NULL if
|
||||||
char* table_name, /* in: table name */
|
does not exist */
|
||||||
|
const char* table_name, /* in: table name */
|
||||||
trx_t* trx); /* in: transaction handle */
|
trx_t* trx); /* in: transaction handle */
|
||||||
/**************************************************************************
|
/**************************************************************************
|
||||||
Returns a table object and increments MySQL open handle count on the table.
|
Returns a table object and increments MySQL open handle count on the table.
|
||||||
@ -256,8 +260,9 @@ Returns a table object and increments MySQL open handle count on the table.
|
|||||||
dict_table_t*
|
dict_table_t*
|
||||||
dict_table_get_and_increment_handle_count(
|
dict_table_get_and_increment_handle_count(
|
||||||
/*======================================*/
|
/*======================================*/
|
||||||
/* out: table, NULL if does not exist */
|
/* out: table, NULL if
|
||||||
char* table_name, /* in: table name */
|
does not exist */
|
||||||
|
const char* table_name, /* in: table name */
|
||||||
trx_t* trx); /* in: transaction handle or NULL */
|
trx_t* trx); /* in: transaction handle or NULL */
|
||||||
/**************************************************************************
|
/**************************************************************************
|
||||||
Returns a table object, based on table id, and memoryfixes it. */
|
Returns a table object, based on table id, and memoryfixes it. */
|
||||||
@ -291,7 +296,7 @@ dict_table_t*
|
|||||||
dict_table_check_if_in_cache_low(
|
dict_table_check_if_in_cache_low(
|
||||||
/*==============================*/
|
/*==============================*/
|
||||||
/* out: table, NULL if not found */
|
/* out: table, NULL if not found */
|
||||||
char* table_name); /* in: table name */
|
const char* table_name); /* in: table name */
|
||||||
/**************************************************************************
|
/**************************************************************************
|
||||||
Gets a table; loads it to the dictionary cache if necessary. A low-level
|
Gets a table; loads it to the dictionary cache if necessary. A low-level
|
||||||
function. */
|
function. */
|
||||||
@ -300,7 +305,7 @@ dict_table_t*
|
|||||||
dict_table_get_low(
|
dict_table_get_low(
|
||||||
/*===============*/
|
/*===============*/
|
||||||
/* out: table, NULL if not found */
|
/* out: table, NULL if not found */
|
||||||
char* table_name); /* in: table name */
|
const char* table_name); /* in: table name */
|
||||||
/**************************************************************************
|
/**************************************************************************
|
||||||
Returns an index object. */
|
Returns an index object. */
|
||||||
UNIV_INLINE
|
UNIV_INLINE
|
||||||
@ -309,7 +314,7 @@ dict_table_get_index(
|
|||||||
/*=================*/
|
/*=================*/
|
||||||
/* out: index, NULL if does not exist */
|
/* out: index, NULL if does not exist */
|
||||||
dict_table_t* table, /* in: table */
|
dict_table_t* table, /* in: table */
|
||||||
char* name); /* in: index name */
|
const char* name); /* in: index name */
|
||||||
/**************************************************************************
|
/**************************************************************************
|
||||||
Returns an index object. */
|
Returns an index object. */
|
||||||
|
|
||||||
@ -318,7 +323,7 @@ dict_table_get_index_noninline(
|
|||||||
/*===========================*/
|
/*===========================*/
|
||||||
/* out: index, NULL if does not exist */
|
/* out: index, NULL if does not exist */
|
||||||
dict_table_t* table, /* in: table */
|
dict_table_t* table, /* in: table */
|
||||||
char* name); /* in: index name */
|
const char* name); /* in: index name */
|
||||||
/**************************************************************************
|
/**************************************************************************
|
||||||
Prints a table data. */
|
Prints a table data. */
|
||||||
|
|
||||||
@ -340,7 +345,7 @@ Prints a table data when we know the table name. */
|
|||||||
void
|
void
|
||||||
dict_table_print_by_name(
|
dict_table_print_by_name(
|
||||||
/*=====================*/
|
/*=====================*/
|
||||||
char* name);
|
const char* name);
|
||||||
#endif /* UNIV_DEBUG */
|
#endif /* UNIV_DEBUG */
|
||||||
/**************************************************************************
|
/**************************************************************************
|
||||||
Outputs info on foreign keys of a table. */
|
Outputs info on foreign keys of a table. */
|
||||||
|
@ -537,7 +537,7 @@ dict_table_t*
|
|||||||
dict_table_check_if_in_cache_low(
|
dict_table_check_if_in_cache_low(
|
||||||
/*==============================*/
|
/*==============================*/
|
||||||
/* out: table, NULL if not found */
|
/* out: table, NULL if not found */
|
||||||
char* table_name) /* in: table name */
|
const char* table_name) /* in: table name */
|
||||||
{
|
{
|
||||||
dict_table_t* table;
|
dict_table_t* table;
|
||||||
ulint table_fold;
|
ulint table_fold;
|
||||||
@ -563,7 +563,7 @@ dict_table_t*
|
|||||||
dict_table_get_low(
|
dict_table_get_low(
|
||||||
/*===============*/
|
/*===============*/
|
||||||
/* out: table, NULL if not found */
|
/* out: table, NULL if not found */
|
||||||
char* table_name) /* in: table name */
|
const char* table_name) /* in: table name */
|
||||||
{
|
{
|
||||||
dict_table_t* table;
|
dict_table_t* table;
|
||||||
|
|
||||||
@ -642,7 +642,7 @@ dict_table_get_index(
|
|||||||
/*=================*/
|
/*=================*/
|
||||||
/* out: index, NULL if does not exist */
|
/* out: index, NULL if does not exist */
|
||||||
dict_table_t* table, /* in: table */
|
dict_table_t* table, /* in: table */
|
||||||
char* name) /* in: index name */
|
const char* name) /* in: index name */
|
||||||
{
|
{
|
||||||
dict_index_t* index = NULL;
|
dict_index_t* index = NULL;
|
||||||
|
|
||||||
|
@ -31,9 +31,10 @@ Finds the first table name in the given database. */
|
|||||||
char*
|
char*
|
||||||
dict_get_first_table_name_in_db(
|
dict_get_first_table_name_in_db(
|
||||||
/*============================*/
|
/*============================*/
|
||||||
/* out, own: table name, NULL if does not exist;
|
/* out, own: table name, NULL if
|
||||||
the caller must free the memory in the string! */
|
does not exist; the caller must free
|
||||||
char* name); /* in: database name which ends to '/' */
|
the memory in the string! */
|
||||||
|
const char* name); /* in: database name which ends to '/' */
|
||||||
/************************************************************************
|
/************************************************************************
|
||||||
Loads a table definition and also all its index definitions, and also
|
Loads a table definition and also all its index definitions, and also
|
||||||
the cluster definition if the table is a member in a cluster. Also loads
|
the cluster definition if the table is a member in a cluster. Also loads
|
||||||
@ -43,11 +44,13 @@ a foreign key references columns in this table. */
|
|||||||
dict_table_t*
|
dict_table_t*
|
||||||
dict_load_table(
|
dict_load_table(
|
||||||
/*============*/
|
/*============*/
|
||||||
/* out: table, NULL if does not exist; if the table is
|
/* out: table, NULL if does not exist;
|
||||||
stored in an .ibd file, but the file does not exist,
|
if the table is stored in an .ibd file,
|
||||||
then we set the ibd_file_missing flag TRUE in the table
|
but the file does not exist,
|
||||||
object we return */
|
then we set the ibd_file_missing flag TRUE
|
||||||
char* name); /* in: table name */
|
in the table object we return */
|
||||||
|
const char* name); /* in: table name in the
|
||||||
|
databasename/tablename format */
|
||||||
/***************************************************************************
|
/***************************************************************************
|
||||||
Loads a table object based on the table id. */
|
Loads a table object based on the table id. */
|
||||||
|
|
||||||
@ -76,7 +79,7 @@ ulint
|
|||||||
dict_load_foreigns(
|
dict_load_foreigns(
|
||||||
/*===============*/
|
/*===============*/
|
||||||
/* out: DB_SUCCESS or error code */
|
/* out: DB_SUCCESS or error code */
|
||||||
char* table_name); /* in: table name */
|
const char* table_name); /* in: table name */
|
||||||
/************************************************************************
|
/************************************************************************
|
||||||
Prints to the standard output information on all tables found in the data
|
Prints to the standard output information on all tables found in the data
|
||||||
dictionary system table. */
|
dictionary system table. */
|
||||||
|
@ -49,11 +49,11 @@ dict_table_t*
|
|||||||
dict_mem_table_create(
|
dict_mem_table_create(
|
||||||
/*==================*/
|
/*==================*/
|
||||||
/* out, own: table object */
|
/* out, own: table object */
|
||||||
char* name, /* in: table name */
|
const char* name, /* in: table name */
|
||||||
ulint space, /* in: space where the clustered index of
|
ulint space, /* in: space where the clustered index
|
||||||
the table is placed; this parameter is
|
of the table is placed; this parameter
|
||||||
ignored if the table is made a member of
|
is ignored if the table is made
|
||||||
a cluster */
|
a member of a cluster */
|
||||||
ulint n_cols); /* in: number of columns */
|
ulint n_cols); /* in: number of columns */
|
||||||
/**************************************************************************
|
/**************************************************************************
|
||||||
Creates a cluster memory object. */
|
Creates a cluster memory object. */
|
||||||
@ -61,14 +61,15 @@ Creates a cluster memory object. */
|
|||||||
dict_cluster_t*
|
dict_cluster_t*
|
||||||
dict_mem_cluster_create(
|
dict_mem_cluster_create(
|
||||||
/*====================*/
|
/*====================*/
|
||||||
/* out, own: cluster object (where the type
|
/* out, own: cluster object (where the
|
||||||
dict_cluster_t == dict_table_t) */
|
type dict_cluster_t == dict_table_t) */
|
||||||
char* name, /* in: cluster name */
|
const char* name, /* in: cluster name */
|
||||||
ulint space, /* in: space where the clustered indexes
|
ulint space, /* in: space where the clustered
|
||||||
of the member tables are placed */
|
indexes of the member tables are
|
||||||
|
placed */
|
||||||
ulint n_cols, /* in: number of columns */
|
ulint n_cols, /* in: number of columns */
|
||||||
ulint mix_len); /* in: length of the common key prefix in the
|
ulint mix_len); /* in: length of the common key prefix
|
||||||
cluster */
|
in the cluster */
|
||||||
/**************************************************************************
|
/**************************************************************************
|
||||||
Declares a non-published table as a member in a cluster. */
|
Declares a non-published table as a member in a cluster. */
|
||||||
|
|
||||||
@ -76,7 +77,7 @@ void
|
|||||||
dict_mem_table_make_cluster_member(
|
dict_mem_table_make_cluster_member(
|
||||||
/*===============================*/
|
/*===============================*/
|
||||||
dict_table_t* table, /* in: non-published table */
|
dict_table_t* table, /* in: non-published table */
|
||||||
char* cluster_name); /* in: cluster name */
|
const char* cluster_name); /* in: cluster name */
|
||||||
/**************************************************************************
|
/**************************************************************************
|
||||||
Adds a column definition to a table. */
|
Adds a column definition to a table. */
|
||||||
|
|
||||||
@ -84,7 +85,7 @@ void
|
|||||||
dict_mem_table_add_col(
|
dict_mem_table_add_col(
|
||||||
/*===================*/
|
/*===================*/
|
||||||
dict_table_t* table, /* in: table */
|
dict_table_t* table, /* in: table */
|
||||||
char* name, /* in: column name */
|
const char* name, /* in: column name */
|
||||||
ulint mtype, /* in: main datatype */
|
ulint mtype, /* in: main datatype */
|
||||||
ulint prtype, /* in: precise type */
|
ulint prtype, /* in: precise type */
|
||||||
ulint len, /* in: length */
|
ulint len, /* in: length */
|
||||||
@ -96,12 +97,13 @@ dict_index_t*
|
|||||||
dict_mem_index_create(
|
dict_mem_index_create(
|
||||||
/*==================*/
|
/*==================*/
|
||||||
/* out, own: index object */
|
/* out, own: index object */
|
||||||
char* table_name, /* in: table name */
|
const char* table_name, /* in: table name */
|
||||||
char* index_name, /* in: index name */
|
const char* index_name, /* in: index name */
|
||||||
ulint space, /* in: space where the index tree is placed,
|
ulint space, /* in: space where the index tree is
|
||||||
ignored if the index is of the clustered
|
placed, ignored if the index is of
|
||||||
type */
|
the clustered type */
|
||||||
ulint type, /* in: DICT_UNIQUE, DICT_CLUSTERED, ... ORed */
|
ulint type, /* in: DICT_UNIQUE,
|
||||||
|
DICT_CLUSTERED, ... ORed */
|
||||||
ulint n_fields); /* in: number of fields */
|
ulint n_fields); /* in: number of fields */
|
||||||
/**************************************************************************
|
/**************************************************************************
|
||||||
Adds a field definition to an index. NOTE: does not take a copy
|
Adds a field definition to an index. NOTE: does not take a copy
|
||||||
@ -112,7 +114,7 @@ void
|
|||||||
dict_mem_index_add_field(
|
dict_mem_index_add_field(
|
||||||
/*=====================*/
|
/*=====================*/
|
||||||
dict_index_t* index, /* in: index */
|
dict_index_t* index, /* in: index */
|
||||||
char* name, /* in: column name */
|
const char* name, /* in: column name */
|
||||||
ulint order, /* in: order criterion; 0 means an
|
ulint order, /* in: order criterion; 0 means an
|
||||||
ascending order */
|
ascending order */
|
||||||
ulint prefix_len); /* in: 0 or the column prefix length
|
ulint prefix_len); /* in: 0 or the column prefix length
|
||||||
@ -142,7 +144,7 @@ struct dict_col_struct{
|
|||||||
clustered index */
|
clustered index */
|
||||||
ulint ord_part;/* count of how many times this column
|
ulint ord_part;/* count of how many times this column
|
||||||
appears in ordering fields of an index */
|
appears in ordering fields of an index */
|
||||||
char* name; /* name */
|
const char* name; /* name */
|
||||||
dtype_t type; /* data type */
|
dtype_t type; /* data type */
|
||||||
dict_table_t* table; /* back pointer to table of this column */
|
dict_table_t* table; /* back pointer to table of this column */
|
||||||
ulint aux; /* this is used as an auxiliary variable
|
ulint aux; /* this is used as an auxiliary variable
|
||||||
@ -154,7 +156,7 @@ struct dict_col_struct{
|
|||||||
/* Data structure for a field in an index */
|
/* Data structure for a field in an index */
|
||||||
struct dict_field_struct{
|
struct dict_field_struct{
|
||||||
dict_col_t* col; /* pointer to the table column */
|
dict_col_t* col; /* pointer to the table column */
|
||||||
char* name; /* name of the column */
|
const char* name; /* name of the column */
|
||||||
ulint order; /* flags for ordering this field:
|
ulint order; /* flags for ordering this field:
|
||||||
DICT_DESCEND, ... */
|
DICT_DESCEND, ... */
|
||||||
ulint prefix_len; /* 0 or the length of the column
|
ulint prefix_len; /* 0 or the length of the column
|
||||||
@ -197,8 +199,8 @@ struct dict_index_struct{
|
|||||||
dulint id; /* id of the index */
|
dulint id; /* id of the index */
|
||||||
mem_heap_t* heap; /* memory heap */
|
mem_heap_t* heap; /* memory heap */
|
||||||
ulint type; /* index type */
|
ulint type; /* index type */
|
||||||
char* name; /* index name */
|
const char* name; /* index name */
|
||||||
char* table_name; /* table name */
|
const char* table_name; /* table name */
|
||||||
dict_table_t* table; /* back pointer to table */
|
dict_table_t* table; /* back pointer to table */
|
||||||
ulint space; /* space where the index tree is placed */
|
ulint space; /* space where the index tree is placed */
|
||||||
ulint page_no;/* page number of the index tree root */
|
ulint page_no;/* page number of the index tree root */
|
||||||
@ -254,12 +256,12 @@ struct dict_foreign_struct{
|
|||||||
or DICT_FOREIGN_ON_DELETE_SET_NULL */
|
or DICT_FOREIGN_ON_DELETE_SET_NULL */
|
||||||
char* foreign_table_name;/* foreign table name */
|
char* foreign_table_name;/* foreign table name */
|
||||||
dict_table_t* foreign_table; /* table where the foreign key is */
|
dict_table_t* foreign_table; /* table where the foreign key is */
|
||||||
char** foreign_col_names;/* names of the columns in the
|
const char** foreign_col_names;/* names of the columns in the
|
||||||
foreign key */
|
foreign key */
|
||||||
char* referenced_table_name;/* referenced table name */
|
char* referenced_table_name;/* referenced table name */
|
||||||
dict_table_t* referenced_table;/* table where the referenced key
|
dict_table_t* referenced_table;/* table where the referenced key
|
||||||
is */
|
is */
|
||||||
char** referenced_col_names;/* names of the referenced
|
const char** referenced_col_names;/* names of the referenced
|
||||||
columns in the referenced table */
|
columns in the referenced table */
|
||||||
ulint n_fields; /* number of indexes' first fields
|
ulint n_fields; /* number of indexes' first fields
|
||||||
for which the the foreign key
|
for which the the foreign key
|
||||||
@ -295,7 +297,7 @@ struct dict_table_struct{
|
|||||||
dulint id; /* id of the table or cluster */
|
dulint id; /* id of the table or cluster */
|
||||||
ulint type; /* DICT_TABLE_ORDINARY, ... */
|
ulint type; /* DICT_TABLE_ORDINARY, ... */
|
||||||
mem_heap_t* heap; /* memory heap */
|
mem_heap_t* heap; /* memory heap */
|
||||||
char* name; /* table name */
|
const char* name; /* table name */
|
||||||
ulint space; /* space where the clustered index of the
|
ulint space; /* space where the clustered index of the
|
||||||
table is placed */
|
table is placed */
|
||||||
ibool ibd_file_missing;/* TRUE if this is in a single-table
|
ibool ibd_file_missing;/* TRUE if this is in a single-table
|
||||||
@ -363,7 +365,7 @@ struct dict_table_struct{
|
|||||||
byte mix_id_buf[12];
|
byte mix_id_buf[12];
|
||||||
/* mix id of a mixed table written in
|
/* mix id of a mixed table written in
|
||||||
a compressed form */
|
a compressed form */
|
||||||
char* cluster_name; /* if the table is a member in a
|
const char* cluster_name; /* if the table is a member in a
|
||||||
cluster, this is the name of the cluster */
|
cluster, this is the name of the cluster */
|
||||||
/*----------------------*/
|
/*----------------------*/
|
||||||
ibool does_not_fit_in_memory;
|
ibool does_not_fit_in_memory;
|
||||||
|
@ -132,11 +132,12 @@ Appends a new file to the chain of files of a space. File must be closed. */
|
|||||||
void
|
void
|
||||||
fil_node_create(
|
fil_node_create(
|
||||||
/*============*/
|
/*============*/
|
||||||
char* name, /* in: file name (file must be closed) */
|
const char* name, /* in: file name (file must be closed) */
|
||||||
ulint size, /* in: file size in database blocks, rounded downwards
|
ulint size, /* in: file size in database blocks, rounded
|
||||||
to an integer */
|
downwards to an integer */
|
||||||
ulint id, /* in: space id where to append */
|
ulint id, /* in: space id where to append */
|
||||||
ibool is_raw);/* in: TRUE if a raw device or a raw disk partition */
|
ibool is_raw);/* in: TRUE if a raw device or
|
||||||
|
a raw disk partition */
|
||||||
/********************************************************************
|
/********************************************************************
|
||||||
Drops files from the start of a file space, so that its size is cut by
|
Drops files from the start of a file space, so that its size is cut by
|
||||||
the amount given. */
|
the amount given. */
|
||||||
@ -156,7 +157,7 @@ ibool
|
|||||||
fil_space_create(
|
fil_space_create(
|
||||||
/*=============*/
|
/*=============*/
|
||||||
/* out: TRUE if success */
|
/* out: TRUE if success */
|
||||||
char* name, /* in: space name */
|
const char* name, /* in: space name */
|
||||||
ulint id, /* in: space id */
|
ulint id, /* in: space id */
|
||||||
ulint purpose);/* in: FIL_TABLESPACE, or FIL_LOG if log */
|
ulint purpose);/* in: FIL_TABLESPACE, or FIL_LOG if log */
|
||||||
/***********************************************************************
|
/***********************************************************************
|
||||||
@ -328,13 +329,14 @@ ibool
|
|||||||
fil_rename_tablespace(
|
fil_rename_tablespace(
|
||||||
/*==================*/
|
/*==================*/
|
||||||
/* out: TRUE if success */
|
/* out: TRUE if success */
|
||||||
char* old_name, /* in: old table name in the standard
|
const char* old_name, /* in: old table name in the standard
|
||||||
databasename/tablename format of InnoDB, or
|
databasename/tablename format of
|
||||||
NULL if we do the rename based on the space
|
InnoDB, or NULL if we do the rename
|
||||||
id only */
|
based on the space id only */
|
||||||
ulint id, /* in: space id */
|
ulint id, /* in: space id */
|
||||||
char* new_name); /* in: new table name in the standard
|
const char* new_name); /* in: new table name in the standard
|
||||||
databasename/tablename format of InnoDB */
|
databasename/tablename format
|
||||||
|
of InnoDB */
|
||||||
/***********************************************************************
|
/***********************************************************************
|
||||||
Creates a new single-table tablespace to a database directory of MySQL.
|
Creates a new single-table tablespace to a database directory of MySQL.
|
||||||
Database directories are under the 'datadir' of MySQL. The datadir is the
|
Database directories are under the 'datadir' of MySQL. The datadir is the
|
||||||
@ -345,13 +347,15 @@ ulint
|
|||||||
fil_create_new_single_table_tablespace(
|
fil_create_new_single_table_tablespace(
|
||||||
/*===================================*/
|
/*===================================*/
|
||||||
/* out: DB_SUCCESS or error code */
|
/* out: DB_SUCCESS or error code */
|
||||||
ulint* space_id, /* in/out: space id; if this is != 0, then
|
ulint* space_id, /* in/out: space id; if this is != 0,
|
||||||
this is an input parameter, otherwise
|
then this is an input parameter,
|
||||||
output */
|
otherwise output */
|
||||||
char* tablename, /* in: the table name in the usual
|
const char* tablename, /* in: the table name in the usual
|
||||||
databasename/tablename format of InnoDB */
|
databasename/tablename format
|
||||||
ulint size); /* in: the initial size of the tablespace file
|
of InnoDB */
|
||||||
in pages, must be > 0 */
|
ulint size); /* in: the initial size of the
|
||||||
|
tablespace file in pages,
|
||||||
|
must be >= FIL_IBD_FILE_INITIAL_SIZE */
|
||||||
/************************************************************************
|
/************************************************************************
|
||||||
Tries to open a single-table tablespace and checks the space id is right in
|
Tries to open a single-table tablespace and checks the space id is right in
|
||||||
it. If does not succeed, prints an error message to the .err log. This
|
it. If does not succeed, prints an error message to the .err log. This
|
||||||
@ -364,8 +368,8 @@ fil_open_single_table_tablespace(
|
|||||||
/*=============================*/
|
/*=============================*/
|
||||||
/* out: TRUE if success */
|
/* out: TRUE if success */
|
||||||
ulint id, /* in: space id */
|
ulint id, /* in: space id */
|
||||||
char* name); /* in: table name in the databasename/tablename
|
const char* name); /* in: table name in the
|
||||||
format */
|
databasename/tablename format */
|
||||||
/************************************************************************
|
/************************************************************************
|
||||||
It is possible, though very improbable, that the lsn's in the tablespace to be
|
It is possible, though very improbable, that the lsn's in the tablespace to be
|
||||||
imported have risen above the current system lsn, if a lengthy purge, ibuf
|
imported have risen above the current system lsn, if a lengthy purge, ibuf
|
||||||
@ -380,11 +384,11 @@ ibool
|
|||||||
fil_reset_too_high_lsns(
|
fil_reset_too_high_lsns(
|
||||||
/*====================*/
|
/*====================*/
|
||||||
/* out: TRUE if success */
|
/* out: TRUE if success */
|
||||||
char* name, /* in: table name in the databasename/tablename
|
const char* name, /* in: table name in the
|
||||||
format */
|
databasename/tablename format */
|
||||||
dulint current_lsn); /* in: reset lsn's if the lsn stamped to
|
dulint current_lsn); /* in: reset lsn's if the lsn stamped
|
||||||
FIL_PAGE_FILE_FLUSH_LSN in the first page is
|
to FIL_PAGE_FILE_FLUSH_LSN in the
|
||||||
too high */
|
first page is too high */
|
||||||
/************************************************************************
|
/************************************************************************
|
||||||
At the server startup, if we need crash recovery, scans the database
|
At the server startup, if we need crash recovery, scans the database
|
||||||
directories under the MySQL datadir, looking for .ibd files. Those files are
|
directories under the MySQL datadir, looking for .ibd files. Those files are
|
||||||
@ -439,17 +443,19 @@ fil_space_for_table_exists_in_mem(
|
|||||||
/* out: TRUE if a matching tablespace
|
/* out: TRUE if a matching tablespace
|
||||||
exists in the memory cache */
|
exists in the memory cache */
|
||||||
ulint id, /* in: space id */
|
ulint id, /* in: space id */
|
||||||
char* name, /* in: table name in the standard
|
const char* name, /* in: table name in the standard
|
||||||
'databasename/tablename' format */
|
'databasename/tablename' format */
|
||||||
ibool mark_space, /* in: in crash recovery, at database startup
|
ibool mark_space, /* in: in crash recovery, at database
|
||||||
we mark all spaces which have an associated
|
startup we mark all spaces which have
|
||||||
table in the InnoDB data dictionary, so that
|
an associated table in the InnoDB
|
||||||
|
data dictionary, so that
|
||||||
we can print a warning about orphaned
|
we can print a warning about orphaned
|
||||||
tablespaces */
|
tablespaces */
|
||||||
ibool print_error_if_does_not_exist);
|
ibool print_error_if_does_not_exist);
|
||||||
/* in: print detailed error information to
|
/* in: print detailed error
|
||||||
the .err log if a matching tablespace is
|
information to the .err log if a
|
||||||
not found from memory */
|
matching tablespace is not found from
|
||||||
|
memory */
|
||||||
/**************************************************************************
|
/**************************************************************************
|
||||||
Tries to extend a data file so that it would accommodate the number of pages
|
Tries to extend a data file so that it would accommodate the number of pages
|
||||||
given. The tablespace must be cached in the memory cache. If the space is big
|
given. The tablespace must be cached in the memory cache. If the space is big
|
||||||
|
@ -177,13 +177,15 @@ and '..' items at the start of the directory listing. */
|
|||||||
os_file_dir_t
|
os_file_dir_t
|
||||||
os_file_opendir(
|
os_file_opendir(
|
||||||
/*============*/
|
/*============*/
|
||||||
/* out: directory stream, NULL if error */
|
/* out: directory stream, NULL if
|
||||||
char* dirname, /* in: directory name; it must not contain
|
error */
|
||||||
a trailing '\' or '/' */
|
const char* dirname, /* in: directory name; it must not
|
||||||
ibool error_is_fatal);/* in: TRUE if we should treat an error as a
|
contain a trailing '\' or '/' */
|
||||||
fatal error; if we try to open symlinks then
|
ibool error_is_fatal);/* in: TRUE if we should treat an
|
||||||
we do not wish a fatal error if it happens
|
error as a fatal error; if we try to
|
||||||
not to be a directory */
|
open symlinks then we do not wish a
|
||||||
|
fatal error if it happens not to be
|
||||||
|
a directory */
|
||||||
/***************************************************************************
|
/***************************************************************************
|
||||||
Closes a directory stream. */
|
Closes a directory stream. */
|
||||||
|
|
||||||
@ -201,7 +203,7 @@ os_file_readdir_next_file(
|
|||||||
/*======================*/
|
/*======================*/
|
||||||
/* out: 0 if ok, -1 if error, 1 if at the end
|
/* out: 0 if ok, -1 if error, 1 if at the end
|
||||||
of the directory */
|
of the directory */
|
||||||
char* dirname,/* in: directory name or path */
|
const char* dirname,/* in: directory name or path */
|
||||||
os_file_dir_t dir, /* in: directory stream */
|
os_file_dir_t dir, /* in: directory stream */
|
||||||
os_file_stat_t* info); /* in/out: buffer where the info is returned */
|
os_file_stat_t* info); /* in/out: buffer where the info is returned */
|
||||||
/*********************************************************************
|
/*********************************************************************
|
||||||
@ -213,29 +215,32 @@ fail_if_exists arguments is true. */
|
|||||||
ibool
|
ibool
|
||||||
os_file_create_directory(
|
os_file_create_directory(
|
||||||
/*=====================*/
|
/*=====================*/
|
||||||
/* out: TRUE if call succeeds, FALSE on
|
/* out: TRUE if call succeeds,
|
||||||
error */
|
FALSE on error */
|
||||||
char* pathname, /* in: directory name as null-terminated
|
const char* pathname, /* in: directory name as
|
||||||
string */
|
null-terminated string */
|
||||||
ibool fail_if_exists);/* in: if TRUE, pre-existing directory is
|
ibool fail_if_exists);/* in: if TRUE, pre-existing directory
|
||||||
treated as an error. */
|
is treated as an error. */
|
||||||
/********************************************************************
|
/********************************************************************
|
||||||
A simple function to open or create a file. */
|
A simple function to open or create a file. */
|
||||||
|
|
||||||
os_file_t
|
os_file_t
|
||||||
os_file_create_simple(
|
os_file_create_simple(
|
||||||
/*==================*/
|
/*==================*/
|
||||||
/* out, own: handle to the file, not defined if error,
|
/* out, own: handle to the file, not defined
|
||||||
error number can be retrieved with
|
if error, error number can be retrieved with
|
||||||
os_file_get_last_error */
|
os_file_get_last_error */
|
||||||
char* name, /* in: name of the file or path as a null-terminated
|
const char* name, /* in: name of the file or path as a
|
||||||
string */
|
null-terminated string */
|
||||||
ulint create_mode,/* in: OS_FILE_OPEN if an existing file is opened
|
ulint create_mode,/* in: OS_FILE_OPEN if an existing file is
|
||||||
(if does not exist, error), or OS_FILE_CREATE if a new
|
opened (if does not exist, error), or
|
||||||
file is created (if exists, error), or
|
OS_FILE_CREATE if a new file is created
|
||||||
OS_FILE_CREATE_PATH if new file (if exists, error) and
|
(if exists, error), or
|
||||||
subdirectories along its path are created (if needed)*/
|
OS_FILE_CREATE_PATH if new file
|
||||||
ulint access_type,/* in: OS_FILE_READ_ONLY or OS_FILE_READ_WRITE */
|
(if exists, error) and subdirectories along
|
||||||
|
its path are created (if needed)*/
|
||||||
|
ulint access_type,/* in: OS_FILE_READ_ONLY or
|
||||||
|
OS_FILE_READ_WRITE */
|
||||||
ibool* success);/* out: TRUE if succeed, FALSE if error */
|
ibool* success);/* out: TRUE if succeed, FALSE if error */
|
||||||
/********************************************************************
|
/********************************************************************
|
||||||
A simple function to open or create a file. */
|
A simple function to open or create a file. */
|
||||||
@ -243,17 +248,19 @@ A simple function to open or create a file. */
|
|||||||
os_file_t
|
os_file_t
|
||||||
os_file_create_simple_no_error_handling(
|
os_file_create_simple_no_error_handling(
|
||||||
/*====================================*/
|
/*====================================*/
|
||||||
/* out, own: handle to the file, not defined if error,
|
/* out, own: handle to the file, not defined
|
||||||
error number can be retrieved with
|
if error, error number can be retrieved with
|
||||||
os_file_get_last_error */
|
os_file_get_last_error */
|
||||||
char* name, /* in: name of the file or path as a null-terminated
|
const char* name, /* in: name of the file or path as a
|
||||||
string */
|
null-terminated string */
|
||||||
ulint create_mode,/* in: OS_FILE_OPEN if an existing file is opened
|
ulint create_mode,/* in: OS_FILE_OPEN if an existing file
|
||||||
(if does not exist, error), or OS_FILE_CREATE if a new
|
is opened (if does not exist, error), or
|
||||||
file is created (if exists, error) */
|
OS_FILE_CREATE if a new file is created
|
||||||
ulint access_type,/* in: OS_FILE_READ_ONLY, OS_FILE_READ_WRITE, or
|
(if exists, error) */
|
||||||
OS_FILE_READ_ALLOW_DELETE; the last option is used by
|
ulint access_type,/* in: OS_FILE_READ_ONLY,
|
||||||
a backup program reading the file */
|
OS_FILE_READ_WRITE, or
|
||||||
|
OS_FILE_READ_ALLOW_DELETE; the last option is
|
||||||
|
used by a backup program reading the file */
|
||||||
ibool* success);/* out: TRUE if succeed, FALSE if error */
|
ibool* success);/* out: TRUE if succeed, FALSE if error */
|
||||||
/********************************************************************
|
/********************************************************************
|
||||||
Opens an existing file or creates a new. */
|
Opens an existing file or creates a new. */
|
||||||
@ -261,23 +268,26 @@ Opens an existing file or creates a new. */
|
|||||||
os_file_t
|
os_file_t
|
||||||
os_file_create(
|
os_file_create(
|
||||||
/*===========*/
|
/*===========*/
|
||||||
/* out, own: handle to the file, not defined if error,
|
/* out, own: handle to the file, not defined
|
||||||
error number can be retrieved with
|
if error, error number can be retrieved with
|
||||||
os_file_get_last_error */
|
os_file_get_last_error */
|
||||||
char* name, /* in: name of the file or path as a null-terminated
|
const char* name, /* in: name of the file or path as a
|
||||||
string */
|
null-terminated string */
|
||||||
ulint create_mode,/* in: OS_FILE_OPEN if an existing file is opened
|
ulint create_mode,/* in: OS_FILE_OPEN if an existing file
|
||||||
(if does not exist, error), or OS_FILE_CREATE if a new
|
is opened (if does not exist, error), or
|
||||||
file is created (if exists, error), OS_FILE_OVERWRITE
|
OS_FILE_CREATE if a new file is created
|
||||||
if a new file is created or an old overwritten;
|
(if exists, error),
|
||||||
OS_FILE_OPEN_RAW, if a raw device or disk partition
|
OS_FILE_OVERWRITE if a new file is created
|
||||||
should be opened */
|
or an old overwritten;
|
||||||
ulint purpose,/* in: OS_FILE_AIO, if asynchronous, non-buffered i/o
|
OS_FILE_OPEN_RAW, if a raw device or disk
|
||||||
is desired, OS_FILE_NORMAL, if any normal file;
|
partition should be opened */
|
||||||
NOTE that it also depends on type, os_aio_.. and srv_..
|
ulint purpose,/* in: OS_FILE_AIO, if asynchronous,
|
||||||
variables whether we really use async i/o or
|
non-buffered i/o is desired,
|
||||||
unbuffered i/o: look in the function source code for
|
OS_FILE_NORMAL, if any normal file;
|
||||||
the exact rules */
|
NOTE that it also depends on type, os_aio_..
|
||||||
|
and srv_.. variables whether we really use
|
||||||
|
async i/o or unbuffered i/o: look in the
|
||||||
|
function source code for the exact rules */
|
||||||
ulint type, /* in: OS_DATA_FILE or OS_LOG_FILE */
|
ulint type, /* in: OS_DATA_FILE or OS_LOG_FILE */
|
||||||
ibool* success);/* out: TRUE if succeed, FALSE if error */
|
ibool* success);/* out: TRUE if succeed, FALSE if error */
|
||||||
/***************************************************************************
|
/***************************************************************************
|
||||||
@ -287,7 +297,7 @@ ibool
|
|||||||
os_file_delete(
|
os_file_delete(
|
||||||
/*===========*/
|
/*===========*/
|
||||||
/* out: TRUE if success */
|
/* out: TRUE if success */
|
||||||
char* name); /* in: file path as a null-terminated string */
|
const char* name); /* in: file path as a null-terminated string */
|
||||||
|
|
||||||
/***************************************************************************
|
/***************************************************************************
|
||||||
Deletes a file if it exists. The file has to be closed before calling this. */
|
Deletes a file if it exists. The file has to be closed before calling this. */
|
||||||
@ -296,7 +306,7 @@ ibool
|
|||||||
os_file_delete_if_exists(
|
os_file_delete_if_exists(
|
||||||
/*=====================*/
|
/*=====================*/
|
||||||
/* out: TRUE if success */
|
/* out: TRUE if success */
|
||||||
char* name); /* in: file path as a null-terminated string */
|
const char* name); /* in: file path as a null-terminated string */
|
||||||
/***************************************************************************
|
/***************************************************************************
|
||||||
Renames a file (can also move it to another directory). It is safest that the
|
Renames a file (can also move it to another directory). It is safest that the
|
||||||
file is closed before calling this function. */
|
file is closed before calling this function. */
|
||||||
@ -305,9 +315,9 @@ ibool
|
|||||||
os_file_rename(
|
os_file_rename(
|
||||||
/*===========*/
|
/*===========*/
|
||||||
/* out: TRUE if success */
|
/* out: TRUE if success */
|
||||||
char* oldpath, /* in: old file path as a null-terminated
|
const char* oldpath, /* in: old file path as a
|
||||||
string */
|
null-terminated string */
|
||||||
char* newpath); /* in: new file path */
|
const char* newpath); /* in: new file path */
|
||||||
/***************************************************************************
|
/***************************************************************************
|
||||||
Closes a file handle. In case of error, error number can be retrieved with
|
Closes a file handle. In case of error, error number can be retrieved with
|
||||||
os_file_get_last_error. */
|
os_file_get_last_error. */
|
||||||
@ -351,7 +361,7 @@ ibool
|
|||||||
os_file_set_size(
|
os_file_set_size(
|
||||||
/*=============*/
|
/*=============*/
|
||||||
/* out: TRUE if success */
|
/* out: TRUE if success */
|
||||||
char* name, /* in: name of the file or path as a
|
const char* name, /* in: name of the file or path as a
|
||||||
null-terminated string */
|
null-terminated string */
|
||||||
os_file_t file, /* in: handle to a file */
|
os_file_t file, /* in: handle to a file */
|
||||||
ulint size, /* in: least significant 32 bits of file
|
ulint size, /* in: least significant 32 bits of file
|
||||||
@ -426,10 +436,10 @@ os_file_write(
|
|||||||
/*==========*/
|
/*==========*/
|
||||||
/* out: TRUE if request was
|
/* out: TRUE if request was
|
||||||
successful, FALSE if fail */
|
successful, FALSE if fail */
|
||||||
char* name, /* in: name of the file or path as a
|
const char* name, /* in: name of the file or path as a
|
||||||
null-terminated string */
|
null-terminated string */
|
||||||
os_file_t file, /* in: handle to a file */
|
os_file_t file, /* in: handle to a file */
|
||||||
void* buf, /* in: buffer from which to write */
|
const void* buf, /* in: buffer from which to write */
|
||||||
ulint offset, /* in: least significant 32 bits of file
|
ulint offset, /* in: least significant 32 bits of file
|
||||||
offset where to write */
|
offset where to write */
|
||||||
ulint offset_high,/* in: most significant 32 bits of
|
ulint offset_high,/* in: most significant 32 bits of
|
||||||
@ -442,8 +452,8 @@ ibool
|
|||||||
os_file_status(
|
os_file_status(
|
||||||
/*===========*/
|
/*===========*/
|
||||||
/* out: TRUE if call succeeded */
|
/* out: TRUE if call succeeded */
|
||||||
char * path, /* in: pathname of the file */
|
const char* path, /* in: pathname of the file */
|
||||||
ibool * exists, /* out: TRUE if file exists */
|
ibool* exists, /* out: TRUE if file exists */
|
||||||
os_file_type_t* type); /* out: type of the file (if it exists) */
|
os_file_type_t* type); /* out: type of the file (if it exists) */
|
||||||
/********************************************************************
|
/********************************************************************
|
||||||
The function os_file_dirname returns a directory component of a
|
The function os_file_dirname returns a directory component of a
|
||||||
@ -478,7 +488,7 @@ os_file_dirname(
|
|||||||
/*============*/
|
/*============*/
|
||||||
/* out, own: directory component of the
|
/* out, own: directory component of the
|
||||||
pathname */
|
pathname */
|
||||||
char* path); /* in: pathname */
|
const char* path); /* in: pathname */
|
||||||
/********************************************************************
|
/********************************************************************
|
||||||
Creates all missing subdirectories along the given path. */
|
Creates all missing subdirectories along the given path. */
|
||||||
|
|
||||||
@ -487,7 +497,7 @@ os_file_create_subdirs_if_needed(
|
|||||||
/*=============================*/
|
/*=============================*/
|
||||||
/* out: TRUE if call succeeded
|
/* out: TRUE if call succeeded
|
||||||
FALSE otherwise */
|
FALSE otherwise */
|
||||||
char* path); /* in: path name */
|
const char* path); /* in: path name */
|
||||||
/****************************************************************************
|
/****************************************************************************
|
||||||
Initializes the asynchronous io system. Creates separate aio array for
|
Initializes the asynchronous io system. Creates separate aio array for
|
||||||
non-ibuf read and write, a third aio array for the ibuf i/o, with just one
|
non-ibuf read and write, a third aio array for the ibuf i/o, with just one
|
||||||
@ -527,7 +537,7 @@ os_aio(
|
|||||||
because i/os are not actually handled until
|
because i/os are not actually handled until
|
||||||
all have been posted: use with great
|
all have been posted: use with great
|
||||||
caution! */
|
caution! */
|
||||||
char* name, /* in: name of the file or path as a
|
const char* name, /* in: name of the file or path as a
|
||||||
null-terminated string */
|
null-terminated string */
|
||||||
os_file_t file, /* in: handle to a file */
|
os_file_t file, /* in: handle to a file */
|
||||||
void* buf, /* in: buffer where to read or from which
|
void* buf, /* in: buffer where to read or from which
|
||||||
|
@ -88,7 +88,7 @@ os_event_t
|
|||||||
os_event_create(
|
os_event_create(
|
||||||
/*============*/
|
/*============*/
|
||||||
/* out: the event handle */
|
/* out: the event handle */
|
||||||
char* name); /* in: the name of the event, if NULL
|
const char* name); /* in: the name of the event, if NULL
|
||||||
the event is created without a name */
|
the event is created without a name */
|
||||||
#ifdef __WIN__
|
#ifdef __WIN__
|
||||||
/*************************************************************
|
/*************************************************************
|
||||||
@ -99,7 +99,7 @@ os_event_t
|
|||||||
os_event_create_auto(
|
os_event_create_auto(
|
||||||
/*=================*/
|
/*=================*/
|
||||||
/* out: the event handle */
|
/* out: the event handle */
|
||||||
char* name); /* in: the name of the event, if NULL
|
const char* name); /* in: the name of the event, if NULL
|
||||||
the event is created without a name */
|
the event is created without a name */
|
||||||
#endif
|
#endif
|
||||||
/**************************************************************
|
/**************************************************************
|
||||||
@ -172,7 +172,7 @@ os_mutex_t
|
|||||||
os_mutex_create(
|
os_mutex_create(
|
||||||
/*============*/
|
/*============*/
|
||||||
/* out: the mutex handle */
|
/* out: the mutex handle */
|
||||||
char* name); /* in: the name of the mutex, if NULL
|
const char* name); /* in: the name of the mutex, if NULL
|
||||||
the mutex is created without a name */
|
the mutex is created without a name */
|
||||||
/**************************************************************
|
/**************************************************************
|
||||||
Acquires ownership of a mutex semaphore. */
|
Acquires ownership of a mutex semaphore. */
|
||||||
|
@ -75,7 +75,7 @@ que_t*
|
|||||||
pars_sql(
|
pars_sql(
|
||||||
/*=====*/
|
/*=====*/
|
||||||
/* out, own: the query graph */
|
/* out, own: the query graph */
|
||||||
char* str); /* in: SQL string */
|
const char* str); /* in: SQL string */
|
||||||
/*****************************************************************
|
/*****************************************************************
|
||||||
Retrieves characters to the lexical analyzer. */
|
Retrieves characters to the lexical analyzer. */
|
||||||
|
|
||||||
|
@ -122,7 +122,7 @@ struct sym_node_struct{
|
|||||||
SYM_IMPLICIT_VAR,
|
SYM_IMPLICIT_VAR,
|
||||||
SYM_LIT, SYM_TABLE,
|
SYM_LIT, SYM_TABLE,
|
||||||
SYM_CURSOR, ... */
|
SYM_CURSOR, ... */
|
||||||
char* name; /* name of an id */
|
const char* name; /* name of an id */
|
||||||
ulint name_len; /* id name length */
|
ulint name_len; /* id name length */
|
||||||
dict_table_t* table; /* table definition
|
dict_table_t* table; /* table definition
|
||||||
if a table id or a
|
if a table id or a
|
||||||
@ -150,7 +150,7 @@ struct sym_tab_struct{
|
|||||||
que_t* query_graph;
|
que_t* query_graph;
|
||||||
/* query graph generated by the
|
/* query graph generated by the
|
||||||
parser */
|
parser */
|
||||||
char* sql_string;
|
const char* sql_string;
|
||||||
/* SQL string to parse */
|
/* SQL string to parse */
|
||||||
int string_len;
|
int string_len;
|
||||||
/* SQL string length */
|
/* SQL string length */
|
||||||
|
@ -318,12 +318,13 @@ row_table_add_foreign_constraints(
|
|||||||
/*==============================*/
|
/*==============================*/
|
||||||
/* out: error code or DB_SUCCESS */
|
/* out: error code or DB_SUCCESS */
|
||||||
trx_t* trx, /* in: transaction */
|
trx_t* trx, /* in: transaction */
|
||||||
char* sql_string, /* in: table create statement where
|
const char* sql_string, /* in: table create statement where
|
||||||
foreign keys are declared like:
|
foreign keys are declared like:
|
||||||
FOREIGN KEY (a, b) REFERENCES table2(c, d),
|
FOREIGN KEY (a, b) REFERENCES table2(c, d),
|
||||||
table2 can be written also with the database
|
table2 can be written also with the
|
||||||
name before it: test.table2 */
|
database name before it: test.table2 */
|
||||||
char* name); /* in: table full name in the normalized form
|
const char* name); /* in: table full name in the
|
||||||
|
normalized form
|
||||||
database_name/table_name */
|
database_name/table_name */
|
||||||
/*************************************************************************
|
/*************************************************************************
|
||||||
The master thread in srv0srv.c calls this regularly to drop tables which
|
The master thread in srv0srv.c calls this regularly to drop tables which
|
||||||
@ -352,7 +353,7 @@ int
|
|||||||
row_drop_table_for_mysql(
|
row_drop_table_for_mysql(
|
||||||
/*=====================*/
|
/*=====================*/
|
||||||
/* out: error code or DB_SUCCESS */
|
/* out: error code or DB_SUCCESS */
|
||||||
char* name, /* in: table name */
|
const char* name, /* in: table name */
|
||||||
trx_t* trx, /* in: transaction handle */
|
trx_t* trx, /* in: transaction handle */
|
||||||
ibool drop_db);/* in: TRUE=dropping whole database */
|
ibool drop_db);/* in: TRUE=dropping whole database */
|
||||||
|
|
||||||
@ -383,7 +384,7 @@ int
|
|||||||
row_discard_tablespace_for_mysql(
|
row_discard_tablespace_for_mysql(
|
||||||
/*=============================*/
|
/*=============================*/
|
||||||
/* out: error code or DB_SUCCESS */
|
/* out: error code or DB_SUCCESS */
|
||||||
char* name, /* in: table name */
|
const char* name, /* in: table name */
|
||||||
trx_t* trx); /* in: transaction handle */
|
trx_t* trx); /* in: transaction handle */
|
||||||
/*********************************************************************
|
/*********************************************************************
|
||||||
Imports a tablespace. The space id in the .ibd file must match the space id
|
Imports a tablespace. The space id in the .ibd file must match the space id
|
||||||
@ -393,7 +394,7 @@ int
|
|||||||
row_import_tablespace_for_mysql(
|
row_import_tablespace_for_mysql(
|
||||||
/*============================*/
|
/*============================*/
|
||||||
/* out: error code or DB_SUCCESS */
|
/* out: error code or DB_SUCCESS */
|
||||||
char* name, /* in: table name */
|
const char* name, /* in: table name */
|
||||||
trx_t* trx); /* in: transaction handle */
|
trx_t* trx); /* in: transaction handle */
|
||||||
/*************************************************************************
|
/*************************************************************************
|
||||||
Drops a database for MySQL. */
|
Drops a database for MySQL. */
|
||||||
@ -402,7 +403,7 @@ int
|
|||||||
row_drop_database_for_mysql(
|
row_drop_database_for_mysql(
|
||||||
/*========================*/
|
/*========================*/
|
||||||
/* out: error code or DB_SUCCESS */
|
/* out: error code or DB_SUCCESS */
|
||||||
char* name, /* in: database name which ends to '/' */
|
const char* name, /* in: database name which ends to '/' */
|
||||||
trx_t* trx); /* in: transaction handle */
|
trx_t* trx); /* in: transaction handle */
|
||||||
/*************************************************************************
|
/*************************************************************************
|
||||||
Renames a table for MySQL. */
|
Renames a table for MySQL. */
|
||||||
@ -411,8 +412,8 @@ int
|
|||||||
row_rename_table_for_mysql(
|
row_rename_table_for_mysql(
|
||||||
/*=======================*/
|
/*=======================*/
|
||||||
/* out: error code or DB_SUCCESS */
|
/* out: error code or DB_SUCCESS */
|
||||||
char* old_name, /* in: old table name */
|
const char* old_name, /* in: old table name */
|
||||||
char* new_name, /* in: new table name */
|
const char* new_name, /* in: new table name */
|
||||||
trx_t* trx); /* in: transaction handle */
|
trx_t* trx); /* in: transaction handle */
|
||||||
/*************************************************************************
|
/*************************************************************************
|
||||||
Checks a table for corruption. */
|
Checks a table for corruption. */
|
||||||
|
@ -144,11 +144,11 @@ consistent read result, or store it to the query cache. */
|
|||||||
ibool
|
ibool
|
||||||
row_search_check_if_query_cache_permitted(
|
row_search_check_if_query_cache_permitted(
|
||||||
/*======================================*/
|
/*======================================*/
|
||||||
/* out: TRUE if storing or retrieving from
|
/* out: TRUE if storing or retrieving
|
||||||
the query cache is permitted */
|
from the query cache is permitted */
|
||||||
trx_t* trx, /* in: transaction object */
|
trx_t* trx, /* in: transaction object */
|
||||||
char* norm_name); /* in: concatenation of database name, '/'
|
const char* norm_name); /* in: concatenation of database name,
|
||||||
char, table name */
|
'/' char, table name */
|
||||||
|
|
||||||
|
|
||||||
/* A structure for caching column values for prefetched rows */
|
/* A structure for caching column values for prefetched rows */
|
||||||
|
@ -193,7 +193,7 @@ trx_rollback_to_savepoint_for_mysql(
|
|||||||
DB_NO_SAVEPOINT,
|
DB_NO_SAVEPOINT,
|
||||||
otherwise DB_SUCCESS */
|
otherwise DB_SUCCESS */
|
||||||
trx_t* trx, /* in: transaction handle */
|
trx_t* trx, /* in: transaction handle */
|
||||||
char* savepoint_name, /* in: savepoint name */
|
const char* savepoint_name, /* in: savepoint name */
|
||||||
ib_longlong* mysql_binlog_cache_pos);/* out: the MySQL binlog cache
|
ib_longlong* mysql_binlog_cache_pos);/* out: the MySQL binlog cache
|
||||||
position corresponding to this
|
position corresponding to this
|
||||||
savepoint; MySQL needs this
|
savepoint; MySQL needs this
|
||||||
@ -211,7 +211,7 @@ trx_savepoint_for_mysql(
|
|||||||
/*====================*/
|
/*====================*/
|
||||||
/* out: always DB_SUCCESS */
|
/* out: always DB_SUCCESS */
|
||||||
trx_t* trx, /* in: transaction handle */
|
trx_t* trx, /* in: transaction handle */
|
||||||
char* savepoint_name, /* in: savepoint name */
|
const char* savepoint_name, /* in: savepoint name */
|
||||||
ib_longlong binlog_cache_pos); /* in: MySQL binlog cache
|
ib_longlong binlog_cache_pos); /* in: MySQL binlog cache
|
||||||
position corresponding to this
|
position corresponding to this
|
||||||
connection at the time of the
|
connection at the time of the
|
||||||
|
@ -258,7 +258,7 @@ replication has proceeded. */
|
|||||||
void
|
void
|
||||||
trx_sys_update_mysql_binlog_offset(
|
trx_sys_update_mysql_binlog_offset(
|
||||||
/*===============================*/
|
/*===============================*/
|
||||||
char* file_name,/* in: MySQL log file name */
|
const char* file_name,/* in: MySQL log file name */
|
||||||
ib_longlong offset, /* in: position in that log file */
|
ib_longlong offset, /* in: position in that log file */
|
||||||
ulint field, /* in: offset of the MySQL log info field in
|
ulint field, /* in: offset of the MySQL log info field in
|
||||||
the trx sys header */
|
the trx sys header */
|
||||||
|
@ -315,7 +315,7 @@ struct trx_struct{
|
|||||||
ulint magic_n;
|
ulint magic_n;
|
||||||
/* All the next fields are protected by the kernel mutex, except the
|
/* All the next fields are protected by the kernel mutex, except the
|
||||||
undo logs which are protected by undo_mutex */
|
undo logs which are protected by undo_mutex */
|
||||||
char* op_info; /* English text describing the
|
const char* op_info; /* English text describing the
|
||||||
current operation, or an empty
|
current operation, or an empty
|
||||||
string */
|
string */
|
||||||
ulint type; /* TRX_USER, TRX_PURGE */
|
ulint type; /* TRX_USER, TRX_PURGE */
|
||||||
@ -358,7 +358,7 @@ struct trx_struct{
|
|||||||
char** mysql_query_str;/* pointer to the field in mysqld_thd
|
char** mysql_query_str;/* pointer to the field in mysqld_thd
|
||||||
which contains the pointer to the
|
which contains the pointer to the
|
||||||
current SQL query string */
|
current SQL query string */
|
||||||
char* mysql_log_file_name;
|
const char* mysql_log_file_name;
|
||||||
/* if MySQL binlog is used, this field
|
/* if MySQL binlog is used, this field
|
||||||
contains a pointer to the latest file
|
contains a pointer to the latest file
|
||||||
name; this is NULL if binlog is not
|
name; this is NULL if binlog is not
|
||||||
@ -366,7 +366,7 @@ struct trx_struct{
|
|||||||
ib_longlong mysql_log_offset;/* if MySQL binlog is used, this field
|
ib_longlong mysql_log_offset;/* if MySQL binlog is used, this field
|
||||||
contains the end offset of the binlog
|
contains the end offset of the binlog
|
||||||
entry */
|
entry */
|
||||||
char* mysql_master_log_file_name;
|
const char* mysql_master_log_file_name;
|
||||||
/* if the database server is a MySQL
|
/* if the database server is a MySQL
|
||||||
replication slave, we have here the
|
replication slave, we have here the
|
||||||
master binlog name up to which
|
master binlog name up to which
|
||||||
|
@ -93,7 +93,7 @@ ulint
|
|||||||
ut_fold_string(
|
ut_fold_string(
|
||||||
/*===========*/
|
/*===========*/
|
||||||
/* out: folded value */
|
/* out: folded value */
|
||||||
char* str); /* in: null-terminated string */
|
const char* str); /* in: null-terminated string */
|
||||||
/*****************************************************************
|
/*****************************************************************
|
||||||
Folds a binary string. */
|
Folds a binary string. */
|
||||||
UNIV_INLINE
|
UNIV_INLINE
|
||||||
@ -101,7 +101,7 @@ ulint
|
|||||||
ut_fold_binary(
|
ut_fold_binary(
|
||||||
/*===========*/
|
/*===========*/
|
||||||
/* out: folded value */
|
/* out: folded value */
|
||||||
byte* str, /* in: string of bytes */
|
const byte* str, /* in: string of bytes */
|
||||||
ulint len); /* in: length */
|
ulint len); /* in: length */
|
||||||
/***************************************************************
|
/***************************************************************
|
||||||
Looks for a prime number slightly greater than the given argument.
|
Looks for a prime number slightly greater than the given argument.
|
||||||
|
@ -174,7 +174,7 @@ ulint
|
|||||||
ut_fold_string(
|
ut_fold_string(
|
||||||
/*===========*/
|
/*===========*/
|
||||||
/* out: folded value */
|
/* out: folded value */
|
||||||
char* str) /* in: null-terminated string */
|
const char* str) /* in: null-terminated string */
|
||||||
{
|
{
|
||||||
#ifdef UNIV_DEBUG
|
#ifdef UNIV_DEBUG
|
||||||
ulint i = 0;
|
ulint i = 0;
|
||||||
@ -204,7 +204,7 @@ ulint
|
|||||||
ut_fold_binary(
|
ut_fold_binary(
|
||||||
/*===========*/
|
/*===========*/
|
||||||
/* out: folded value */
|
/* out: folded value */
|
||||||
byte* str, /* in: string of bytes */
|
const byte* str, /* in: string of bytes */
|
||||||
ulint len) /* in: length */
|
ulint len) /* in: length */
|
||||||
{
|
{
|
||||||
ulint i;
|
ulint i;
|
||||||
|
@ -17,21 +17,6 @@ Created 1/20/1994 Heikki Tuuri
|
|||||||
|
|
||||||
typedef time_t ib_time_t;
|
typedef time_t ib_time_t;
|
||||||
|
|
||||||
|
|
||||||
/************************************************************
|
|
||||||
On the 64-bit Windows we substitute the format string
|
|
||||||
%l -> %I64
|
|
||||||
because we define ulint as unsigned __int64 and lint as __int64 on Windows,
|
|
||||||
and both the Microsoft and Intel C compilers require the format string
|
|
||||||
%I64 in that case instead of %l. */
|
|
||||||
|
|
||||||
int
|
|
||||||
ut_printf(
|
|
||||||
/*======*/
|
|
||||||
/* out: the number of characters written, or
|
|
||||||
negative in case of an error */
|
|
||||||
const char* format, /* in: format of prints */
|
|
||||||
...); /* in: arguments to be printed */
|
|
||||||
/************************************************************
|
/************************************************************
|
||||||
On the 64-bit Windows we substitute the format string
|
On the 64-bit Windows we substitute the format string
|
||||||
%l -> %I64
|
%l -> %I64
|
||||||
|
@ -70,7 +70,7 @@ struct os_aio_slot_struct{
|
|||||||
bytes */
|
bytes */
|
||||||
ulint offset_high; /* 32 high bits of file offset */
|
ulint offset_high; /* 32 high bits of file offset */
|
||||||
os_file_t file; /* file where to read or write */
|
os_file_t file; /* file where to read or write */
|
||||||
char* name; /* file name or path */
|
const char* name; /* file name or path */
|
||||||
ibool io_already_done;/* used only in simulated aio:
|
ibool io_already_done;/* used only in simulated aio:
|
||||||
TRUE if the physical i/o already
|
TRUE if the physical i/o already
|
||||||
made and only the slot message
|
made and only the slot message
|
||||||
@ -415,7 +415,7 @@ os_file_handle_error_no_exit(
|
|||||||
/* out: TRUE if we should retry the
|
/* out: TRUE if we should retry the
|
||||||
operation */
|
operation */
|
||||||
os_file_t file, /* in: file pointer */
|
os_file_t file, /* in: file pointer */
|
||||||
char* name, /* in: name of a file or NULL */
|
const char* name, /* in: name of a file or NULL */
|
||||||
const char* operation)/* in: operation */
|
const char* operation)/* in: operation */
|
||||||
{
|
{
|
||||||
ulint err;
|
ulint err;
|
||||||
@ -493,13 +493,15 @@ and '..' items at the start of the directory listing. */
|
|||||||
os_file_dir_t
|
os_file_dir_t
|
||||||
os_file_opendir(
|
os_file_opendir(
|
||||||
/*============*/
|
/*============*/
|
||||||
/* out: directory stream, NULL if error */
|
/* out: directory stream, NULL if
|
||||||
char* dirname, /* in: directory name; it must not contain
|
error */
|
||||||
a trailing '\' or '/' */
|
const char* dirname, /* in: directory name; it must not
|
||||||
ibool error_is_fatal) /* in: TRUE if we should treat an error as a
|
contain a trailing '\' or '/' */
|
||||||
fatal error; if we try to open symlinks then
|
ibool error_is_fatal) /* in: TRUE if we should treat an
|
||||||
we do not wish a fatal error if it happens
|
error as a fatal error; if we try to
|
||||||
not to be a directory */
|
open symlinks then we do not wish a
|
||||||
|
fatal error if it happens not to be
|
||||||
|
a directory */
|
||||||
{
|
{
|
||||||
os_file_dir_t dir;
|
os_file_dir_t dir;
|
||||||
#ifdef __WIN__
|
#ifdef __WIN__
|
||||||
@ -585,7 +587,7 @@ os_file_readdir_next_file(
|
|||||||
/*======================*/
|
/*======================*/
|
||||||
/* out: 0 if ok, -1 if error, 1 if at the end
|
/* out: 0 if ok, -1 if error, 1 if at the end
|
||||||
of the directory */
|
of the directory */
|
||||||
char* dirname,/* in: directory name or path */
|
const char* dirname,/* in: directory name or path */
|
||||||
os_file_dir_t dir, /* in: directory stream */
|
os_file_dir_t dir, /* in: directory stream */
|
||||||
os_file_stat_t* info) /* in/out: buffer where the info is returned */
|
os_file_stat_t* info) /* in/out: buffer where the info is returned */
|
||||||
{
|
{
|
||||||
@ -704,12 +706,12 @@ fail_if_exists arguments is true. */
|
|||||||
ibool
|
ibool
|
||||||
os_file_create_directory(
|
os_file_create_directory(
|
||||||
/*=====================*/
|
/*=====================*/
|
||||||
/* out: TRUE if call succeeds, FALSE on
|
/* out: TRUE if call succeeds,
|
||||||
error */
|
FALSE on error */
|
||||||
char* pathname, /* in: directory name as null-terminated
|
const char* pathname, /* in: directory name as
|
||||||
string */
|
null-terminated string */
|
||||||
ibool fail_if_exists) /* in: if TRUE, pre-existing directory is
|
ibool fail_if_exists) /* in: if TRUE, pre-existing directory
|
||||||
treated as an error. */
|
is treated as an error. */
|
||||||
{
|
{
|
||||||
#ifdef __WIN__
|
#ifdef __WIN__
|
||||||
BOOL rcode;
|
BOOL rcode;
|
||||||
@ -746,17 +748,20 @@ A simple function to open or create a file. */
|
|||||||
os_file_t
|
os_file_t
|
||||||
os_file_create_simple(
|
os_file_create_simple(
|
||||||
/*==================*/
|
/*==================*/
|
||||||
/* out, own: handle to the file, not defined if error,
|
/* out, own: handle to the file, not defined
|
||||||
error number can be retrieved with
|
if error, error number can be retrieved with
|
||||||
os_file_get_last_error */
|
os_file_get_last_error */
|
||||||
char* name, /* in: name of the file or path as a null-terminated
|
const char* name, /* in: name of the file or path as a
|
||||||
string */
|
null-terminated string */
|
||||||
ulint create_mode,/* in: OS_FILE_OPEN if an existing file is opened
|
ulint create_mode,/* in: OS_FILE_OPEN if an existing file is
|
||||||
(if does not exist, error), or OS_FILE_CREATE if a new
|
opened (if does not exist, error), or
|
||||||
file is created (if exists, error), or
|
OS_FILE_CREATE if a new file is created
|
||||||
OS_FILE_CREATE_PATH if new file (if exists, error) and
|
(if exists, error), or
|
||||||
subdirectories along its path are created (if needed)*/
|
OS_FILE_CREATE_PATH if new file
|
||||||
ulint access_type,/* in: OS_FILE_READ_ONLY or OS_FILE_READ_WRITE */
|
(if exists, error) and subdirectories along
|
||||||
|
its path are created (if needed)*/
|
||||||
|
ulint access_type,/* in: OS_FILE_READ_ONLY or
|
||||||
|
OS_FILE_READ_WRITE */
|
||||||
ibool* success)/* out: TRUE if succeed, FALSE if error */
|
ibool* success)/* out: TRUE if succeed, FALSE if error */
|
||||||
{
|
{
|
||||||
#ifdef __WIN__
|
#ifdef __WIN__
|
||||||
@ -882,17 +887,19 @@ A simple function to open or create a file. */
|
|||||||
os_file_t
|
os_file_t
|
||||||
os_file_create_simple_no_error_handling(
|
os_file_create_simple_no_error_handling(
|
||||||
/*====================================*/
|
/*====================================*/
|
||||||
/* out, own: handle to the file, not defined if error,
|
/* out, own: handle to the file, not defined
|
||||||
error number can be retrieved with
|
if error, error number can be retrieved with
|
||||||
os_file_get_last_error */
|
os_file_get_last_error */
|
||||||
char* name, /* in: name of the file or path as a null-terminated
|
const char* name, /* in: name of the file or path as a
|
||||||
string */
|
null-terminated string */
|
||||||
ulint create_mode,/* in: OS_FILE_OPEN if an existing file is opened
|
ulint create_mode,/* in: OS_FILE_OPEN if an existing file
|
||||||
(if does not exist, error), or OS_FILE_CREATE if a new
|
is opened (if does not exist, error), or
|
||||||
file is created (if exists, error) */
|
OS_FILE_CREATE if a new file is created
|
||||||
ulint access_type,/* in: OS_FILE_READ_ONLY, OS_FILE_READ_WRITE, or
|
(if exists, error) */
|
||||||
OS_FILE_READ_ALLOW_DELETE; the last option is used by
|
ulint access_type,/* in: OS_FILE_READ_ONLY,
|
||||||
a backup program reading the file */
|
OS_FILE_READ_WRITE, or
|
||||||
|
OS_FILE_READ_ALLOW_DELETE; the last option is
|
||||||
|
used by a backup program reading the file */
|
||||||
ibool* success)/* out: TRUE if succeed, FALSE if error */
|
ibool* success)/* out: TRUE if succeed, FALSE if error */
|
||||||
{
|
{
|
||||||
#ifdef __WIN__
|
#ifdef __WIN__
|
||||||
@ -991,23 +998,26 @@ Opens an existing file or creates a new. */
|
|||||||
os_file_t
|
os_file_t
|
||||||
os_file_create(
|
os_file_create(
|
||||||
/*===========*/
|
/*===========*/
|
||||||
/* out, own: handle to the file, not defined if error,
|
/* out, own: handle to the file, not defined
|
||||||
error number can be retrieved with
|
if error, error number can be retrieved with
|
||||||
os_file_get_last_error */
|
os_file_get_last_error */
|
||||||
char* name, /* in: name of the file or path as a null-terminated
|
const char* name, /* in: name of the file or path as a
|
||||||
string */
|
null-terminated string */
|
||||||
ulint create_mode, /* in: OS_FILE_OPEN if an existing file is opened
|
ulint create_mode,/* in: OS_FILE_OPEN if an existing file
|
||||||
(if does not exist, error), or OS_FILE_CREATE if a new
|
is opened (if does not exist, error), or
|
||||||
file is created (if exists, error), OS_FILE_OVERWRITE
|
OS_FILE_CREATE if a new file is created
|
||||||
if a new is created or an old overwritten,
|
(if exists, error),
|
||||||
OS_FILE_OPEN_RAW, if a raw device or disk partition
|
OS_FILE_OVERWRITE if a new file is created
|
||||||
should be opened */
|
or an old overwritten;
|
||||||
ulint purpose,/* in: OS_FILE_AIO, if asynchronous, non-buffered i/o
|
OS_FILE_OPEN_RAW, if a raw device or disk
|
||||||
is desired, OS_FILE_NORMAL, if any normal file;
|
partition should be opened */
|
||||||
NOTE that it also depends on type, os_aio_.. and srv_..
|
ulint purpose,/* in: OS_FILE_AIO, if asynchronous,
|
||||||
variables whether we really use async i/o or
|
non-buffered i/o is desired,
|
||||||
unbuffered i/o: look in the function source code for
|
OS_FILE_NORMAL, if any normal file;
|
||||||
the exact rules */
|
NOTE that it also depends on type, os_aio_..
|
||||||
|
and srv_.. variables whether we really use
|
||||||
|
async i/o or unbuffered i/o: look in the
|
||||||
|
function source code for the exact rules */
|
||||||
ulint type, /* in: OS_DATA_FILE or OS_LOG_FILE */
|
ulint type, /* in: OS_DATA_FILE or OS_LOG_FILE */
|
||||||
ibool* success)/* out: TRUE if succeed, FALSE if error */
|
ibool* success)/* out: TRUE if succeed, FALSE if error */
|
||||||
{
|
{
|
||||||
@ -1203,7 +1213,7 @@ ibool
|
|||||||
os_file_delete_if_exists(
|
os_file_delete_if_exists(
|
||||||
/*=====================*/
|
/*=====================*/
|
||||||
/* out: TRUE if success */
|
/* out: TRUE if success */
|
||||||
char* name) /* in: file path as a null-terminated string */
|
const char* name) /* in: file path as a null-terminated string */
|
||||||
{
|
{
|
||||||
#ifdef __WIN__
|
#ifdef __WIN__
|
||||||
BOOL ret;
|
BOOL ret;
|
||||||
@ -1264,7 +1274,7 @@ ibool
|
|||||||
os_file_delete(
|
os_file_delete(
|
||||||
/*===========*/
|
/*===========*/
|
||||||
/* out: TRUE if success */
|
/* out: TRUE if success */
|
||||||
char* name) /* in: file path as a null-terminated string */
|
const char* name) /* in: file path as a null-terminated string */
|
||||||
{
|
{
|
||||||
#ifdef __WIN__
|
#ifdef __WIN__
|
||||||
BOOL ret;
|
BOOL ret;
|
||||||
@ -1327,9 +1337,9 @@ ibool
|
|||||||
os_file_rename(
|
os_file_rename(
|
||||||
/*===========*/
|
/*===========*/
|
||||||
/* out: TRUE if success */
|
/* out: TRUE if success */
|
||||||
char* oldpath, /* in: old file path as a null-terminated
|
const char* oldpath,/* in: old file path as a null-terminated
|
||||||
string */
|
string */
|
||||||
char* newpath) /* in: new file path */
|
const char* newpath)/* in: new file path */
|
||||||
{
|
{
|
||||||
#ifdef __WIN__
|
#ifdef __WIN__
|
||||||
BOOL ret;
|
BOOL ret;
|
||||||
@ -1340,7 +1350,7 @@ os_file_rename(
|
|||||||
return(TRUE);
|
return(TRUE);
|
||||||
}
|
}
|
||||||
|
|
||||||
os_file_handle_error(NULL, oldpath, "delete");
|
os_file_handle_error(NULL, oldpath, "rename");
|
||||||
|
|
||||||
return(FALSE);
|
return(FALSE);
|
||||||
#else
|
#else
|
||||||
@ -1516,7 +1526,7 @@ ibool
|
|||||||
os_file_set_size(
|
os_file_set_size(
|
||||||
/*=============*/
|
/*=============*/
|
||||||
/* out: TRUE if success */
|
/* out: TRUE if success */
|
||||||
char* name, /* in: name of the file or path as a
|
const char* name, /* in: name of the file or path as a
|
||||||
null-terminated string */
|
null-terminated string */
|
||||||
os_file_t file, /* in: handle to a file */
|
os_file_t file, /* in: handle to a file */
|
||||||
ulint size, /* in: least significant 32 bits of file
|
ulint size, /* in: least significant 32 bits of file
|
||||||
@ -1777,7 +1787,7 @@ os_file_pwrite(
|
|||||||
/*===========*/
|
/*===========*/
|
||||||
/* out: number of bytes written, -1 if error */
|
/* out: number of bytes written, -1 if error */
|
||||||
os_file_t file, /* in: handle to a file */
|
os_file_t file, /* in: handle to a file */
|
||||||
void* buf, /* in: buffer from where to write */
|
const void* buf, /* in: buffer from where to write */
|
||||||
ulint n, /* in: number of bytes to write */
|
ulint n, /* in: number of bytes to write */
|
||||||
ulint offset, /* in: least significant 32 bits of file
|
ulint offset, /* in: least significant 32 bits of file
|
||||||
offset where to write */
|
offset where to write */
|
||||||
@ -2057,10 +2067,10 @@ os_file_write(
|
|||||||
/*==========*/
|
/*==========*/
|
||||||
/* out: TRUE if request was
|
/* out: TRUE if request was
|
||||||
successful, FALSE if fail */
|
successful, FALSE if fail */
|
||||||
char* name, /* in: name of the file or path as a
|
const char* name, /* in: name of the file or path as a
|
||||||
null-terminated string */
|
null-terminated string */
|
||||||
os_file_t file, /* in: handle to a file */
|
os_file_t file, /* in: handle to a file */
|
||||||
void* buf, /* in: buffer from which to write */
|
const void* buf, /* in: buffer from which to write */
|
||||||
ulint offset, /* in: least significant 32 bits of file
|
ulint offset, /* in: least significant 32 bits of file
|
||||||
offset where to write */
|
offset where to write */
|
||||||
ulint offset_high, /* in: most significant 32 bits of
|
ulint offset_high, /* in: most significant 32 bits of
|
||||||
@ -2214,7 +2224,7 @@ ibool
|
|||||||
os_file_status(
|
os_file_status(
|
||||||
/*===========*/
|
/*===========*/
|
||||||
/* out: TRUE if call succeeded */
|
/* out: TRUE if call succeeded */
|
||||||
char* path, /* in: pathname of the file */
|
const char* path, /* in: pathname of the file */
|
||||||
ibool* exists, /* out: TRUE if file exists */
|
ibool* exists, /* out: TRUE if file exists */
|
||||||
os_file_type_t* type) /* out: type of the file (if it exists) */
|
os_file_type_t* type) /* out: type of the file (if it exists) */
|
||||||
{
|
{
|
||||||
@ -2319,7 +2329,7 @@ os_file_dirname(
|
|||||||
/*============*/
|
/*============*/
|
||||||
/* out, own: directory component of the
|
/* out, own: directory component of the
|
||||||
pathname */
|
pathname */
|
||||||
char* path) /* in: pathname */
|
const char* path) /* in: pathname */
|
||||||
{
|
{
|
||||||
char* dir;
|
char* dir;
|
||||||
int i, length, last_slash;
|
int i, length, last_slash;
|
||||||
@ -2356,7 +2366,7 @@ os_file_create_subdirs_if_needed(
|
|||||||
/*=============================*/
|
/*=============================*/
|
||||||
/* out: TRUE if call succeeded
|
/* out: TRUE if call succeeded
|
||||||
FALSE otherwise */
|
FALSE otherwise */
|
||||||
char* path) /* in: path name */
|
const char* path) /* in: path name */
|
||||||
{
|
{
|
||||||
char* subdir;
|
char* subdir;
|
||||||
static char rootdir[2] = { OS_FILE_PATH_SEPARATOR, 0 };
|
static char rootdir[2] = { OS_FILE_PATH_SEPARATOR, 0 };
|
||||||
@ -2753,7 +2763,7 @@ os_aio_array_reserve_slot(
|
|||||||
void* message2,/* in: message to be passed along with
|
void* message2,/* in: message to be passed along with
|
||||||
the aio operation */
|
the aio operation */
|
||||||
os_file_t file, /* in: file handle */
|
os_file_t file, /* in: file handle */
|
||||||
char* name, /* in: name of the file or path as a
|
const char* name, /* in: name of the file or path as a
|
||||||
null-terminated string */
|
null-terminated string */
|
||||||
void* buf, /* in: buffer where to read or from which
|
void* buf, /* in: buffer where to read or from which
|
||||||
to write */
|
to write */
|
||||||
@ -3000,7 +3010,7 @@ os_aio(
|
|||||||
because i/os are not actually handled until
|
because i/os are not actually handled until
|
||||||
all have been posted: use with great
|
all have been posted: use with great
|
||||||
caution! */
|
caution! */
|
||||||
char* name, /* in: name of the file or path as a
|
const char* name, /* in: name of the file or path as a
|
||||||
null-terminated string */
|
null-terminated string */
|
||||||
os_file_t file, /* in: handle to a file */
|
os_file_t file, /* in: handle to a file */
|
||||||
void* buf, /* in: buffer where to read or from which
|
void* buf, /* in: buffer where to read or from which
|
||||||
@ -3543,6 +3553,7 @@ consecutive_loop:
|
|||||||
if (n_consecutive == 1) {
|
if (n_consecutive == 1) {
|
||||||
/* We can use the buffer of the i/o request */
|
/* We can use the buffer of the i/o request */
|
||||||
combined_buf = slot->buf;
|
combined_buf = slot->buf;
|
||||||
|
combined_buf2 = NULL;
|
||||||
} else {
|
} else {
|
||||||
combined_buf2 = ut_malloc(total_len + UNIV_PAGE_SIZE);
|
combined_buf2 = ut_malloc(total_len + UNIV_PAGE_SIZE);
|
||||||
|
|
||||||
@ -3638,7 +3649,7 @@ consecutive_loop:
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (n_consecutive > 1) {
|
if (combined_buf2) {
|
||||||
ut_free(combined_buf2);
|
ut_free(combined_buf2);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -110,7 +110,7 @@ os_event_t
|
|||||||
os_event_create(
|
os_event_create(
|
||||||
/*============*/
|
/*============*/
|
||||||
/* out: the event handle */
|
/* out: the event handle */
|
||||||
char* name) /* in: the name of the event, if NULL
|
const char* name) /* in: the name of the event, if NULL
|
||||||
the event is created without a name */
|
the event is created without a name */
|
||||||
{
|
{
|
||||||
#ifdef __WIN__
|
#ifdef __WIN__
|
||||||
@ -167,7 +167,7 @@ os_event_t
|
|||||||
os_event_create_auto(
|
os_event_create_auto(
|
||||||
/*=================*/
|
/*=================*/
|
||||||
/* out: the event handle */
|
/* out: the event handle */
|
||||||
char* name) /* in: the name of the event, if NULL
|
const char* name) /* in: the name of the event, if NULL
|
||||||
the event is created without a name */
|
the event is created without a name */
|
||||||
{
|
{
|
||||||
os_event_t event;
|
os_event_t event;
|
||||||
@ -431,7 +431,7 @@ os_mutex_t
|
|||||||
os_mutex_create(
|
os_mutex_create(
|
||||||
/*============*/
|
/*============*/
|
||||||
/* out: the mutex handle */
|
/* out: the mutex handle */
|
||||||
char* name) /* in: the name of the mutex, if NULL
|
const char* name) /* in: the name of the mutex, if NULL
|
||||||
the mutex is created without a name */
|
the mutex is created without a name */
|
||||||
{
|
{
|
||||||
#ifdef __WIN__
|
#ifdef __WIN__
|
||||||
|
@ -1730,7 +1730,7 @@ que_t*
|
|||||||
pars_sql(
|
pars_sql(
|
||||||
/*=====*/
|
/*=====*/
|
||||||
/* out, own: the query graph */
|
/* out, own: the query graph */
|
||||||
char* str) /* in: SQL string */
|
const char* str) /* in: SQL string */
|
||||||
{
|
{
|
||||||
sym_node_t* sym_node;
|
sym_node_t* sym_node;
|
||||||
mem_heap_t* heap;
|
mem_heap_t* heap;
|
||||||
|
@ -217,13 +217,10 @@ sym_tab_add_id(
|
|||||||
|
|
||||||
node->common.type = QUE_NODE_SYMBOL;
|
node->common.type = QUE_NODE_SYMBOL;
|
||||||
|
|
||||||
node->name = mem_heap_alloc(sym_tab->heap, len + 1);
|
|
||||||
node->resolved = FALSE;
|
node->resolved = FALSE;
|
||||||
node->indirection = NULL;
|
node->indirection = NULL;
|
||||||
|
|
||||||
ut_memcpy(node->name, name, len);
|
node->name = mem_heap_strdupl(sym_tab->heap, name, len + 1);
|
||||||
node->name[len] = '\0';
|
|
||||||
|
|
||||||
node->name_len = len;
|
node->name_len = len;
|
||||||
|
|
||||||
UT_LIST_ADD_LAST(sym_list, sym_tab->sym_list, node);
|
UT_LIST_ADD_LAST(sym_list, sym_tab->sym_list, node);
|
||||||
|
@ -1688,12 +1688,13 @@ row_table_add_foreign_constraints(
|
|||||||
/*==============================*/
|
/*==============================*/
|
||||||
/* out: error code or DB_SUCCESS */
|
/* out: error code or DB_SUCCESS */
|
||||||
trx_t* trx, /* in: transaction */
|
trx_t* trx, /* in: transaction */
|
||||||
char* sql_string, /* in: table create statement where
|
const char* sql_string, /* in: table create statement where
|
||||||
foreign keys are declared like:
|
foreign keys are declared like:
|
||||||
FOREIGN KEY (a, b) REFERENCES table2(c, d),
|
FOREIGN KEY (a, b) REFERENCES table2(c, d),
|
||||||
table2 can be written also with the database
|
table2 can be written also with the
|
||||||
name before it: test.table2 */
|
database name before it: test.table2 */
|
||||||
char* name) /* in: table full name in the normalized form
|
const char* name) /* in: table full name in the
|
||||||
|
normalized form
|
||||||
database_name/table_name */
|
database_name/table_name */
|
||||||
{
|
{
|
||||||
ulint err;
|
ulint err;
|
||||||
@ -1941,7 +1942,7 @@ int
|
|||||||
row_discard_tablespace_for_mysql(
|
row_discard_tablespace_for_mysql(
|
||||||
/*=============================*/
|
/*=============================*/
|
||||||
/* out: error code or DB_SUCCESS */
|
/* out: error code or DB_SUCCESS */
|
||||||
char* name, /* in: table name */
|
const char* name, /* in: table name */
|
||||||
trx_t* trx) /* in: transaction handle */
|
trx_t* trx) /* in: transaction handle */
|
||||||
{
|
{
|
||||||
dulint new_id;
|
dulint new_id;
|
||||||
@ -2072,7 +2073,7 @@ int
|
|||||||
row_import_tablespace_for_mysql(
|
row_import_tablespace_for_mysql(
|
||||||
/*============================*/
|
/*============================*/
|
||||||
/* out: error code or DB_SUCCESS */
|
/* out: error code or DB_SUCCESS */
|
||||||
char* name, /* in: table name */
|
const char* name, /* in: table name */
|
||||||
trx_t* trx) /* in: transaction handle */
|
trx_t* trx) /* in: transaction handle */
|
||||||
{
|
{
|
||||||
dict_table_t* table;
|
dict_table_t* table;
|
||||||
@ -2178,7 +2179,7 @@ int
|
|||||||
row_drop_table_for_mysql(
|
row_drop_table_for_mysql(
|
||||||
/*=====================*/
|
/*=====================*/
|
||||||
/* out: error code or DB_SUCCESS */
|
/* out: error code or DB_SUCCESS */
|
||||||
char* name, /* in: table name */
|
const char* name, /* in: table name */
|
||||||
trx_t* trx, /* in: transaction handle */
|
trx_t* trx, /* in: transaction handle */
|
||||||
ibool drop_db)/* in: TRUE=dropping whole database */
|
ibool drop_db)/* in: TRUE=dropping whole database */
|
||||||
{
|
{
|
||||||
@ -2520,7 +2521,7 @@ int
|
|||||||
row_drop_database_for_mysql(
|
row_drop_database_for_mysql(
|
||||||
/*========================*/
|
/*========================*/
|
||||||
/* out: error code or DB_SUCCESS */
|
/* out: error code or DB_SUCCESS */
|
||||||
char* name, /* in: database name which ends to '/' */
|
const char* name, /* in: database name which ends to '/' */
|
||||||
trx_t* trx) /* in: transaction handle */
|
trx_t* trx) /* in: transaction handle */
|
||||||
{
|
{
|
||||||
dict_table_t* table;
|
dict_table_t* table;
|
||||||
@ -2612,8 +2613,8 @@ int
|
|||||||
row_rename_table_for_mysql(
|
row_rename_table_for_mysql(
|
||||||
/*=======================*/
|
/*=======================*/
|
||||||
/* out: error code or DB_SUCCESS */
|
/* out: error code or DB_SUCCESS */
|
||||||
char* old_name, /* in: old table name */
|
const char* old_name, /* in: old table name */
|
||||||
char* new_name, /* in: new table name */
|
const char* new_name, /* in: new table name */
|
||||||
trx_t* trx) /* in: transaction handle */
|
trx_t* trx) /* in: transaction handle */
|
||||||
{
|
{
|
||||||
dict_table_t* table;
|
dict_table_t* table;
|
||||||
|
@ -3585,11 +3585,11 @@ consistent read result, or store it to the query cache. */
|
|||||||
ibool
|
ibool
|
||||||
row_search_check_if_query_cache_permitted(
|
row_search_check_if_query_cache_permitted(
|
||||||
/*======================================*/
|
/*======================================*/
|
||||||
/* out: TRUE if storing or retrieving from
|
/* out: TRUE if storing or retrieving
|
||||||
the query cache is permitted */
|
from the query cache is permitted */
|
||||||
trx_t* trx, /* in: transaction object */
|
trx_t* trx, /* in: transaction object */
|
||||||
char* norm_name) /* in: concatenation of database name, '/'
|
const char* norm_name) /* in: concatenation of database name,
|
||||||
char, table name */
|
'/' char, table name */
|
||||||
{
|
{
|
||||||
dict_table_t* table;
|
dict_table_t* table;
|
||||||
ibool ret = FALSE;
|
ibool ret = FALSE;
|
||||||
|
@ -200,7 +200,7 @@ trx_rollback_to_savepoint_for_mysql(
|
|||||||
DB_NO_SAVEPOINT,
|
DB_NO_SAVEPOINT,
|
||||||
otherwise DB_SUCCESS */
|
otherwise DB_SUCCESS */
|
||||||
trx_t* trx, /* in: transaction handle */
|
trx_t* trx, /* in: transaction handle */
|
||||||
char* savepoint_name, /* in: savepoint name */
|
const char* savepoint_name, /* in: savepoint name */
|
||||||
ib_longlong* mysql_binlog_cache_pos) /* out: the MySQL binlog cache
|
ib_longlong* mysql_binlog_cache_pos) /* out: the MySQL binlog cache
|
||||||
position corresponding to this
|
position corresponding to this
|
||||||
savepoint; MySQL needs this
|
savepoint; MySQL needs this
|
||||||
@ -265,7 +265,7 @@ trx_savepoint_for_mysql(
|
|||||||
/*====================*/
|
/*====================*/
|
||||||
/* out: always DB_SUCCESS */
|
/* out: always DB_SUCCESS */
|
||||||
trx_t* trx, /* in: transaction handle */
|
trx_t* trx, /* in: transaction handle */
|
||||||
char* savepoint_name, /* in: savepoint name */
|
const char* savepoint_name, /* in: savepoint name */
|
||||||
ib_longlong binlog_cache_pos) /* in: MySQL binlog cache
|
ib_longlong binlog_cache_pos) /* in: MySQL binlog cache
|
||||||
position corresponding to this
|
position corresponding to this
|
||||||
connection at the time of the
|
connection at the time of the
|
||||||
|
@ -569,7 +569,7 @@ replication has proceeded. */
|
|||||||
void
|
void
|
||||||
trx_sys_update_mysql_binlog_offset(
|
trx_sys_update_mysql_binlog_offset(
|
||||||
/*===============================*/
|
/*===============================*/
|
||||||
char* file_name,/* in: MySQL log file name */
|
const char* file_name,/* in: MySQL log file name */
|
||||||
ib_longlong offset, /* in: position in that log file */
|
ib_longlong offset, /* in: position in that log file */
|
||||||
ulint field, /* in: offset of the MySQL log info field in
|
ulint field, /* in: offset of the MySQL log info field in
|
||||||
the trx sys header */
|
the trx sys header */
|
||||||
|
Reference in New Issue
Block a user