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
e4a73acc
Commit
e4a73acc
authored
Feb 22, 2018
by
Sergei Golubchik
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch '10.1' into 10.2
parents
e119799a
a04e4f53
Changes
21
Hide whitespace changes
Inline
Side-by-side
Showing
21 changed files
with
53 additions
and
245 deletions
+53
-245
include/heap.h
include/heap.h
+1
-0
mysql-test/r/view.result
mysql-test/r/view.result
+0
-108
mysql-test/suite/galera/r/galera_var_node_address.result
mysql-test/suite/galera/r/galera_var_node_address.result
+1
-0
mysql-test/suite/galera/t/galera_var_node_address.test
mysql-test/suite/galera/t/galera_var_node_address.test
+1
-0
mysql-test/suite/maria/dynamic.result
mysql-test/suite/maria/dynamic.result
+4
-0
mysql-test/suite/maria/dynamic.test
mysql-test/suite/maria/dynamic.test
+7
-0
mysql-test/suite/parts/r/partition_alter_maria.result
mysql-test/suite/parts/r/partition_alter_maria.result
+9
-0
mysql-test/suite/parts/t/partition_alter_maria.test
mysql-test/suite/parts/t/partition_alter_maria.test
+7
-0
mysql-test/suite/plugins/t/server_audit.test
mysql-test/suite/plugins/t/server_audit.test
+2
-0
mysql-test/t/view.test
mysql-test/t/view.test
+0
-112
sql/sql_table.cc
sql/sql_table.cc
+1
-1
storage/heap/_check.c
storage/heap/_check.c
+1
-1
storage/heap/ha_heap.cc
storage/heap/ha_heap.cc
+1
-10
storage/heap/hp_create.c
storage/heap/hp_create.c
+5
-3
storage/heap/hp_delete.c
storage/heap/hp_delete.c
+1
-1
storage/heap/hp_rrnd.c
storage/heap/hp_rrnd.c
+1
-1
storage/heap/hp_rsame.c
storage/heap/hp_rsame.c
+1
-1
storage/heap/hp_scan.c
storage/heap/hp_scan.c
+1
-1
storage/heap/hp_write.c
storage/heap/hp_write.c
+2
-2
storage/innobase/CMakeLists.txt
storage/innobase/CMakeLists.txt
+3
-1
storage/maria/ma_dynrec.c
storage/maria/ma_dynrec.c
+4
-3
No files found.
include/heap.h
View file @
e4a73acc
...
...
@@ -144,6 +144,7 @@ typedef struct st_heap_share
uint
key_version
;
/* Updated on key change */
uint
file_version
;
/* Update on clear */
uint
reclength
;
/* Length of one record */
uint
visible
;
/* Offset to the visible/deleted mark */
uint
changed
;
uint
keys
,
max_key_length
;
uint
currently_disabled_keys
;
/* saved value from "keys" when disabled */
...
...
mysql-test/r/view.result
View file @
e4a73acc
...
...
@@ -5283,114 +5283,6 @@ execute stmt1;
deallocate prepare stmt1;
drop view v1,v2;
drop table t1,t2;
#
# MDEV-6251: SIGSEGV in query optimizer (in set_check_materialized
# with MERGE view)
#
CREATE TABLE t1 (a1 INT(11) NOT NULL DEFAULT NULL AUTO_INCREMENT PRIMARY KEY);
CREATE TABLE t2 (b1 INT(11) NOT NULL DEFAULT NULL AUTO_INCREMENT PRIMARY KEY);
CREATE TABLE t3 (c1 INT(11) NOT NULL DEFAULT NULL AUTO_INCREMENT PRIMARY KEY);
CREATE TABLE t4 (d1 INT(11) NOT NULL DEFAULT NULL AUTO_INCREMENT PRIMARY KEY);
CREATE TABLE t5 (e1 INT(11) NOT NULL DEFAULT NULL AUTO_INCREMENT PRIMARY KEY);
CREATE TABLE t6 (f1 INT(11) NOT NULL DEFAULT NULL AUTO_INCREMENT PRIMARY KEY);
CREATE OR REPLACE view v1 AS
SELECT 1
FROM t1 a_alias_1
LEFT JOIN (t2 b_alias_1 JOIN t1 a_alias_2) ON b_alias_1.b1 = a_alias_1.a1 AND a_alias_2.a1 = a_alias_1.a1
LEFT JOIN t3 c_alias_1 ON c_alias_1.c1 = a_alias_1.a1
LEFT JOIN t4 d_alias_1 ON d_alias_1.d1 = a_alias_1.a1
LEFT JOIN t3 c_alias_2 ON c_alias_2.c1 = a_alias_1.a1
LEFT JOIN t5 e_alias_1 ON e_alias_1.e1 = a_alias_1.a1
LEFT JOIN t6 f_alias_1 ON f_alias_1.f1 = a_alias_1.a1
;
SELECT 1
FROM (( SELECT 1
FROM t1 a_alias_1
LEFT JOIN (t2 b_alias_1 JOIN t1 a_alias_2) ON b_alias_1.b1 = a_alias_1.a1 AND a_alias_2.a1 = a_alias_1.a1
LEFT JOIN t3 c_alias_1 ON c_alias_1.c1 = a_alias_1.a1
LEFT JOIN t4 d_alias_1 ON d_alias_1.d1 = a_alias_1.a1
LEFT JOIN t3 c_alias_2 ON c_alias_2.c1 = a_alias_1.a1
LEFT JOIN t5 e_alias_1 ON e_alias_1.e1 = a_alias_1.a1
LEFT JOIN t6 f_alias_1 ON f_alias_1.f1 = a_alias_1.a1
) t1)
LEFT OUTER JOIN (( SELECT 1
FROM t1 a_alias_1
LEFT JOIN (t2 b_alias_1 JOIN t1 a_alias_2) ON b_alias_1.b1 = a_alias_1.a1 AND a_alias_2.a1 = a_alias_1.a1
LEFT JOIN t3 c_alias_1 ON c_alias_1.c1 = a_alias_1.a1
LEFT JOIN t4 d_alias_1 ON d_alias_1.d1 = a_alias_1.a1
LEFT JOIN t3 c_alias_2 ON c_alias_2.c1 = a_alias_1.a1
LEFT JOIN t5 e_alias_1 ON e_alias_1.e1 = a_alias_1.a1
LEFT JOIN t6 f_alias_1 ON f_alias_1.f1 = a_alias_1.a1
) t2) ON 1=1
LEFT OUTER JOIN (( SELECT 1
FROM t1 a_alias_1
LEFT JOIN (t2 b_alias_1 JOIN t1 a_alias_2) ON b_alias_1.b1 = a_alias_1.a1 AND a_alias_2.a1 = a_alias_1.a1
LEFT JOIN t3 c_alias_1 ON c_alias_1.c1 = a_alias_1.a1
LEFT JOIN t4 d_alias_1 ON d_alias_1.d1 = a_alias_1.a1
LEFT JOIN t3 c_alias_2 ON c_alias_2.c1 = a_alias_1.a1
LEFT JOIN t5 e_alias_1 ON e_alias_1.e1 = a_alias_1.a1
LEFT JOIN t6 f_alias_1 ON f_alias_1.f1 = a_alias_1.a1
) t3) ON 1=1
LEFT OUTER JOIN (( SELECT 1
FROM t1 a_alias_1
LEFT JOIN (t2 b_alias_1 JOIN t1 a_alias_2) ON b_alias_1.b1 = a_alias_1.a1 AND a_alias_2.a1 = a_alias_1.a1
LEFT JOIN t3 c_alias_1 ON c_alias_1.c1 = a_alias_1.a1
LEFT JOIN t4 d_alias_1 ON d_alias_1.d1 = a_alias_1.a1
LEFT JOIN t3 c_alias_2 ON c_alias_2.c1 = a_alias_1.a1
LEFT JOIN t5 e_alias_1 ON e_alias_1.e1 = a_alias_1.a1
LEFT JOIN t6 f_alias_1 ON f_alias_1.f1 = a_alias_1.a1
) t4) ON 1=1
LEFT OUTER JOIN (( SELECT 1
FROM t1 a_alias_1
LEFT JOIN (t2 b_alias_1 JOIN t1 a_alias_2) ON b_alias_1.b1 = a_alias_1.a1 AND a_alias_2.a1 = a_alias_1.a1
LEFT JOIN t3 c_alias_1 ON c_alias_1.c1 = a_alias_1.a1
LEFT JOIN t4 d_alias_1 ON d_alias_1.d1 = a_alias_1.a1
LEFT JOIN t3 c_alias_2 ON c_alias_2.c1 = a_alias_1.a1
LEFT JOIN t5 e_alias_1 ON e_alias_1.e1 = a_alias_1.a1
LEFT JOIN t6 f_alias_1 ON f_alias_1.f1 = a_alias_1.a1
) t5) ON 1=1
LEFT OUTER JOIN (( SELECT 1
FROM t1 a_alias_1
LEFT JOIN (t2 b_alias_1 JOIN t1 a_alias_2) ON b_alias_1.b1 = a_alias_1.a1 AND a_alias_2.a1 = a_alias_1.a1
LEFT JOIN t3 c_alias_1 ON c_alias_1.c1 = a_alias_1.a1
LEFT JOIN t4 d_alias_1 ON d_alias_1.d1 = a_alias_1.a1
LEFT JOIN t3 c_alias_2 ON c_alias_2.c1 = a_alias_1.a1
LEFT JOIN t5 e_alias_1 ON e_alias_1.e1 = a_alias_1.a1
LEFT JOIN t6 f_alias_1 ON f_alias_1.f1 = a_alias_1.a1
) t6) ON 1=1
LEFT OUTER JOIN (( SELECT 1
FROM t1 a_alias_1
LEFT JOIN (t2 b_alias_1 JOIN t1 a_alias_2) ON b_alias_1.b1 = a_alias_1.a1 AND a_alias_2.a1 = a_alias_1.a1
LEFT JOIN t3 c_alias_1 ON c_alias_1.c1 = a_alias_1.a1
LEFT JOIN t4 d_alias_1 ON d_alias_1.d1 = a_alias_1.a1
LEFT JOIN t3 c_alias_2 ON c_alias_2.c1 = a_alias_1.a1
LEFT JOIN t5 e_alias_1 ON e_alias_1.e1 = a_alias_1.a1
LEFT JOIN t6 f_alias_1 ON f_alias_1.f1 = a_alias_1.a1
) t7) ON 1=1
LEFT OUTER JOIN (( SELECT 1
FROM t1 a_alias_1
LEFT JOIN (t2 b_alias_1 JOIN t1 a_alias_2) ON b_alias_1.b1 = a_alias_1.a1 AND a_alias_2.a1 = a_alias_1.a1
LEFT JOIN t3 c_alias_1 ON c_alias_1.c1 = a_alias_1.a1
LEFT JOIN t4 d_alias_1 ON d_alias_1.d1 = a_alias_1.a1
LEFT JOIN t3 c_alias_2 ON c_alias_2.c1 = a_alias_1.a1
LEFT JOIN t5 e_alias_1 ON e_alias_1.e1 = a_alias_1.a1
LEFT JOIN t6 f_alias_1 ON f_alias_1.f1 = a_alias_1.a1
) t8) ON 1=1
;
1
SELECT 1
FROM (v1 t1)
LEFT OUTER JOIN (v1 t2) ON 1=1
LEFT OUTER JOIN (v1 t3) ON 1=1
LEFT OUTER JOIN (v1 t4) ON 1=1
LEFT OUTER JOIN (v1 t5) ON 1=1
LEFT OUTER JOIN (v1 t6) ON 1=1
LEFT OUTER JOIN (v1 t7) ON 1=1
LEFT OUTER JOIN (v1 t8) ON 1=1
;
1
drop view v1;
drop table t1,t2,t3,t4,t5,t6;
# -----------------------------------------------------------------
# -- End of 5.3 tests.
# -----------------------------------------------------------------
...
...
mysql-test/suite/galera/r/galera_var_node_address.result
View file @
e4a73acc
call mtr.add_suppression("WSREP: Stray state UUID msg: .* current group state WAIT_STATE_UUID .*");
call mtr.add_suppression("WSREP: Protocol violation. JOIN message sender .* is not in state transfer (.*). Message ignored.");
call mtr.add_suppression("WSREP: Sending JOIN failed: -[0-9]+ (Transport endpoint is not connected). Will retry in new primary component.");
SELECT VARIABLE_VALUE = 4 FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_cluster_size';
VARIABLE_VALUE = 4
1
...
...
mysql-test/suite/galera/t/galera_var_node_address.test
View file @
e4a73acc
...
...
@@ -8,6 +8,7 @@
call
mtr
.
add_suppression
(
"WSREP: Stray state UUID msg: .* current group state WAIT_STATE_UUID .*"
);
call
mtr
.
add_suppression
(
"WSREP: Protocol violation. JOIN message sender .* is not in state transfer (.*). Message ignored."
);
call
mtr
.
add_suppression
(
"WSREP: Sending JOIN failed: -[0-9]+ (Transport endpoint is not connected). Will retry in new primary component."
);
SELECT
VARIABLE_VALUE
=
4
FROM
INFORMATION_SCHEMA
.
GLOBAL_STATUS
WHERE
VARIABLE_NAME
=
'wsrep_cluster_size'
;
...
...
mysql-test/suite/maria/dynamic.result
0 → 100644
View file @
e4a73acc
create table t1 (a blob, b varchar(20000)) engine=aria row_format=dynamic;
insert t1 (b) values (repeat('a', 20000));
update t1 set b='b';
drop table t1;
mysql-test/suite/maria/dynamic.test
0 → 100644
View file @
e4a73acc
#
# MDEV-13748 Assertion `status_var.local_memory_used == 0 || !debug_assert_on_not_freed_memory' failed in virtual THD::~THD after query with INTERSECT
#
create
table
t1
(
a
blob
,
b
varchar
(
20000
))
engine
=
aria
row_format
=
dynamic
;
insert
t1
(
b
)
values
(
repeat
(
'a'
,
20000
));
update
t1
set
b
=
'b'
;
drop
table
t1
;
mysql-test/suite/parts/r/partition_alter_maria.result
View file @
e4a73acc
...
...
@@ -16,6 +16,15 @@ select * from t1;
pk dt
1 2017-09-28 15:12:00
drop table t1;
create table t1 (a int) engine=Aria transactional=1 partition by hash(a) partitions 2;
show create table t1;
Table Create Table
t1 CREATE TABLE `t1` (
`a` int(11) DEFAULT NULL
) ENGINE=Aria DEFAULT CHARSET=latin1 TRANSACTIONAL=1
PARTITION BY HASH (`a`)
PARTITIONS 2
drop table t1;
#
# MDEV-14641 Incompatible key or row definition between the MariaDB .frm file and the information in the storage engine
#
...
...
mysql-test/suite/parts/t/partition_alter_maria.test
View file @
e4a73acc
...
...
@@ -17,5 +17,12 @@ alter table t1 drop partition p20181231;
select
*
from
t1
;
drop
table
t1
;
#
# MDEV-13982 Server crashes in in ha_partition::engine_name
#
create
table
t1
(
a
int
)
engine
=
Aria
transactional
=
1
partition
by
hash
(
a
)
partitions
2
;
show
create
table
t1
;
drop
table
t1
;
--
let
$engine
=
Aria
--
source
inc
/
part_alter_values
.
inc
mysql-test/suite/plugins/t/server_audit.test
View file @
e4a73acc
...
...
@@ -42,8 +42,10 @@ select 1,
3
;
insert
into
t2
values
(
1
),
(
2
);
select
*
from
t2
;
--
disable_ps_protocol
--
error
ER_NO_SUCH_TABLE
select
*
from
t_doesnt_exist
;
--
enable_ps_protocol
--
error
1064
syntax_error_query
;
drop
table
renamed_t1
,
t2
;
...
...
mysql-test/t/view.test
View file @
e4a73acc
...
...
@@ -5173,118 +5173,6 @@ deallocate prepare stmt1;
drop
view
v1
,
v2
;
drop
table
t1
,
t2
;
--
echo
#
--
echo
# MDEV-6251: SIGSEGV in query optimizer (in set_check_materialized
--
echo
# with MERGE view)
--
echo
#
CREATE
TABLE
t1
(
a1
INT
(
11
)
NOT
NULL
DEFAULT
NULL
AUTO_INCREMENT
PRIMARY
KEY
);
CREATE
TABLE
t2
(
b1
INT
(
11
)
NOT
NULL
DEFAULT
NULL
AUTO_INCREMENT
PRIMARY
KEY
);
CREATE
TABLE
t3
(
c1
INT
(
11
)
NOT
NULL
DEFAULT
NULL
AUTO_INCREMENT
PRIMARY
KEY
);
CREATE
TABLE
t4
(
d1
INT
(
11
)
NOT
NULL
DEFAULT
NULL
AUTO_INCREMENT
PRIMARY
KEY
);
CREATE
TABLE
t5
(
e1
INT
(
11
)
NOT
NULL
DEFAULT
NULL
AUTO_INCREMENT
PRIMARY
KEY
);
CREATE
TABLE
t6
(
f1
INT
(
11
)
NOT
NULL
DEFAULT
NULL
AUTO_INCREMENT
PRIMARY
KEY
);
CREATE
OR
REPLACE
view
v1
AS
SELECT
1
FROM
t1
a_alias_1
LEFT
JOIN
(
t2
b_alias_1
JOIN
t1
a_alias_2
)
ON
b_alias_1
.
b1
=
a_alias_1
.
a1
AND
a_alias_2
.
a1
=
a_alias_1
.
a1
LEFT
JOIN
t3
c_alias_1
ON
c_alias_1
.
c1
=
a_alias_1
.
a1
LEFT
JOIN
t4
d_alias_1
ON
d_alias_1
.
d1
=
a_alias_1
.
a1
LEFT
JOIN
t3
c_alias_2
ON
c_alias_2
.
c1
=
a_alias_1
.
a1
LEFT
JOIN
t5
e_alias_1
ON
e_alias_1
.
e1
=
a_alias_1
.
a1
LEFT
JOIN
t6
f_alias_1
ON
f_alias_1
.
f1
=
a_alias_1
.
a1
;
SELECT
1
FROM
((
SELECT
1
FROM
t1
a_alias_1
LEFT
JOIN
(
t2
b_alias_1
JOIN
t1
a_alias_2
)
ON
b_alias_1
.
b1
=
a_alias_1
.
a1
AND
a_alias_2
.
a1
=
a_alias_1
.
a1
LEFT
JOIN
t3
c_alias_1
ON
c_alias_1
.
c1
=
a_alias_1
.
a1
LEFT
JOIN
t4
d_alias_1
ON
d_alias_1
.
d1
=
a_alias_1
.
a1
LEFT
JOIN
t3
c_alias_2
ON
c_alias_2
.
c1
=
a_alias_1
.
a1
LEFT
JOIN
t5
e_alias_1
ON
e_alias_1
.
e1
=
a_alias_1
.
a1
LEFT
JOIN
t6
f_alias_1
ON
f_alias_1
.
f1
=
a_alias_1
.
a1
)
t1
)
LEFT
OUTER
JOIN
((
SELECT
1
FROM
t1
a_alias_1
LEFT
JOIN
(
t2
b_alias_1
JOIN
t1
a_alias_2
)
ON
b_alias_1
.
b1
=
a_alias_1
.
a1
AND
a_alias_2
.
a1
=
a_alias_1
.
a1
LEFT
JOIN
t3
c_alias_1
ON
c_alias_1
.
c1
=
a_alias_1
.
a1
LEFT
JOIN
t4
d_alias_1
ON
d_alias_1
.
d1
=
a_alias_1
.
a1
LEFT
JOIN
t3
c_alias_2
ON
c_alias_2
.
c1
=
a_alias_1
.
a1
LEFT
JOIN
t5
e_alias_1
ON
e_alias_1
.
e1
=
a_alias_1
.
a1
LEFT
JOIN
t6
f_alias_1
ON
f_alias_1
.
f1
=
a_alias_1
.
a1
)
t2
)
ON
1
=
1
LEFT
OUTER
JOIN
((
SELECT
1
FROM
t1
a_alias_1
LEFT
JOIN
(
t2
b_alias_1
JOIN
t1
a_alias_2
)
ON
b_alias_1
.
b1
=
a_alias_1
.
a1
AND
a_alias_2
.
a1
=
a_alias_1
.
a1
LEFT
JOIN
t3
c_alias_1
ON
c_alias_1
.
c1
=
a_alias_1
.
a1
LEFT
JOIN
t4
d_alias_1
ON
d_alias_1
.
d1
=
a_alias_1
.
a1
LEFT
JOIN
t3
c_alias_2
ON
c_alias_2
.
c1
=
a_alias_1
.
a1
LEFT
JOIN
t5
e_alias_1
ON
e_alias_1
.
e1
=
a_alias_1
.
a1
LEFT
JOIN
t6
f_alias_1
ON
f_alias_1
.
f1
=
a_alias_1
.
a1
)
t3
)
ON
1
=
1
LEFT
OUTER
JOIN
((
SELECT
1
FROM
t1
a_alias_1
LEFT
JOIN
(
t2
b_alias_1
JOIN
t1
a_alias_2
)
ON
b_alias_1
.
b1
=
a_alias_1
.
a1
AND
a_alias_2
.
a1
=
a_alias_1
.
a1
LEFT
JOIN
t3
c_alias_1
ON
c_alias_1
.
c1
=
a_alias_1
.
a1
LEFT
JOIN
t4
d_alias_1
ON
d_alias_1
.
d1
=
a_alias_1
.
a1
LEFT
JOIN
t3
c_alias_2
ON
c_alias_2
.
c1
=
a_alias_1
.
a1
LEFT
JOIN
t5
e_alias_1
ON
e_alias_1
.
e1
=
a_alias_1
.
a1
LEFT
JOIN
t6
f_alias_1
ON
f_alias_1
.
f1
=
a_alias_1
.
a1
)
t4
)
ON
1
=
1
LEFT
OUTER
JOIN
((
SELECT
1
FROM
t1
a_alias_1
LEFT
JOIN
(
t2
b_alias_1
JOIN
t1
a_alias_2
)
ON
b_alias_1
.
b1
=
a_alias_1
.
a1
AND
a_alias_2
.
a1
=
a_alias_1
.
a1
LEFT
JOIN
t3
c_alias_1
ON
c_alias_1
.
c1
=
a_alias_1
.
a1
LEFT
JOIN
t4
d_alias_1
ON
d_alias_1
.
d1
=
a_alias_1
.
a1
LEFT
JOIN
t3
c_alias_2
ON
c_alias_2
.
c1
=
a_alias_1
.
a1
LEFT
JOIN
t5
e_alias_1
ON
e_alias_1
.
e1
=
a_alias_1
.
a1
LEFT
JOIN
t6
f_alias_1
ON
f_alias_1
.
f1
=
a_alias_1
.
a1
)
t5
)
ON
1
=
1
LEFT
OUTER
JOIN
((
SELECT
1
FROM
t1
a_alias_1
LEFT
JOIN
(
t2
b_alias_1
JOIN
t1
a_alias_2
)
ON
b_alias_1
.
b1
=
a_alias_1
.
a1
AND
a_alias_2
.
a1
=
a_alias_1
.
a1
LEFT
JOIN
t3
c_alias_1
ON
c_alias_1
.
c1
=
a_alias_1
.
a1
LEFT
JOIN
t4
d_alias_1
ON
d_alias_1
.
d1
=
a_alias_1
.
a1
LEFT
JOIN
t3
c_alias_2
ON
c_alias_2
.
c1
=
a_alias_1
.
a1
LEFT
JOIN
t5
e_alias_1
ON
e_alias_1
.
e1
=
a_alias_1
.
a1
LEFT
JOIN
t6
f_alias_1
ON
f_alias_1
.
f1
=
a_alias_1
.
a1
)
t6
)
ON
1
=
1
LEFT
OUTER
JOIN
((
SELECT
1
FROM
t1
a_alias_1
LEFT
JOIN
(
t2
b_alias_1
JOIN
t1
a_alias_2
)
ON
b_alias_1
.
b1
=
a_alias_1
.
a1
AND
a_alias_2
.
a1
=
a_alias_1
.
a1
LEFT
JOIN
t3
c_alias_1
ON
c_alias_1
.
c1
=
a_alias_1
.
a1
LEFT
JOIN
t4
d_alias_1
ON
d_alias_1
.
d1
=
a_alias_1
.
a1
LEFT
JOIN
t3
c_alias_2
ON
c_alias_2
.
c1
=
a_alias_1
.
a1
LEFT
JOIN
t5
e_alias_1
ON
e_alias_1
.
e1
=
a_alias_1
.
a1
LEFT
JOIN
t6
f_alias_1
ON
f_alias_1
.
f1
=
a_alias_1
.
a1
)
t7
)
ON
1
=
1
LEFT
OUTER
JOIN
((
SELECT
1
FROM
t1
a_alias_1
LEFT
JOIN
(
t2
b_alias_1
JOIN
t1
a_alias_2
)
ON
b_alias_1
.
b1
=
a_alias_1
.
a1
AND
a_alias_2
.
a1
=
a_alias_1
.
a1
LEFT
JOIN
t3
c_alias_1
ON
c_alias_1
.
c1
=
a_alias_1
.
a1
LEFT
JOIN
t4
d_alias_1
ON
d_alias_1
.
d1
=
a_alias_1
.
a1
LEFT
JOIN
t3
c_alias_2
ON
c_alias_2
.
c1
=
a_alias_1
.
a1
LEFT
JOIN
t5
e_alias_1
ON
e_alias_1
.
e1
=
a_alias_1
.
a1
LEFT
JOIN
t6
f_alias_1
ON
f_alias_1
.
f1
=
a_alias_1
.
a1
)
t8
)
ON
1
=
1
;
SELECT
1
FROM
(
v1
t1
)
LEFT
OUTER
JOIN
(
v1
t2
)
ON
1
=
1
LEFT
OUTER
JOIN
(
v1
t3
)
ON
1
=
1
LEFT
OUTER
JOIN
(
v1
t4
)
ON
1
=
1
LEFT
OUTER
JOIN
(
v1
t5
)
ON
1
=
1
LEFT
OUTER
JOIN
(
v1
t6
)
ON
1
=
1
LEFT
OUTER
JOIN
(
v1
t7
)
ON
1
=
1
LEFT
OUTER
JOIN
(
v1
t8
)
ON
1
=
1
;
drop
view
v1
;
drop
table
t1
,
t2
,
t3
,
t4
,
t5
,
t6
;
--
echo
# -----------------------------------------------------------------
--
echo
# -- End of 5.3 tests.
--
echo
# -----------------------------------------------------------------
...
...
sql/sql_table.cc
View file @
e4a73acc
...
...
@@ -4218,7 +4218,7 @@ mysql_prepare_create_table(THD *thd, HA_CREATE_INFO *create_info,
/* Give warnings for not supported table options */
#if defined(WITH_ARIA_STORAGE_ENGINE)
extern
handlerton
*
maria_hton
;
if
(
file
->
ht
!=
maria_hton
)
if
(
file
->
partition_ht
()
!=
maria_hton
)
#endif
if
(
create_info
->
transactional
)
push_warning_printf
(
thd
,
Sql_condition
::
WARN_LEVEL_WARN
,
...
...
storage/heap/_check.c
View file @
e4a73acc
...
...
@@ -79,7 +79,7 @@ int heap_check_heap(HP_INFO *info, my_bool print_status)
}
hp_find_record
(
info
,
pos
);
if
(
!
info
->
current_ptr
[
share
->
reclength
])
if
(
!
info
->
current_ptr
[
share
->
visible
])
deleted
++
;
else
records
++
;
...
...
storage/heap/ha_heap.cc
View file @
e4a73acc
...
...
@@ -91,15 +91,6 @@ ha_heap::ha_heap(handlerton *hton, TABLE_SHARE *table_arg)
int
ha_heap
::
open
(
const
char
*
name
,
int
mode
,
uint
test_if_locked
)
{
if
(
table
->
s
->
reclength
<
sizeof
(
char
*
))
{
MEM_UNDEFINED
(
table
->
s
->
default_values
+
table
->
s
->
reclength
,
sizeof
(
char
*
)
-
table
->
s
->
reclength
);
table
->
s
->
reclength
=
sizeof
(
char
*
);
MEM_UNDEFINED
(
table
->
record
[
0
],
table
->
s
->
reclength
);
MEM_UNDEFINED
(
table
->
record
[
1
],
table
->
s
->
reclength
);
}
internal_table
=
MY_TEST
(
test_if_locked
&
HA_OPEN_INTERNAL_TABLE
);
if
(
internal_table
||
(
!
(
file
=
heap_open
(
name
,
mode
))
&&
my_errno
==
ENOENT
))
{
...
...
@@ -714,7 +705,7 @@ heap_prepare_hp_create_info(TABLE *table_arg, bool internal_table,
}
}
}
mem_per_row
+=
MY_ALIGN
(
share
->
reclength
+
1
,
sizeof
(
char
*
));
mem_per_row
+=
MY_ALIGN
(
MY_MAX
(
share
->
reclength
,
sizeof
(
char
*
))
+
1
,
sizeof
(
char
*
));
if
(
table_arg
->
found_next_number_field
)
{
keydef
[
share
->
next_number_index
].
flag
|=
HA_AUTO_KEY
;
...
...
storage/heap/hp_create.c
View file @
e4a73acc
...
...
@@ -33,6 +33,7 @@ int heap_create(const char *name, HP_CREATE_INFO *create_info,
uint
keys
=
create_info
->
keys
;
ulong
min_records
=
create_info
->
min_records
;
ulong
max_records
=
create_info
->
max_records
;
uint
visible_offset
;
DBUG_ENTER
(
"heap_create"
);
if
(
!
create_info
->
internal_table
)
...
...
@@ -58,9 +59,9 @@ int heap_create(const char *name, HP_CREATE_INFO *create_info,
/*
We have to store sometimes uchar* del_link in records,
so the
record length should be at leas
t sizeof(uchar*)
so the
visible_offset must be least a
t sizeof(uchar*)
*/
set_if_bigger
(
reclength
,
sizeof
(
u
char
*
));
visible_offset
=
MY_MAX
(
reclength
,
sizeof
(
char
*
));
for
(
i
=
key_segs
=
max_length
=
0
,
keyinfo
=
keydef
;
i
<
keys
;
i
++
,
keyinfo
++
)
{
...
...
@@ -154,7 +155,7 @@ int heap_create(const char *name, HP_CREATE_INFO *create_info,
share
->
keydef
=
(
HP_KEYDEF
*
)
(
share
+
1
);
share
->
key_stat_version
=
1
;
keyseg
=
(
HA_KEYSEG
*
)
(
share
->
keydef
+
keys
);
init_block
(
&
share
->
block
,
reclength
+
1
,
min_records
,
max_records
);
init_block
(
&
share
->
block
,
visible_offset
+
1
,
min_records
,
max_records
);
/* Fix keys */
memcpy
(
share
->
keydef
,
keydef
,
(
size_t
)
(
sizeof
(
keydef
[
0
])
*
keys
));
for
(
i
=
0
,
keyinfo
=
share
->
keydef
;
i
<
keys
;
i
++
,
keyinfo
++
)
...
...
@@ -196,6 +197,7 @@ int heap_create(const char *name, HP_CREATE_INFO *create_info,
share
->
max_table_size
=
create_info
->
max_table_size
;
share
->
data_length
=
share
->
index_length
=
0
;
share
->
reclength
=
reclength
;
share
->
visible
=
visible_offset
;
share
->
blength
=
1
;
share
->
keys
=
keys
;
share
->
max_key_length
=
max_length
;
...
...
storage/heap/hp_delete.c
View file @
e4a73acc
...
...
@@ -45,7 +45,7 @@ int heap_delete(HP_INFO *info, const uchar *record)
info
->
update
=
HA_STATE_DELETED
;
*
((
uchar
**
)
pos
)
=
share
->
del_link
;
share
->
del_link
=
pos
;
pos
[
share
->
reclength
]
=
0
;
/* Record deleted */
pos
[
share
->
visible
]
=
0
;
/* Record deleted */
share
->
deleted
++
;
share
->
key_version
++
;
#if !defined(DBUG_OFF) && defined(EXTRA_HEAP_DEBUG)
...
...
storage/heap/hp_rrnd.c
View file @
e4a73acc
...
...
@@ -37,7 +37,7 @@ int heap_rrnd(register HP_INFO *info, uchar *record, uchar *pos)
info
->
update
=
0
;
DBUG_RETURN
(
my_errno
=
HA_ERR_END_OF_FILE
);
}
if
(
!
info
->
current_ptr
[
share
->
reclength
])
if
(
!
info
->
current_ptr
[
share
->
visible
])
{
info
->
update
=
HA_STATE_PREV_FOUND
|
HA_STATE_NEXT_FOUND
;
DBUG_RETURN
(
my_errno
=
HA_ERR_RECORD_DELETED
);
...
...
storage/heap/hp_rsame.c
View file @
e4a73acc
...
...
@@ -32,7 +32,7 @@ int heap_rsame(register HP_INFO *info, uchar *record, int inx)
DBUG_ENTER
(
"heap_rsame"
);
test_active
(
info
);
if
(
info
->
current_ptr
[
share
->
reclength
])
if
(
info
->
current_ptr
[
share
->
visible
])
{
if
(
inx
<
-
1
||
inx
>=
(
int
)
share
->
keys
)
{
...
...
storage/heap/hp_scan.c
View file @
e4a73acc
...
...
@@ -62,7 +62,7 @@ int heap_scan(register HP_INFO *info, uchar *record)
}
hp_find_record
(
info
,
pos
);
}
if
(
!
info
->
current_ptr
[
share
->
reclength
])
if
(
!
info
->
current_ptr
[
share
->
visible
])
{
DBUG_PRINT
(
"warning"
,(
"Found deleted record"
));
info
->
update
=
HA_STATE_PREV_FOUND
|
HA_STATE_NEXT_FOUND
;
...
...
storage/heap/hp_write.c
View file @
e4a73acc
...
...
@@ -54,7 +54,7 @@ int heap_write(HP_INFO *info, const uchar *record)
}
memcpy
(
pos
,
record
,(
size_t
)
share
->
reclength
);
pos
[
share
->
reclength
]
=
1
;
/* Mark record as not deleted */
pos
[
share
->
visible
]
=
1
;
/* Mark record as not deleted */
if
(
++
share
->
records
==
share
->
blength
)
share
->
blength
+=
share
->
blength
;
info
->
s
->
key_version
++
;
...
...
@@ -92,7 +92,7 @@ int heap_write(HP_INFO *info, const uchar *record)
share
->
deleted
++
;
*
((
uchar
**
)
pos
)
=
share
->
del_link
;
share
->
del_link
=
pos
;
pos
[
share
->
reclength
]
=
0
;
/* Record deleted */
pos
[
share
->
visible
]
=
0
;
/* Record deleted */
DBUG_RETURN
(
my_errno
);
}
/* heap_write */
...
...
storage/innobase/CMakeLists.txt
View file @
e4a73acc
...
...
@@ -194,4 +194,6 @@ ENDIF()
ADD_SUBDIRECTORY
(
${
CMAKE_SOURCE_DIR
}
/extra/mariabackup
${
CMAKE_BINARY_DIR
}
/extra/mariabackup
)
ADD_DEPENDENCIES
(
innobase GenError
)
IF
(
TARGET innobase
)
ADD_DEPENDENCIES
(
innobase GenError
)
ENDIF
()
storage/maria/ma_dynrec.c
View file @
e4a73acc
...
...
@@ -275,7 +275,7 @@ my_bool _ma_update_blob_record(MARIA_HA *info, MARIA_RECORD_POS pos,
{
uchar
*
rec_buff
;
int
error
;
ulong
reclength
,
extra
;
ulong
reclength
,
reclength2
,
extra
;
extra
=
(
ALIGN_SIZE
(
MARIA_MAX_DYN_BLOCK_HEADER
)
+
MARIA_SPLIT_LENGTH
+
MARIA_DYN_DELETE_BLOCK_HEADER
);
...
...
@@ -293,11 +293,12 @@ my_bool _ma_update_blob_record(MARIA_HA *info, MARIA_RECORD_POS pos,
my_errno
=
HA_ERR_OUT_OF_MEM
;
/* purecov: inspected */
return
(
1
);
}
reclength
=
_ma_rec_pack
(
info
,
rec_buff
+
ALIGN_SIZE
(
MARIA_MAX_DYN_BLOCK_HEADER
),
reclength
2
=
_ma_rec_pack
(
info
,
rec_buff
+
ALIGN_SIZE
(
MARIA_MAX_DYN_BLOCK_HEADER
),
record
);
DBUG_ASSERT
(
reclength2
<=
reclength
);
error
=
update_dynamic_record
(
info
,
pos
,
rec_buff
+
ALIGN_SIZE
(
MARIA_MAX_DYN_BLOCK_HEADER
),
reclength
);
reclength
2
);
my_safe_afree
(
rec_buff
,
reclength
);
return
(
error
!=
0
);
}
...
...
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