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
65f80d40
Commit
65f80d40
authored
Apr 11, 2014
by
unknown
Browse files
Options
Browse Files
Download
Plain Diff
Merge MDEV-6067 from 5.2 to 5.3.
parents
63d09188
a1ae8f9b
Changes
5
Hide whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
75 additions
and
21 deletions
+75
-21
mysql-test/suite/parts/r/partition_mdev6067.result
mysql-test/suite/parts/r/partition_mdev6067.result
+38
-0
mysql-test/suite/parts/t/partition_mdev6067.test
mysql-test/suite/parts/t/partition_mdev6067.test
+32
-0
sql/handler.cc
sql/handler.cc
+2
-5
sql/handler.h
sql/handler.h
+3
-15
sql/sql_base.cc
sql/sql_base.cc
+0
-1
No files found.
mysql-test/suite/parts/r/partition_mdev6067.result
0 → 100644
View file @
65f80d40
CREATE TABLE t1 (a INT PRIMARY KEY, b INT) ENGINE=InnoDB
PARTITION BY KEY (a) PARTITIONS 2;
INSERT INTO t1 VALUES (1,1);
INSERT INTO t1 VALUES (2,2), (3,8);
INSERT INTO t1 VALUES (4,16);
show binlog events in 'master-bin.000001' from <binlog_start>;
Log_name Pos Event_type Server_id End_log_pos Info
master-bin.000001 # Query # # BEGIN
master-bin.000001 # Query # # use `test`; INSERT INTO t1 VALUES (1,1)
master-bin.000001 # Xid # # COMMIT /* XID */
master-bin.000001 # Query # # BEGIN
master-bin.000001 # Query # # use `test`; INSERT INTO t1 VALUES (2,2), (3,8)
master-bin.000001 # Xid # # COMMIT /* XID */
master-bin.000001 # Query # # BEGIN
master-bin.000001 # Query # # use `test`; INSERT INTO t1 VALUES (4,16)
master-bin.000001 # Xid # # COMMIT /* XID */
DROP TABLE t1;
SET binlog_format='row';
CREATE TABLE t1 (a INT PRIMARY KEY, b INT) ENGINE=InnoDB
PARTITION BY KEY (a) PARTITIONS 2;
INSERT INTO t1 VALUES (1,1);
INSERT INTO t1 VALUES (2,2), (3,8);
INSERT INTO t1 VALUES (4,16);
show binlog events in 'master-bin.000001' from <binlog_start>;
Log_name Pos Event_type Server_id End_log_pos Info
master-bin.000001 # Query # # BEGIN
master-bin.000001 # Table_map # # table_id: # (test.t1)
master-bin.000001 # Write_rows # # table_id: # flags: STMT_END_F
master-bin.000001 # Xid # # COMMIT /* XID */
master-bin.000001 # Query # # BEGIN
master-bin.000001 # Table_map # # table_id: # (test.t1)
master-bin.000001 # Write_rows # # table_id: # flags: STMT_END_F
master-bin.000001 # Xid # # COMMIT /* XID */
master-bin.000001 # Query # # BEGIN
master-bin.000001 # Table_map # # table_id: # (test.t1)
master-bin.000001 # Write_rows # # table_id: # flags: STMT_END_F
master-bin.000001 # Xid # # COMMIT /* XID */
DROP TABLE t1;
mysql-test/suite/parts/t/partition_mdev6067.test
0 → 100644
View file @
65f80d40
--
source
include
/
have_innodb
.
inc
--
source
include
/
have_partition
.
inc
--
source
include
/
have_binlog_format_statement
.
inc
# Test binlogging of some transactions on a partitioned InnoDB table.
# The bug was seen as one of the inserts being logged with a COMMIT query
# event instead of the correct XID event.
CREATE
TABLE
t1
(
a
INT
PRIMARY
KEY
,
b
INT
)
ENGINE
=
InnoDB
PARTITION
BY
KEY
(
a
)
PARTITIONS
2
;
--
let
$binlog_file
=
query_get_value
(
SHOW
MASTER
STATUS
,
File
,
1
)
--
let
$binlog_start
=
query_get_value
(
SHOW
MASTER
STATUS
,
Position
,
1
)
INSERT
INTO
t1
VALUES
(
1
,
1
);
INSERT
INTO
t1
VALUES
(
2
,
2
),
(
3
,
8
);
INSERT
INTO
t1
VALUES
(
4
,
16
);
--
source
include
/
show_binlog_events
.
inc
# Same thing in row mode.
DROP
TABLE
t1
;
SET
binlog_format
=
'row'
;
CREATE
TABLE
t1
(
a
INT
PRIMARY
KEY
,
b
INT
)
ENGINE
=
InnoDB
PARTITION
BY
KEY
(
a
)
PARTITIONS
2
;
--
let
$binlog_file
=
query_get_value
(
SHOW
MASTER
STATUS
,
File
,
1
)
--
let
$binlog_start
=
query_get_value
(
SHOW
MASTER
STATUS
,
Position
,
1
)
INSERT
INTO
t1
VALUES
(
1
,
1
);
INSERT
INTO
t1
VALUES
(
2
,
2
),
(
3
,
8
);
INSERT
INTO
t1
VALUES
(
4
,
16
);
--
source
include
/
show_binlog_events
.
inc
DROP
TABLE
t1
;
sql/handler.cc
View file @
65f80d40
...
...
@@ -3335,14 +3335,11 @@ int handler::ha_check(THD *thd, HA_CHECK_OPT *check_opt)
if it is started.
*/
inline
void
handler
::
mark_trx_read_write
_part2
()
handler
::
mark_trx_read_write
()
{
Ha_trx_info
*
ha_info
=
&
ha_thd
()
->
ha_data
[
ht
->
slot
].
ha_info
[
0
];
/* Don't call this function again for this statement */
mark_trx_done
=
TRUE
;
/*
When a storage engine method is called, the transaction must
have been started, unless it's a DDL call, for which the
...
...
sql/handler.h
View file @
65f80d40
...
...
@@ -1625,7 +1625,6 @@ class handler :public Sql_alloc
enum
{
NONE
=
0
,
INDEX
,
RND
}
inited
;
bool
locked
;
bool
implicit_emptied
;
/* Can be !=0 only if HEAP */
bool
mark_trx_done
;
bool
cloned
;
/* 1 if this was created with clone */
const
COND
*
pushed_cond
;
Item
*
pushed_idx_cond
;
...
...
@@ -1674,7 +1673,7 @@ class handler :public Sql_alloc
key_used_on_scan
(
MAX_KEY
),
active_index
(
MAX_KEY
),
ref_length
(
sizeof
(
my_off_t
)),
ft_handler
(
0
),
inited
(
NONE
),
locked
(
FALSE
),
implicit_emptied
(
FALSE
),
mark_trx_done
(
FALSE
),
cloned
(
0
),
locked
(
FALSE
),
implicit_emptied
(
FALSE
),
cloned
(
0
),
pushed_cond
(
0
),
pushed_idx_cond
(
NULL
),
pushed_idx_cond_keyno
(
MAX_KEY
),
next_insert_id
(
0
),
insert_id_for_cur_row
(
0
),
...
...
@@ -1740,13 +1739,6 @@ class handler :public Sql_alloc
}
int
ha_rnd_init_with_error
(
bool
scan
)
__attribute__
((
warn_unused_result
));
int
ha_reset
();
/* Tell handler (not storage engine) this is start of a new statement */
void
ha_start_of_new_statement
()
{
ft_handler
=
0
;
mark_trx_done
=
FALSE
;
}
/* this is necessary in many places, e.g. in HANDLER command */
int
ha_index_or_rnd_end
()
{
...
...
@@ -2459,12 +2451,8 @@ class handler :public Sql_alloc
private:
/* Private helpers */
void
mark_trx_read_write_part2
();
inline
void
mark_trx_read_write
()
{
if
(
!
mark_trx_done
)
mark_trx_read_write_part2
();
}
inline
void
mark_trx_read_write
();
private:
inline
void
increment_statistics
(
ulong
SSV
::*
offset
)
const
;
inline
void
decrement_statistics
(
ulong
SSV
::*
offset
)
const
;
...
...
sql/sql_base.cc
View file @
65f80d40
...
...
@@ -3085,7 +3085,6 @@ TABLE *open_table(THD *thd, TABLE_LIST *table_list, MEM_ROOT *mem_root,
table
->
status
=
STATUS_NO_RECORD
;
table
->
insert_values
=
0
;
table
->
fulltext_searched
=
0
;
table
->
file
->
ha_start_of_new_statement
();
table
->
file
->
ft_handler
=
0
;
/*
Check that there is no reference to a condition from an earlier query
...
...
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