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
273bcb92
Commit
273bcb92
authored
Nov 07, 2013
by
unknown
Browse files
Options
Browse Files
Download
Plain Diff
Merge 10.0-base to 10.0
parents
3e1ae7a0
e6c78988
Changes
26
Hide whitespace changes
Inline
Side-by-side
Showing
26 changed files
with
175 additions
and
79 deletions
+175
-79
mysql-test/suite/storage_engine/alter_tablespace.result
mysql-test/suite/storage_engine/alter_tablespace.result
+1
-1
mysql-test/suite/storage_engine/alter_tablespace.test
mysql-test/suite/storage_engine/alter_tablespace.test
+1
-0
mysql-test/suite/storage_engine/have_engine.inc
mysql-test/suite/storage_engine/have_engine.inc
+1
-1
mysql-test/suite/storage_engine/misc.result
mysql-test/suite/storage_engine/misc.result
+5
-0
mysql-test/suite/storage_engine/obfuscate.inc
mysql-test/suite/storage_engine/obfuscate.inc
+1
-1
mysql-test/suite/storage_engine/parts/repair_table.result
mysql-test/suite/storage_engine/parts/repair_table.result
+0
-2
sql/log_event.cc
sql/log_event.cc
+0
-1
sql/rpl_parallel.cc
sql/rpl_parallel.cc
+108
-35
sql/rpl_parallel.h
sql/rpl_parallel.h
+7
-0
sql/rpl_rli.h
sql/rpl_rli.h
+1
-2
sql/slave.cc
sql/slave.cc
+2
-1
sql/sql_class.cc
sql/sql_class.cc
+27
-1
storage/innobase/mysql-test/storage_engine/alter_tablespace.rdiff
...innobase/mysql-test/storage_engine/alter_tablespace.rdiff
+0
-11
storage/innobase/mysql-test/storage_engine/fulltext_search.rdiff
.../innobase/mysql-test/storage_engine/fulltext_search.rdiff
+2
-2
storage/innobase/mysql-test/storage_engine/index_enable_disable.rdiff
...base/mysql-test/storage_engine/index_enable_disable.rdiff
+3
-3
storage/innobase/mysql-test/storage_engine/tbl_opt_row_format.rdiff
...nobase/mysql-test/storage_engine/tbl_opt_row_format.rdiff
+1
-1
storage/innobase/mysql-test/storage_engine/type_spatial_indexes.rdiff
...base/mysql-test/storage_engine/type_spatial_indexes.rdiff
+1
-1
storage/innobase/mysql-test/storage_engine/vcol.rdiff
storage/innobase/mysql-test/storage_engine/vcol.rdiff
+1
-1
storage/myisam/mysql-test/storage_engine/alter_tablespace.rdiff
...e/myisam/mysql-test/storage_engine/alter_tablespace.rdiff
+2
-2
storage/myisammrg/mysql-test/storage_engine/alter_tablespace.rdiff
...yisammrg/mysql-test/storage_engine/alter_tablespace.rdiff
+1
-1
storage/myisammrg/mysql-test/storage_engine/fulltext_search.rdiff
...myisammrg/mysql-test/storage_engine/fulltext_search.rdiff
+2
-2
storage/myisammrg/mysql-test/storage_engine/handler.rdiff
storage/myisammrg/mysql-test/storage_engine/handler.rdiff
+2
-2
storage/myisammrg/mysql-test/storage_engine/index_enable_disable.rdiff
...mmrg/mysql-test/storage_engine/index_enable_disable.rdiff
+3
-3
storage/myisammrg/mysql-test/storage_engine/parts/repair_table.rdiff
...sammrg/mysql-test/storage_engine/parts/repair_table.rdiff
+1
-3
storage/myisammrg/mysql-test/storage_engine/truncate_table.rdiff
.../myisammrg/mysql-test/storage_engine/truncate_table.rdiff
+1
-1
storage/myisammrg/mysql-test/storage_engine/vcol.rdiff
storage/myisammrg/mysql-test/storage_engine/vcol.rdiff
+1
-1
No files found.
mysql-test/suite/storage_engine/alter_tablespace.result
View file @
273bcb92
...
...
@@ -10,7 +10,7 @@ a
2
ALTER TABLE t1 DISCARD TABLESPACE;
SELECT a FROM t1;
ERROR HY000: Got error -1
from storage engine
ERROR HY000: Got error -1
"Internal error < 0 (Not system error)" from storage engine <STORAGE_ENGINE>
ALTER TABLE t1 IMPORT TABLESPACE;
SELECT a FROM t1;
a
...
...
mysql-test/suite/storage_engine/alter_tablespace.test
View file @
273bcb92
...
...
@@ -63,6 +63,7 @@ EOF
--
source
alter_table
.
inc
--
let
$error_codes
=
ER_GET_ERRNO
--
replace_result
$storage_engine
<
STORAGE_ENGINE
>
SELECT
a
FROM
t1
;
--
source
check_errors
.
inc
if
(
$mysql_errname
!=
ER_GET_ERRNO
)
...
...
mysql-test/suite/storage_engine/have_engine.inc
View file @
273bcb92
...
...
@@ -38,7 +38,7 @@ let $default_char_type = CHAR(8);
if
(
!
$ENGINE
)
{
--
skip
ERROR
:
Storage
engine
under
test
is
not
defined
,
export
ENGINE
env
variable
or
set
it
in
define_engine
.
inc
--
skip
Storage
engine
under
test
is
not
defined
,
export
ENGINE
env
variable
or
set
it
in
define_engine
.
inc
}
# Check that the storage engine is loaded. Here we don't need to worry about the case,
...
...
mysql-test/suite/storage_engine/misc.result
View file @
273bcb92
...
...
@@ -42,6 +42,8 @@ db User NULL NULL
event db NULL NULL
event name NULL NULL
func name NULL NULL
gtid_slave_pos domain_id NULL NULL
gtid_slave_pos sub_id NULL NULL
help_category help_category_id NULL NULL
help_category name NULL NULL
help_keyword help_keyword_id NULL NULL
...
...
@@ -70,6 +72,9 @@ proxies_priv Host NULL NULL
proxies_priv Proxied_host NULL NULL
proxies_priv Proxied_user NULL NULL
proxies_priv User NULL NULL
roles_mapping Host NULL NULL
roles_mapping Role NULL NULL
roles_mapping User NULL NULL
servers Server_name NULL NULL
table_stats db_name NULL NULL
table_stats table_name NULL NULL
...
...
mysql-test/suite/storage_engine/obfuscate.inc
View file @
273bcb92
let
$storage_engine_search_string
=
ENGINE
=
$storage_engine
;
--
replace_result
' '
' '
' ,'
','
' )'
')'
'( '
'('
$default_tbl_opts
<
CUSTOM_TABLE_OPTIONS
>
$int_indexed_col
<
INT_COLUMN
>
$char_indexed_col
<
CHAR_COLUMN
>
$int_col
<
INT_COLUMN
>
$char_col
<
CHAR_COLUMN
>
$default_col_indexed_opts
<
CUSTOM_COL_OPTIONS
>
$default_col_opts
<
CUSTOM_COL_OPTIONS
>
$storage_engine_search_string
ENGINE
=<
STORAGE_ENGINE
>
$default_index
<
CUSTOM_INDEX
>
--
replace_result
' '
' '
' ,'
','
' )'
')'
'( '
'('
$default_tbl_opts
<
CUSTOM_TABLE_OPTIONS
>
$int_indexed_col
<
INT_COLUMN
>
$char_indexed_col
<
CHAR_COLUMN
>
$int_col
<
INT_COLUMN
>
$char_col
<
CHAR_COLUMN
>
$default_col_indexed_opts
<
CUSTOM_COL_OPTIONS
>
$default_col_opts
<
CUSTOM_COL_OPTIONS
>
$storage_engine_search_string
ENGINE
=<
STORAGE_ENGINE
>
$
storage_engine
<
STORAGE_ENGINE
>
$
default_index
<
CUSTOM_INDEX
>
mysql-test/suite/storage_engine/parts/repair_table.result
View file @
273bcb92
...
...
@@ -74,7 +74,6 @@ ERROR HY000: Failed to read from the .par file
CHECK TABLE t1;
Table Op Msg_type Msg_text
test.t1 check Error Failed to read from the .par file
test.t1 check Error Incorrect information in file: './test/t1.frm'
test.t1 check error Corrupt
SELECT a,b FROM t1;
ERROR HY000: Failed to read from the .par file
...
...
@@ -83,7 +82,6 @@ ERROR HY000: Failed to read from the .par file
REPAIR TABLE t1;
Table Op Msg_type Msg_text
test.t1 repair Error Failed to read from the .par file
test.t1 repair Error Incorrect information in file: './test/t1.frm'
test.t1 repair error Corrupt
DROP TABLE t1, t2;
call mtr.add_suppression("Got an error from thread_id=.*");
...
...
sql/log_event.cc
View file @
273bcb92
...
...
@@ -358,7 +358,6 @@ static void clear_all_errors(THD *thd, Relay_log_info *rli)
{
thd
->
is_slave_error
=
0
;
thd
->
clear_error
();
rli
->
clear_error
();
}
inline
int
idempotent_error_code
(
int
err_code
)
...
...
sql/rpl_parallel.cc
View file @
273bcb92
...
...
@@ -120,6 +120,64 @@ sql_worker_killed(THD *thd, rpl_group_info *rgi, bool in_event_group)
}
static
void
finish_event_group
(
THD
*
thd
,
int
err
,
uint64
sub_id
,
rpl_parallel_entry
*
entry
,
wait_for_commit
*
wfc
)
{
/*
Remove any left-over registration to wait for a prior commit to
complete. Normally, such wait would already have been removed at
this point by wait_for_prior_commit() called from within COMMIT
processing. However, in case of MyISAM and no binlog, we might not
have any commit processing, and so we need to do the wait here,
before waking up any subsequent commits, to preserve correct
order of event execution. Also, in the error case we might have
skipped waiting and thus need to remove it explicitly.
It is important in the non-error case to do a wait, not just an
unregister. Because we might be last in a group-commit that is
replicated in parallel, and the following event will then wait
for us to complete and rely on this also ensuring that any other
event in the group has completed.
But in the error case, we have to abort anyway, and it seems best
to just complete as quickly as possible with unregister. Anyone
waiting for us will in any case receive the error back from their
wait_for_prior_commit() call.
*/
if
(
err
)
wfc
->
unregister_wait_for_prior_commit
();
else
wfc
->
wait_for_prior_commit
();
thd
->
wait_for_commit_ptr
=
NULL
;
/*
Record that this event group has finished (eg. transaction is
committed, if transactional), so other event groups will no longer
attempt to wait for us to commit. Once we have increased
entry->last_committed_sub_id, no other threads will execute
register_wait_for_prior_commit() against us. Thus, by doing one
extra (usually redundant) wakeup_subsequent_commits() we can ensure
that no register_wait_for_prior_commit() can ever happen without a
subsequent wakeup_subsequent_commits() to wake it up.
We can race here with the next transactions, but that is fine, as
long as we check that we do not decrease last_committed_sub_id. If
this commit is done, then any prior commits will also have been
done and also no longer need waiting for.
*/
mysql_mutex_lock
(
&
entry
->
LOCK_parallel_entry
);
if
(
entry
->
last_committed_sub_id
<
sub_id
)
{
entry
->
last_committed_sub_id
=
sub_id
;
mysql_cond_broadcast
(
&
entry
->
COND_parallel_entry
);
}
mysql_mutex_unlock
(
&
entry
->
LOCK_parallel_entry
);
wfc
->
wakeup_subsequent_commits
(
err
);
}
pthread_handler_t
handle_rpl_parallel_thread
(
void
*
arg
)
{
...
...
@@ -128,6 +186,7 @@ handle_rpl_parallel_thread(void *arg)
struct
rpl_parallel_thread
::
queued_event
*
events
;
bool
group_standalone
=
true
;
bool
in_event_group
=
false
;
rpl_group_info
*
group_rgi
=
NULL
;
uint64
event_gtid_sub_id
=
0
;
int
err
;
...
...
@@ -173,7 +232,8 @@ handle_rpl_parallel_thread(void *arg)
thd
->
ENTER_COND
(
&
rpt
->
COND_rpl_thread
,
&
rpt
->
LOCK_rpl_thread
,
&
stage_waiting_for_work_from_sql_thread
,
&
old_stage
);
while
(
!
(
events
=
rpt
->
event_queue
)
&&
!
rpt
->
stop
&&
!
thd
->
killed
)
while
(
!
(
events
=
rpt
->
event_queue
)
&&
!
rpt
->
stop
&&
!
thd
->
killed
&&
!
(
rpt
->
current_entry
&&
rpt
->
current_entry
->
force_abort
))
mysql_cond_wait
(
&
rpt
->
COND_rpl_thread
,
&
rpt
->
LOCK_rpl_thread
);
rpt
->
dequeue
(
events
);
thd
->
EXIT_COND
(
&
old_stage
);
...
...
@@ -199,6 +259,7 @@ handle_rpl_parallel_thread(void *arg)
}
err
=
0
;
group_rgi
=
rgi
;
/* Handle a new event group, which will be initiated by a GTID event. */
if
((
event_type
=
events
->
ev
->
get_type_code
())
==
GTID_EVENT
)
{
...
...
@@ -294,41 +355,10 @@ handle_rpl_parallel_thread(void *arg)
if
(
end_of_group
)
{
in_event_group
=
false
;
/*
Remove any left-over registration to wait for a prior commit to
complete. Normally, such wait would already have been removed at
this point by wait_for_prior_commit(), but eg. in error case we
might have skipped waiting, so we would need to remove it explicitly.
*/
rgi
->
commit_orderer
.
unregister_wait_for_prior_commit
();
thd
->
wait_for_commit_ptr
=
NULL
;
/*
Record that this event group has finished (eg. transaction is
committed, if transactional), so other event groups will no longer
attempt to wait for us to commit. Once we have increased
entry->last_committed_sub_id, no other threads will execute
register_wait_for_prior_commit() against us. Thus, by doing one
extra (usually redundant) wakeup_subsequent_commits() we can ensure
that no register_wait_for_prior_commit() can ever happen without a
subsequent wakeup_subsequent_commits() to wake it up.
We can race here with the next transactions, but that is fine, as
long as we check that we do not decrease last_committed_sub_id. If
this commit is done, then any prior commits will also have been
done and also no longer need waiting for.
*/
mysql_mutex_lock
(
&
entry
->
LOCK_parallel_entry
);
if
(
entry
->
last_committed_sub_id
<
event_gtid_sub_id
)
{
entry
->
last_committed_sub_id
=
event_gtid_sub_id
;
mysql_cond_broadcast
(
&
entry
->
COND_parallel_entry
);
}
mysql_mutex_unlock
(
&
entry
->
LOCK_parallel_entry
);
rgi
->
commit_orderer
.
wakeup_subsequent_commits
(
err
);
finish_event_group
(
thd
,
err
,
event_gtid_sub_id
,
entry
,
&
rgi
->
commit_orderer
);
delete
rgi
;
group_rgi
=
rgi
=
NULL
;
}
events
=
next
;
...
...
@@ -348,6 +378,27 @@ handle_rpl_parallel_thread(void *arg)
goto
more_events
;
}
if
(
in_event_group
&&
group_rgi
->
parallel_entry
->
force_abort
)
{
/*
We are asked to abort, without getting the remaining events in the
current event group.
We have to rollback the current transaction and update the last
sub_id value so that SQL thread will know we are done with the
half-processed event group.
*/
mysql_mutex_unlock
(
&
rpt
->
LOCK_rpl_thread
);
group_rgi
->
is_error
=
true
;
finish_event_group
(
thd
,
1
,
group_rgi
->
gtid_sub_id
,
group_rgi
->
parallel_entry
,
&
group_rgi
->
commit_orderer
);
group_rgi
->
cleanup_context
(
thd
,
true
);
group_rgi
->
rli
->
abort_slave
=
true
;
in_event_group
=
false
;
delete
group_rgi
;
group_rgi
=
NULL
;
mysql_mutex_lock
(
&
rpt
->
LOCK_rpl_thread
);
}
if
(
!
in_event_group
)
{
rpt
->
current_entry
=
NULL
;
...
...
@@ -645,6 +696,8 @@ rpl_parallel::find(uint32 domain_id)
MY_MUTEX_INIT_FAST
);
mysql_cond_init
(
key_COND_parallel_entry
,
&
e
->
COND_parallel_entry
,
NULL
);
}
else
e
->
force_abort
=
false
;
return
e
;
}
...
...
@@ -656,6 +709,25 @@ rpl_parallel::wait_for_done()
struct
rpl_parallel_entry
*
e
;
uint32
i
;
/*
First signal all workers that they must force quit; no more events will
be queued to complete any partial event groups executed.
*/
for
(
i
=
0
;
i
<
domain_hash
.
records
;
++
i
)
{
rpl_parallel_thread
*
rpt
;
e
=
(
struct
rpl_parallel_entry
*
)
my_hash_element
(
&
domain_hash
,
i
);
e
->
force_abort
=
true
;
if
((
rpt
=
e
->
rpl_thread
))
{
mysql_mutex_lock
(
&
rpt
->
LOCK_rpl_thread
);
if
(
rpt
->
current_entry
==
e
)
mysql_cond_signal
(
&
rpt
->
COND_rpl_thread
);
mysql_mutex_unlock
(
&
rpt
->
LOCK_rpl_thread
);
}
}
for
(
i
=
0
;
i
<
domain_hash
.
records
;
++
i
)
{
e
=
(
struct
rpl_parallel_entry
*
)
my_hash_element
(
&
domain_hash
,
i
);
...
...
@@ -891,6 +963,7 @@ rpl_parallel::do_event(rpl_group_info *serial_rgi, Log_event *ev,
qev
->
future_event_master_log_pos
=
log_pos
;
if
(
!
current
)
{
rli
->
event_relay_log_pos
=
rli
->
future_event_relay_log_pos
;
handle_queued_pos_update
(
rli
->
sql_driver_thd
,
qev
);
my_free
(
qev
);
return
false
;
...
...
sql/rpl_parallel.h
View file @
273bcb92
...
...
@@ -76,6 +76,13 @@ struct rpl_parallel_entry {
uint64
last_seq_no
;
uint64
last_commit_id
;
bool
active
;
/*
Set when SQL thread is shutting down, and no more events can be processed,
so worker threads must force abort any current transactions without
waiting for event groups to complete.
*/
bool
force_abort
;
rpl_parallel_thread
*
rpl_thread
;
/*
The sub_id of the last transaction to commit within this domain_id.
...
...
sql/rpl_rli.h
View file @
273bcb92
...
...
@@ -688,8 +688,7 @@ public:
inline
void
inc_event_relay_log_pos
()
{
if
(
!
is_parallel_exec
||
rli
->
event_relay_log_pos
<
future_event_relay_log_pos
)
if
(
!
is_parallel_exec
)
rli
->
event_relay_log_pos
=
future_event_relay_log_pos
;
}
};
...
...
sql/slave.cc
View file @
273bcb92
...
...
@@ -6037,6 +6037,7 @@ static Log_event* next_event(rpl_group_info *rgi, ulonglong *event_size)
The other case is much simpler:
We just have a read only log that nobody else will be updating.
*/
ulonglong
old_pos
;
bool
hot_log
;
if
((
hot_log
=
(
cur_log
!=
&
rli
->
cache_buf
)))
{
...
...
@@ -6088,12 +6089,12 @@ static Log_event* next_event(rpl_group_info *rgi, ulonglong *event_size)
But if the relay log is created by new_file(): then the solution is:
MYSQL_BIN_LOG::open() will write the buffered description event.
*/
old_pos
=
rli
->
event_relay_log_pos
;
if
((
ev
=
Log_event
::
read_log_event
(
cur_log
,
0
,
rli
->
relay_log
.
description_event_for_exec
,
opt_slave_sql_verify_checksum
)))
{
ulonglong
old_pos
=
rli
->
future_event_relay_log_pos
;
/*
read it while we have a lock, to avoid a mutex lock in
inc_event_relay_log_pos()
...
...
sql/sql_class.cc
View file @
273bcb92
...
...
@@ -6064,6 +6064,27 @@ wait_for_commit::wait_for_commit()
wait_for_commit
::~
wait_for_commit
()
{
/*
Since we do a dirty read of the waiting_for_commit flag in
wait_for_prior_commit() and in unregister_wait_for_prior_commit(), we need
to take extra care before freeing the wait_for_commit object.
It is possible for the waitee to be pre-empted inside wakeup(), just after
it has cleared the waiting_for_commit flag and before it has released the
LOCK_wait_commit mutex. And then it is possible for the waiter to find the
flag cleared in wait_for_prior_commit() and go finish up things and
de-allocate the LOCK_wait_commit and COND_wait_commit objects before the
waitee has time to be re-scheduled and finish unlocking the mutex and
signalling the condition. This would lead to the waitee accessing no
longer valid memory.
To prevent this, we do an extra lock/unlock of the mutex here before
deallocation; this makes certain that any waitee has completed wakeup()
first.
*/
mysql_mutex_lock
(
&
LOCK_wait_commit
);
mysql_mutex_unlock
(
&
LOCK_wait_commit
);
mysql_mutex_destroy
(
&
LOCK_wait_commit
);
mysql_cond_destroy
(
&
COND_wait_commit
);
}
...
...
@@ -6087,8 +6108,13 @@ wait_for_commit::wakeup(int wakeup_error)
mysql_mutex_lock
(
&
LOCK_wait_commit
);
waiting_for_commit
=
false
;
this
->
wakeup_error
=
wakeup_error
;
mysql_mutex_unlock
(
&
LOCK_wait_commit
);
/*
Note that it is critical that the mysql_cond_signal() here is done while
still holding the mutex. As soon as we release the mutex, the waiter might
deallocate the condition object.
*/
mysql_cond_signal
(
&
COND_wait_commit
);
mysql_mutex_unlock
(
&
LOCK_wait_commit
);
}
...
...
storage/innobase/mysql-test/storage_engine/alter_tablespace.rdiff
deleted
100644 → 0
View file @
3e1ae7a0
--- suite/storage_engine/alter_tablespace.result 2013-01-13 01:03:49.133994000 +0400
+++ suite/storage_engine/alter_tablespace.reject 2013-01-13 01:04:04.398937286 +0400
@@ -10,7 +10,7 @@
2
ALTER TABLE t1 DISCARD TABLESPACE;
SELECT * FROM t1;
-ERROR HY000: Got error -1 from storage engine
+ERROR HY000: Got error -1 "Internal error < 0 (Not system error)" from storage engine
ALTER TABLE t1 IMPORT TABLESPACE;
SELECT * FROM t1;
a
storage/innobase/mysql-test/storage_engine/fulltext_search.rdiff
View file @
273bcb92
...
...
@@ -62,7 +62,7 @@
-v0 rating
-text1 178.11756896972656
-DROP TABLE t1;
+ERROR HY000: The
used table type
doesn't support FULLTEXT indexes
+ERROR HY000: The
storage engine <STORAGE_ENGINE>
doesn't support FULLTEXT indexes
+# ERROR: Statement ended with errno 1214, errname ER_TABLE_CANT_HANDLE_FT (expected to succeed)
+# ------------ UNEXPECTED RESULT ------------
+# The statement|command finished with ER_TABLE_CANT_HANDLE_FT.
...
...
@@ -139,7 +139,7 @@
-text1 190.56150817871094
-text4 1.1758291721343994
-DROP TABLE t1;
+ERROR HY000: The
used table type
doesn't support FULLTEXT indexes
+ERROR HY000: The
storage engine <STORAGE_ENGINE>
doesn't support FULLTEXT indexes
+# ERROR: Statement ended with errno 1214, errname ER_TABLE_CANT_HANDLE_FT (expected to succeed)
+# ------------ UNEXPECTED RESULT ------------
+# The statement|command finished with ER_TABLE_CANT_HANDLE_FT.
...
...
storage/innobase/mysql-test/storage_engine/index_enable_disable.rdiff
View file @
273bcb92
...
...
@@ -5,7 +5,7 @@
t1 1 a 1 a # # NULL NULL YES BTREE
ALTER TABLE t1 DISABLE KEYS;
+Warnings:
+Note 1031
Table storage engine for 't1'
doesn't have this option
+Note 1031
Storage engine <STORAGE_ENGINE> of the table `test`.`t1`
doesn't have this option
SHOW INDEX IN t1;
Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment
-t1 1 a 1 a # # NULL NULL YES BTREE disabled
...
...
@@ -18,7 +18,7 @@
(11),(12),(13),(14),(15),(16),(17),(18),(19),(20);
ALTER TABLE t1 ENABLE KEYS;
+Warnings:
+Note 1031
Table storage engine for 't1'
doesn't have this option
+Note 1031
Storage engine <STORAGE_ENGINE> of the table `test`.`t1`
doesn't have this option
SHOW INDEX IN t1;
Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment
t1 1 a 1 a # # NULL NULL YES BTREE
...
...
@@ -27,7 +27,7 @@
(21),(22),(23),(24),(25),(26),(27),(28),(29);
ALTER TABLE t1 DISABLE KEYS;
+Warnings:
+Note 1031
Table storage engine for 't1'
doesn't have this option
+Note 1031
Storage engine <STORAGE_ENGINE> of the table `test`.`t1`
doesn't have this option
INSERT INTO t1 (a) VALUES (29);
ERROR 23000: Duplicate entry '29' for key 'a'
# Statement ended with one of expected results (ER_DUP_ENTRY,ER_DUP_KEY).
storage/innobase/mysql-test/storage_engine/tbl_opt_row_format.rdiff
View file @
273bcb92
...
...
@@ -4,7 +4,7 @@
DROP TABLE IF EXISTS t1;
CREATE TABLE t1 (a <INT_COLUMN>, b <CHAR_COLUMN>) ENGINE=<STORAGE_ENGINE> <CUSTOM_TABLE_OPTIONS> ROW_FORMAT=FIXED;
+Warnings:
+Warning 140
InnoDB
: assuming ROW_FORMAT=COMPACT.
+Warning 140
<STORAGE_ENGINE>
: assuming ROW_FORMAT=COMPACT.
SHOW CREATE TABLE t1;
Table Create Table
t1 CREATE TABLE `t1` (
storage/innobase/mysql-test/storage_engine/type_spatial_indexes.rdiff
View file @
273bcb92
...
...
@@ -698,7 +698,7 @@
-WHERE ST_Contains(ST_Buffer(bridges.position, 15.0), buildings.footprint) = 1;
-count(*)
-1
+ERROR HY000: The
used table type
doesn't support SPATIAL indexes
+ERROR HY000: The
storage engine <STORAGE_ENGINE>
doesn't support SPATIAL indexes
+# ERROR: Statement ended with errno 1464, errname ER_TABLE_CANT_HANDLE_SPKEYS (expected to succeed)
+# ------------ UNEXPECTED RESULT ------------
+# [ CREATE TABLE gis_point (fid INT(11) /*!*/ /*Custom column options*/, g POINT NOT NULL, SPATIAL INDEX(g)) ENGINE=InnoDB /*!*/ /*Custom table options*/ ]
...
...
storage/innobase/mysql-test/storage_engine/vcol.rdiff
View file @
273bcb92
...
...
@@ -70,7 +70,7 @@
-3 4
-4 5
-DROP TABLE t1;
+ERROR HY000:
InnoDB
storage engine does not support computed columns
+ERROR HY000:
<STORAGE_ENGINE>
storage engine does not support computed columns
+# ERROR: Statement ended with errno 1910, errname ER_UNSUPPORTED_ENGINE_FOR_VIRTUAL_COLUMNS (expected to succeed)
+# ------------ UNEXPECTED RESULT ------------
+# [ CREATE TABLE t1 (a INT(11) /*!*/ /*Custom column options*/, b INT(11) /*!*/ /*Custom column options*/ GENERATED ALWAYS AS (a+1)) ENGINE=InnoDB /*!*/ /*Custom table options*/ ]
...
...
storage/myisam/mysql-test/storage_engine/alter_tablespace.rdiff
View file @
273bcb92
...
...
@@ -13,13 +13,13 @@
-2
-ALTER TABLE t1 DISCARD TABLESPACE;
-SELECT a FROM t1;
-ERROR HY000: Got error -1
from storage engine
-ERROR HY000: Got error -1
"Internal error < 0 (Not system error)" from storage engine <STORAGE_ENGINE>
-ALTER TABLE t1 IMPORT TABLESPACE;
-SELECT a FROM t1;
-a
-1
-2
+ERROR HY000:
Table storage engine for 't1'
doesn't have this option
+ERROR HY000:
Storage engine <STORAGE_ENGINE> of the table `test`.`t1`
doesn't have this option
+# ERROR: Statement ended with errno 1031, errname ER_ILLEGAL_HA (expected to succeed)
+# ------------ UNEXPECTED RESULT ------------
+# [ ALTER TABLE t1 DISCARD TABLESPACE ]
...
...
storage/myisammrg/mysql-test/storage_engine/alter_tablespace.rdiff
View file @
273bcb92
...
...
@@ -13,7 +13,7 @@
-2
-ALTER TABLE t1 DISCARD TABLESPACE;
-SELECT a FROM t1;
-ERROR HY000: Got error -1
from storage engine
-ERROR HY000: Got error -1
"Internal error < 0 (Not system error)" from storage engine <STORAGE_ENGINE>
-ALTER TABLE t1 IMPORT TABLESPACE;
-SELECT a FROM t1;
-a
...
...
storage/myisammrg/mysql-test/storage_engine/fulltext_search.rdiff
View file @
273bcb92
...
...
@@ -62,7 +62,7 @@
-v0 rating
-text1 178.11756896972656
-DROP TABLE t1;
+ERROR HY000: The
used table type
doesn't support FULLTEXT indexes
+ERROR HY000: The
storage engine MRG_MyISAM
doesn't support FULLTEXT indexes
+# ERROR: Statement ended with errno 1214, errname ER_TABLE_CANT_HANDLE_FT (expected to succeed)
+# ------------ UNEXPECTED RESULT ------------
+# The statement|command finished with ER_TABLE_CANT_HANDLE_FT.
...
...
@@ -139,7 +139,7 @@
-text1 190.56150817871094
-text4 1.1758291721343994
-DROP TABLE t1;
+ERROR HY000: The
used table type
doesn't support FULLTEXT indexes
+ERROR HY000: The
storage engine MRG_MyISAM
doesn't support FULLTEXT indexes
+# ERROR: Statement ended with errno 1214, errname ER_TABLE_CANT_HANDLE_FT (expected to succeed)
+# ------------ UNEXPECTED RESULT ------------
+# The statement|command finished with ER_TABLE_CANT_HANDLE_FT.
...
...
storage/myisammrg/mysql-test/storage_engine/handler.rdiff
View file @
273bcb92
...
...
@@ -47,7 +47,7 @@
-foobar 1000
-HANDLER t1 CLOSE;
-ERROR 42S02: Unknown table 't1' in HANDLER
+ERROR HY000:
Table storage engine for 'h1'
doesn't have this option
+ERROR HY000:
Storage engine MRG_MyISAM of the table `test`.`t1`
doesn't have this option
+# ------------ UNEXPECTED RESULT ------------
+# The statement|command finished with ER_ILLEGAL_HA.
+# Functionality or the syntax or the mix could be unsupported.
...
...
@@ -84,5 +84,5 @@
-a b
-200 b
-HANDLER h1 CLOSE;
+ERROR HY000:
Table storage engine for 'h1'
doesn't have this option
+ERROR HY000:
Storage engine MRG_MyISAM of the table `test`.`t1`
doesn't have this option
DROP TABLE t1;
storage/myisammrg/mysql-test/storage_engine/index_enable_disable.rdiff
View file @
273bcb92
...
...
@@ -5,7 +5,7 @@
t1 1 a 1 a # # NULL NULL YES BTREE
ALTER TABLE t1 DISABLE KEYS;
+Warnings:
+Note 1031
Table storage engine for 't1'
doesn't have this option
+Note 1031
Storage engine MRG_MyISAM of the table `test`.`t1`
doesn't have this option
SHOW INDEX IN t1;
Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment
-t1 1 a 1 a # # NULL NULL YES BTREE disabled
...
...
@@ -18,7 +18,7 @@
(11),(12),(13),(14),(15),(16),(17),(18),(19),(20);
ALTER TABLE t1 ENABLE KEYS;
+Warnings:
+Note 1031
Table storage engine for 't1'
doesn't have this option
+Note 1031
Storage engine MRG_MyISAM of the table `test`.`t1`
doesn't have this option
SHOW INDEX IN t1;
Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment
t1 1 a 1 a # # NULL NULL YES BTREE
...
...
@@ -27,7 +27,7 @@
(21),(22),(23),(24),(25),(26),(27),(28),(29);
ALTER TABLE t1 DISABLE KEYS;
+Warnings:
+Note 1031
Table storage engine for 't1'
doesn't have this option
+Note 1031
Storage engine MRG_MyISAM of the table `test`.`t1`
doesn't have this option
INSERT INTO t1 (a) VALUES (29);
ERROR 23000: Duplicate entry '29' for key 'a'
# Statement ended with one of expected results (ER_DUP_ENTRY,ER_DUP_KEY).
storage/myisammrg/mysql-test/storage_engine/parts/repair_table.rdiff
View file @
273bcb92
--- repair_table.result 2013-01-23 01:35:44.388267080 +0400
+++ repair_table.reject 2013-01-23 03:16:26.468307847 +0400
@@ -1,23
6
+1,114 @@
@@ -1,23
4
+1,114 @@
call mtr.add_suppression("Table '.*t1.*' is marked as crashed and should be repaired");
DROP TABLE IF EXISTS t1, t2;
CREATE TABLE t1 (a <INT_COLUMN>, b <CHAR_COLUMN>) ENGINE=<STORAGE_ENGINE> <CUSTOM_TABLE_OPTIONS> PARTITION BY HASH(a) PARTITIONS 2;
...
...
@@ -123,7 +123,6 @@
CHECK TABLE t1;
Table Op Msg_type Msg_text
-test.t1 check Error Failed to read from the .par file
-test.t1 check Error Incorrect information in file: './test/t1.frm'
-test.t1 check error Corrupt
+test.t1 check Error Table 'test.t1' doesn't exist
+test.t1 check status Operation failed
...
...
@@ -136,7 +135,6 @@
REPAIR TABLE t1;
Table Op Msg_type Msg_text
-test.t1 repair Error Failed to read from the .par file
-test.t1 repair Error Incorrect information in file: './test/t1.frm'
-test.t1 repair error Corrupt
+test.t1 repair Error Table 'test.t1' doesn't exist
+test.t1 repair status Operation failed
...
...
storage/myisammrg/mysql-test/storage_engine/truncate_table.rdiff
View file @
273bcb92
...
...
@@ -37,7 +37,7 @@
-HANDLER t1 OPEN AS h2;
-HANDLER h2 READ FIRST;
-a b
+ERROR HY000:
Table storage engine for 'h1'
doesn't have this option
+ERROR HY000:
Storage engine MRG_MyISAM of the table `test`.`t1`
doesn't have this option
+# ------------ UNEXPECTED RESULT ------------
+# The statement|command finished with ER_ILLEGAL_HA.
+# HANDLER or the syntax or the mix could be unsupported.
...
...
storage/myisammrg/mysql-test/storage_engine/vcol.rdiff
View file @
273bcb92
...
...
@@ -70,7 +70,7 @@
-3 4
-4 5
-DROP TABLE t1;
+ERROR HY000: MRG_M
Y
ISAM storage engine does not support computed columns
+ERROR HY000: MRG_M
y
ISAM storage engine does not support computed columns
+# ERROR: Statement ended with errno 1910, errname ER_UNSUPPORTED_ENGINE_FOR_VIRTUAL_COLUMNS (expected to succeed)
+# ------------ UNEXPECTED RESULT ------------
+# [ CREATE TABLE t1 (a INT(11) /*!*/ /*Custom column options*/, b INT(11) /*!*/ /*Custom column options*/ GENERATED ALWAYS AS (a+1)) ENGINE=MRG_MYISAM /*!*/ /*Custom table options*/ UNION(mrg.t1) INSERT_METHOD=LAST ]
...
...
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