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
61a65573
Commit
61a65573
authored
May 27, 2004
by
monty@mysql.com
Browse files
Options
Browse Files
Download
Plain Diff
merge with 4.0 to get windows fixes
parents
c342318c
dab0b7d4
Changes
21
Hide whitespace changes
Inline
Side-by-side
Showing
21 changed files
with
78 additions
and
387 deletions
+78
-387
VC++Files/client/mysqlclient.dsp
VC++Files/client/mysqlclient.dsp
+2
-2
VC++Files/innobase/innobase.dsp
VC++Files/innobase/innobase.dsp
+0
-8
client/mysql.cc
client/mysql.cc
+12
-4
client/mysqldump.c
client/mysqldump.c
+10
-4
include/mysql.h
include/mysql.h
+13
-0
include/mysql_com.h
include/mysql_com.h
+0
-9
innobase/include/log0log.h
innobase/include/log0log.h
+0
-35
innobase/include/log0log.ic
innobase/include/log0log.ic
+1
-35
innobase/include/mtr0mtr.h
innobase/include/mtr0mtr.h
+1
-11
innobase/log/log0log.c
innobase/log/log0log.c
+0
-64
innobase/log/log0recv.c
innobase/log/log0recv.c
+1
-12
innobase/mtr/mtr0mtr.c
innobase/mtr/mtr0mtr.c
+5
-194
innobase/que/que0que.c
innobase/que/que0que.c
+0
-2
libmysql/libmysql.c
libmysql/libmysql.c
+8
-0
libmysql/libmysql.def
libmysql/libmysql.def
+1
-2
libmysql_r/Makefile.am
libmysql_r/Makefile.am
+1
-1
libmysqld/lib_sql.cc
libmysqld/lib_sql.cc
+5
-0
libmysqld/libmysqld.c
libmysqld/libmysqld.c
+15
-1
libmysqld/libmysqld.def
libmysqld/libmysqld.def
+1
-2
sql/log_event.cc
sql/log_event.cc
+1
-0
tools/mysqlmanager.c
tools/mysqlmanager.c
+1
-1
No files found.
VC++Files/client/mysqlclient.dsp
View file @
61a65573
...
...
@@ -41,7 +41,7 @@ RSC=rc.exe
# PROP Intermediate_Dir "release"
# PROP Target_Dir ""
# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /YX /FD /c
# ADD CPP /nologo /G6 /MT /W3 /O2 /I "../include" /I "../" /D "DBUG_OFF" /D "_WINDOWS" /D "USE_TLS" /D "NDEBUG" /FD /c
# ADD CPP /nologo /G6 /MT /W3 /O2 /I "../include" /I "../" /D "DBUG_OFF" /D "_WINDOWS" /D "USE_TLS" /D "
MYSQL_CLIENT" /D "
NDEBUG" /FD /c
# SUBTRACT CPP /YX
# ADD BASE RSC /l 0x409
# ADD RSC /l 0x409
...
...
@@ -65,7 +65,7 @@ LIB32=xilink6.exe -lib
# PROP Intermediate_Dir "debug"
# PROP Target_Dir ""
# ADD BASE CPP /nologo /W3 /GX /Z7 /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /YX /FD /c
# ADD CPP /nologo /G6 /MTd /W3 /Z7 /Od /I "../include" /I "../" /D "_DEBUG" /D "SAFEMALLOC" /D "SAFE_MUTEX" /D "_WINDOWS" /D "USE_TLS" /FD /c
# ADD CPP /nologo /G6 /MTd /W3 /Z7 /Od /I "../include" /I "../" /D "_DEBUG" /D "SAFEMALLOC" /D "SAFE_MUTEX" /D "_WINDOWS" /D "USE_TLS" /
D "MYSQL_CLIENT" /
FD /c
# SUBTRACT CPP /YX
# ADD BASE RSC /l 0x409
# ADD RSC /l 0x409
...
...
VC++Files/innobase/innobase.dsp
View file @
61a65573
...
...
@@ -312,10 +312,6 @@ SOURCE=.\pars\pars0sym.c
# End Source File
# Begin Source File
SOURCE=.\que\que0que.c
# End Source File
# Begin Source File
SOURCE=.\read\read0read.c
# End Source File
# Begin Source File
...
...
@@ -368,10 +364,6 @@ SOURCE=.\row\row0vers.c
# End Source File
# Begin Source File
SOURCE=.\srv\srv0que.c
# End Source File
# Begin Source File
SOURCE=.\srv\srv0srv.c
# End Source File
# Begin Source File
...
...
client/mysql.cc
View file @
61a65573
...
...
@@ -136,6 +136,7 @@ static my_bool info_flag=0,ignore_errors=0,wait_flag=0,quick=0,
tty_password
=
0
,
opt_nobeep
=
0
,
opt_reconnect
=
1
,
default_charset_used
=
0
,
opt_secure_auth
=
0
,
default_pager_set
=
0
;
static
ulong
opt_max_allowed_packet
,
opt_net_buffer_length
;
static
uint
verbose
=
0
,
opt_silent
=
0
,
opt_mysql_port
=
0
,
opt_local_infile
=
0
;
static
my_string
opt_mysql_unix_port
=
0
;
static
int
connect_flag
=
CLIENT_INTERACTIVE
;
...
...
@@ -368,7 +369,7 @@ int main(int argc,char *argv[])
exit
(
1
);
}
if
(
status
.
batch
&&
!
status
.
line_buff
&&
!
(
status
.
line_buff
=
batch_readline_init
(
max_allowed_packet
+
512
,
stdin
)))
!
(
status
.
line_buff
=
batch_readline_init
(
opt_
max_allowed_packet
+
512
,
stdin
)))
{
free_defaults
(
defaults_argv
);
my_end
(
0
);
...
...
@@ -644,12 +645,12 @@ static struct my_option my_long_options[] =
0
,
1
},
{
"max_allowed_packet"
,
OPT_MAX_ALLOWED_PACKET
,
"Max packet length to send to, or receive from server"
,
(
gptr
*
)
&
max_allowed_packet
,
(
gptr
*
)
&
max_allowed_packet
,
0
,
GET_ULONG
,
(
gptr
*
)
&
opt_max_allowed_packet
,
(
gptr
*
)
&
opt_
max_allowed_packet
,
0
,
GET_ULONG
,
REQUIRED_ARG
,
16
*
1024L
*
1024L
,
4096
,
(
longlong
)
2
*
1024L
*
1024L
*
1024L
,
MALLOC_OVERHEAD
,
1024
,
0
},
{
"net_buffer_length"
,
OPT_NET_BUFFER_LENGTH
,
"Buffer for TCP/IP and socket communication"
,
(
gptr
*
)
&
net_buffer_length
,
(
gptr
*
)
&
net_buffer_length
,
0
,
GET_ULONG
,
(
gptr
*
)
&
opt_net_buffer_length
,
(
gptr
*
)
&
opt_
net_buffer_length
,
0
,
GET_ULONG
,
REQUIRED_ARG
,
16384
,
1024
,
512
*
1024
*
1024L
,
MALLOC_OVERHEAD
,
1024
,
0
},
{
"select_limit"
,
OPT_SELECT_LIMIT
,
"Automatic limit for SELECT when using --safe-updates"
,
...
...
@@ -839,6 +840,7 @@ static int get_options(int argc, char **argv)
{
char
*
tmp
,
*
pagpoint
;
int
ho_error
;
MYSQL_PARAMETERS
*
mysql_params
=
mysql_get_parameters
();
tmp
=
(
char
*
)
getenv
(
"MYSQL_HOST"
);
if
(
tmp
)
...
...
@@ -854,9 +856,15 @@ static int get_options(int argc, char **argv)
strmov
(
pager
,
pagpoint
);
strmov
(
default_pager
,
pager
);
opt_max_allowed_packet
=
*
mysql_params
->
p_max_allowed_packet
;
opt_net_buffer_length
=
*
mysql_params
->
p_net_buffer_length
;
if
((
ho_error
=
handle_options
(
&
argc
,
&
argv
,
my_long_options
,
get_one_option
)))
exit
(
ho_error
);
*
mysql_params
->
p_max_allowed_packet
=
opt_max_allowed_packet
;
*
mysql_params
->
p_net_buffer_length
=
opt_net_buffer_length
;
if
(
status
.
batch
)
/* disable pager and outfile in this case */
{
strmov
(
default_pager
,
"stdout"
);
...
...
@@ -2529,7 +2537,7 @@ static int com_source(String *buffer, char *line)
return
put_info
(
buff
,
INFO_ERROR
,
0
);
}
if
(
!
(
line_buff
=
batch_readline_init
(
max_allowed_packet
+
512
,
sql_file
)))
if
(
!
(
line_buff
=
batch_readline_init
(
opt_
max_allowed_packet
+
512
,
sql_file
)))
{
my_fclose
(
sql_file
,
MYF
(
0
));
return
put_info
(
"Can't initialize batch_readline"
,
INFO_ERROR
,
0
);
...
...
client/mysqldump.c
View file @
61a65573
...
...
@@ -82,7 +82,7 @@ static my_bool verbose=0,tFlag=0,cFlag=0,dFlag=0,quick= 1, extended_insert= 1,
opt_autocommit
=
0
,
opt_master_data
,
opt_disable_keys
=
1
,
opt_xml
=
0
,
opt_delete_master_logs
=
0
,
tty_password
=
0
,
opt_single_transaction
=
0
,
opt_comments
=
0
,
opt_compact
=
0
;
static
ulong
opt_max_allowed_packet
,
opt_net_buffer_length
;
static
MYSQL
mysql_connection
,
*
sock
=
0
;
static
char
insert_pat
[
12
*
1024
],
*
opt_password
=
0
,
*
current_user
=
0
,
*
current_host
=
0
,
*
path
=
0
,
*
fields_terminated
=
0
,
...
...
@@ -95,7 +95,6 @@ static ulong opt_compatible_mode= 0;
static
uint
opt_mysql_port
=
0
,
err_len
=
0
;
static
my_string
opt_mysql_unix_port
=
0
;
static
int
first_error
=
0
;
extern
ulong
net_buffer_length
;
static
DYNAMIC_STRING
extended_row
;
#include <sslopt-vars.h>
FILE
*
md_result_file
;
...
...
@@ -304,11 +303,11 @@ static struct my_option my_long_options[] =
{
"xml"
,
'X'
,
"Dump a database as well formed XML."
,
0
,
0
,
0
,
GET_NO_ARG
,
NO_ARG
,
0
,
0
,
0
,
0
,
0
,
0
},
{
"max_allowed_packet"
,
OPT_MAX_ALLOWED_PACKET
,
""
,
(
gptr
*
)
&
max_allowed_packet
,
(
gptr
*
)
&
max_allowed_packet
,
0
,
(
gptr
*
)
&
opt_max_allowed_packet
,
(
gptr
*
)
&
opt_
max_allowed_packet
,
0
,
GET_ULONG
,
REQUIRED_ARG
,
24
*
1024
*
1024
,
4096
,
(
longlong
)
2L
*
1024L
*
1024L
*
1024L
,
MALLOC_OVERHEAD
,
1024
,
0
},
{
"net_buffer_length"
,
OPT_NET_BUFFER_LENGTH
,
""
,
(
gptr
*
)
&
net_buffer_length
,
(
gptr
*
)
&
net_buffer_length
,
0
,
(
gptr
*
)
&
opt_net_buffer_length
,
(
gptr
*
)
&
opt_
net_buffer_length
,
0
,
GET_ULONG
,
REQUIRED_ARG
,
1024
*
1024L
-
1025
,
4096
,
16
*
1024L
*
1024L
,
MALLOC_OVERHEAD
-
1024
,
1024
,
0
},
{
"comments"
,
'i'
,
"Write additional information."
,
...
...
@@ -566,6 +565,10 @@ get_one_option(int optid, const struct my_option *opt __attribute__((unused)),
static
int
get_options
(
int
*
argc
,
char
***
argv
)
{
int
ho_error
;
MYSQL_PARAMETERS
*
mysql_params
=
mysql_get_parameters
();
opt_max_allowed_packet
=
*
mysql_params
->
p_max_allowed_packet
;
opt_net_buffer_length
=
*
mysql_params
->
p_net_buffer_length
;
md_result_file
=
stdout
;
load_defaults
(
"my"
,
load_default_groups
,
argc
,
argv
);
...
...
@@ -573,6 +576,9 @@ static int get_options(int *argc, char ***argv)
if
((
ho_error
=
handle_options
(
argc
,
argv
,
my_long_options
,
get_one_option
)))
exit
(
ho_error
);
*
mysql_params
->
p_max_allowed_packet
=
opt_max_allowed_packet
;
*
mysql_params
->
p_net_buffer_length
=
opt_net_buffer_length
;
if
(
opt_delayed
)
opt_lock
=
0
;
/* Can't have lock with delayed */
if
(
!
path
&&
(
enclosed
||
opt_enclosed
||
escaped
||
lines_terminated
||
...
...
include/mysql.h
View file @
61a65573
...
...
@@ -317,6 +317,17 @@ typedef struct st_mysql_manager
char
last_error
[
MAX_MYSQL_MANAGER_ERR
];
}
MYSQL_MANAGER
;
typedef
struct
st_mysql_parameters
{
unsigned
long
*
p_max_allowed_packet
;
unsigned
long
*
p_net_buffer_length
;
}
MYSQL_PARAMETERS
;
#if !defined(MYSQL_CLIENT) && !defined(MYSQL_SERVER) && !defined(EMBEDDED_LIBRARY)
#define max_allowed_packet (*mysql_get_parameters()->p_max_allowed_packet)
#define net_buffer_length (*mysql_get_parameters()->p_net_buffer_length)
#endif
/*
Set up and bring down the server; to ensure that applications will
work when linked against either the standard client library or the
...
...
@@ -325,6 +336,8 @@ typedef struct st_mysql_manager
int
STDCALL
mysql_server_init
(
int
argc
,
char
**
argv
,
char
**
groups
);
void
STDCALL
mysql_server_end
(
void
);
MYSQL_PARAMETERS
*
STDCALL
mysql_get_parameters
();
/*
Set up and bring down a thread; these function should be called
for each thread in an application which opens at least one MySQL
...
...
include/mysql_com.h
View file @
61a65573
...
...
@@ -36,12 +36,6 @@
#define MYSQL_SERVICENAME "MySQL"
#endif
/* __WIN__ */
#if defined(__WIN__) && !defined(MYSQL_SERVER) && !defined(MYSQL_CLIENT) && !defined(EMBEDDED_LIBRARY)
#define dll_import_spec __declspec( dllimport )
#else
#define dll_import_spec
#endif
enum
enum_server_command
{
COM_SLEEP
,
COM_QUIT
,
COM_INIT_DB
,
COM_QUERY
,
COM_FIELD_LIST
,
...
...
@@ -312,9 +306,6 @@ typedef struct st_udf_init
extern
"C"
{
#endif
dll_import_spec
extern
unsigned
long
max_allowed_packet
;
dll_import_spec
extern
unsigned
long
net_buffer_length
;
/*
These functions are used for authentication by client and server and
implemented in sql/password.c
...
...
innobase/include/log0log.h
View file @
61a65573
...
...
@@ -114,20 +114,6 @@ dulint
log_get_lsn
(
void
);
/*=============*/
/* out: current lsn */
/****************************************************************************
Gets the online backup lsn. */
UNIV_INLINE
dulint
log_get_online_backup_lsn_low
(
void
);
/*===============================*/
/****************************************************************************
Gets the online backup state. */
UNIV_INLINE
ibool
log_get_online_backup_state_low
(
void
);
/*=================================*/
/* out: online backup state, the caller must
own the log_sys mutex */
/**********************************************************
Initializes the log. */
...
...
@@ -326,20 +312,6 @@ log_archived_file_name_gen(
char
*
buf
,
/* in: buffer where to write */
ulint
id
,
/* in: group id */
ulint
file_no
);
/* in: file number */
/**********************************************************
Switches the database to the online backup state. */
ulint
log_switch_backup_state_on
(
void
);
/*============================*/
/* out: DB_SUCCESS or DB_ERROR */
/**********************************************************
Switches the online backup state off. */
ulint
log_switch_backup_state_off
(
void
);
/*=============================*/
/* out: DB_SUCCESS or DB_ERROR */
/************************************************************************
Checks that there is enough free space in the log to start a new query step.
Flushes the log buffer or makes a new checkpoint if necessary. NOTE: this
...
...
@@ -878,13 +850,6 @@ struct log_struct{
os_event_t
archiving_on
;
/* if archiving has been stopped,
a thread can wait for this event to
become signaled */
/* Fields involved in online backups */
ibool
online_backup_state
;
/* TRUE if the database is in the
online backup state */
dulint
online_backup_lsn
;
/* lsn when the state was changed to
the online backup state */
};
#define LOG_ARCH_ON 71
...
...
innobase/include/log0log.ic
View file @
61a65573
...
...
@@ -318,8 +318,7 @@ log_reserve_and_write_fast(
data_len = len + log->buf_free % OS_FILE_LOG_BLOCK_SIZE;
if (log->online_backup_state
|| (data_len >= OS_FILE_LOG_BLOCK_SIZE - LOG_BLOCK_TRL_SIZE)) {
if (data_len >= OS_FILE_LOG_BLOCK_SIZE - LOG_BLOCK_TRL_SIZE) {
/* The string does not fit within the current log block
or the log block would become full */
...
...
@@ -403,36 +402,3 @@ log_free_check(void)
log_check_margins();
}
}
/****************************************************************************
Gets the online backup lsn. */
UNIV_INLINE
dulint
log_get_online_backup_lsn_low(void)
/*===============================*/
/* out: online_backup_lsn, the caller must
own the log_sys mutex */
{
#ifdef UNIV_SYNC_DEBUG
ut_ad(mutex_own(&(log_sys->mutex)));
#endif /* UNIV_SYNC_DEBUG */
ut_ad(log_sys->online_backup_state);
return(log_sys->online_backup_lsn);
}
/****************************************************************************
Gets the online backup state. */
UNIV_INLINE
ibool
log_get_online_backup_state_low(void)
/*=================================*/
/* out: online backup state, the caller must
own the log_sys mutex */
{
#ifdef UNIV_SYNC_DEBUG
ut_ad(mutex_own(&(log_sys->mutex)));
#endif /* UNIV_SYNC_DEBUG */
return(log_sys->online_backup_state);
}
innobase/include/mtr0mtr.h
View file @
61a65573
...
...
@@ -82,7 +82,7 @@ flag value must give the length also! */
predefined minimum record */
#define MLOG_IBUF_BITMAP_INIT ((byte)27)
/* initialize an ibuf bitmap
page */
#define MLOG_FULL_PAGE ((byte)28)
/*
full contents of a page */
/*#define MLOG_FULL_PAGE ((byte)28)
full contents of a page */
#define MLOG_INIT_FILE_PAGE ((byte)29)
/* this means that a file page
is taken into use and the prior
contents of the page should be
...
...
@@ -236,16 +236,6 @@ mtr_memo_release(
mtr_t
*
mtr
,
/* in: mtr */
void
*
object
,
/* in: object */
ulint
type
);
/* in: object type: MTR_MEMO_S_LOCK, ... */
/****************************************************************
Parses a log record which contains the full contents of a page. */
byte
*
mtr_log_parse_full_page
(
/*====================*/
/* out: end of log record or NULL */
byte
*
ptr
,
/* in: buffer */
byte
*
end_ptr
,
/* in: buffer end */
page_t
*
page
);
/* in: page or NULL */
/**************************************************************
Checks if memo contains the given item. */
UNIV_INLINE
...
...
innobase/log/log0log.c
View file @
61a65573
...
...
@@ -790,11 +790,7 @@ log_init(void)
log_sys
->
archiving_on
=
os_event_create
(
NULL
);
/*----------------------------*/
log_sys
->
online_backup_state
=
FALSE
;
/*----------------------------*/
log_block_init
(
log_sys
->
buf
,
log_sys
->
lsn
);
log_block_set_first_rec_group
(
log_sys
->
buf
,
LOG_BLOCK_HDR_SIZE
);
...
...
@@ -3003,66 +2999,6 @@ loop:
mutex_exit
(
&
(
log_sys
->
mutex
));
}
/**********************************************************
Switches the database to the online backup state. */
ulint
log_switch_backup_state_on
(
void
)
/*============================*/
/* out: DB_SUCCESS or DB_ERROR */
{
dulint
backup_lsn
;
mutex_enter
(
&
(
log_sys
->
mutex
));
if
(
log_sys
->
online_backup_state
)
{
/* The database is already in that state */
mutex_exit
(
&
(
log_sys
->
mutex
));
return
(
DB_ERROR
);
}
log_sys
->
online_backup_state
=
TRUE
;
backup_lsn
=
log_sys
->
lsn
;
log_sys
->
online_backup_lsn
=
backup_lsn
;
mutex_exit
(
&
(
log_sys
->
mutex
));
/* log_checkpoint_and_mark_file_spaces(); */
return
(
DB_SUCCESS
);
}
/**********************************************************
Switches the online backup state off. */
ulint
log_switch_backup_state_off
(
void
)
/*=============================*/
/* out: DB_SUCCESS or DB_ERROR */
{
mutex_enter
(
&
(
log_sys
->
mutex
));
if
(
!
log_sys
->
online_backup_state
)
{
/* The database is already in that state */
mutex_exit
(
&
(
log_sys
->
mutex
));
return
(
DB_ERROR
);
}
log_sys
->
online_backup_state
=
FALSE
;
mutex_exit
(
&
(
log_sys
->
mutex
));
return
(
DB_SUCCESS
);
}
/********************************************************************
Makes a checkpoint at the latest lsn and writes it to first page of each
data file in the database, so that we know that the file spaces contain
...
...
innobase/log/log0recv.c
View file @
61a65573
...
...
@@ -808,9 +808,6 @@ recv_parse_or_apply_log_rec_body(
}
else
if
(
type
==
MLOG_IBUF_BITMAP_INIT
)
{
new_ptr
=
ibuf_parse_bitmap_init
(
ptr
,
end_ptr
,
page
,
mtr
);
}
else
if
(
type
==
MLOG_FULL_PAGE
)
{
new_ptr
=
mtr_log_parse_full_page
(
ptr
,
end_ptr
,
page
);
}
else
if
(
type
==
MLOG_INIT_FILE_PAGE
)
{
new_ptr
=
fsp_parse_init_file_page
(
ptr
,
end_ptr
,
page
);
...
...
@@ -1127,15 +1124,7 @@ recv_recover_page(
buf
=
((
byte
*
)(
recv
->
data
))
+
sizeof
(
recv_data_t
);
}
if
(
recv
->
type
==
MLOG_INIT_FILE_PAGE
||
recv
->
type
==
MLOG_FULL_PAGE
)
{
/* A new file page may have been taken into use,
or we have stored the full contents of the page:
in this case it may be that the original log record
type was MLOG_INIT_FILE_PAGE, and we replaced it
with MLOG_FULL_PAGE, thus we have to apply
any record of type MLOG_FULL_PAGE */
if
(
recv
->
type
==
MLOG_INIT_FILE_PAGE
)
{
page_lsn
=
page_newest_lsn
;
mach_write_to_8
(
page
+
UNIV_PAGE_SIZE
...
...
innobase/mtr/mtr0mtr.c
View file @
61a65573
...
...
@@ -105,179 +105,6 @@ mtr_memo_pop_all(
}
}
/****************************************************************
Writes to the log the contents of a full page. This is called when the
database is in the online backup state. */
static
void
mtr_log_write_full_page
(
/*====================*/
page_t
*
page
,
/* in: page to write */
ulint
i
,
/* in: i'th page for mtr */
ulint
n_pages
,
/* in: total number of pages for mtr */
mtr_t
*
mtr
)
/* in: mtr */
{
byte
*
buf
;
byte
*
ptr
;
ulint
len
;
buf
=
mem_alloc
(
UNIV_PAGE_SIZE
+
50
);
ptr
=
mlog_write_initial_log_record_fast
(
page
,
MLOG_FULL_PAGE
,
buf
,
mtr
);
ut_memcpy
(
ptr
,
page
,
UNIV_PAGE_SIZE
);
len
=
(
ptr
-
buf
)
+
UNIV_PAGE_SIZE
;
if
(
i
==
n_pages
-
1
)
{
if
(
n_pages
>
1
)
{
*
(
buf
+
len
)
=
MLOG_MULTI_REC_END
;
len
++
;
}
else
{
*
buf
=
(
byte
)((
ulint
)
*
buf
|
MLOG_SINGLE_REC_FLAG
);
}
}
ut_ad
(
len
<
UNIV_PAGE_SIZE
+
50
);
log_write_low
(
buf
,
len
);
mem_free
(
buf
);
}
/****************************************************************
Parses a log record which contains the full contents of a page. */
byte
*
mtr_log_parse_full_page
(
/*====================*/
/* out: end of log record or NULL */
byte
*
ptr
,
/* in: buffer */
byte
*
end_ptr
,
/* in: buffer end */
page_t
*
page
)
/* in: page or NULL */
{
if
(
end_ptr
<
ptr
+
UNIV_PAGE_SIZE
)
{
return
(
NULL
);
}
if
(
page
)
{
ut_memcpy
(
page
,
ptr
,
UNIV_PAGE_SIZE
);
}
return
(
ptr
+
UNIV_PAGE_SIZE
);
}
/****************************************************************
Writes to the database log the full contents of the pages that this mtr has
modified. */
static
void
mtr_log_write_backup_full_pages
(
/*============================*/
mtr_t
*
mtr
,
/* in: mini-transaction */
ulint
n_pages
)
/* in: number of pages modified by mtr */
{
mtr_memo_slot_t
*
slot
;
dyn_array_t
*
memo
;
buf_block_t
*
block
;
ulint
offset
;
ulint
type
;
ulint
i
;
ut_ad
(
mtr
);
ut_ad
(
mtr
->
magic_n
==
MTR_MAGIC_N
);
ut_ad
(
mtr
->
state
==
MTR_COMMITTING
);
/* Open the database log for log_write_low */
mtr
->
start_lsn
=
log_reserve_and_open
(
n_pages
*
(
UNIV_PAGE_SIZE
+
50
));
memo
=
&
(
mtr
->
memo
);
offset
=
dyn_array_get_data_size
(
memo
);
i
=
0
;
while
(
offset
>
0
)
{
offset
-=
sizeof
(
mtr_memo_slot_t
);
slot
=
dyn_array_get_element
(
memo
,
offset
);
block
=
slot
->
object
;
type
=
slot
->
type
;
if
((
block
!=
NULL
)
&&
(
type
==
MTR_MEMO_PAGE_X_FIX
))
{
mtr_log_write_full_page
(
block
->
frame
,
i
,
n_pages
,
mtr
);
i
++
;
}
}
ut_ad
(
i
==
n_pages
);
}
/****************************************************************
Checks if mtr is the first to modify any page after online_backup_lsn. */
static
ibool
mtr_first_to_modify_page_after_backup
(
/*==================================*/
/* out: TRUE if first for a page */
mtr_t
*
mtr
,
/* in: mini-transaction */
ulint
*
n_pages
)
/* out: number of modified pages (all modified
pages, backup_lsn does not matter here) */
{
mtr_memo_slot_t
*
slot
;
dyn_array_t
*
memo
;
ulint
offset
;
buf_block_t
*
block
;
ulint
type
;
dulint
backup_lsn
;
ibool
ret
=
FALSE
;
ut_ad
(
mtr
);
ut_ad
(
mtr
->
magic_n
==
MTR_MAGIC_N
);
ut_ad
(
mtr
->
state
==
MTR_COMMITTING
);
backup_lsn
=
log_get_online_backup_lsn_low
();
memo
=
&
(
mtr
->
memo
);
offset
=
dyn_array_get_data_size
(
memo
);
*
n_pages
=
0
;
while
(
offset
>
0
)
{
offset
-=
sizeof
(
mtr_memo_slot_t
);
slot
=
dyn_array_get_element
(
memo
,
offset
);
block
=
slot
->
object
;
type
=
slot
->
type
;
if
((
block
!=
NULL
)
&&
(
type
==
MTR_MEMO_PAGE_X_FIX
))
{
*
n_pages
=
*
n_pages
+
1
;
if
(
ut_dulint_cmp
(
buf_frame_get_newest_modification
(
block
->
frame
),
backup_lsn
)
<=
0
)
{
fprintf
(
stderr
,
"Page %lu newest %lu backup %lu
\n
"
,
(
ulong
)
block
->
offset
,
(
ulong
)
ut_dulint_get_low
(
buf_frame_get_newest_modification
(
block
->
frame
)),
(
ulong
)
ut_dulint_get_low
(
backup_lsn
));
ret
=
TRUE
;
}
}
}
return
(
ret
);
}
/****************************************************************
Writes the contents of a mini-transaction log, if any, to the database log. */
static
...
...
@@ -291,7 +118,6 @@ mtr_log_reserve_and_write(
ulint
data_size
;
ibool
success
;
byte
*
first_data
;
ulint
n_modified_pages
;
ut_ad
(
mtr
);
...
...
@@ -322,27 +148,12 @@ mtr_log_reserve_and_write(
if
(
mtr
->
log_mode
==
MTR_LOG_ALL
)
{
if
(
log_get_online_backup_state_low
()
&&
mtr_first_to_modify_page_after_backup
(
mtr
,
&
n_modified_pages
))
{
/* The database is in the online backup state: write
to the log the full contents of all the pages if this
mtr is the first to modify any page in the buffer pool
after online_backup_lsn */
log_close
();
log_release
();
mtr_log_write_backup_full_pages
(
mtr
,
n_modified_pages
);
}
else
{
block
=
mlog
;
block
=
mlog
;
while
(
block
!=
NULL
)
{
log_write_low
(
dyn_block_get_data
(
block
),
dyn_block_get_used
(
block
));
block
=
dyn_array_get_next_block
(
mlog
,
block
);
}
while
(
block
!=
NULL
)
{
log_write_low
(
dyn_block_get_data
(
block
),
dyn_block_get_used
(
block
));
block
=
dyn_array_get_next_block
(
mlog
,
block
);
}
}
else
{
ut_ad
(
mtr
->
log_mode
==
MTR_LOG_NONE
);
...
...
innobase/que/que0que.c
View file @
61a65573
...
...
@@ -190,8 +190,6 @@ que_thr_end_wait(
ut_ad
(
mutex_own
(
&
kernel_mutex
));
#endif
/* UNIV_SYNC_DEBUG */
ut_ad
(
thr
);
ut_ad
(
next_thr
);
ut_ad
(
*
next_thr
==
NULL
);
ut_ad
((
thr
->
state
==
QUE_THR_LOCK_WAIT
)
||
(
thr
->
state
==
QUE_THR_PROCEDURE_WAIT
)
||
(
thr
->
state
==
QUE_THR_SIG_REPLY_WAIT
));
...
...
libmysql/libmysql.c
View file @
61a65573
...
...
@@ -183,6 +183,14 @@ void STDCALL mysql_server_end()
mysql_client_init
=
org_my_init_done
=
0
;
}
static
MYSQL_PARAMETERS
mysql_internal_parameters
=
{
&
max_allowed_packet
,
&
net_buffer_length
};
MYSQL_PARAMETERS
*
STDCALL
mysql_get_parameters
()
{
return
&
mysql_internal_parameters
;
}
my_bool
STDCALL
mysql_thread_init
()
{
#ifdef THREAD
...
...
libmysql/libmysql.def
View file @
61a65573
...
...
@@ -16,7 +16,6 @@ EXPORTS
list_add
list_delete
load_defaults
max_allowed_packet
my_end
my_getopt_print_errors
my_init
...
...
@@ -24,6 +23,7 @@ EXPORTS
my_memdup
my_no_flags_free
my_path
mysql_get_parameters
my_print_help
my_print_variables
my_realloc
...
...
@@ -116,7 +116,6 @@ EXPORTS
mysql_stmt_sqlstate
mysql_sqlstate
mysql_get_server_version
net_buffer_length
set_dynamic
strcend
strcont
...
...
libmysql_r/Makefile.am
View file @
61a65573
...
...
@@ -18,7 +18,7 @@
target
=
libmysqlclient_r.la
target_defs
=
-DDONT_USE_RAID
@LIB_EXTRA_CCFLAGS@
target_defs
=
-DDONT_USE_RAID
-DMYSQL_CLIENT
@LIB_EXTRA_CCFLAGS@
LIBS
=
@LIBS@ @openssl_libs@
INCLUDES
=
@MT_INCLUDES@
-I
$(top_srcdir)
/include
$(openssl_includes)
...
...
libmysqld/lib_sql.cc
View file @
61a65573
...
...
@@ -23,6 +23,11 @@
#define mysql_unix_port mysql_inix_port1
#define mysql_port mysql_port1
extern
"C"
{
unsigned
long
max_allowed_packet
,
net_buffer_length
;
}
static
int
fake_argc
=
1
;
static
char
*
fake_argv
[]
=
{(
char
*
)
""
,
0
};
static
const
char
*
fake_groups
[]
=
{
"server"
,
"embedded"
,
0
};
...
...
libmysqld/libmysqld.c
View file @
61a65573
...
...
@@ -47,6 +47,9 @@
#define INADDR_NONE -1
#endif
extern
ulong
net_buffer_length
;
extern
ulong
max_allowed_packet
;
#if defined(MSDOS) || defined(__WIN__)
#define ERRNO WSAGetLastError()
#define perror(A)
...
...
@@ -81,7 +84,17 @@ static void end_server(MYSQL *mysql)
DBUG_VOID_RETURN
;
}
static
inline
int
mysql_init_charset
(
MYSQL
*
mysql
)
static
MYSQL_PARAMETERS
mysql_internal_parameters
=
{
&
max_allowed_packet
,
&
net_buffer_length
};
MYSQL_PARAMETERS
*
STDCALL
mysql_get_parameters
()
{
return
&
mysql_internal_parameters
;
}
static
int
mysql_init_charset
(
MYSQL
*
mysql
)
{
char
charset_name_buff
[
16
],
*
charset_name
;
...
...
@@ -124,6 +137,7 @@ static inline int mysql_init_charset(MYSQL *mysql)
return
0
;
}
MYSQL
*
STDCALL
mysql_real_connect
(
MYSQL
*
mysql
,
const
char
*
host
,
const
char
*
user
,
const
char
*
passwd
,
const
char
*
db
,
...
...
libmysqld/libmysqld.def
View file @
61a65573
...
...
@@ -92,7 +92,6 @@ EXPORTS
mysql_thread_safe
mysql_use_result
mysql_warning_count
net_buffer_length
set_dynamic
strcend
strcont
...
...
@@ -128,5 +127,5 @@ EXPORTS
alloc_root
free_root
my_read
max_allowed_packet
llstr
mysql_get_parameters
sql/log_event.cc
View file @
61a65573
...
...
@@ -515,6 +515,7 @@ end:
#else
#define UNLOCK_MUTEX
#define LOCK_MUTEX
#define max_allowed_packet (*mysql_get_parameters()->p_max_allowed_packet)
#endif
/*
...
...
tools/mysqlmanager.c
View file @
61a65573
...
...
@@ -357,7 +357,7 @@ LOG_MSG_FUNC(log_info,LOG_INFO)
#ifndef DBUG_OFF
LOG_MSG_FUNC
(
log_debug
,
LOG_DEBUG
)
#else
void
log_debug
(
const
char
*
__attribute__
((
unused
))
fmt
,...)
{}
void
log_debug
(
const
char
*
fmt
__attribute__
((
unused
))
,...)
{}
#endif
static
void
handle_sigterm
(
int
sig
__attribute__
((
unused
)))
...
...
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