Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
M
mariadb
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
Kirill Smelkov
mariadb
Commits
fff42272
Commit
fff42272
authored
May 17, 2004
by
marko@hundin.mysql.fi
Browse files
Options
Browse Files
Download
Plain Diff
Merge marko@build.mysql.com:/home/bk/mysql-4.1
into hundin.mysql.fi:/home/marko/j/mysql-4.1
parents
8eadb180
03f19377
Changes
31
Hide whitespace changes
Inline
Side-by-side
Showing
31 changed files
with
553 additions
and
519 deletions
+553
-519
innobase/dict/dict0dict.c
innobase/dict/dict0dict.c
+35
-29
innobase/dict/dict0load.c
innobase/dict/dict0load.c
+15
-13
innobase/dict/dict0mem.c
innobase/dict/dict0mem.c
+20
-22
innobase/fil/fil0fil.c
innobase/fil/fil0fil.c
+67
-60
innobase/include/data0data.h
innobase/include/data0data.h
+1
-1
innobase/include/data0data.ic
innobase/include/data0data.ic
+1
-1
innobase/include/dict0dict.h
innobase/include/dict0dict.h
+29
-24
innobase/include/dict0dict.ic
innobase/include/dict0dict.ic
+5
-5
innobase/include/dict0load.h
innobase/include/dict0load.h
+13
-10
innobase/include/dict0mem.h
innobase/include/dict0mem.h
+36
-34
innobase/include/fil0fil.h
innobase/include/fil0fil.h
+55
-49
innobase/include/os0file.h
innobase/include/os0file.h
+83
-73
innobase/include/os0sync.h
innobase/include/os0sync.h
+9
-9
innobase/include/pars0pars.h
innobase/include/pars0pars.h
+2
-2
innobase/include/pars0sym.h
innobase/include/pars0sym.h
+2
-2
innobase/include/row0mysql.h
innobase/include/row0mysql.h
+26
-25
innobase/include/row0sel.h
innobase/include/row0sel.h
+5
-5
innobase/include/trx0roll.h
innobase/include/trx0roll.h
+2
-2
innobase/include/trx0sys.h
innobase/include/trx0sys.h
+1
-1
innobase/include/trx0trx.h
innobase/include/trx0trx.h
+3
-3
innobase/include/ut0rnd.h
innobase/include/ut0rnd.h
+5
-5
innobase/include/ut0rnd.ic
innobase/include/ut0rnd.ic
+5
-5
innobase/include/ut0ut.h
innobase/include/ut0ut.h
+0
-15
innobase/os/os0file.c
innobase/os/os0file.c
+87
-76
innobase/os/os0sync.c
innobase/os/os0sync.c
+9
-9
innobase/pars/pars0pars.c
innobase/pars/pars0pars.c
+2
-2
innobase/pars/pars0sym.c
innobase/pars/pars0sym.c
+1
-4
innobase/row/row0mysql.c
innobase/row/row0mysql.c
+26
-25
innobase/row/row0sel.c
innobase/row/row0sel.c
+5
-5
innobase/trx/trx0roll.c
innobase/trx/trx0roll.c
+2
-2
innobase/trx/trx0sys.c
innobase/trx/trx0sys.c
+1
-1
No files found.
innobase/dict/dict0dict.c
View file @
fff42272
...
...
@@ -70,7 +70,7 @@ dict_col_reposition_in_cache(
/*=========================*/
dict_table_t
*
table
,
/* in: table */
dict_col_t
*
col
,
/* in: column */
c
har
*
new_name
);
/* in: new table name */
c
onst
char
*
new_name
);
/* in: new table name */
/**************************************************************************
Removes a column from the data dictionary hash table. */
static
...
...
@@ -309,7 +309,7 @@ dict_table_get_index_noninline(
/*===========================*/
/* out: index, NULL if does not exist */
dict_table_t
*
table
,
/* in: table */
c
har
*
name
)
/* in: index name */
c
onst
char
*
name
)
/* in: index name */
{
return
(
dict_table_get_index
(
table
,
name
));
}
...
...
@@ -693,9 +693,10 @@ directory dict_table_get_low is usually the appropriate function. */
dict_table_t
*
dict_table_get
(
/*===========*/
/* out: table, NULL if does not exist */
char
*
table_name
,
/* in: table name */
trx_t
*
trx
)
/* in: transaction handle or NULL */
/* out: table, NULL if
does not exist */
const
char
*
table_name
,
/* in: table name */
trx_t
*
trx
)
/* in: transaction handle or NULL */
{
dict_table_t
*
table
;
...
...
@@ -722,9 +723,10 @@ Returns a table object and increments MySQL open handle count on the table. */
dict_table_t
*
dict_table_get_and_increment_handle_count
(
/*======================================*/
/* out: table, NULL if does not exist */
char
*
table_name
,
/* in: table name */
trx_t
*
trx
)
/* in: transaction handle or NULL */
/* out: table, NULL if
does not exist */
const
char
*
table_name
,
/* in: table name */
trx_t
*
trx
)
/* in: transaction handle or NULL */
{
dict_table_t
*
table
;
...
...
@@ -886,7 +888,7 @@ dict_table_rename_in_cache(
/*=======================*/
/* out: TRUE if success */
dict_table_t
*
table
,
/* in: table */
c
har
*
new_name
,
/* in: new name */
c
onst
char
*
new_name
,
/* in: new name */
ibool
rename_also_foreigns
)
/* in: in ALTER TABLE we want
to preserve the original table name
in constraints which reference it */
...
...
@@ -1294,7 +1296,7 @@ dict_col_reposition_in_cache(
/*=========================*/
dict_table_t
*
table
,
/* in: table */
dict_col_t
*
col
,
/* in: column */
c
har
*
new_name
)
/* in: new table name */
c
onst
char
*
new_name
)
/* in: new table name */
{
ulint
fold
;
...
...
@@ -2019,7 +2021,7 @@ dict_foreign_find_index(
column types must match */
{
dict_index_t
*
index
;
c
har
*
col_name
;
c
onst
char
*
col_name
;
ulint
i
;
index
=
dict_table_get_first_index
(
table
);
...
...
@@ -2564,14 +2566,14 @@ static
char
*
dict_strip_comments
(
/*================*/
/* out, own: SQL string stripped from
comments; the caller must free this
with mem_free()! */
char
*
sql_string
)
/* in: SQL string */
/* out, own: SQL string stripped from
comments; the caller must free this
with mem_free()! */
c
onst
c
har
*
sql_string
)
/* in: SQL string */
{
char
*
str
;
char
*
sptr
;
char
*
ptr
;
char
*
str
;
c
onst
c
har
*
sptr
;
char
*
ptr
;
str
=
mem_alloc
(
strlen
(
sql_string
)
+
1
);
...
...
@@ -2970,7 +2972,8 @@ col_loop1:
}
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
->
n_fields
=
i
;
foreign
->
foreign_col_names
=
mem_heap_alloc
(
foreign
->
heap
,
...
...
@@ -3244,16 +3247,19 @@ allowed to contain more fields than mentioned in the constraint. */
ulint
dict_create_foreign_constraints
(
/*============================*/
/* out: error code or DB_SUCCESS */
trx_t
*
trx
,
/* in: transaction */
char
*
sql_string
,
/* in: table create or ALTER TABLE
statement where foreign keys are declared like:
FOREIGN KEY (a, b) REFERENCES table2(c, d),
table2 can be written also with the database
name before it: test.table2; the default
database is the database of parameter name */
char
*
name
)
/* in: table full name in the normalized form
database_name/table_name */
/* out: error code or DB_SUCCESS */
trx_t
*
trx
,
/* in: transaction */
const
char
*
sql_string
,
/* in: table create statement where
foreign keys are declared like:
FOREIGN KEY (a, b) REFERENCES
table2(c, d), table2 can be written
also with the database
name before it: test.table2; the
default database id the database of
parameter name */
const
char
*
name
)
/* in: table full name in the
normalized form
database_name/table_name */
{
char
*
str
;
ulint
err
;
...
...
innobase/dict/dict0load.c
View file @
fff42272
...
...
@@ -27,9 +27,10 @@ Finds the first table name in the given database. */
char
*
dict_get_first_table_name_in_db
(
/*============================*/
/* out, own: table name, NULL if does not exist;
the caller must free the memory in the string! */
char
*
name
)
/* in: database name which ends to '/' */
/* out, own: table name, NULL if
does not exist; the caller must
free the memory in the string! */
const
char
*
name
)
/* in: database name which ends to '/' */
{
dict_table_t
*
sys_tables
;
btr_pcur_t
pcur
;
...
...
@@ -389,8 +390,8 @@ Report that an index field or index for a table has been delete marked. */
static
void
dict_load_report_deleted_index
(
char
*
name
,
/* in: table name */
ulint
field
)
/* in: index field, or ULINT_UNDEFINED */
c
onst
c
har
*
name
,
/* in: table name */
ulint
field
)
/* in: index field, or ULINT_UNDEFINED */
{
fputs
(
"InnoDB: Error: data dictionary entry"
" for table "
,
stderr
);
...
...
@@ -688,12 +689,13 @@ dictionary cache. */
dict_table_t
*
dict_load_table
(
/*============*/
/* out: table, NULL if does not exist; if the table is
stored in an .ibd file, but the file does not exist,
then we set the ibd_file_missing flag TRUE in the table
object we return */
char
*
name
)
/* in: table name in the databasename/tablename
format */
/* out: table, NULL if does not exist;
if the table is stored in an .ibd file,
but the file does not exist,
then we set the ibd_file_missing flag TRUE
in the table object we return */
const
char
*
name
)
/* in: table name in the
databasename/tablename format */
{
ibool
ibd_file_missing
=
FALSE
;
dict_table_t
*
table
;
...
...
@@ -1185,8 +1187,8 @@ already in the dictionary cache. */
ulint
dict_load_foreigns
(
/*===============*/
/* out: DB_SUCCESS or error code */
char
*
table_name
)
/* in: table name */
/* out: DB_SUCCESS or error code */
c
onst
c
har
*
table_name
)
/* in: table name */
{
btr_pcur_t
pcur
;
mem_heap_t
*
heap
;
...
...
innobase/dict/dict0mem.c
View file @
fff42272
...
...
@@ -30,15 +30,14 @@ dict_table_t*
dict_mem_table_create
(
/*==================*/
/* out, own: table object */
c
har
*
name
,
/* in: table name */
ulint
space
,
/* in: space where the clustered index of
c
onst
char
*
name
,
/* in: table name */
ulint
space
,
/* in: space where the clustered index of
the table is placed; this parameter is
ignored if the table is made a member of
a cluster */
ulint
n_cols
)
/* in: number of columns */
ulint
n_cols
)
/* in: number of columns */
{
dict_table_t
*
table
;
char
*
str
;
mem_heap_t
*
heap
;
ut_ad
(
name
);
...
...
@@ -48,11 +47,9 @@ dict_mem_table_create(
table
=
mem_heap_alloc
(
heap
,
sizeof
(
dict_table_t
));
table
->
heap
=
heap
;
str
=
mem_heap_strdup
(
heap
,
name
);
table
->
type
=
DICT_TABLE_ORDINARY
;
table
->
name
=
str
;
table
->
name
=
mem_heap_strdup
(
heap
,
name
)
;
table
->
space
=
space
;
table
->
ibd_file_missing
=
FALSE
;
table
->
tablespace_discarded
=
FALSE
;
...
...
@@ -103,11 +100,11 @@ dict_table_t*
dict_mem_cluster_create
(
/*====================*/
/* out, own: cluster object */
c
har
*
name
,
/* in: cluster name */
ulint
space
,
/* in: space where the clustered indexes
c
onst
char
*
name
,
/* in: cluster name */
ulint
space
,
/* in: space where the clustered indexes
of the member tables are placed */
ulint
n_cols
,
/* in: number of columns */
ulint
mix_len
)
/* in: length of the common key prefix in the
ulint
n_cols
,
/* in: number of columns */
ulint
mix_len
)
/* in: length of the common key prefix in the
cluster */
{
dict_table_t
*
cluster
;
...
...
@@ -127,7 +124,7 @@ void
dict_mem_table_make_cluster_member
(
/*===============================*/
dict_table_t
*
table
,
/* in: non-published table */
c
har
*
cluster_name
)
/* in: cluster name */
c
onst
char
*
cluster_name
)
/* in: cluster name */
{
table
->
type
=
DICT_TABLE_CLUSTER_MEMBER
;
table
->
cluster_name
=
cluster_name
;
...
...
@@ -140,7 +137,7 @@ void
dict_mem_table_add_col
(
/*===================*/
dict_table_t
*
table
,
/* in: table */
c
har
*
name
,
/* in: column name */
c
onst
char
*
name
,
/* in: column name */
ulint
mtype
,
/* in: main datatype */
ulint
prtype
,
/* in: precise type */
ulint
len
,
/* in: length */
...
...
@@ -174,14 +171,15 @@ Creates an index memory object. */
dict_index_t
*
dict_mem_index_create
(
/*==================*/
/* out, own: index object */
char
*
table_name
,
/* in: table name */
char
*
index_name
,
/* in: index name */
ulint
space
,
/* in: space where the index tree is placed,
ignored if the index is of the clustered
type */
ulint
type
,
/* in: DICT_UNIQUE, DICT_CLUSTERED, ... ORed */
ulint
n_fields
)
/* in: number of fields */
/* out, own: index object */
const
char
*
table_name
,
/* in: table name */
const
char
*
index_name
,
/* in: index name */
ulint
space
,
/* in: space where the index tree is
placed, ignored if the index is of
the clustered type */
ulint
type
,
/* in: DICT_UNIQUE,
DICT_CLUSTERED, ... ORed */
ulint
n_fields
)
/* in: number of fields */
{
dict_index_t
*
index
;
mem_heap_t
*
heap
;
...
...
@@ -259,7 +257,7 @@ void
dict_mem_index_add_field
(
/*=====================*/
dict_index_t
*
index
,
/* in: index */
c
har
*
name
,
/* in: column name */
c
onst
char
*
name
,
/* in: column name */
ulint
order
,
/* in: order criterion; 0 means an
ascending order */
ulint
prefix_len
)
/* in: 0 or the column prefix length
...
...
innobase/fil/fil0fil.c
View file @
fff42272
...
...
@@ -390,11 +390,12 @@ Appends a new file to the chain of files of a space. File must be closed. */
void
fil_node_create
(
/*============*/
char
*
name
,
/* in: file name (file must be closed) */
ulint
size
,
/* in: file size in database blocks, rounded downwards
to an integer */
ulint
id
,
/* in: space id where to append */
ibool
is_raw
)
/* in: TRUE if a raw device or a raw disk partition */
const
char
*
name
,
/* in: file name (file must be closed) */
ulint
size
,
/* in: file size in database blocks, rounded
downwards to an integer */
ulint
id
,
/* in: space id where to append */
ibool
is_raw
)
/* in: TRUE if a raw device or
a raw disk partition */
{
fil_system_t
*
system
=
fil_system
;
fil_node_t
*
node
;
...
...
@@ -804,10 +805,10 @@ there is an error, prints an error message to the .err log. */
ibool
fil_space_create
(
/*=============*/
/* out: TRUE if success */
char
*
name
,
/* in: space name */
ulint
id
,
/* in: space id */
ulint
purpose
)
/* in: FIL_TABLESPACE, or FIL_LOG if log */
/* out: TRUE if success */
c
onst
c
har
*
name
,
/* in: space name */
ulint
id
,
/* in: space id */
ulint
purpose
)
/* in: FIL_TABLESPACE, or FIL_LOG if log */
{
fil_system_t
*
system
=
fil_system
;
fil_space_t
*
space
;
...
...
@@ -1542,16 +1543,18 @@ static
void
fil_op_write_log
(
/*=============*/
ulint
type
,
/* in: MLOG_FILE_CREATE, MLOG_FILE_DELETE, or
MLOG_FILE_RENAME */
ulint
space_id
,
/* in: space id */
char
*
name
,
/* in: table name in the familiar
'databasename/tablename' format, or the file
path in the case of MLOG_FILE_DELETE */
char
*
new_name
,
/* in: if type is MLOG_FILE_RENAME, the new
table name in the 'databasename/tablename'
format */
mtr_t
*
mtr
)
/* in: mini-transaction handle */
ulint
type
,
/* in: MLOG_FILE_CREATE,
MLOG_FILE_DELETE, or
MLOG_FILE_RENAME */
ulint
space_id
,
/* in: space id */
const
char
*
name
,
/* in: table name in the familiar
'databasename/tablename' format, or
the file path in the case of
MLOG_FILE_DELETE */
const
char
*
new_name
,
/* in: if type is MLOG_FILE_RENAME,
the new table name in the
'databasename/tablename' format */
mtr_t
*
mtr
)
/* in: mini-transaction handle */
{
byte
*
log_ptr
;
...
...
@@ -1960,14 +1963,15 @@ tablespace memory cache. */
ibool
fil_rename_tablespace
(
/*==================*/
/* out: TRUE if success */
char
*
old_name
,
/* in: old table name in the standard
databasename/tablename format of InnoDB, or
NULL if we do the rename based on the space
id only */
ulint
id
,
/* in: space id */
char
*
new_name
)
/* in: new table name in the standard
databasename/tablename format of InnoDB */
/* out: TRUE if success */
const
char
*
old_name
,
/* in: old table name in the standard
databasename/tablename format of
InnoDB, or NULL if we do the rename
based on the space id only */
ulint
id
,
/* in: space id */
const
char
*
new_name
)
/* in: new table name in the standard
databasename/tablename format
of InnoDB */
{
fil_system_t
*
system
=
fil_system
;
ibool
success
;
...
...
@@ -2124,15 +2128,16 @@ path '.'. */
ulint
fil_create_new_single_table_tablespace
(
/*===================================*/
/* out: DB_SUCCESS or error code */
ulint
*
space_id
,
/* in/out: space id; if this is != 0, then
this is an input parameter, otherwise
output */
char
*
tablename
,
/* in: the table name in the usual
databasename/tablename format of InnoDB */
ulint
size
)
/* in: the initial size of the tablespace file
in pages, must be >= FIL_IBD_FILE_INITIAL_SIZE
*/
/* out: DB_SUCCESS or error code */
ulint
*
space_id
,
/* in/out: space id; if this is != 0,
then this is an input parameter,
otherwise output */
const
char
*
tablename
,
/* in: the table name in the usual
databasename/tablename format
of InnoDB */
ulint
size
)
/* in: the initial size of the
tablespace file in pages,
must be >= FIL_IBD_FILE_INITIAL_SIZE */
{
os_file_t
file
;
ibool
ret
;
...
...
@@ -2293,12 +2298,12 @@ lsn's just by looking at that flush lsn. */
ibool
fil_reset_too_high_lsns
(
/*====================*/
/* out: TRUE if success */
c
har
*
name
,
/* in: table name in the databasename/tablenam
e
format */
dulint
current_lsn
)
/* in: reset lsn's if the lsn stamped to
FIL_PAGE_FILE_FLUSH_LSN in the first page is
too high */
/* out: TRUE if success */
c
onst
char
*
name
,
/* in: table name in th
e
databasename/tablename
format */
dulint
current_lsn
)
/* in: reset lsn's if the lsn stamped
to FIL_PAGE_FILE_FLUSH_LSN in the
first page is
too high */
{
os_file_t
file
;
char
*
filepath
;
...
...
@@ -2433,10 +2438,10 @@ closes it after we have looked at the space id in it. */
ibool
fil_open_single_table_tablespace
(
/*=============================*/
/* out: TRUE if success */
ulint
id
,
/* in: space id */
c
har
*
name
)
/* in: table name in the databasename/tablenam
e
format */
/* out: TRUE if success */
ulint
id
,
/* in: space id */
c
onst
char
*
name
)
/* in: table name in th
e
databasename/tablename
format */
{
os_file_t
file
;
char
*
filepath
;
...
...
@@ -2937,20 +2942,22 @@ there may be many tablespaces which are not yet in the memory cache. */
ibool
fil_space_for_table_exists_in_mem
(
/*==============================*/
/* out: TRUE if a matching tablespace exists
in the memory cache */
ulint
id
,
/* in: space id */
char
*
name
,
/* in: table name in the standard
'databasename/tablename' format */
ibool
mark_space
,
/* in: in crash recovery, at database startup
we mark all spaces which have an associated
table in the InnoDB data dictionary, so that
we can print a warning about orphaned
tablespaces */
ibool
print_error_if_does_not_exist
)
/* in: print detailed error information to
the .err log if a matching tablespace is
not found from memory */
/* out: TRUE if a matching tablespace
exists in the memory cache */
ulint
id
,
/* in: space id */
const
char
*
name
,
/* in: table name in the standard
'databasename/tablename' format */
ibool
mark_space
,
/* in: in crash recovery, at database
startup we mark all spaces which have
an associated table in the InnoDB
data dictionary, so that
we can print a warning about orphaned
tablespaces */
ibool
print_error_if_does_not_exist
)
/* in: print detailed error
information to the .err log if a
matching tablespace is not found from
memory */
{
fil_system_t
*
system
=
fil_system
;
fil_space_t
*
namespace
;
...
...
innobase/include/data0data.h
View file @
fff42272
...
...
@@ -86,7 +86,7 @@ void
dfield_set_data
(
/*============*/
dfield_t
*
field
,
/* in: field */
void
*
data
,
/* in: data */
const
void
*
data
,
/* in: data */
ulint
len
);
/* in: length or UNIV_SQL_NULL */
/**************************************************************************
Writes an SQL null field full of zeros. */
...
...
innobase/include/data0data.ic
View file @
fff42272
...
...
@@ -93,7 +93,7 @@ void
dfield_set_data(
/*============*/
dfield_t* field, /* in: field */
void*
data, /* in: data */
const void*
data, /* in: data */
ulint len) /* in: length or UNIV_SQL_NULL */
{
ut_ad(field);
...
...
innobase/include/dict0dict.h
View file @
fff42272
...
...
@@ -166,7 +166,7 @@ dict_table_rename_in_cache(
/*=======================*/
/* out: TRUE if success */
dict_table_t
*
table
,
/* in: table */
c
har
*
new_name
,
/* in: new name */
c
onst
char
*
new_name
,
/* in: new name */
ibool
rename_also_foreigns
);
/* in: in ALTER TABLE we want
to preserve the original table name
in constraints which reference it */
...
...
@@ -210,16 +210,19 @@ fields than mentioned in the constraint. */
ulint
dict_create_foreign_constraints
(
/*============================*/
/* out: error code or DB_SUCCESS */
trx_t
*
trx
,
/* in: transaction */
char
*
sql_string
,
/* in: table create statement where
foreign keys are declared like:
FOREIGN KEY (a, b) REFERENCES table2(c, d),
table2 can be written also with the database
name before it: test.table2; the default
database id the database of parameter name */
char
*
name
);
/* in: table full name in the normalized form
database_name/table_name */
/* out: error code or DB_SUCCESS */
trx_t
*
trx
,
/* in: transaction */
const
char
*
sql_string
,
/* in: table create statement where
foreign keys are declared like:
FOREIGN KEY (a, b) REFERENCES
table2(c, d), table2 can be written
also with the database
name before it: test.table2; the
default database id the database of
parameter name */
const
char
*
name
);
/* in: table full name in the
normalized form
database_name/table_name */
/**************************************************************************
Parses the CONSTRAINT id's to be dropped in an ALTER TABLE statement. */
...
...
@@ -246,9 +249,10 @@ directory dict_table_get_low is usually the appropriate function. */
dict_table_t
*
dict_table_get
(
/*===========*/
/* out: table, NULL if does not exist */
char
*
table_name
,
/* in: table name */
trx_t
*
trx
);
/* in: transaction handle */
/* out: table, NULL if
does not exist */
const
char
*
table_name
,
/* in: table name */
trx_t
*
trx
);
/* in: transaction handle */
/**************************************************************************
Returns a table object and increments MySQL open handle count on the table.
*/
...
...
@@ -256,9 +260,10 @@ Returns a table object and increments MySQL open handle count on the table.
dict_table_t
*
dict_table_get_and_increment_handle_count
(
/*======================================*/
/* out: table, NULL if does not exist */
char
*
table_name
,
/* in: table name */
trx_t
*
trx
);
/* in: transaction handle or NULL */
/* out: table, NULL if
does not exist */
const
char
*
table_name
,
/* in: table name */
trx_t
*
trx
);
/* in: transaction handle or NULL */
/**************************************************************************
Returns a table object, based on table id, and memoryfixes it. */
...
...
@@ -290,8 +295,8 @@ UNIV_INLINE
dict_table_t
*
dict_table_check_if_in_cache_low
(
/*==============================*/
/* out: table, NULL if not found */
char
*
table_name
);
/* in: table name */
/* out: table, NULL if not found */
c
onst
c
har
*
table_name
);
/* in: table name */
/**************************************************************************
Gets a table; loads it to the dictionary cache if necessary. A low-level
function. */
...
...
@@ -299,8 +304,8 @@ UNIV_INLINE
dict_table_t
*
dict_table_get_low
(
/*===============*/
/* out: table, NULL if not found */
char
*
table_name
);
/* in: table name */
/* out: table, NULL if not found */
c
onst
c
har
*
table_name
);
/* in: table name */
/**************************************************************************
Returns an index object. */
UNIV_INLINE
...
...
@@ -309,7 +314,7 @@ dict_table_get_index(
/*=================*/
/* out: index, NULL if does not exist */
dict_table_t
*
table
,
/* in: table */
c
har
*
name
);
/* in: index name */
c
onst
char
*
name
);
/* in: index name */
/**************************************************************************
Returns an index object. */
...
...
@@ -318,7 +323,7 @@ dict_table_get_index_noninline(
/*===========================*/
/* out: index, NULL if does not exist */
dict_table_t
*
table
,
/* in: table */
c
har
*
name
);
/* in: index name */
c
onst
char
*
name
);
/* in: index name */
/**************************************************************************
Prints a table data. */
...
...
@@ -340,7 +345,7 @@ Prints a table data when we know the table name. */
void
dict_table_print_by_name
(
/*=====================*/
char
*
name
);
c
onst
c
har
*
name
);
#endif
/* UNIV_DEBUG */
/**************************************************************************
Outputs info on foreign keys of a table. */
...
...
innobase/include/dict0dict.ic
View file @
fff42272
...
...
@@ -536,8 +536,8 @@ UNIV_INLINE
dict_table_t*
dict_table_check_if_in_cache_low(
/*==============================*/
/* out: table, NULL if not found */
char* table_name) /* in: table name */
/* out: table, NULL if not found */
c
onst c
har* table_name) /* in: table name */
{
dict_table_t* table;
ulint table_fold;
...
...
@@ -562,8 +562,8 @@ UNIV_INLINE
dict_table_t*
dict_table_get_low(
/*===============*/
/* out: table, NULL if not found */
char* table_name) /* in: table name */
/* out: table, NULL if not found */
c
onst c
har* table_name) /* in: table name */
{
dict_table_t* table;
...
...
@@ -642,7 +642,7 @@ dict_table_get_index(
/*=================*/
/* out: index, NULL if does not exist */
dict_table_t* table, /* in: table */
c
har*
name) /* in: index name */
c
onst char*
name) /* in: index name */
{
dict_index_t* index = NULL;
...
...
innobase/include/dict0load.h
View file @
fff42272
...
...
@@ -31,9 +31,10 @@ Finds the first table name in the given database. */
char
*
dict_get_first_table_name_in_db
(
/*============================*/
/* out, own: table name, NULL if does not exist;
the caller must free the memory in the string! */
char
*
name
);
/* in: database name which ends to '/' */
/* out, own: table name, NULL if
does not exist; the caller must free
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
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_load_table
(
/*============*/
/* out: table, NULL if does not exist; if the table is
stored in an .ibd file, but the file does not exist,
then we set the ibd_file_missing flag TRUE in the table
object we return */
char
*
name
);
/* in: table name */
/* out: table, NULL if does not exist;
if the table is stored in an .ibd file,
but the file does not exist,
then we set the ibd_file_missing flag TRUE
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. */
...
...
@@ -75,8 +78,8 @@ already in the dictionary cache. */
ulint
dict_load_foreigns
(
/*===============*/
/* out: DB_SUCCESS or error code */
char
*
table_name
);
/* in: table name */
/* out: DB_SUCCESS or error code */
c
onst
c
har
*
table_name
);
/* in: table name */
/************************************************************************
Prints to the standard output information on all tables found in the data
dictionary system table. */
...
...
innobase/include/dict0mem.h
View file @
fff42272
...
...
@@ -48,27 +48,28 @@ Creates a table memory object. */
dict_table_t
*
dict_mem_table_create
(
/*==================*/
/* out, own: table object */
char
*
name
,
/* in: table name */
ulint
space
,
/* in: space where the clustered index of
the table is placed; this parameter is
ignored if the table is made a member of
a cluster */
ulint
n_cols
);
/* in: number of columns */
/* out, own: table object */
c
onst
c
har
*
name
,
/* in: table name */
ulint
space
,
/* in: space where the clustered index
of the table is placed; this parameter
is ignored if the table is made
a member of
a cluster */
ulint
n_cols
);
/* in: number of columns */
/**************************************************************************
Creates a cluster memory object. */
dict_cluster_t
*
dict_mem_cluster_create
(
/*====================*/
/* out, own: cluster object (where the type
dict_cluster_t == dict_table_t) */
char
*
name
,
/* in: cluster name */
ulint
space
,
/* in: space where the clustered indexes
of the member tables are placed */
ulint
n_cols
,
/* in: number of columns */
ulint
mix_len
);
/* in: length of the common key prefix in the
cluster */
/* out, own: cluster object (where the
type dict_cluster_t == dict_table_t) */
const
char
*
name
,
/* in: cluster name */
ulint
space
,
/* in: space where the clustered
indexes of the member tables are
placed */
ulint
n_cols
,
/* in: number of columns */
ulint
mix_len
);
/* in: length of the common key prefix
in the cluster */
/**************************************************************************
Declares a non-published table as a member in a cluster. */
...
...
@@ -76,7 +77,7 @@ void
dict_mem_table_make_cluster_member
(
/*===============================*/
dict_table_t
*
table
,
/* in: non-published table */
c
har
*
cluster_name
);
/* in: cluster name */
c
onst
char
*
cluster_name
);
/* in: cluster name */
/**************************************************************************
Adds a column definition to a table. */
...
...
@@ -84,7 +85,7 @@ void
dict_mem_table_add_col
(
/*===================*/
dict_table_t
*
table
,
/* in: table */
c
har
*
name
,
/* in: column name */
c
onst
char
*
name
,
/* in: column name */
ulint
mtype
,
/* in: main datatype */
ulint
prtype
,
/* in: precise type */
ulint
len
,
/* in: length */
...
...
@@ -95,14 +96,15 @@ Creates an index memory object. */
dict_index_t
*
dict_mem_index_create
(
/*==================*/
/* out, own: index object */
char
*
table_name
,
/* in: table name */
char
*
index_name
,
/* in: index name */
ulint
space
,
/* in: space where the index tree is placed,
ignored if the index is of the clustered
type */
ulint
type
,
/* in: DICT_UNIQUE, DICT_CLUSTERED, ... ORed */
ulint
n_fields
);
/* in: number of fields */
/* out, own: index object */
const
char
*
table_name
,
/* in: table name */
const
char
*
index_name
,
/* in: index name */
ulint
space
,
/* in: space where the index tree is
placed, ignored if the index is of
the clustered type */
ulint
type
,
/* in: DICT_UNIQUE,
DICT_CLUSTERED, ... ORed */
ulint
n_fields
);
/* in: number of fields */
/**************************************************************************
Adds a field definition to an index. NOTE: does not take a copy
of the column name if the field is a column. The memory occupied
...
...
@@ -112,7 +114,7 @@ void
dict_mem_index_add_field
(
/*=====================*/
dict_index_t
*
index
,
/* in: index */
c
har
*
name
,
/* in: column name */
c
onst
char
*
name
,
/* in: column name */
ulint
order
,
/* in: order criterion; 0 means an
ascending order */
ulint
prefix_len
);
/* in: 0 or the column prefix length
...
...
@@ -142,7 +144,7 @@ struct dict_col_struct{
clustered index */
ulint
ord_part
;
/* count of how many times this column
appears in ordering fields of an index */
c
har
*
name
;
/* name */
c
onst
char
*
name
;
/* name */
dtype_t
type
;
/* data type */
dict_table_t
*
table
;
/* back pointer to table of this column */
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 */
struct
dict_field_struct
{
dict_col_t
*
col
;
/* pointer to the table column */
c
har
*
name
;
/* name of the column */
c
onst
char
*
name
;
/* name of the column */
ulint
order
;
/* flags for ordering this field:
DICT_DESCEND, ... */
ulint
prefix_len
;
/* 0 or the length of the column
...
...
@@ -197,8 +199,8 @@ struct dict_index_struct{
dulint
id
;
/* id of the index */
mem_heap_t
*
heap
;
/* memory heap */
ulint
type
;
/* index type */
c
har
*
name
;
/* index name */
c
har
*
table_name
;
/* table name */
c
onst
char
*
name
;
/* index name */
c
onst
char
*
table_name
;
/* table name */
dict_table_t
*
table
;
/* back pointer to table */
ulint
space
;
/* space where the index tree is placed */
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 */
char
*
foreign_table_name
;
/* foreign table name */
dict_table_t
*
foreign_table
;
/* table where the foreign key is */
c
har
**
foreign_col_names
;
/* names of the columns in the
c
onst
char
**
foreign_col_names
;
/* names of the columns in the
foreign key */
char
*
referenced_table_name
;
/* referenced table name */
dict_table_t
*
referenced_table
;
/* table where the referenced key
is */
c
har
**
referenced_col_names
;
/* names of the referenced
c
onst
char
**
referenced_col_names
;
/* names of the referenced
columns in the referenced table */
ulint
n_fields
;
/* number of indexes' first fields
for which the the foreign key
...
...
@@ -295,7 +297,7 @@ struct dict_table_struct{
dulint
id
;
/* id of the table or cluster */
ulint
type
;
/* DICT_TABLE_ORDINARY, ... */
mem_heap_t
*
heap
;
/* memory heap */
c
har
*
name
;
/* table name */
c
onst
char
*
name
;
/* table name */
ulint
space
;
/* space where the clustered index of the
table is placed */
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
];
/* mix id of a mixed table written in
a compressed form */
c
har
*
cluster_name
;
/* if the table is a member in a
c
onst
char
*
cluster_name
;
/* if the table is a member in a
cluster, this is the name of the cluster */
/*----------------------*/
ibool
does_not_fit_in_memory
;
...
...
innobase/include/fil0fil.h
View file @
fff42272
...
...
@@ -132,11 +132,12 @@ Appends a new file to the chain of files of a space. File must be closed. */
void
fil_node_create
(
/*============*/
char
*
name
,
/* in: file name (file must be closed) */
ulint
size
,
/* in: file size in database blocks, rounded downwards
to an integer */
ulint
id
,
/* in: space id where to append */
ibool
is_raw
);
/* in: TRUE if a raw device or a raw disk partition */
const
char
*
name
,
/* in: file name (file must be closed) */
ulint
size
,
/* in: file size in database blocks, rounded
downwards to an integer */
ulint
id
,
/* in: space id where to append */
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
the amount given. */
...
...
@@ -155,10 +156,10 @@ there is an error, prints an error message to the .err log. */
ibool
fil_space_create
(
/*=============*/
/* out: TRUE if success */
char
*
name
,
/* in: space name */
ulint
id
,
/* in: space id */
ulint
purpose
);
/* in: FIL_TABLESPACE, or FIL_LOG if log */
/* out: TRUE if success */
c
onst
c
har
*
name
,
/* in: space name */
ulint
id
,
/* in: space id */
ulint
purpose
);
/* in: FIL_TABLESPACE, or FIL_LOG if log */
/***********************************************************************
Frees a space object from a the tablespace memory cache. Closes the files in
the chain but does not delete them. */
...
...
@@ -327,14 +328,15 @@ tablespace memory cache. */
ibool
fil_rename_tablespace
(
/*==================*/
/* out: TRUE if success */
char
*
old_name
,
/* in: old table name in the standard
databasename/tablename format of InnoDB, or
NULL if we do the rename based on the space
id only */
ulint
id
,
/* in: space id */
char
*
new_name
);
/* in: new table name in the standard
databasename/tablename format of InnoDB */
/* out: TRUE if success */
const
char
*
old_name
,
/* in: old table name in the standard
databasename/tablename format of
InnoDB, or NULL if we do the rename
based on the space id only */
ulint
id
,
/* in: space id */
const
char
*
new_name
);
/* in: new table name in the standard
databasename/tablename format
of InnoDB */
/***********************************************************************
Creates a new single-table tablespace to a database directory of MySQL.
Database directories are under the 'datadir' of MySQL. The datadir is the
...
...
@@ -344,14 +346,16 @@ path '.'. */
ulint
fil_create_new_single_table_tablespace
(
/*===================================*/
/* out: DB_SUCCESS or error code */
ulint
*
space_id
,
/* in/out: space id; if this is != 0, then
this is an input parameter, otherwise
output */
char
*
tablename
,
/* in: the table name in the usual
databasename/tablename format of InnoDB */
ulint
size
);
/* in: the initial size of the tablespace file
in pages, must be > 0 */
/* out: DB_SUCCESS or error code */
ulint
*
space_id
,
/* in/out: space id; if this is != 0,
then this is an input parameter,
otherwise output */
const
char
*
tablename
,
/* in: the table name in the usual
databasename/tablename format
of InnoDB */
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
it. If does not succeed, prints an error message to the .err log. This
...
...
@@ -362,10 +366,10 @@ protection of the dictionary mutex, so that two users cannot race here. */
ibool
fil_open_single_table_tablespace
(
/*=============================*/
/* out: TRUE if success */
ulint
id
,
/* in: space id */
c
har
*
name
);
/* in: table name in the databasename/tablenam
e
format */
/* out: TRUE if success */
ulint
id
,
/* in: space id */
c
onst
char
*
name
);
/* in: table name in th
e
databasename/tablename
format */
/************************************************************************
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
...
...
@@ -379,12 +383,12 @@ lsn's just by looking at that flush lsn. */
ibool
fil_reset_too_high_lsns
(
/*====================*/
/* out: TRUE if success */
c
har
*
name
,
/* in: table name in the databasename/tablenam
e
format */
dulint
current_lsn
);
/* in: reset lsn's if the lsn stamped to
FIL_PAGE_FILE_FLUSH_LSN in the first page is
too high */
/* out: TRUE if success */
c
onst
char
*
name
,
/* in: table name in th
e
databasename/tablename
format */
dulint
current_lsn
);
/* in: reset lsn's if the lsn stamped
to FIL_PAGE_FILE_FLUSH_LSN in the
first page is
too high */
/************************************************************************
At the server startup, if we need crash recovery, scans the database
directories under the MySQL datadir, looking for .ibd files. Those files are
...
...
@@ -436,20 +440,22 @@ there may be many tablespaces which are not yet in the memory cache. */
ibool
fil_space_for_table_exists_in_mem
(
/*==============================*/
/* out: TRUE if a matching tablespace
exists in the memory cache */
ulint
id
,
/* in: space id */
char
*
name
,
/* in: table name in the standard
'databasename/tablename' format */
ibool
mark_space
,
/* in: in crash recovery, at database startup
we mark all spaces which have an associated
table in the InnoDB data dictionary, so that
we can print a warning about orphaned
tablespaces */
ibool
print_error_if_does_not_exist
);
/* in: print detailed error information to
the .err log if a matching tablespace is
not found from memory */
/* out: TRUE if a matching tablespace
exists in the memory cache */
ulint
id
,
/* in: space id */
const
char
*
name
,
/* in: table name in the standard
'databasename/tablename' format */
ibool
mark_space
,
/* in: in crash recovery, at database
startup we mark all spaces which have
an associated table in the InnoDB
data dictionary, so that
we can print a warning about orphaned
tablespaces */
ibool
print_error_if_does_not_exist
);
/* in: print detailed error
information to the .err log if a
matching tablespace is not found from
memory */
/**************************************************************************
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
...
...
innobase/include/os0file.h
View file @
fff42272
...
...
@@ -177,13 +177,15 @@ and '..' items at the start of the directory listing. */
os_file_dir_t
os_file_opendir
(
/*============*/
/* out: directory stream, NULL if error */
char
*
dirname
,
/* in: directory name; it must not contain
a trailing '\' or '/' */
ibool
error_is_fatal
);
/* in: TRUE if we should treat an error as a
fatal error; if we try to open symlinks then
we do not wish a fatal error if it happens
not to be a directory */
/* out: directory stream, NULL if
error */
const
char
*
dirname
,
/* in: directory name; it must not
contain a trailing '\' or '/' */
ibool
error_is_fatal
);
/* in: TRUE if we should treat an
error as a fatal error; if we try to
open symlinks then we do not wish a
fatal error if it happens not to be
a directory */
/***************************************************************************
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
of the directory */
c
har
*
dirname
,
/* in: directory name or path */
c
onst
char
*
dirname
,
/* in: directory name or path */
os_file_dir_t
dir
,
/* in: directory stream */
os_file_stat_t
*
info
);
/* in/out: buffer where the info is returned */
/*********************************************************************
...
...
@@ -213,81 +215,89 @@ fail_if_exists arguments is true. */
ibool
os_file_create_directory
(
/*=====================*/
/* out: TRUE if call succeeds, FALSE on
error */
c
har
*
pathname
,
/* in: directory name as null-terminated
string */
ibool
fail_if_exists
);
/* in: if TRUE, pre-existing directory is
treated as an error. */
/* out: TRUE if call succeeds,
FALSE on
error */
c
onst
char
*
pathname
,
/* in: directory name as
null-terminated
string */
ibool
fail_if_exists
);
/* in: if TRUE, pre-existing directory
is
treated as an error. */
/********************************************************************
A simple function to open or create a file. */
os_file_t
os_file_create_simple
(
/*==================*/
/* out, own: handle to the file, not defined if error,
error number can be retrieved with
os_file_get_last_error */
char
*
name
,
/* in: name of the file or path as a null-terminated
string */
ulint
create_mode
,
/* in: OS_FILE_OPEN if an existing file is opened
(if does not exist, error), or OS_FILE_CREATE if a new
file is created (if exists, error), or
OS_FILE_CREATE_PATH if new file (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 */
/* out, own: handle to the file, not defined
if error, error number can be retrieved with
os_file_get_last_error */
const
char
*
name
,
/* in: name of the file or path as a
null-terminated string */
ulint
create_mode
,
/* in: OS_FILE_OPEN if an existing file is
opened (if does not exist, error), or
OS_FILE_CREATE if a new file is created
(if exists, error), or
OS_FILE_CREATE_PATH if new file
(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 */
/********************************************************************
A simple function to open or create a file. */
os_file_t
os_file_create_simple_no_error_handling
(
/*====================================*/
/* out, own: handle to the file, not defined if error,
error number can be retrieved with
os_file_get_last_error */
char
*
name
,
/* in: name of the file or path as a null-terminated
string */
ulint
create_mode
,
/* in: OS_FILE_OPEN if an existing file is opened
(if does not exist, error), or OS_FILE_CREATE if a new
file is created (if exists, error) */
ulint
access_type
,
/* in: OS_FILE_READ_ONLY, 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 */
/* out, own: handle to the file, not defined
if error, error number can be retrieved with
os_file_get_last_error */
const
char
*
name
,
/* in: name of the file or path as a
null-terminated string */
ulint
create_mode
,
/* in: OS_FILE_OPEN if an existing file
is opened (if does not exist, error), or
OS_FILE_CREATE if a new file is created
(if exists, error) */
ulint
access_type
,
/* in: OS_FILE_READ_ONLY,
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 */
/********************************************************************
Opens an existing file or creates a new. */
os_file_t
os_file_create
(
/*===========*/
/* out, own: handle to the file, not defined if error,
error number can be retrieved with
os_file_get_last_error */
char
*
name
,
/* in: name of the file or path as a null-terminated
string */
ulint
create_mode
,
/* in: OS_FILE_OPEN if an existing file is opened
(if does not exist, error), or OS_FILE_CREATE if a new
file is created (if exists, error), OS_FILE_OVERWRITE
if a new file is created or an old overwritten;
OS_FILE_OPEN_RAW, if a raw device or disk partition
should be opened */
ulint
purpose
,
/* in: OS_FILE_AIO, if asynchronous, non-buffered i/o
is desired, OS_FILE_NORMAL, if any normal file;
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 */
ibool
*
success
);
/* out: TRUE if succeed, FALSE if error */
/* out, own: handle to the file, not defined
if error, error number can be retrieved with
os_file_get_last_error */
const
char
*
name
,
/* in: name of the file or path as a
null-terminated string */
ulint
create_mode
,
/* in: OS_FILE_OPEN if an existing file
is opened (if does not exist, error), or
OS_FILE_CREATE if a new file is created
(if exists, error),
OS_FILE_OVERWRITE if a new file is created
or an old overwritten;
OS_FILE_OPEN_RAW, if a raw device or disk
partition should be opened */
ulint
purpose
,
/* in: OS_FILE_AIO, if asynchronous,
non-buffered i/o is desired,
OS_FILE_NORMAL, if any normal file;
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 */
ibool
*
success
);
/* out: TRUE if succeed, FALSE if error */
/***************************************************************************
Deletes a file. The file has to be closed before calling this. */
ibool
os_file_delete
(
/*===========*/
/* out: TRUE if success */
char
*
name
);
/* in: file path as a null-terminated string */
/* out: TRUE if success */
c
onst
c
har
*
name
);
/* in: file path as a null-terminated string */
/***************************************************************************
Deletes a file if it exists. The file has to be closed before calling this. */
...
...
@@ -295,8 +305,8 @@ Deletes a file if it exists. The file has to be closed before calling this. */
ibool
os_file_delete_if_exists
(
/*=====================*/
/* out: TRUE if success */
char
*
name
);
/* in: file path as a null-terminated string */
/* out: TRUE if success */
c
onst
c
har
*
name
);
/* in: file path as a null-terminated string */
/***************************************************************************
Renames a file (can also move it to another directory). It is safest that the
file is closed before calling this function. */
...
...
@@ -304,10 +314,10 @@ file is closed before calling this function. */
ibool
os_file_rename
(
/*===========*/
/* out: TRUE if success */
c
har
*
oldpath
,
/* in: old file path as a null-terminated
string */
char
*
newpath
);
/* in: new file path */
/* out: TRUE if success */
c
onst
char
*
oldpath
,
/* in: old file path as a
null-terminated
string */
c
onst
c
har
*
newpath
);
/* in: new file path */
/***************************************************************************
Closes a file handle. In case of error, error number can be retrieved with
os_file_get_last_error. */
...
...
@@ -351,7 +361,7 @@ ibool
os_file_set_size
(
/*=============*/
/* out: TRUE if success */
c
har
*
name
,
/* in: name of the file or path as a
c
onst
char
*
name
,
/* in: name of the file or path as a
null-terminated string */
os_file_t
file
,
/* in: handle to a file */
ulint
size
,
/* in: least significant 32 bits of file
...
...
@@ -426,10 +436,10 @@ os_file_write(
/*==========*/
/* out: TRUE if request was
successful, FALSE if fail */
c
har
*
name
,
/* in: name of the file or path as a
c
onst
char
*
name
,
/* in: name of the file or path as a
null-terminated string */
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
offset where to write */
ulint
offset_high
,
/* in: most significant 32 bits of
...
...
@@ -442,8 +452,8 @@ ibool
os_file_status
(
/*===========*/
/* out: TRUE if call succeeded */
c
har
*
path
,
/* in: pathname of the file */
ibool
*
exists
,
/* out: TRUE if file exists */
c
onst
char
*
path
,
/* in: pathname of the file */
ibool
*
exists
,
/* out: TRUE if file 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
...
...
@@ -478,7 +488,7 @@ os_file_dirname(
/*============*/
/* out, own: directory component of the
pathname */
c
har
*
path
);
/* in: pathname */
c
onst
char
*
path
);
/* in: pathname */
/********************************************************************
Creates all missing subdirectories along the given path. */
...
...
@@ -487,7 +497,7 @@ os_file_create_subdirs_if_needed(
/*=============================*/
/* out: TRUE if call succeeded
FALSE otherwise */
c
har
*
path
);
/* in: path name */
c
onst
char
*
path
);
/* in: path name */
/****************************************************************************
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
...
...
@@ -527,7 +537,7 @@ os_aio(
because i/os are not actually handled until
all have been posted: use with great
caution! */
c
har
*
name
,
/* in: name of the file or path as a
c
onst
char
*
name
,
/* in: name of the file or path as a
null-terminated string */
os_file_t
file
,
/* in: handle to a file */
void
*
buf
,
/* in: buffer where to read or from which
...
...
innobase/include/os0sync.h
View file @
fff42272
...
...
@@ -87,9 +87,9 @@ explicitly by calling sync_os_reset_event. */
os_event_t
os_event_create
(
/*============*/
/* out: the event handle */
char
*
name
);
/* in: the name of the event, if NULL
the event is created without a name */
/* out: the event handle */
c
onst
c
har
*
name
);
/* in: the name of the event, if NULL
the event is created without a name */
#ifdef __WIN__
/*************************************************************
Creates an auto-reset event semaphore, i.e., an event which is automatically
...
...
@@ -98,9 +98,9 @@ reset when a single thread is released. Works only in Windows. */
os_event_t
os_event_create_auto
(
/*=================*/
/* out: the event handle */
char
*
name
);
/* in: the name of the event, if NULL
the event is created without a name */
/* out: the event handle */
c
onst
c
har
*
name
);
/* in: the name of the event, if NULL
the event is created without a name */
#endif
/**************************************************************
Sets an event semaphore to the signaled state: lets waiting threads
...
...
@@ -171,9 +171,9 @@ mutex semaphore of InnoDB itself (mutex_t) should be used where possible. */
os_mutex_t
os_mutex_create
(
/*============*/
/* out: the mutex handle */
char
*
name
);
/* in: the name of the mutex, if NULL
the mutex is created without a name */
/* out: the mutex handle */
c
onst
c
har
*
name
);
/* in: the name of the mutex, if NULL
the mutex is created without a name */
/**************************************************************
Acquires ownership of a mutex semaphore. */
...
...
innobase/include/pars0pars.h
View file @
fff42272
...
...
@@ -74,8 +74,8 @@ Parses an SQL string returning the query graph. */
que_t
*
pars_sql
(
/*=====*/
/* out, own: the query graph */
char
*
str
);
/* in: SQL string */
/* out, own: the query graph */
c
onst
c
har
*
str
);
/* in: SQL string */
/*****************************************************************
Retrieves characters to the lexical analyzer. */
...
...
innobase/include/pars0sym.h
View file @
fff42272
...
...
@@ -122,7 +122,7 @@ struct sym_node_struct{
SYM_IMPLICIT_VAR,
SYM_LIT, SYM_TABLE,
SYM_CURSOR, ... */
c
har
*
name
;
/* name of an id */
c
onst
char
*
name
;
/* name of an id */
ulint
name_len
;
/* id name length */
dict_table_t
*
table
;
/* table definition
if a table id or a
...
...
@@ -150,7 +150,7 @@ struct sym_tab_struct{
que_t
*
query_graph
;
/* query graph generated by the
parser */
c
har
*
sql_string
;
c
onst
char
*
sql_string
;
/* SQL string to parse */
int
string_len
;
/* SQL string length */
...
...
innobase/include/row0mysql.h
View file @
fff42272
...
...
@@ -316,15 +316,16 @@ fields than mentioned in the constraint. */
int
row_table_add_foreign_constraints
(
/*==============================*/
/* out: error code or DB_SUCCESS */
trx_t
*
trx
,
/* in: transaction */
char
*
sql_string
,
/* in: table create statement where
foreign keys are declared like:
/* out: error code or DB_SUCCESS */
trx_t
*
trx
,
/* in: transaction */
c
onst
c
har
*
sql_string
,
/* in: table create statement where
foreign keys are declared like:
FOREIGN KEY (a, b) REFERENCES table2(c, d),
table2 can be written also with the database
name before it: test.table2 */
char
*
name
);
/* in: table full name in the normalized form
database_name/table_name */
table2 can be written also with the
database name before it: test.table2 */
const
char
*
name
);
/* in: table full name in the
normalized form
database_name/table_name */
/*************************************************************************
The master thread in srv0srv.c calls this regularly to drop tables which
we must drop in background after queries to them have ended. Such lazy
...
...
@@ -351,10 +352,10 @@ output by the master thread. */
int
row_drop_table_for_mysql
(
/*=====================*/
/* out: error code or DB_SUCCESS */
char
*
name
,
/* in: table name */
trx_t
*
trx
,
/* in: transaction handle */
ibool
drop_db
);
/* in: TRUE=dropping whole database */
/* out: error code or DB_SUCCESS */
c
onst
c
har
*
name
,
/* in: table name */
trx_t
*
trx
,
/* in: transaction handle */
ibool
drop_db
);
/* in: TRUE=dropping whole database */
/*************************************************************************
Discards the tablespace of a table which stored in an .ibd file. Discarding
...
...
@@ -382,9 +383,9 @@ discard ongoing operations. */
int
row_discard_tablespace_for_mysql
(
/*=============================*/
/* out: error code or DB_SUCCESS */
char
*
name
,
/* in: table name */
trx_t
*
trx
);
/* in: transaction handle */
/* out: error code or DB_SUCCESS */
c
onst
c
har
*
name
,
/* in: table name */
trx_t
*
trx
);
/* in: transaction handle */
/*********************************************************************
Imports a tablespace. The space id in the .ibd file must match the space id
of the table in the data dictionary. */
...
...
@@ -392,28 +393,28 @@ of the table in the data dictionary. */
int
row_import_tablespace_for_mysql
(
/*============================*/
/* out: error code or DB_SUCCESS */
char
*
name
,
/* in: table name */
trx_t
*
trx
);
/* in: transaction handle */
/* out: error code or DB_SUCCESS */
c
onst
c
har
*
name
,
/* in: table name */
trx_t
*
trx
);
/* in: transaction handle */
/*************************************************************************
Drops a database for MySQL. */
int
row_drop_database_for_mysql
(
/*========================*/
/* out: error code or DB_SUCCESS */
char
*
name
,
/* in: database name which ends to '/' */
trx_t
*
trx
);
/* in: transaction handle */
/* out: error code or DB_SUCCESS */
c
onst
c
har
*
name
,
/* in: database name which ends to '/' */
trx_t
*
trx
);
/* in: transaction handle */
/*************************************************************************
Renames a table for MySQL. */
int
row_rename_table_for_mysql
(
/*=======================*/
/* out: error code or DB_SUCCESS */
char
*
old_name
,
/* in: old table name */
char
*
new_name
,
/* in: new table name */
trx_t
*
trx
);
/* in: transaction handle */
/* out: error code or DB_SUCCESS */
c
onst
c
har
*
old_name
,
/* in: old table name */
c
onst
c
har
*
new_name
,
/* in: new table name */
trx_t
*
trx
);
/* in: transaction handle */
/*************************************************************************
Checks a table for corruption. */
...
...
innobase/include/row0sel.h
View file @
fff42272
...
...
@@ -144,11 +144,11 @@ consistent read result, or store it to the query cache. */
ibool
row_search_check_if_query_cache_permitted
(
/*======================================*/
/* out: TRUE if storing or retrieving from
the query cache is permitted */
trx_t
*
trx
,
/* in: transaction object */
c
har
*
norm_name
);
/* in: concatenation of database name, '/'
char, table name */
/* out: TRUE if storing or retrieving
from
the query cache is permitted */
trx_t
*
trx
,
/* in: transaction object */
c
onst
char
*
norm_name
);
/* in: concatenation of database name,
'/'
char, table name */
/* A structure for caching column values for prefetched rows */
...
...
innobase/include/trx0roll.h
View file @
fff42272
...
...
@@ -193,7 +193,7 @@ trx_rollback_to_savepoint_for_mysql(
DB_NO_SAVEPOINT,
otherwise DB_SUCCESS */
trx_t
*
trx
,
/* in: transaction handle */
c
har
*
savepoint_name
,
/* in: savepoint name */
c
onst
char
*
savepoint_name
,
/* in: savepoint name */
ib_longlong
*
mysql_binlog_cache_pos
);
/* out: the MySQL binlog cache
position corresponding to this
savepoint; MySQL needs this
...
...
@@ -211,7 +211,7 @@ trx_savepoint_for_mysql(
/*====================*/
/* out: always DB_SUCCESS */
trx_t
*
trx
,
/* in: transaction handle */
c
har
*
savepoint_name
,
/* in: savepoint name */
c
onst
char
*
savepoint_name
,
/* in: savepoint name */
ib_longlong
binlog_cache_pos
);
/* in: MySQL binlog cache
position corresponding to this
connection at the time of the
...
...
innobase/include/trx0sys.h
View file @
fff42272
...
...
@@ -258,7 +258,7 @@ replication has proceeded. */
void
trx_sys_update_mysql_binlog_offset
(
/*===============================*/
c
har
*
file_name
,
/* in: MySQL log file name */
c
onst
char
*
file_name
,
/* in: MySQL log file name */
ib_longlong
offset
,
/* in: position in that log file */
ulint
field
,
/* in: offset of the MySQL log info field in
the trx sys header */
...
...
innobase/include/trx0trx.h
View file @
fff42272
...
...
@@ -315,7 +315,7 @@ struct trx_struct{
ulint
magic_n
;
/* All the next fields are protected by the kernel mutex, except the
undo logs which are protected by undo_mutex */
c
har
*
op_info
;
/* English text describing the
c
onst
char
*
op_info
;
/* English text describing the
current operation, or an empty
string */
ulint
type
;
/* TRX_USER, TRX_PURGE */
...
...
@@ -358,7 +358,7 @@ struct trx_struct{
char
**
mysql_query_str
;
/* pointer to the field in mysqld_thd
which contains the pointer to the
current SQL query string */
c
har
*
mysql_log_file_name
;
c
onst
char
*
mysql_log_file_name
;
/* if MySQL binlog is used, this field
contains a pointer to the latest file
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
contains the end offset of the binlog
entry */
c
har
*
mysql_master_log_file_name
;
c
onst
char
*
mysql_master_log_file_name
;
/* if the database server is a MySQL
replication slave, we have here the
master binlog name up to which
...
...
innobase/include/ut0rnd.h
View file @
fff42272
...
...
@@ -92,17 +92,17 @@ UNIV_INLINE
ulint
ut_fold_string
(
/*===========*/
/* out: folded value */
char
*
str
);
/* in: null-terminated string */
/* out: folded value */
c
onst
c
har
*
str
);
/* in: null-terminated string */
/*****************************************************************
Folds a binary string. */
UNIV_INLINE
ulint
ut_fold_binary
(
/*===========*/
/* out: folded value */
byte
*
str
,
/* in: string of bytes */
ulint
len
);
/* in: length */
/* out: folded value */
const
byte
*
str
,
/* in: string of bytes */
ulint
len
);
/* in: length */
/***************************************************************
Looks for a prime number slightly greater than the given argument.
The prime is chosen so that it is not near any power of 2. */
...
...
innobase/include/ut0rnd.ic
View file @
fff42272
...
...
@@ -173,8 +173,8 @@ UNIV_INLINE
ulint
ut_fold_string(
/*===========*/
/* out: folded value */
char* str) /* in: null-terminated string */
/* out: folded value */
c
onst c
har* str) /* in: null-terminated string */
{
#ifdef UNIV_DEBUG
ulint i = 0;
...
...
@@ -203,9 +203,9 @@ UNIV_INLINE
ulint
ut_fold_binary(
/*===========*/
/* out: folded value */
byte* str, /* in: string of bytes */
ulint len) /* in: length */
/* out: folded value */
const
byte* str, /* in: string of bytes */
ulint
len) /* in: length */
{
ulint i;
ulint fold = 0;
...
...
innobase/include/ut0ut.h
View file @
fff42272
...
...
@@ -17,21 +17,6 @@ Created 1/20/1994 Heikki Tuuri
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
%l -> %I64
...
...
innobase/os/os0file.c
View file @
fff42272
...
...
@@ -70,7 +70,7 @@ struct os_aio_slot_struct{
bytes */
ulint
offset_high
;
/* 32 high bits of file offset */
os_file_t
file
;
/* file where to read or write */
c
har
*
name
;
/* file name or path */
c
onst
char
*
name
;
/* file name or path */
ibool
io_already_done
;
/* used only in simulated aio:
TRUE if the physical i/o already
made and only the slot message
...
...
@@ -415,7 +415,7 @@ os_file_handle_error_no_exit(
/* out: TRUE if we should retry the
operation */
os_file_t
file
,
/* in: file pointer */
c
har
*
name
,
/* in: name of a file or NULL */
c
onst
char
*
name
,
/* in: name of a file or NULL */
const
char
*
operation
)
/* in: operation */
{
ulint
err
;
...
...
@@ -493,13 +493,15 @@ and '..' items at the start of the directory listing. */
os_file_dir_t
os_file_opendir
(
/*============*/
/* out: directory stream, NULL if error */
char
*
dirname
,
/* in: directory name; it must not contain
a trailing '\' or '/' */
ibool
error_is_fatal
)
/* in: TRUE if we should treat an error as a
fatal error; if we try to open symlinks then
we do not wish a fatal error if it happens
not to be a directory */
/* out: directory stream, NULL if
error */
const
char
*
dirname
,
/* in: directory name; it must not
contain a trailing '\' or '/' */
ibool
error_is_fatal
)
/* in: TRUE if we should treat an
error as a fatal error; if we try to
open symlinks then we do not wish a
fatal error if it happens not to be
a directory */
{
os_file_dir_t
dir
;
#ifdef __WIN__
...
...
@@ -585,7 +587,7 @@ os_file_readdir_next_file(
/*======================*/
/* out: 0 if ok, -1 if error, 1 if at the end
of the directory */
c
har
*
dirname
,
/* in: directory name or path */
c
onst
char
*
dirname
,
/* in: directory name or path */
os_file_dir_t
dir
,
/* in: directory stream */
os_file_stat_t
*
info
)
/* in/out: buffer where the info is returned */
{
...
...
@@ -704,12 +706,12 @@ fail_if_exists arguments is true. */
ibool
os_file_create_directory
(
/*=====================*/
/* out: TRUE if call succeeds, FALSE on
error */
c
har
*
pathname
,
/* in: directory name as null-terminated
string */
ibool
fail_if_exists
)
/* in: if TRUE, pre-existing directory is
treated as an error. */
/* out: TRUE if call succeeds,
FALSE on
error */
c
onst
char
*
pathname
,
/* in: directory name as
null-terminated
string */
ibool
fail_if_exists
)
/* in: if TRUE, pre-existing directory
is
treated as an error. */
{
#ifdef __WIN__
BOOL
rcode
;
...
...
@@ -746,18 +748,21 @@ A simple function to open or create a file. */
os_file_t
os_file_create_simple
(
/*==================*/
/* out, own: handle to the file, not defined if error,
error number can be retrieved with
os_file_get_last_error */
char
*
name
,
/* in: name of the file or path as a null-terminated
string */
ulint
create_mode
,
/* in: OS_FILE_OPEN if an existing file is opened
(if does not exist, error), or OS_FILE_CREATE if a new
file is created (if exists, error), or
OS_FILE_CREATE_PATH if new file (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 */
/* out, own: handle to the file, not defined
if error, error number can be retrieved with
os_file_get_last_error */
const
char
*
name
,
/* in: name of the file or path as a
null-terminated string */
ulint
create_mode
,
/* in: OS_FILE_OPEN if an existing file is
opened (if does not exist, error), or
OS_FILE_CREATE if a new file is created
(if exists, error), or
OS_FILE_CREATE_PATH if new file
(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 */
{
#ifdef __WIN__
os_file_t
file
;
...
...
@@ -882,18 +887,20 @@ A simple function to open or create a file. */
os_file_t
os_file_create_simple_no_error_handling
(
/*====================================*/
/* out, own: handle to the file, not defined if error,
error number can be retrieved with
os_file_get_last_error */
char
*
name
,
/* in: name of the file or path as a null-terminated
string */
ulint
create_mode
,
/* in: OS_FILE_OPEN if an existing file is opened
(if does not exist, error), or OS_FILE_CREATE if a new
file is created (if exists, error) */
ulint
access_type
,
/* in: OS_FILE_READ_ONLY, 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 */
/* out, own: handle to the file, not defined
if error, error number can be retrieved with
os_file_get_last_error */
const
char
*
name
,
/* in: name of the file or path as a
null-terminated string */
ulint
create_mode
,
/* in: OS_FILE_OPEN if an existing file
is opened (if does not exist, error), or
OS_FILE_CREATE if a new file is created
(if exists, error) */
ulint
access_type
,
/* in: OS_FILE_READ_ONLY,
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 */
{
#ifdef __WIN__
os_file_t
file
;
...
...
@@ -991,25 +998,28 @@ Opens an existing file or creates a new. */
os_file_t
os_file_create
(
/*===========*/
/* out, own: handle to the file, not defined if error,
error number can be retrieved with
os_file_get_last_error */
char
*
name
,
/* in: name of the file or path as a null-terminated
string */
ulint
create_mode
,
/* in: OS_FILE_OPEN if an existing file is opened
(if does not exist, error), or OS_FILE_CREATE if a new
file is created (if exists, error), OS_FILE_OVERWRITE
if a new is created or an old overwritten,
OS_FILE_OPEN_RAW, if a raw device or disk partition
should be opened */
ulint
purpose
,
/* in: OS_FILE_AIO, if asynchronous, non-buffered i/o
is desired, OS_FILE_NORMAL, if any normal file;
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 */
ibool
*
success
)
/* out: TRUE if succeed, FALSE if error */
/* out, own: handle to the file, not defined
if error, error number can be retrieved with
os_file_get_last_error */
const
char
*
name
,
/* in: name of the file or path as a
null-terminated string */
ulint
create_mode
,
/* in: OS_FILE_OPEN if an existing file
is opened (if does not exist, error), or
OS_FILE_CREATE if a new file is created
(if exists, error),
OS_FILE_OVERWRITE if a new file is created
or an old overwritten;
OS_FILE_OPEN_RAW, if a raw device or disk
partition should be opened */
ulint
purpose
,
/* in: OS_FILE_AIO, if asynchronous,
non-buffered i/o is desired,
OS_FILE_NORMAL, if any normal file;
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 */
ibool
*
success
)
/* out: TRUE if succeed, FALSE if error */
{
#ifdef __WIN__
os_file_t
file
;
...
...
@@ -1202,8 +1212,8 @@ Deletes a file if it exists. The file has to be closed before calling this. */
ibool
os_file_delete_if_exists
(
/*=====================*/
/* out: TRUE if success */
char
*
name
)
/* in: file path as a null-terminated string */
/* out: TRUE if success */
c
onst
c
har
*
name
)
/* in: file path as a null-terminated string */
{
#ifdef __WIN__
BOOL
ret
;
...
...
@@ -1263,8 +1273,8 @@ Deletes a file. The file has to be closed before calling this. */
ibool
os_file_delete
(
/*===========*/
/* out: TRUE if success */
char
*
name
)
/* in: file path as a null-terminated string */
/* out: TRUE if success */
c
onst
c
har
*
name
)
/* in: file path as a null-terminated string */
{
#ifdef __WIN__
BOOL
ret
;
...
...
@@ -1327,9 +1337,9 @@ ibool
os_file_rename
(
/*===========*/
/* out: TRUE if success */
c
har
*
oldpath
,
/* in: old file path as a null-terminated
c
onst
char
*
oldpath
,
/* in: old file path as a null-terminated
string */
c
har
*
newpath
)
/* in: new file path */
c
onst
char
*
newpath
)
/* in: new file path */
{
#ifdef __WIN__
BOOL
ret
;
...
...
@@ -1340,7 +1350,7 @@ os_file_rename(
return
(
TRUE
);
}
os_file_handle_error
(
NULL
,
oldpath
,
"
delet
e"
);
os_file_handle_error
(
NULL
,
oldpath
,
"
renam
e"
);
return
(
FALSE
);
#else
...
...
@@ -1516,7 +1526,7 @@ ibool
os_file_set_size
(
/*=============*/
/* out: TRUE if success */
c
har
*
name
,
/* in: name of the file or path as a
c
onst
char
*
name
,
/* in: name of the file or path as a
null-terminated string */
os_file_t
file
,
/* in: handle to a 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 */
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
offset
,
/* in: least significant 32 bits of file
offset where to write */
...
...
@@ -2057,10 +2067,10 @@ os_file_write(
/*==========*/
/* out: TRUE if request was
successful, FALSE if fail */
c
har
*
name
,
/* in: name of the file or path as a
c
onst
char
*
name
,
/* in: name of the file or path as a
null-terminated string */
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
offset where to write */
ulint
offset_high
,
/* in: most significant 32 bits of
...
...
@@ -2214,7 +2224,7 @@ ibool
os_file_status
(
/*===========*/
/* out: TRUE if call succeeded */
c
har
*
path
,
/* in: pathname of the file */
c
onst
char
*
path
,
/* in: pathname of the file */
ibool
*
exists
,
/* out: TRUE if file 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
pathname */
c
har
*
path
)
/* in: pathname */
c
onst
char
*
path
)
/* in: pathname */
{
char
*
dir
;
int
i
,
length
,
last_slash
;
...
...
@@ -2356,7 +2366,7 @@ os_file_create_subdirs_if_needed(
/*=============================*/
/* out: TRUE if call succeeded
FALSE otherwise */
c
har
*
path
)
/* in: path name */
c
onst
char
*
path
)
/* in: path name */
{
char
*
subdir
;
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
the aio operation */
os_file_t
file
,
/* in: file handle */
c
har
*
name
,
/* in: name of the file or path as a
c
onst
char
*
name
,
/* in: name of the file or path as a
null-terminated string */
void
*
buf
,
/* in: buffer where to read or from which
to write */
...
...
@@ -3000,7 +3010,7 @@ os_aio(
because i/os are not actually handled until
all have been posted: use with great
caution! */
c
har
*
name
,
/* in: name of the file or path as a
c
onst
char
*
name
,
/* in: name of the file or path as a
null-terminated string */
os_file_t
file
,
/* in: handle to a file */
void
*
buf
,
/* in: buffer where to read or from which
...
...
@@ -3543,6 +3553,7 @@ consecutive_loop:
if
(
n_consecutive
==
1
)
{
/* We can use the buffer of the i/o request */
combined_buf
=
slot
->
buf
;
combined_buf2
=
NULL
;
}
else
{
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
);
}
...
...
innobase/os/os0sync.c
View file @
fff42272
...
...
@@ -109,9 +109,9 @@ must be reset explicitly by calling sync_os_reset_event. */
os_event_t
os_event_create
(
/*============*/
/* out: the event handle */
char
*
name
)
/* in: the name of the event, if NULL
the event is created without a name */
/* out: the event handle */
c
onst
c
har
*
name
)
/* in: the name of the event, if NULL
the event is created without a name */
{
#ifdef __WIN__
os_event_t
event
;
...
...
@@ -166,9 +166,9 @@ reset when a single thread is released. Works only in Windows. */
os_event_t
os_event_create_auto
(
/*=================*/
/* out: the event handle */
char
*
name
)
/* in: the name of the event, if NULL
the event is created without a name */
/* out: the event handle */
c
onst
c
har
*
name
)
/* in: the name of the event, if NULL
the event is created without a name */
{
os_event_t
event
;
...
...
@@ -430,9 +430,9 @@ mutex semaphore of InnoDB itself (mutex_t) should be used where possible. */
os_mutex_t
os_mutex_create
(
/*============*/
/* out: the mutex handle */
char
*
name
)
/* in: the name of the mutex, if NULL
the mutex is created without a name */
/* out: the mutex handle */
c
onst
c
har
*
name
)
/* in: the name of the mutex, if NULL
the mutex is created without a name */
{
#ifdef __WIN__
HANDLE
mutex
;
...
...
innobase/pars/pars0pars.c
View file @
fff42272
...
...
@@ -1729,8 +1729,8 @@ Parses an SQL string returning the query graph. */
que_t
*
pars_sql
(
/*=====*/
/* out, own: the query graph */
char
*
str
)
/* in: SQL string */
/* out, own: the query graph */
c
onst
c
har
*
str
)
/* in: SQL string */
{
sym_node_t
*
sym_node
;
mem_heap_t
*
heap
;
...
...
innobase/pars/pars0sym.c
View file @
fff42272
...
...
@@ -217,13 +217,10 @@ sym_tab_add_id(
node
->
common
.
type
=
QUE_NODE_SYMBOL
;
node
->
name
=
mem_heap_alloc
(
sym_tab
->
heap
,
len
+
1
);
node
->
resolved
=
FALSE
;
node
->
indirection
=
NULL
;
ut_memcpy
(
node
->
name
,
name
,
len
);
node
->
name
[
len
]
=
'\0'
;
node
->
name
=
mem_heap_strdupl
(
sym_tab
->
heap
,
name
,
len
+
1
);
node
->
name_len
=
len
;
UT_LIST_ADD_LAST
(
sym_list
,
sym_tab
->
sym_list
,
node
);
...
...
innobase/row/row0mysql.c
View file @
fff42272
...
...
@@ -1686,15 +1686,16 @@ constraints which reference this table are ok. */
int
row_table_add_foreign_constraints
(
/*==============================*/
/* out: error code or DB_SUCCESS */
trx_t
*
trx
,
/* in: transaction */
char
*
sql_string
,
/* in: table create statement where
foreign keys are declared like:
/* out: error code or DB_SUCCESS */
trx_t
*
trx
,
/* in: transaction */
c
onst
c
har
*
sql_string
,
/* in: table create statement where
foreign keys are declared like:
FOREIGN KEY (a, b) REFERENCES table2(c, d),
table2 can be written also with the database
name before it: test.table2 */
char
*
name
)
/* in: table full name in the normalized form
database_name/table_name */
table2 can be written also with the
database name before it: test.table2 */
const
char
*
name
)
/* in: table full name in the
normalized form
database_name/table_name */
{
ulint
err
;
...
...
@@ -1940,9 +1941,9 @@ discard ongoing operations. */
int
row_discard_tablespace_for_mysql
(
/*=============================*/
/* out: error code or DB_SUCCESS */
char
*
name
,
/* in: table name */
trx_t
*
trx
)
/* in: transaction handle */
/* out: error code or DB_SUCCESS */
c
onst
c
har
*
name
,
/* in: table name */
trx_t
*
trx
)
/* in: transaction handle */
{
dulint
new_id
;
dict_table_t
*
table
;
...
...
@@ -2071,9 +2072,9 @@ of the table in the data dictionary. */
int
row_import_tablespace_for_mysql
(
/*============================*/
/* out: error code or DB_SUCCESS */
char
*
name
,
/* in: table name */
trx_t
*
trx
)
/* in: transaction handle */
/* out: error code or DB_SUCCESS */
c
onst
c
har
*
name
,
/* in: table name */
trx_t
*
trx
)
/* in: transaction handle */
{
dict_table_t
*
table
;
ibool
success
;
...
...
@@ -2177,10 +2178,10 @@ the corresponding monitor output by the master thread. */
int
row_drop_table_for_mysql
(
/*=====================*/
/* out: error code or DB_SUCCESS */
char
*
name
,
/* in: table name */
trx_t
*
trx
,
/* in: transaction handle */
ibool
drop_db
)
/* in: TRUE=dropping whole database */
/* out: error code or DB_SUCCESS */
c
onst
c
har
*
name
,
/* in: table name */
trx_t
*
trx
,
/* in: transaction handle */
ibool
drop_db
)
/* in: TRUE=dropping whole database */
{
dict_foreign_t
*
foreign
;
dict_table_t
*
table
;
...
...
@@ -2519,9 +2520,9 @@ Drops a database for MySQL. */
int
row_drop_database_for_mysql
(
/*========================*/
/* out: error code or DB_SUCCESS */
char
*
name
,
/* in: database name which ends to '/' */
trx_t
*
trx
)
/* in: transaction handle */
/* out: error code or DB_SUCCESS */
c
onst
c
har
*
name
,
/* in: database name which ends to '/' */
trx_t
*
trx
)
/* in: transaction handle */
{
dict_table_t
*
table
;
char
*
table_name
;
...
...
@@ -2611,10 +2612,10 @@ Renames a table for MySQL. */
int
row_rename_table_for_mysql
(
/*=======================*/
/* out: error code or DB_SUCCESS */
char
*
old_name
,
/* in: old table name */
char
*
new_name
,
/* in: new table name */
trx_t
*
trx
)
/* in: transaction handle */
/* out: error code or DB_SUCCESS */
c
onst
c
har
*
old_name
,
/* in: old table name */
c
onst
c
har
*
new_name
,
/* in: new table name */
trx_t
*
trx
)
/* in: transaction handle */
{
dict_table_t
*
table
;
que_thr_t
*
thr
;
...
...
innobase/row/row0sel.c
View file @
fff42272
...
...
@@ -3585,11 +3585,11 @@ consistent read result, or store it to the query cache. */
ibool
row_search_check_if_query_cache_permitted
(
/*======================================*/
/* out: TRUE if storing or retrieving from
the query cache is permitted */
trx_t
*
trx
,
/* in: transaction object */
c
har
*
norm_name
)
/* in: concatenation of database name, '/'
char, table name */
/* out: TRUE if storing or retrieving
from
the query cache is permitted */
trx_t
*
trx
,
/* in: transaction object */
c
onst
char
*
norm_name
)
/* in: concatenation of database name,
'/'
char, table name */
{
dict_table_t
*
table
;
ibool
ret
=
FALSE
;
...
...
innobase/trx/trx0roll.c
View file @
fff42272
...
...
@@ -200,7 +200,7 @@ trx_rollback_to_savepoint_for_mysql(
DB_NO_SAVEPOINT,
otherwise DB_SUCCESS */
trx_t
*
trx
,
/* in: transaction handle */
c
har
*
savepoint_name
,
/* in: savepoint name */
c
onst
char
*
savepoint_name
,
/* in: savepoint name */
ib_longlong
*
mysql_binlog_cache_pos
)
/* out: the MySQL binlog cache
position corresponding to this
savepoint; MySQL needs this
...
...
@@ -265,7 +265,7 @@ trx_savepoint_for_mysql(
/*====================*/
/* out: always DB_SUCCESS */
trx_t
*
trx
,
/* in: transaction handle */
c
har
*
savepoint_name
,
/* in: savepoint name */
c
onst
char
*
savepoint_name
,
/* in: savepoint name */
ib_longlong
binlog_cache_pos
)
/* in: MySQL binlog cache
position corresponding to this
connection at the time of the
...
...
innobase/trx/trx0sys.c
View file @
fff42272
...
...
@@ -569,7 +569,7 @@ replication has proceeded. */
void
trx_sys_update_mysql_binlog_offset
(
/*===============================*/
c
har
*
file_name
,
/* in: MySQL log file name */
c
onst
char
*
file_name
,
/* in: MySQL log file name */
ib_longlong
offset
,
/* in: position in that log file */
ulint
field
,
/* in: offset of the MySQL log info field in
the trx sys header */
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment