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
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
nexedi
MariaDB
Commits
dd3c7bbc
Commit
dd3c7bbc
authored
Dec 14, 2011
by
Michael Widenius
Browse files
Options
Browse Files
Download
Plain Diff
Merge
parents
efb57a8e
511fd82b
Changes
12
Show whitespace changes
Inline
Side-by-side
Showing
12 changed files
with
124 additions
and
30 deletions
+124
-30
config/ac-macros/readline.m4
config/ac-macros/readline.m4
+30
-9
configure.in
configure.in
+26
-3
mysql-test/std_data/bug887051.txt
mysql-test/std_data/bug887051.txt
+2
-0
mysql-test/suite/maria/r/maria-recovery3.result
mysql-test/suite/maria/r/maria-recovery3.result
+22
-0
mysql-test/suite/maria/t/maria-recovery3.test
mysql-test/suite/maria/t/maria-recovery3.test
+18
-0
sql/set_var.cc
sql/set_var.cc
+1
-0
sql/sql_show.cc
sql/sql_show.cc
+0
-9
storage/maria/ha_maria.cc
storage/maria/ha_maria.cc
+10
-2
storage/maria/ma_delete.c
storage/maria/ma_delete.c
+3
-2
storage/maria/ma_key_recover.c
storage/maria/ma_key_recover.c
+4
-1
storage/maria/ma_recovery.c
storage/maria/ma_recovery.c
+4
-0
storage/pbxt/src/lock_xt.h
storage/pbxt/src/lock_xt.h
+4
-4
No files found.
config/ac-macros/readline.m4
View file @
dd3c7bbc
...
...
@@ -40,23 +40,44 @@ AC_DEFUN([MYSQL_CHECK_LIBEDIT_INTERFACE], [
])
AC_DEFUN([MYSQL_CHECK_NEW_RL_INTERFACE], [
AC_CACHE_CHECK([
defined rl_compentry_func_t and rl_completion_func_t
], mysql_cv_new_rl_interface,
AC_
TRY_COMPIL
E(
[
AC_CACHE_CHECK([
for system libreadline
], mysql_cv_new_rl_interface,
AC_
COMPILE_IFELS
E(
[
AC_LANG_SOURCE([
#include "stdio.h"
#include "readline/readline.h"
],
[
rl_completion_func_t *func1= (rl_completion_func_t*)0;
rl_compentry_func_t *func2= (rl_compentry_func_t*)0;
],
]
)]
,
[
AC_PREPROC_IFELSE(
[AC_LANG_SOURCE([
#include "stdio.h"
#include "readline/readline.h"
#if RL_VERSION_MAJOR > 5
#error
#endif
])], [ rl_v5=yes ], [ rl_v5=no ],
)
if [test "$rl_v5" = "yes"]
then
mysql_cv_new_rl_interface=yes
AC_DEFINE_UNQUOTED([USE_NEW_READLINE_INTERFACE], [1],
[used new readline interface (are rl_completion_func_t and rl_compentry_func_t defined)])
else
if [test "$enable_distribution" = "yes"]
then
mysql_cv_new_rl_interface=no
else
mysql_cv_new_rl_interface=yes
enable_distribution=warn
fi
fi
],
[mysql_cv_new_rl_interface=no]
)
if [test "$mysql_cv_new_rl_interface" = yes]
then
AC_DEFINE_UNQUOTED([USE_NEW_READLINE_INTERFACE], [1],
[used new readline interface (are rl_completion_func_t and rl_compentry_func_t defined)])
fi
)
])
...
...
configure.in
View file @
dd3c7bbc
...
...
@@ -633,6 +633,14 @@ AC_ARG_WITH(other-libc,
)
AC_SUBST
(
NOINST_LDFLAGS
)
AC_ARG_ENABLE
(
distribution,
AC_HELP_STRING
(
[
--disable-distribution
]
,
[
Allow linking with system GPLv3 libraries. It may result
in
a binary that can not be legally distributed.]
)
,
[
enable_distribution
=
$enableval
]
,
[
enable_distribution
=
yes
]
)
#
# Check if we are using Linux and a glibc compiled with static nss
# (this is true on the MySQL build machines to avoid NSS problems)
...
...
@@ -1575,7 +1583,7 @@ fi
AC_MSG_CHECKING
([
for
OpenSolaris Bug 6611808]
)
save_CFLAGS
=
"
$CFLAGS
"
CFLAGS
=
"
$CFLAGS
-Werror"
AC_COMPILE_IFELSE
([
AC_COMPILE_IFELSE
([
AC_LANG_SOURCE
([
#include <pthread.h>
void dummy
()
{}
int main
()
...
...
@@ -1584,7 +1592,7 @@ AC_COMPILE_IFELSE([
pthread_once
(
&once_control, dummy
)
;
return
0
;
}
]
,
[
]
)]
,
[
AC_DEFINE
([
PTHREAD_ONCE_INITIALIZER],
[{
PTHREAD_ONCE_INIT
}]
,
[
See OpenSolaris Bug 6611808]
)
AC_MSG_RESULT
([
yes
])
...
...
@@ -2724,6 +2732,8 @@ case $SYSTEM_TYPE in
compile_libedit
=
yes
AC_DEFINE_UNQUOTED
(
HAVE_HIST_ENTRY, 1
)
AC_DEFINE_UNQUOTED
(
USE_LIBEDIT_INTERFACE, 1
)
AC_MSG_CHECKING
([
for
libedit/readline]
)
AC_MSG_RESULT
([
libedit bundled]
)
elif
test
"
$with_readline
"
=
"yes"
then
readline_topdir
=
"cmd-line-utils"
...
...
@@ -2734,6 +2744,8 @@ case $SYSTEM_TYPE in
compile_readline
=
yes
want_to_use_readline
=
"yes"
AC_DEFINE_UNQUOTED
(
USE_NEW_READLINE_INTERFACE, 1
)
AC_MSG_CHECKING
([
for
libedit/readline]
)
AC_MSG_RESULT
([
readline bundled]
)
else
# Use system readline library
AC_LANG_SAVE
...
...
@@ -2748,12 +2760,16 @@ case $SYSTEM_TYPE in
# this way we avoid linking commercial source with GPL readline
readline_link
=
"-lreadline"
want_to_use_readline
=
"yes"
AC_MSG_CHECKING
([
for
libedit/readline]
)
AC_MSG_RESULT
([
readline system]
)
elif
[
test
"
$mysql_cv_libedit_interface
"
=
"yes"
]
then
# Use libedit
readline_link
=
"-ledit"
AC_MSG_CHECKING
([
for
libedit/readline]
)
AC_MSG_RESULT
([
libedit system]
)
else
AC_MSG_ERROR
([
Could not find system readline or libedit libraries
AC_MSG_ERROR
([
Could not find
usable
system readline or libedit libraries
Use
--with-readline
or
--with-libedit
to use the bundled
versions of libedit or readline]
)
fi
...
...
@@ -2998,6 +3014,13 @@ if test X"$with_plugin_ndbcluster" = Xyes ; then
echo for more details.
fi
if test "$enable_distribution" = "warn"
then
echo "You have linked MariaDB with GPLv3 libraries!"
echo "You may not distribute the resulting binary. If you do, you will "
echo "put yourself into a legal problem with Free Software Foundation."
fi
# The first line "Thank you ..." is checked in ./Do-compile to verify that configure
# ended sucessfully - don'
t remove it.
echo
""
...
...
mysql-test/std_data/bug887051.txt
0 → 100644
View file @
dd3c7bbc
saved1
saved2
mysql-test/suite/maria/r/maria-recovery3.result
View file @
dd3c7bbc
...
...
@@ -89,6 +89,28 @@ check table t1 extended;
Table Op Msg_type Msg_text
mysqltest.t1 check status OK
drop table t1;
CREATE TABLE t1 ( word VARCHAR(255) PRIMARY KEY ) ENGINE=Aria;
LOAD DATA INFILE '../../std_data/bug887051.txt' INTO TABLE t1;
SET AUTOCOMMIT=0;
DELETE FROM t1;
LOAD DATA INFILE '../../std_data/bug887051.txt' INTO TABLE t1 IGNORE 1 LINES;
COMMIT;
SET SESSION debug="+d,maria_flush_whole_log,maria_crash";
* crashing mysqld intentionally
set global aria_checkpoint_interval=1;
ERROR HY000: Lost connection to MySQL server during query
* recovery happens
check table t1 extended;
Table Op Msg_type Msg_text
mysqltest.t1 check status OK
* testing that checksum after recovery is as expected
Checksum-check
failure
use mysqltest;
select * from t1;
word
saved2
drop table t1;
drop database mysqltest_for_feeding_recovery;
drop database mysqltest_for_comparison;
drop database mysqltest;
mysql-test/suite/maria/t/maria-recovery3.test
View file @
dd3c7bbc
...
...
@@ -109,6 +109,24 @@ truncate table t1;
check
table
t1
extended
;
drop
table
t1
;
#
# Test for BUG#887051; Failure in recovery with delete
#
let
$mvr_restore_old_snapshot
=
0
;
let
$mms_compare_physically
=
0
;
let
$mvr_debug_option
=
"+d,maria_flush_whole_log,maria_crash"
;
let
$mvr_crash_statement
=
set
global
aria_checkpoint_interval
=
1
;
CREATE
TABLE
t1
(
word
VARCHAR
(
255
)
PRIMARY
KEY
)
ENGINE
=
Aria
;
LOAD
DATA
INFILE
'../../std_data/bug887051.txt'
INTO
TABLE
t1
;
SET
AUTOCOMMIT
=
0
;
DELETE
FROM
t1
;
LOAD
DATA
INFILE
'../../std_data/bug887051.txt'
INTO
TABLE
t1
IGNORE
1
LINES
;
COMMIT
;
--
source
include
/
maria_verify_recovery
.
inc
select
*
from
t1
;
drop
table
t1
;
# clean up everything
let
$mms_purpose
=
feeding_recovery
;
eval
drop
database
mysqltest_for_
$mms_purpose
;
...
...
sql/set_var.cc
View file @
dd3c7bbc
...
...
@@ -650,6 +650,7 @@ static sys_var_thd_enum sys_query_cache_type(&vars, "query_cache_type",
static
sys_var_thd_bool
sys_query_cache_wlock_invalidate
(
&
vars
,
"query_cache_wlock_invalidate"
,
&
SV
::
query_cache_wlock_invalidate
);
static
sys_var_bool_ptr
sys_query_cache_strip_comments
(
&
vars
,
"query_cache_strip_comments"
,
&
opt_query_cache_strip_comments
);
#endif
/* HAVE_QUERY_CACHE */
static
sys_var_bool_ptr
sys_secure_auth
(
&
vars
,
"secure_auth"
,
&
opt_secure_auth
);
static
sys_var_const_str_ptr
sys_secure_file_priv
(
&
vars
,
"secure_file_priv"
,
...
...
sql/sql_show.cc
View file @
dd3c7bbc
...
...
@@ -760,7 +760,6 @@ mysqld_show_create(THD *thd, TABLE_LIST *table_list)
Protocol
*
protocol
=
thd
->
protocol
;
char
buff
[
2048
];
String
buffer
(
buff
,
sizeof
(
buff
),
system_charset_info
);
char
*
save_db
,
*
save_table_name
;
bool
retval
=
TRUE
;
// Assume error
List
<
Item
>
field_list
;
DBUG_ENTER
(
"mysqld_show_create"
);
...
...
@@ -770,10 +769,6 @@ mysqld_show_create(THD *thd, TABLE_LIST *table_list)
/* We want to preserve the tree for views. */
thd
->
lex
->
context_analysis_only
|=
CONTEXT_ANALYSIS_ONLY_VIEW
;
/* Store original names if called from SP */
save_db
=
table_list
->
db
;
save_table_name
=
table_list
->
table_name
;
{
Show_create_error_handler
view_error_suppressor
(
thd
,
table_list
);
thd
->
push_internal_handler
(
&
view_error_suppressor
);
...
...
@@ -857,11 +852,7 @@ mysqld_show_create(THD *thd, TABLE_LIST *table_list)
retval
=
FALSE
;
// ok
error:
/* Restore table list if called by stored procedure */
table_list
->
db
=
save_db
;
table_list
->
table_name
=
save_table_name
;
DBUG_RETURN
(
retval
);
}
bool
mysqld_show_create_db
(
THD
*
thd
,
char
*
dbname
,
...
...
storage/maria/ha_maria.cc
View file @
dd3c7bbc
...
...
@@ -2562,8 +2562,16 @@ int ha_maria::extra_opt(enum ha_extra_function operation, ulong cache_size)
int
ha_maria
::
delete_all_rows
()
{
THD
*
thd
=
table
->
in_use
;
(
void
)
translog_log_debug_info
(
file
->
trn
,
LOGREC_DEBUG_INFO_QUERY
,
#ifdef EXTRA_DEBUG
TRN
*
trn
=
file
->
trn
;
if
(
trn
&&
!
(
trnman_get_flags
(
trn
)
&
TRN_STATE_INFO_LOGGED
))
{
trnman_set_flags
(
trn
,
trnman_get_flags
(
trn
)
|
TRN_STATE_INFO_LOGGED
|
TRN_STATE_TABLES_CAN_CHANGE
);
(
void
)
translog_log_debug_info
(
trn
,
LOGREC_DEBUG_INFO_QUERY
,
(
uchar
*
)
thd
->
query
(),
thd
->
query_length
());
}
#endif
if
(
file
->
s
->
now_transactional
&&
((
table
->
in_use
->
options
&
(
OPTION_NOT_AUTOCOMMIT
|
OPTION_BEGIN
))
||
table
->
in_use
->
locked_tables
))
...
...
storage/maria/ma_delete.c
View file @
dd3c7bbc
...
...
@@ -1481,8 +1481,9 @@ my_bool _ma_log_delete(MARIA_PAGE *ma_page, const uchar *key_pos,
MARIA_SHARE
*
share
=
info
->
s
;
my_off_t
page
=
ma_page
->
pos
/
share
->
block_size
;
DBUG_ENTER
(
"_ma_log_delete"
);
DBUG_PRINT
(
"enter"
,
(
"page: %lu changed_length: %u move_length: %d"
,
(
ulong
)
page
,
changed_length
,
move_length
));
DBUG_PRINT
(
"enter"
,
(
"page: %lu offset: %u changed_length: %u move_length: %u append_length: %u page_size: %u"
,
(
ulong
)
page
,
offset
,
changed_length
,
move_length
,
append_length
,
ma_page
->
size
));
DBUG_ASSERT
(
share
->
now_transactional
&&
move_length
);
DBUG_ASSERT
(
offset
+
changed_length
<=
ma_page
->
size
);
DBUG_ASSERT
(
ma_page
->
org_size
-
move_length
+
append_length
==
ma_page
->
size
);
...
...
storage/maria/ma_key_recover.c
View file @
dd3c7bbc
...
...
@@ -945,7 +945,7 @@ uint _ma_apply_redo_index(MARIA_HA *info,
const
uchar
*
header_end
=
header
+
head_length
;
uint
page_offset
=
0
,
org_page_length
;
uint
page_length
,
keypage_header
,
keynr
;
uint
max_page_size
=
share
->
max_index_block_size
;
uint
max_page_size
=
share
->
max_index_block_size
,
new_page_length
=
0
;
int
result
;
MARIA_PAGE
page
;
DBUG_ENTER
(
"_ma_apply_redo_index"
);
...
...
@@ -1106,6 +1106,8 @@ uint _ma_apply_redo_index(MARIA_HA *info,
case
KEY_OP_DEBUG_2
:
DBUG_PRINT
(
"redo"
,
(
"org_page_length: %u new_page_length: %u"
,
uint2korr
(
header
),
uint2korr
(
header
+
2
)));
DBUG_ASSERT
(
uint2korr
(
header
)
==
page_length
);
new_page_length
=
uint2korr
(
header
+
2
);
header
+=
4
;
break
;
case
KEY_OP_MAX_PAGELENGTH
:
...
...
@@ -1171,6 +1173,7 @@ uint _ma_apply_redo_index(MARIA_HA *info,
}
}
while
(
header
<
header_end
);
DBUG_ASSERT
(
header
==
header_end
);
DBUG_ASSERT
(
new_page_length
==
0
||
new_page_length
==
page_length
);
/* Write modified page */
page
.
size
=
page_length
;
...
...
storage/maria/ma_recovery.c
View file @
dd3c7bbc
...
...
@@ -3592,6 +3592,10 @@ my_bool _ma_reenable_logging_for_table(MARIA_HA *info, my_bool flush_pages)
if
(
flush_pages
)
{
/* Ensure that recover is not executing any redo before this */
if
(
!
maria_in_recovery
)
share
->
state
.
is_of_horizon
=
share
->
state
.
create_rename_lsn
=
share
->
state
.
skip_redo_lsn
=
translog_get_horizon
();
/*
We are going to change callbacks; if a page is flushed at this moment
this can cause race conditions, that's one reason to flush pages
...
...
storage/pbxt/src/lock_xt.h
View file @
dd3c7bbc
...
...
@@ -67,9 +67,9 @@ inline void xt_atomic_inc1(volatile xtWord1 *mptr)
#elif defined(XT_ATOMIC_GNUC_X86)
xtWord1
val
;
asm
volatile
(
"movb %1,%0"
:
"=
r
"
(
val
)
:
"m"
(
*
mptr
)
:
"memory"
);
asm
volatile
(
"movb %1,%0"
:
"=
q
"
(
val
)
:
"m"
(
*
mptr
)
:
"memory"
);
val
++
;
asm
volatile
(
"xchgb %1,%0"
:
"=
r
"
(
val
)
:
"m"
(
*
mptr
),
"0"
(
val
)
:
"memory"
);
asm
volatile
(
"xchgb %1,%0"
:
"=
q
"
(
val
)
:
"m"
(
*
mptr
),
"0"
(
val
)
:
"memory"
);
#elif defined(XT_ATOMIC_SOLARIS_LIB)
atomic_inc_8
(
mptr
);
#else
...
...
@@ -91,9 +91,9 @@ inline xtWord1 xt_atomic_dec1(volatile xtWord1 *mptr)
#elif defined(XT_ATOMIC_GNUC_X86)
xtWord1
val2
;
asm
volatile
(
"movb %1, %0"
:
"=
r
"
(
val
)
:
"m"
(
*
mptr
)
:
"memory"
);
asm
volatile
(
"movb %1, %0"
:
"=
q
"
(
val
)
:
"m"
(
*
mptr
)
:
"memory"
);
val
--
;
asm
volatile
(
"xchgb %1,%0"
:
"=
r
"
(
val2
)
:
"m"
(
*
mptr
),
"0"
(
val
)
:
"memory"
);
asm
volatile
(
"xchgb %1,%0"
:
"=
q
"
(
val2
)
:
"m"
(
*
mptr
),
"0"
(
val
)
:
"memory"
);
/* Should work, but compiler makes a mistake?
* asm volatile ("xchgb %1, %0" : : "r" (val), "m" (*mptr) : "memory");
*/
...
...
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