Skip to content
GitLab
Menu
Projects
Groups
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Menu
Open sidebar
Olaf van der Spek
mariadb-10.1
Commits
c8081e30
Commit
c8081e30
authored
Jun 05, 2017
by
Ondrej Sury
Browse files
New upstream version 10.1.24
parent
030b524c
Changes
505
Hide whitespace changes
Inline
Side-by-side
Docs/INFO_SRC
View file @
c8081e30
commit: a
cce1f37c2518278a31606c7f1b460ad0ac7347c
date: 2017-05-
02 08:09:16 +03
00
build-date: 2017-05-
02 07:13:55
+0200
short: a
cce1f3
commit: a
f4421e82d3d458ea8f19cda6376503be6c49143
date: 2017-05-
29 00:27:14 -07
00
build-date: 2017-05-
29 18:48:37
+0200
short: a
f4421e
branch: HEAD
MariaDB source 10.1.2
3
MariaDB source 10.1.2
4
VERSION
View file @
c8081e30
MYSQL_VERSION_MAJOR=10
MYSQL_VERSION_MINOR=1
MYSQL_VERSION_PATCH=2
3
MYSQL_VERSION_PATCH=2
4
client/mysql.cc
View file @
c8081e30
...
...
@@ -3059,7 +3059,6 @@ static int com_server_help(String *buffer __attribute__((unused)),
{
unsigned
int
num_fields
=
mysql_num_fields
(
result
);
my_ulonglong
num_rows
=
mysql_num_rows
(
result
);
mysql_fetch_fields
(
result
);
if
(
num_fields
==
3
&&
num_rows
==
1
)
{
if
(
!
(
cur
=
mysql_fetch_row
(
result
)))
...
...
client/mysql_upgrade.c
View file @
c8081e30
...
...
@@ -1130,7 +1130,7 @@ static int check_version_match(void)
int
main
(
int
argc
,
char
**
argv
)
{
char
self_name
[
FN_REFLEN
];
char
self_name
[
FN_REFLEN
+
1
];
MY_INIT
(
argv
[
0
]);
...
...
@@ -1138,7 +1138,7 @@ int main(int argc, char **argv)
if
(
GetModuleFileName
(
NULL
,
self_name
,
FN_REFLEN
)
==
0
)
#endif
{
str
ncpy
(
self_name
,
argv
[
0
]
,
FN_REFLEN
);
str
make_buf
(
self_name
,
argv
[
0
]);
}
if
(
init_dynamic_string
(
&
ds_args
,
""
,
512
,
256
)
||
...
...
client/mysqladmin.cc
View file @
c8081e30
...
...
@@ -46,6 +46,7 @@ static uint opt_count_iterations= 0, my_end_arg;
static
ulong
opt_connect_timeout
,
opt_shutdown_timeout
;
static
char
*
unix_port
=
0
;
static
char
*
opt_plugin_dir
=
0
,
*
opt_default_auth
=
0
;
static
bool
sql_log_bin_off
=
false
;
#ifdef HAVE_SMEM
static
char
*
shared_memory_base_name
=
0
;
...
...
@@ -598,6 +599,31 @@ static my_bool sql_connect(MYSQL *mysql, uint wait)
}
static
int
maybe_disable_binlog
(
MYSQL
*
mysql
)
{
if
(
opt_local
&&
!
sql_log_bin_off
)
{
if
(
mysql_query
(
mysql
,
"set local sql_log_bin=0"
))
{
my_printf_error
(
0
,
"SET LOCAL SQL_LOG_BIN=0 failed; error: '%-.200s'"
,
error_flags
,
mysql_error
(
mysql
));
return
-
1
;
}
}
sql_log_bin_off
=
true
;
return
0
;
}
int
flush
(
MYSQL
*
mysql
,
const
char
*
what
)
{
char
buf
[
FN_REFLEN
];
my_snprintf
(
buf
,
sizeof
(
buf
),
"flush %s%s"
,
(
opt_local
&&
!
sql_log_bin_off
?
"local "
:
""
),
what
);
return
mysql_query
(
mysql
,
buf
);
}
/**
@brief Execute all commands
...
...
@@ -614,6 +640,7 @@ static my_bool sql_connect(MYSQL *mysql, uint wait)
static
int
execute_commands
(
MYSQL
*
mysql
,
int
argc
,
char
**
argv
)
{
int
ret
=
0
;
const
char
*
status
;
/*
MySQL documentation relies on the fact that mysqladmin will
...
...
@@ -626,17 +653,6 @@ static int execute_commands(MYSQL *mysql,int argc, char **argv)
struct
my_rnd_struct
rand_st
;
char
buff
[
FN_REFLEN
+
20
];
if
(
opt_local
)
{
sprintf
(
buff
,
"set local sql_log_bin=0"
);
if
(
mysql_query
(
mysql
,
buff
))
{
my_printf_error
(
0
,
"SET LOCAL SQL_LOG_BIN=0 failed; error: '%-.200s'"
,
error_flags
,
mysql_error
(
mysql
));
return
-
1
;
}
}
for
(;
argc
>
0
;
argv
++
,
argc
--
)
{
int
command
;
...
...
@@ -648,6 +664,8 @@ static int execute_commands(MYSQL *mysql,int argc, char **argv)
my_printf_error
(
0
,
"Too few arguments to create"
,
error_flags
);
return
1
;
}
if
(
maybe_disable_binlog
(
mysql
))
return
-
1
;
sprintf
(
buff
,
"create database `%.*s`"
,
FN_REFLEN
,
argv
[
1
]);
if
(
mysql_query
(
mysql
,
buff
))
{
...
...
@@ -665,6 +683,8 @@ static int execute_commands(MYSQL *mysql,int argc, char **argv)
my_printf_error
(
0
,
"Too few arguments to drop"
,
error_flags
);
return
1
;
}
if
(
maybe_disable_binlog
(
mysql
))
return
-
1
;
if
(
drop_db
(
mysql
,
argv
[
1
]))
return
-
1
;
argc
--
;
argv
++
;
...
...
@@ -705,7 +725,7 @@ static int execute_commands(MYSQL *mysql,int argc, char **argv)
}
case
ADMIN_FLUSH_PRIVILEGES
:
case
ADMIN_RELOAD
:
if
(
mysql_query
(
mysql
,
"flush
privileges"
))
if
(
flush
(
mysql
,
"
privileges"
))
{
my_printf_error
(
0
,
"reload failed; error: '%s'"
,
error_flags
,
mysql_error
(
mysql
));
...
...
@@ -909,7 +929,7 @@ static int execute_commands(MYSQL *mysql,int argc, char **argv)
}
case
ADMIN_FLUSH_LOGS
:
{
if
(
mysql_query
(
mysql
,
"flush
logs"
))
if
(
flush
(
mysql
,
"
logs"
))
{
my_printf_error
(
0
,
"flush failed; error: '%s'"
,
error_flags
,
mysql_error
(
mysql
));
...
...
@@ -919,7 +939,7 @@ static int execute_commands(MYSQL *mysql,int argc, char **argv)
}
case
ADMIN_FLUSH_BINARY_LOG
:
{
if
(
mysql_query
(
mysql
,
"
flush
binary logs"
))
if
(
flush
(
mysql
,
"binary logs"
))
{
my_printf_error
(
0
,
"flush failed; error: '%s'"
,
error_flags
,
mysql_error
(
mysql
));
...
...
@@ -929,7 +949,7 @@ static int execute_commands(MYSQL *mysql,int argc, char **argv)
}
case
ADMIN_FLUSH_ENGINE_LOG
:
{
if
(
mysql_query
(
mysql
,
"flush
engine logs"
))
if
(
flush
(
mysql
,
"
engine logs"
))
{
my_printf_error
(
0
,
"flush failed; error: '%s'"
,
error_flags
,
mysql_error
(
mysql
));
...
...
@@ -939,7 +959,7 @@ static int execute_commands(MYSQL *mysql,int argc, char **argv)
}
case
ADMIN_FLUSH_ERROR_LOG
:
{
if
(
mysql_query
(
mysql
,
"
flush
error logs"
))
if
(
flush
(
mysql
,
"error logs"
))
{
my_printf_error
(
0
,
"flush failed; error: '%s'"
,
error_flags
,
mysql_error
(
mysql
));
...
...
@@ -949,7 +969,7 @@ static int execute_commands(MYSQL *mysql,int argc, char **argv)
}
case
ADMIN_FLUSH_GENERAL_LOG
:
{
if
(
mysql_query
(
mysql
,
"
flush
general logs"
))
if
(
flush
(
mysql
,
"general logs"
))
{
my_printf_error
(
0
,
"flush failed; error: '%s'"
,
error_flags
,
mysql_error
(
mysql
));
...
...
@@ -959,7 +979,7 @@ static int execute_commands(MYSQL *mysql,int argc, char **argv)
}
case
ADMIN_FLUSH_RELAY_LOG
:
{
if
(
mysql_query
(
mysql
,
"
flush
relay logs"
))
if
(
flush
(
mysql
,
"relay logs"
))
{
my_printf_error
(
0
,
"flush failed; error: '%s'"
,
error_flags
,
mysql_error
(
mysql
));
...
...
@@ -969,7 +989,7 @@ static int execute_commands(MYSQL *mysql,int argc, char **argv)
}
case
ADMIN_FLUSH_SLOW_LOG
:
{
if
(
mysql_query
(
mysql
,
"flush
slow logs"
))
if
(
flush
(
mysql
,
"
slow logs"
))
{
my_printf_error
(
0
,
"flush failed; error: '%s'"
,
error_flags
,
mysql_error
(
mysql
));
...
...
@@ -979,7 +999,7 @@ static int execute_commands(MYSQL *mysql,int argc, char **argv)
}
case
ADMIN_FLUSH_HOSTS
:
{
if
(
mysql_query
(
mysql
,
"flush
hosts"
))
if
(
flush
(
mysql
,
"
hosts"
))
{
my_printf_error
(
0
,
"flush failed; error: '%s'"
,
error_flags
,
mysql_error
(
mysql
));
...
...
@@ -989,7 +1009,7 @@ static int execute_commands(MYSQL *mysql,int argc, char **argv)
}
case
ADMIN_FLUSH_TABLES
:
{
if
(
mysql_query
(
mysql
,
"flush
tables"
))
if
(
flush
(
mysql
,
"
tables"
))
{
my_printf_error
(
0
,
"flush failed; error: '%s'"
,
error_flags
,
mysql_error
(
mysql
));
...
...
@@ -999,7 +1019,7 @@ static int execute_commands(MYSQL *mysql,int argc, char **argv)
}
case
ADMIN_FLUSH_STATUS
:
{
if
(
mysql_query
(
mysql
,
"flush
status"
))
if
(
flush
(
mysql
,
"
status"
))
{
my_printf_error
(
0
,
"flush failed; error: '%s'"
,
error_flags
,
mysql_error
(
mysql
));
...
...
@@ -1009,7 +1029,7 @@ static int execute_commands(MYSQL *mysql,int argc, char **argv)
}
case
ADMIN_FLUSH_TABLE_STATISTICS
:
{
if
(
mysql_query
(
mysql
,
"flush
table_statistics"
))
if
(
flush
(
mysql
,
"
table_statistics"
))
{
my_printf_error
(
0
,
"flush failed; error: '%s'"
,
error_flags
,
mysql_error
(
mysql
));
...
...
@@ -1019,7 +1039,7 @@ static int execute_commands(MYSQL *mysql,int argc, char **argv)
}
case
ADMIN_FLUSH_INDEX_STATISTICS
:
{
if
(
mysql_query
(
mysql
,
"flush
index_statistics"
))
if
(
flush
(
mysql
,
"
index_statistics"
))
{
my_printf_error
(
0
,
"flush failed; error: '%s'"
,
error_flags
,
mysql_error
(
mysql
));
...
...
@@ -1029,7 +1049,7 @@ static int execute_commands(MYSQL *mysql,int argc, char **argv)
}
case
ADMIN_FLUSH_USER_STATISTICS
:
{
if
(
mysql_query
(
mysql
,
"flush
user_statistics"
))
if
(
flush
(
mysql
,
"
user_statistics"
))
{
my_printf_error
(
0
,
"flush failed; error: '%s'"
,
error_flags
,
mysql_error
(
mysql
));
...
...
@@ -1039,7 +1059,7 @@ static int execute_commands(MYSQL *mysql,int argc, char **argv)
}
case
ADMIN_FLUSH_USER_RESOURCES
:
{
if
(
mysql_query
(
mysql
,
"
flush
user_resources"
))
if
(
flush
(
mysql
,
"user_resources"
))
{
my_printf_error
(
0
,
"flush failed; error: '%s'"
,
error_flags
,
mysql_error
(
mysql
));
...
...
@@ -1049,7 +1069,7 @@ static int execute_commands(MYSQL *mysql,int argc, char **argv)
}
case
ADMIN_FLUSH_CLIENT_STATISTICS
:
{
if
(
mysql_query
(
mysql
,
"flush
client_statistics"
))
if
(
flush
(
mysql
,
"
client_statistics"
))
{
my_printf_error
(
0
,
"flush failed; error: '%s'"
,
error_flags
,
mysql_error
(
mysql
));
...
...
@@ -1059,9 +1079,8 @@ static int execute_commands(MYSQL *mysql,int argc, char **argv)
}
case
ADMIN_FLUSH_ALL_STATISTICS
:
{
if
(
mysql_query
(
mysql
,
"flush table_statistics,index_statistics,"
"user_statistics,client_statistics"
))
if
(
flush
(
mysql
,
"table_statistics,index_statistics,"
"user_statistics,client_statistics"
))
{
my_printf_error
(
0
,
"flush failed; error: '%s'"
,
error_flags
,
mysql_error
(
mysql
));
...
...
@@ -1071,9 +1090,8 @@ static int execute_commands(MYSQL *mysql,int argc, char **argv)
}
case
ADMIN_FLUSH_ALL_STATUS
:
{
if
(
mysql_query
(
mysql
,
"flush status,table_statistics,index_statistics,"
"user_statistics,client_statistics"
))
if
(
flush
(
mysql
,
"status,table_statistics,index_statistics,"
"user_statistics,client_statistics"
))
{
my_printf_error
(
0
,
"flush failed; error: '%s'"
,
error_flags
,
mysql_error
(
mysql
));
...
...
@@ -1091,6 +1109,8 @@ static int execute_commands(MYSQL *mysql,int argc, char **argv)
start_time
=
time
((
time_t
*
)
0
);
my_rnd_init
(
&
rand_st
,(
ulong
)
start_time
,(
ulong
)
start_time
/
2
);
if
(
maybe_disable_binlog
(
mysql
))
return
-
1
;
if
(
argc
<
1
)
{
my_printf_error
(
0
,
"Too few arguments to change password"
,
error_flags
);
...
...
@@ -1104,7 +1124,8 @@ static int execute_commands(MYSQL *mysql,int argc, char **argv)
if
(
strcmp
(
typed_password
,
verified
)
!=
0
)
{
my_printf_error
(
0
,
"Passwords don't match"
,
MYF
(
ME_BELL
));
return
-
1
;
ret
=
-
1
;
goto
password_done
;
}
}
else
...
...
@@ -1131,7 +1152,8 @@ static int execute_commands(MYSQL *mysql,int argc, char **argv)
{
my_printf_error
(
0
,
"Could not determine old_passwords setting from server; error: '%s'"
,
error_flags
,
mysql_error
(
mysql
));
return
-
1
;
ret
=
-
1
;
goto
password_done
;
}
else
{
...
...
@@ -1142,7 +1164,8 @@ static int execute_commands(MYSQL *mysql,int argc, char **argv)
"Could not get old_passwords setting from "
"server; error: '%s'"
,
error_flags
,
mysql_error
(
mysql
));
return
-
1
;
ret
=
-
1
;
goto
password_done
;
}
if
(
!
mysql_num_rows
(
res
))
old
=
1
;
...
...
@@ -1167,15 +1190,15 @@ static int execute_commands(MYSQL *mysql,int argc, char **argv)
{
my_printf_error
(
0
,
"Can't turn off logging; error: '%s'"
,
error_flags
,
mysql_error
(
mysql
));
return
-
1
;
ret
=
-
1
;
}
else
if
(
mysql_query
(
mysql
,
buff
))
{
if
(
mysql_errno
(
mysql
)
!=
1290
)
{
my_printf_error
(
0
,
"unable to change password; error: '%s'"
,
error_flags
,
mysql_error
(
mysql
));
return
-
1
;
}
else
{
...
...
@@ -1189,9 +1212,10 @@ static int execute_commands(MYSQL *mysql,int argc, char **argv)
" --skip-grant-tables).
\n
"
"Use:
\"
mysqladmin flush-privileges password '*'
\"
"
" instead"
,
error_flags
);
return
-
1
;
}
ret
=
-
1
;
}
password_done:
/* free up memory from prompted password */
if
(
typed_password
!=
argv
[
1
])
{
...
...
@@ -1293,7 +1317,7 @@ static int execute_commands(MYSQL *mysql,int argc, char **argv)
return
1
;
}
}
return
0
;
return
ret
;
}
/**
...
...
client/mysqlbinlog.cc
View file @
c8081e30
...
...
@@ -2252,7 +2252,7 @@ static Exit_status dump_remote_log_entries(PRINT_EVENT_INFO *print_event_info,
int2store
(
buf
+
BIN_LOG_HEADER_SIZE
,
binlog_flags
);
size_t
tlen
=
strlen
(
logname
);
if
(
tlen
>
UINT_MAX
)
if
(
tlen
>
sizeof
(
buf
)
-
10
)
{
error
(
"Log name too long."
);
DBUG_RETURN
(
ERROR_STOP
);
...
...
client/mysqldump.c
View file @
c8081e30
...
...
@@ -2168,6 +2168,7 @@ static void print_xml_comment(FILE *xml_file, size_t len,
case
'-'
:
if
(
*
(
comment_string
+
1
)
==
'-'
)
/* Only one hyphen allowed. */
break
;
/* fall through */
default:
fputc
(
*
comment_string
,
xml_file
);
break
;
...
...
@@ -2844,6 +2845,8 @@ static uint get_table_structure(char *table, char *db, char *table_type,
my_free
(
scv_buff
);
if
(
path
)
my_fclose
(
sql_file
,
MYF
(
MY_WME
));
DBUG_RETURN
(
0
);
}
else
...
...
@@ -5926,8 +5929,7 @@ static my_bool get_view_structure(char *table, char* db)
dynstr_free
(
&
ds_view
);
}
if
(
switch_character_set_results
(
mysql
,
default_charset
))
DBUG_RETURN
(
1
);
switch_character_set_results
(
mysql
,
default_charset
);
/* If a separate .sql file was opened, close it now */
if
(
sql_file
!=
md_result_file
)
...
...
client/mysqltest.cc
View file @
c8081e30
...
...
@@ -1721,13 +1721,12 @@ void log_msg(const char *fmt, ...)
int
cat_file
(
DYNAMIC_STRING
*
ds
,
const
char
*
filename
)
{
int
fd
;
size_
t
len
;
in
t
len
;
char
buff
[
16384
];
if
((
fd
=
my_open
(
filename
,
O_RDONLY
,
MYF
(
0
)))
<
0
)
return
1
;
while
((
len
=
my_read
(
fd
,
(
uchar
*
)
&
buff
,
sizeof
(
buff
)
-
1
,
MYF
(
0
)))
>
0
)
while
((
len
=
(
int
)
my_read
(
fd
,
(
uchar
*
)
&
buff
,
sizeof
(
buff
)
-
1
,
MYF
(
0
)))
>
0
)
{
char
*
p
=
buff
,
*
start
=
buff
,
*
end
=
buff
+
len
;
while
(
p
<
end
)
...
...
@@ -9994,25 +9993,39 @@ bool parse_re_part(char *start_re, char *end_re,
Returns: st_replace_regex struct with pairs of substitutions
*/
void
append_replace_regex
(
char
*
,
char
*
,
struct
st_replace_regex
*
,
char
**
);
struct
st_replace_regex
*
init_replace_regex
(
char
*
expr
)
{
char
*
expr_end
,
*
buf_p
;
struct
st_replace_regex
*
res
;
char
*
buf
,
*
expr_end
;
char
*
p
,
start_re
,
end_re
=
1
;
char
*
buf_p
;
uint
expr_len
=
strlen
(
expr
);
struct
st_regex
reg
;
/* my_malloc() will die on fail with MY_FAE */
res
=
(
struct
st_replace_regex
*
)
my_malloc
(
sizeof
(
*
res
)
+
expr_len
,
MYF
(
MY_FAE
+
MY_WME
));
sizeof
(
*
res
)
+
8192
,
MYF
(
MY_FAE
+
MY_WME
));
my_init_dynamic_array
(
&
res
->
regex_arr
,
sizeof
(
struct
st_regex
),
128
,
128
,
MYF
(
0
));
buf
=
(
char
*
)
res
+
sizeof
(
*
res
);
expr_end
=
expr
+
expr_len
;
buf_p
=
(
char
*
)
res
+
sizeof
(
*
res
);
append_replace_regex
(
expr
,
expr_end
,
res
,
&
buf_p
);
res
->
odd_buf_len
=
res
->
even_buf_len
=
8192
;
res
->
even_buf
=
(
char
*
)
my_malloc
(
res
->
even_buf_len
,
MYF
(
MY_WME
+
MY_FAE
));
res
->
odd_buf
=
(
char
*
)
my_malloc
(
res
->
odd_buf_len
,
MYF
(
MY_WME
+
MY_FAE
));
res
->
buf
=
res
->
even_buf
;
return
res
;
}
void
append_replace_regex
(
char
*
expr
,
char
*
expr_end
,
struct
st_replace_regex
*
res
,
char
**
buf_p
)
{
char
*
p
,
start_re
,
end_re
=
1
;
struct
st_regex
reg
;
p
=
expr
;
buf_p
=
buf
;
/* for each regexp substitution statement */
while
(
p
<
expr_end
)
...
...
@@ -10031,13 +10044,34 @@ struct st_replace_regex* init_replace_regex(char* expr)
}
start_re
=
0
;
reg
.
pattern
=
buf_p
;
if
(
parse_re_part
(
&
start_re
,
&
end_re
,
&
p
,
expr_end
,
&
buf_p
))
goto
err
;
reg
.
pattern
=
*
buf_p
;
/* Allow variable for the *entire* list of replacements */
if
(
*
p
==
'$'
)
{
const
char
*
v_end
;
VAR
*
val
=
var_get
(
p
,
&
v_end
,
0
,
1
);
reg
.
replace
=
buf_p
;
if
(
parse_re_part
(
&
start_re
,
&
end_re
,
&
p
,
expr_end
,
&
buf_p
))
goto
err
;
if
(
val
)
{
char
*
expr
,
*
expr_end
;
expr
=
val
->
str_val
;
expr_end
=
expr
+
val
->
str_val_len
;
append_replace_regex
(
expr
,
expr_end
,
res
,
buf_p
);
}
p
=
(
char
*
)
v_end
+
1
;
continue
;
}
else
{
if
(
parse_re_part
(
&
start_re
,
&
end_re
,
&
p
,
expr_end
,
buf_p
))
goto
err
;
reg
.
replace
=
*
buf_p
;
if
(
parse_re_part
(
&
start_re
,
&
end_re
,
&
p
,
expr_end
,
buf_p
))
goto
err
;
}
/* Check if we should do matching case insensitive */
if
(
p
<
expr_end
&&
*
p
==
'i'
)
...
...
@@ -10050,17 +10084,12 @@ struct st_replace_regex* init_replace_regex(char* expr)
if
(
insert_dynamic
(
&
res
->
regex_arr
,(
uchar
*
)
&
reg
))
die
(
"Out of memory"
);
}
res
->
odd_buf_len
=
res
->
even_buf_len
=
8192
;
res
->
even_buf
=
(
char
*
)
my_malloc
(
res
->
even_buf_len
,
MYF
(
MY_WME
+
MY_FAE
));
res
->
odd_buf
=
(
char
*
)
my_malloc
(
res
->
odd_buf_len
,
MYF
(
MY_WME
+
MY_FAE
));
res
->
buf
=
res
->
even_buf
;
return
res
;
return
;
err:
my_free
(
res
);
die
(
"Error parsing replace_regex
\"
%s
\"
"
,
expr
);
return
0
;
}
/*
...
...
@@ -10140,12 +10169,6 @@ void do_get_replace_regex(struct st_command *command)
{
char
*
expr
=
command
->
first_argument
;
free_replace_regex
();
/* Allow variable for the *entire* list of replacements */
if
(
*
expr
==
'$'
)
{
VAR
*
val
=
var_get
(
expr
,
NULL
,
0
,
1
);
expr
=
val
?
val
->
str_val
:
NULL
;
}
if
(
expr
&&
*
expr
&&
!
(
glob_replace_regex
=
init_replace_regex
(
expr
)))
die
(
"Could not init replace_regex"
);
command
->
last_argument
=
command
->
end
;
...
...
cmake/lz4.cmake
View file @
c8081e30
...
...
@@ -19,8 +19,11 @@ MACRO (MYSQL_CHECK_LZ4)
IF
(
WITH_INNODB_LZ4 STREQUAL
"ON"
OR WITH_INNODB_LZ4 STREQUAL
"AUTO"
)
CHECK_INCLUDE_FILES
(
lz4.h HAVE_LZ4_H
)
CHECK_LIBRARY_EXISTS
(
lz4 LZ4_compress_limitedOutput
""
HAVE_LZ4_SHARED_LIB
)
IF
(
HAVE_LZ4_SHARED_LIB AND HAVE_LZ4_H
)
CHECK_LIBRARY_EXISTS
(
lz4 LZ4_compress_default
""
HAVE_LZ4_COMPRESS_DEFAULT
)
IF
((
HAVE_LZ4_SHARED_LIB OR HAVE_LZ4_COMPRESS_DEFAULT
)
AND HAVE_LZ4_H
)
IF
(
HAVE_LZ4_COMPRESS_DEFAULT
)
ADD_DEFINITIONS
(
-DHAVE_LZ4_COMPRESS_DEFAULT=1
)
ENDIF
()
ADD_DEFINITIONS
(
-DHAVE_LZ4=1
)
LINK_LIBRARIES
(
lz4
)
ELSE
()
...
...
@@ -35,14 +38,17 @@ MACRO (MYSQL_CHECK_LZ4_STATIC)
IF
(
WITH_INNODB_LZ4 STREQUAL
"ON"
OR WITH_INNODB_LZ4 STREQUAL
"AUTO"
)
CHECK_INCLUDE_FILES
(
lz4.h HAVE_LZ4_H
)
CHECK_LIBRARY_EXISTS
(
liblz4.a LZ4_compress_limitedOutput
""
HAVE_LZ4_LIB
)
IF
(
HAVE_LZ4_LIB AND HAVE_LZ4_H
)
ADD_DEFINITIONS
(
-DHAVE_LZ4=1
)
LINK_LIBRARIES
(
liblz4.a
)
ELSE
()
CHECK_LIBRARY_EXISTS
(
liblz4.a LZ4_compress_default
""
HAVE_LZ4_COMPRESS_DEFAULT
)
IF
((
HAVE_LZ4_LIB OR HAVE_LZ4_COMPRESS_DEFAULT
)
AND HAVE_LZ4_H
)
IF
(
HAVE_LZ4_COMPRESS_DEFAULT
)
ADD_DEFINITIONS
(
-DHAVE_LZ4_COMPRESS_DEFAULT=1
)
ENDIF
()
ADD_DEFINITIONS
(
-DHAVE_LZ4=1
)
LINK_LIBRARIES
(
liblz4.a
)
ELSE
()
IF
(
WITH_INNODB_LZ4 STREQUAL
"ON"
)
MESSAGE
(
FATAL_ERROR
"Required lz4 library is not found"
)
ENDIF
()
ENDIF
()
ENDIF
()
ENDMACRO
()
\ No newline at end of file
ENDMACRO
()
cmake/wsrep.cmake
View file @
c8081e30
...
...
@@ -41,4 +41,3 @@ SET(WSREP_PROC_INFO ${WITH_WSREP})
IF
(
WITH_WSREP
)
SET
(
WSREP_PATCH_VERSION
"wsrep_
${
WSREP_VERSION
}
"
)
ENDIF
()
config.h.cmake
View file @
c8081e30
...
...
@@ -673,21 +673,4 @@
#define __STDC_FORMAT_MACROS
#endif
/*
stat
structure
(
from <sys/stat.h>
)
is conditionally defined
to have different layout and size depending on the defined macros.
The correct macro is defined in my_config.h, which means it MUST be
included
first
(
or at least before <features.h> - so, practically,
before including any system headers
)
.
Check the include order by looking at
__GLIBC__
(
defined in <features.h>
)
But we cannot force all third-party clients/connectors to include
my_config.h first. So, their crashes are their responsibility,
we enable this check only for MariaDB
sources
(
SAFE_MUTEX check
)
.
*/
#if defined(__GLIBC__) && defined(SAFE_MUTEX)
#error <my_config.h> MUST be included first!
#endif
#endif
extra/mariabackup/CMakeLists.txt
View file @
c8081e30
...
...
@@ -27,101 +27,6 @@ IF(NOT WIN32)
ENDIF
()
ENDIF
()
IF
(
WITH_LIBARCHIVE STREQUAL
"STATIC"
)
SET
(
CMAKE_FIND_LIBRARY_SUFFIXES .a .lib
)
ENDIF
()
FIND_PACKAGE
(
LibArchive
)
IF
(
NOT DEFINED WITH_LIBARCHIVE
)
IF
(
LibArchive_FOUND
)
SET
(
WITH_LIBARCHIVE_DEFAULT ON
)
ELSE
()
SET
(
WITH_LIBARCHIVE_DEFAULT OFF
)
ENDIF
()
SET
(
WITH_LIBARCHIVE
${
WITH_LIBARCHIVE_DEFAULT
}
CACHE STRING
"Use libarchive for streaming features (ON, OFF or STATIC)"
)
ENDIF
()
IF
(
NOT WITH_LIBARCHIVE MATCHES
"^(ON|OFF|STATIC)$"
)
MESSAGE
(
FATAL_ERROR
"Invalid value for WITH_LIBARCHIVE: '
${
WITH_LIBARCHIVE
}
'. Use one of ON, OFF or STATIC"
)
ENDIF
()
IF
(
UNIX
)
SET
(
PIC_FLAG -fPIC
)
ENDIF
()
IF
((
NOT WITH_LIBARCHIVE STREQUAL
"OFF"
)
AND
(
NOT LibArchive_FOUND
))
IF
(
CMAKE_VERSION VERSION_LESS
"2.8.12"
)
MESSAGE
(
"libarchive can't be built, old cmake"
)
ELSE
()
# Build a local version
INCLUDE
(
ExternalProject
)
SET
(
LIBARCHIVE_DIR
${
CMAKE_CURRENT_BINARY_DIR
}
/libarchive
)
SET
(
libarchive_PREFIX
${
CMAKE_CURRENT_BINARY_DIR
}
/libarchive
)
SET
(
libarchive_CMAKE_ARGS
-DCMAKE_INSTALL_PREFIX:PATH=<INSTALL_DIR>
-DCMAKE_BUILD_TYPE=
${
CMAKE_BUILD_TYPE
}
-DENABLE_ICONV=OFF
-DENABLE_TAR=ON
-DENABLE_OPENSSL=OFF
-DENABLE_TEST=OFF
"-DCMAKE_C_FLAGS_DEBUG=
${
CMAKE_C_FLAGS_DEBUG
}
${
PIC_FLAG
}
"
"-DCMAKE_C_FLAGS_RELWITHDEBINFO=
${
CMAKE_C_FLAGS_RELWITHDEBINFO
}
${
PIC_FLAG
}
"
"-DCMAKE_C_FLAGS_RELEASE=
${
CMAKE_C_FLAGS_RELEASE
}
${
PIC_FLAG
}
"
"-DCMAKE_C_FLAGS_MINSIZEREL=
${
CMAKE_C_FLAGS_MINSIZEREL
}
${
PIC_FLAG
}
"
)
IF
(
WIN32
)
SET
(
libarchive_CMAKE_ARGS
${
libarchive_CMAKE_ARGS
}
-DWINDOWS_VERSION=WIN7 -DCMAKE_DEBUG_POSTFIX=d
)
SET
(
LIBARCHIVE_RELEASE_LIB
${
LIBARCHIVE_DIR
}
/lib/
${
CMAKE_STATIC_LIBRARY_PREFIX
}
archive_static
${
CMAKE_STATIC_LIBRARY_SUFFIX
}
)
SET
(
LIBARCHIVE_DEBUG_LIB
${
LIBARCHIVE_DIR
}
/lib/
${
CMAKE_STATIC_LIBRARY_PREFIX
}
archive_staticd
${
CMAKE_STATIC_LIBRARY_SUFFIX
}
)
SET
(
byproducts
${
LIBARCHIVE_RELEASE_LIB
}
${
LIBARCHIVE_DEBUG_LIB
}
)
ELSE
()
SET
(
LIBARCHIVE_LIB
${
LIBARCHIVE_DIR
}
/lib/
${
CMAKE_STATIC_LIBRARY_PREFIX
}
archive
${
CMAKE_STATIC_LIBRARY_SUFFIX
}
)
SET
(
byproducts
${
LIBARCHIVE_LIB
}
)
ENDIF
()
IF
(
CMAKE_VERSION VERSION_GREATER
"3.1"
)
SET
(
byproducts BUILD_BYPRODUCTS
${
byproducts
}
)
ENDIF
()
ExternalProject_Add
(
libarchive
PREFIX
${
libarchive_PREFIX
}
DOWNLOAD_DIR
${
LIBARCHIVE_DIR
}
URL http://www.libarchive.org/downloads/libarchive-3.2.2.tar.gz
INSTALL_DIR
${
LIBARCHIVE_DIR
}
CMAKE_ARGS
${
libarchive_CMAKE_ARGS
}
${
byproducts
}
)
ADD_LIBRARY
(
archive_static STATIC IMPORTED
)
ADD_DEPENDENCIES
(
archive_static libarchive
)
IF
(
WIN32
)
SET_PROPERTY
(
TARGET archive_static PROPERTY IMPORTED_LOCATION_RELWITHDEBINFO
${
LIBARCHIVE_RELEASE_LIB
}
)
SET_PROPERTY
(
TARGET archive_static PROPERTY IMPORTED_LOCATION_RELEASE
${
LIBARCHIVE_RELEASE_LIB
}
)
SET_PROPERTY
(
TARGET archive_static PROPERTY IMPORTED_LOCATION_DEBUG
${
LIBARCHIVE_DEBUG_LIB
}
)
SET_PROPERTY
(
TARGET archive_static PROPERTY IMPORTED_LOCATION_MINSIZEREL
${
LIBARCHIVE_RELEASE_LIB
}
)
ELSE
()
SET_PROPERTY
(
TARGET archive_static PROPERTY IMPORTED_LOCATION
${
LIBARCHIVE_LIB
}
)
ENDIF
()
SET
(
LibArchive_FOUND ON
)
SET
(
LibArchive_INCLUDE_DIRS
${
LIBARCHIVE_DIR
}
/include
)
SET
(
LibArchive_LIBRARIES archive_static
)
IF
(
WIN32
)
SET
(
LIBARCHIVE_STATIC 1
)
ENDIF
()
ENDIF
()
ENDIF
()
IF
(
WITH_LIBARCHIVE AND LibArchive_FOUND
)
ADD_DEFINITIONS
(
-DHAVE_LIBARCHIVE
)
IF
(
LIBARCHIVE_STATIC
)
ADD_DEFINITIONS
(
-DLIBARCHIVE_STATIC
)
ENDIF
()
INCLUDE_DIRECTORIES
(
${
LibArchive_INCLUDE_DIRS
}
)
LINK_LIBRARIES
(
${
LibArchive_LIBRARIES
}
)
SET
(
DS_ARCHIVE_SOURCE ds_archive.c
)
ENDIF
()
INCLUDE_DIRECTORIES
(
${
CMAKE_SOURCE_DIR
}
/include
...
...
@@ -154,7 +59,6 @@ MYSQL_ADD_EXECUTABLE(mariabackup
innobackupex.cc
changed_page_bitmap.cc
datasink.c
${
DS_ARCHIVE_SOURCE
}
ds_buffer.c
ds_compress.c
ds_local.c
...
...
extra/mariabackup/backup_copy.cc
View file @
c8081e30
...
...
@@ -450,7 +450,7 @@ datadir_iter_free(datadir_iter_t *it)
/************************************************************************
Holds the state needed to copy single data file. */
struct
datafile_cur_t
{
os_file_t
file
;
pfs_
os_file_t
file
;
char
rel_path
[
FN_REFLEN
];
char
abs_path
[
FN_REFLEN
];
MY_STAT
statinfo
;
...
...
extra/mariabackup/changed_page_bitmap.cc
View file @
c8081e30
...
...
@@ -35,7 +35,7 @@ Remove these on the first opportunity, i.e. single-binary XtraBackup. */
/** Single bitmap file information */
struct
log_online_bitmap_file_t
{
char
name
[
FN_REFLEN
];
/*!< Name with full path */
os_file_t
file
;
/*!< Handle to opened file */
pfs_
os_file_t
file
;
/*!< Handle to opened file */
ib_uint64_t
size
;
/*!< Size of the file */
ib_uint64_t
offset
;
/*!< Offset of the next read,
or count of already-read bytes
...
...
extra/mariabackup/crc/CMakeLists.txt
View file @
c8081e30
...
...
@@ -30,4 +30,4 @@ ENDIF()
IF
(
HAVE_CLMUL_INSTRUCTION
)
ADD_DEFINITIONS
(
-DHAVE_CLMUL_INSTRUCTION
)
ENDIF
()
ADD_LIBRARY
(
crc crc_glue.c crc-intel-pclmul.c
)
ADD_LIBRARY
(
crc
STATIC
crc_glue.c crc-intel-pclmul.c
)
extra/mariabackup/crc/crc_glue.c
View file @
c8081e30
...
...
@@ -17,7 +17,7 @@ along with this program; if not, write to the Free Software
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
*******************************************************/
#include
"my_config.h"
#include
"crc_glue.h"
#include
"crc-intel-pclmul.h"
#include
<stdint.h>
...
...
extra/mariabackup/fil_cur.h
View file @
c8081e30
...
...
@@ -29,7 +29,7 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
#include
"read_filt.h"
struct
xb_fil_cur_t
{
os_file_t
file
;
/*!< source file handle */
pfs_
os_file_t
file
;
/*!< source file handle */
fil_node_t
*
node
;
/*!< source tablespace node */
char
rel_path
[
FN_REFLEN
];
/*!< normalized file path */
...
...
extra/mariabackup/innobackupex.cc
View file @
c8081e30
...
...
@@ -848,9 +848,7 @@ ibx_get_one_option(int optid,
opt_ibx_decrypt
=
true
;
break
;
case
OPT_STREAM
:
if
(
!
strcasecmp
(
argument
,
"tar"
))
xtrabackup_stream_fmt
=
XB_STREAM_FMT_TAR
;
else
if
(
!
strcasecmp
(
argument
,
"xbstream"
))
if
(
!
strcasecmp
(
argument
,
"xbstream"
))
xtrabackup_stream_fmt
=
XB_STREAM_FMT_XBSTREAM
;
else
{
ibx_msg
(
"Invalid --stream argument: %s
\n
"
,
argument
);
...
...
extra/mariabackup/xb0xb.h
View file @
c8081e30
...
...
@@ -23,7 +23,7 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
extern
void
os_io_init_simple
(
void
);
extern
os_file_t
files
[
1000
];
extern
pfs_
os_file_t
files
[
1000
];
extern
const
char
*
innodb_checksum_algorithm_names
[];
extern
TYPELIB
innodb_checksum_algorithm_typelib
;
extern
dberr_t
open_or_create_data_files
(
...
...
extra/mariabackup/xbstream.h
View file @
c8081e30
...
...
@@ -42,7 +42,6 @@ typedef struct xb_wstream_file_struct xb_wstream_file_t;
typedef
enum
{
XB_STREAM_FMT_NONE
,
XB_STREAM_FMT_TAR
,
XB_STREAM_FMT_XBSTREAM
}
xb_stream_fmt_t
;
...
...
Prev
1
2
3
4
5
…
26
Next
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new 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