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
fef3cb33
Commit
fef3cb33
authored
Sep 28, 2006
by
mikael/pappa@dator5.(none)
Browse files
Options
Browse Files
Download
Plain Diff
Merge dator5.(none):/home/pappa/clean-mysql-5.1-kt
into dator5.(none):/home/pappa/bug18198
parents
c7a3df76
ea901404
Changes
12
Hide whitespace changes
Inline
Side-by-side
Showing
12 changed files
with
191 additions
and
187 deletions
+191
-187
mysql-test/r/partition.result
mysql-test/r/partition.result
+0
-37
mysql-test/r/partition_error.result
mysql-test/r/partition_error.result
+0
-41
mysql-test/r/partition_innodb.result
mysql-test/r/partition_innodb.result
+71
-0
mysql-test/r/partition_range.result
mysql-test/r/partition_range.result
+0
-10
mysql-test/t/partition-master.opt
mysql-test/t/partition-master.opt
+1
-0
mysql-test/t/partition.test
mysql-test/t/partition.test
+0
-37
mysql-test/t/partition_error.test
mysql-test/t/partition_error.test
+0
-40
mysql-test/t/partition_innodb.test
mysql-test/t/partition_innodb.test
+68
-0
mysql-test/t/partition_range.test
mysql-test/t/partition_range.test
+0
-12
sql/ha_partition.cc
sql/ha_partition.cc
+25
-2
sql/ha_partition.h
sql/ha_partition.h
+4
-3
sql/sql_table.cc
sql/sql_table.cc
+22
-5
No files found.
mysql-test/r/partition.result
View file @
fef3cb33
...
...
@@ -16,32 +16,6 @@ partition by key(a)
partitions 1e+300;
ERROR 42000: Only normal integers allowed as number here near '1e+300' at line 3
create table t1 (a int)
engine = innodb
partition by key (a);
show table status;
Name Engine Version Row_format Rows Avg_row_length Data_length Max_data_length Index_length Data_free Auto_increment Create_time Update_time Check_time Collation Checksum Create_options Comment
t1 InnoDB 10 Compact 2 8192 16384 0 0 0 NULL NULL NULL NULL latin1_swedish_ci NULL partitioned
insert into t1 values (0), (1), (2), (3);
show table status;
Name Engine Version Row_format Rows Avg_row_length Data_length Max_data_length Index_length Data_free Auto_increment Create_time Update_time Check_time Collation Checksum Create_options Comment
t1 InnoDB 10 Compact 4 4096 16384 0 0 0 NULL NULL NULL NULL latin1_swedish_ci NULL partitioned
drop table t1;
create table t1 (a int auto_increment primary key)
engine = innodb
partition by key (a);
show table status;
Name Engine Version Row_format Rows Avg_row_length Data_length Max_data_length Index_length Data_free Auto_increment Create_time Update_time Check_time Collation Checksum Create_options Comment
t1 InnoDB 10 Compact 2 8192 16384 0 0 0 1 NULL NULL NULL latin1_swedish_ci NULL partitioned
insert into t1 values (NULL), (NULL), (NULL), (NULL);
show table status;
Name Engine Version Row_format Rows Avg_row_length Data_length Max_data_length Index_length Data_free Auto_increment Create_time Update_time Check_time Collation Checksum Create_options Comment
t1 InnoDB 10 Compact 4 4096 16384 0 0 0 5 NULL NULL NULL latin1_swedish_ci NULL partitioned
insert into t1 values (NULL), (NULL), (NULL), (NULL);
show table status;
Name Engine Version Row_format Rows Avg_row_length Data_length Max_data_length Index_length Data_free Auto_increment Create_time Update_time Check_time Collation Checksum Create_options Comment
t1 InnoDB 10 Compact 8 2048 16384 0 0 0 9 NULL NULL NULL latin1_swedish_ci NULL partitioned
drop table t1;
create table t1 (a int)
partition by key (a)
(partition p0 DATA DIRECTORY 'part-data' INDEX DIRECTORY 'part-data');
ERROR 42000: Incorrect table name 'part-data'
...
...
@@ -1037,17 +1011,6 @@ set session sql_mode='';
drop table t1;
create table t1 (a int)
partition by key (a)
(partition p1 engine = innodb);
alter table t1 rebuild partition p1;
alter table t1 rebuild partition p1;
alter table t1 rebuild partition p1;
alter table t1 rebuild partition p1;
alter table t1 rebuild partition p1;
alter table t1 rebuild partition p1;
alter table t1 rebuild partition p1;
drop table t1;
create table t1 (a int)
partition by key (a)
(partition p0 engine = MERGE);
ERROR HY000: MyISAM Merge handler cannot be used in partitioned tables
create table t1 (a varchar(1))
...
...
mysql-test/r/partition_error.result
View file @
fef3cb33
drop table if exists t1;
create table t1 (a int)
partition by range (a)
(partition p0 values less than ((select count(*) from t1)));
ERROR HY000: This partition function is not allowed
create table t1 (a int)
partition by range (a)
(partition p0 values less than (a);
ERROR 42S22: Unknown column 'a' in 'partition function'
create table t1 (a int)
partition by range (a)
(partition p0 values less than (1));
alter table t1 add partition (partition p1 values less than (a));
ERROR 42S22: Unknown column 'a' in 'partition function'
alter table t1 add partition
(partition p1 values less than ((select count(*) from t1)));
ERROR HY000: This partition function is not allowed
drop table t1;
create table t1 (a int)
engine = x
partition by key (a);
Warnings:
Error 1286 Unknown table engine 'x'
show create table t1;
Table Create Table
t1 CREATE TABLE `t1` (
`a` int(11) DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY KEY (a) */
drop table t1;
create table t1 (a int)
engine = innodb
partition by list (a)
(partition p0 values in (0));
alter table t1 engine = x;
Warnings:
Error 1286 Unknown table engine 'x'
show create table t1;
Table Create Table
t1 CREATE TABLE `t1` (
`a` int(11) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY LIST (a) (PARTITION p0 VALUES IN (0) ENGINE = InnoDB) */
drop table t1;
partition by list (a)
partitions 3
(partition x1 values in (1,2,9,4) tablespace ts1,
...
...
mysql-test/r/partition_innodb.result
View file @
fef3cb33
...
...
@@ -3,3 +3,74 @@ show table status like 't1';
Name Engine Version Row_format Rows Avg_row_length Data_length Max_data_length Index_length Data_free Auto_increment Create_time Update_time Check_time Collation Checksum Create_options Comment
t1 InnoDB 10 Compact 2 8192 16384 0 0 0 NULL NULL NULL NULL latin1_swedish_ci NULL partitioned
drop table t1;
create table t1 (a int)
engine = innodb
partition by key (a);
show table status;
Name Engine Version Row_format Rows Avg_row_length Data_length Max_data_length Index_length Data_free Auto_increment Create_time Update_time Check_time Collation Checksum Create_options Comment
t1 InnoDB 10 Compact 2 8192 16384 0 0 0 NULL NULL NULL NULL latin1_swedish_ci NULL partitioned
insert into t1 values (0), (1), (2), (3);
show table status;
Name Engine Version Row_format Rows Avg_row_length Data_length Max_data_length Index_length Data_free Auto_increment Create_time Update_time Check_time Collation Checksum Create_options Comment
t1 InnoDB 10 Compact 4 4096 16384 0 0 0 NULL NULL NULL NULL latin1_swedish_ci NULL partitioned
drop table t1;
create table t1 (a int auto_increment primary key)
engine = innodb
partition by key (a);
show table status;
Name Engine Version Row_format Rows Avg_row_length Data_length Max_data_length Index_length Data_free Auto_increment Create_time Update_time Check_time Collation Checksum Create_options Comment
t1 InnoDB 10 Compact 2 8192 16384 0 0 0 1 NULL NULL NULL latin1_swedish_ci NULL partitioned
insert into t1 values (NULL), (NULL), (NULL), (NULL);
show table status;
Name Engine Version Row_format Rows Avg_row_length Data_length Max_data_length Index_length Data_free Auto_increment Create_time Update_time Check_time Collation Checksum Create_options Comment
t1 InnoDB 10 Compact 4 4096 16384 0 0 0 5 NULL NULL NULL latin1_swedish_ci NULL partitioned
insert into t1 values (NULL), (NULL), (NULL), (NULL);
show table status;
Name Engine Version Row_format Rows Avg_row_length Data_length Max_data_length Index_length Data_free Auto_increment Create_time Update_time Check_time Collation Checksum Create_options Comment
t1 InnoDB 10 Compact 8 2048 16384 0 0 0 9 NULL NULL NULL latin1_swedish_ci NULL partitioned
drop table t1;
create table t1 (a int)
partition by key (a)
(partition p1 engine = innodb);
alter table t1 rebuild partition p1;
alter table t1 rebuild partition p1;
alter table t1 rebuild partition p1;
alter table t1 rebuild partition p1;
alter table t1 rebuild partition p1;
alter table t1 rebuild partition p1;
alter table t1 rebuild partition p1;
drop table t1;
create table t1 (a date)
engine = innodb
partition by range (year(a))
(partition p0 values less than (2006),
partition p1 values less than (2007));
explain partitions select * from t1
where a between '2006-01-01' and '2007-06-01';
id select_type table partitions type possible_keys key key_len ref rows Extra
1 SIMPLE t1 p1 ALL NULL NULL NULL NULL 2 Using where
drop table t1;
create table t1 (a int)
engine = x
partition by key (a);
Warnings:
Error 1286 Unknown table engine 'x'
show create table t1;
Table Create Table
t1 CREATE TABLE `t1` (
`a` int(11) DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY KEY (a) */
drop table t1;
create table t1 (a int)
engine = innodb
partition by list (a)
(partition p0 values in (0));
alter table t1 engine = x;
Warnings:
Error 1286 Unknown table engine 'x'
show create table t1;
Table Create Table
t1 CREATE TABLE `t1` (
`a` int(11) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY LIST (a) (PARTITION p0 VALUES IN (0) ENGINE = InnoDB) */
drop table t1;
mysql-test/r/partition_range.result
View file @
fef3cb33
drop table if exists t1;
create table t1 (a date)
engine = innodb
partition by range (year(a))
(partition p0 values less than (2006),
partition p1 values less than (2007));
explain partitions select * from t1
where a between '2006-01-01' and '2007-06-01';
id select_type table partitions type possible_keys key key_len ref rows Extra
1 SIMPLE t1 p1 ALL NULL NULL NULL NULL 2 Using where
drop table t1;
create table t1 (a int unsigned)
partition by range (a)
(partition pnull values less than (0),
...
...
mysql-test/t/partition-master.opt
0 → 100644
View file @
fef3cb33
--symbolic-links=1
mysql-test/t/partition.test
View file @
fef3cb33
...
...
@@ -33,27 +33,6 @@ create table t1 (a int)
partition
by
key
(
a
)
partitions
1
e
+
300
;
#
# Bug 21173: SHOW TABLE STATUS crashes server in InnoDB
#
create
table
t1
(
a
int
)
engine
=
innodb
partition
by
key
(
a
);
show
table
status
;
insert
into
t1
values
(
0
),
(
1
),
(
2
),
(
3
);
show
table
status
;
drop
table
t1
;
create
table
t1
(
a
int
auto_increment
primary
key
)
engine
=
innodb
partition
by
key
(
a
);
show
table
status
;
insert
into
t1
values
(
NULL
),
(
NULL
),
(
NULL
),
(
NULL
);
show
table
status
;
insert
into
t1
values
(
NULL
),
(
NULL
),
(
NULL
),
(
NULL
);
show
table
status
;
drop
table
t1
;
#
# Bug 21350: Data Directory problems
#
...
...
@@ -1184,22 +1163,6 @@ show create table t1;
set
session
sql_mode
=
''
;
drop
table
t1
;
#
# BUG 19122 Crash after ALTER TABLE t1 REBUILD PARTITION p1
#
create
table
t1
(
a
int
)
partition
by
key
(
a
)
(
partition
p1
engine
=
innodb
);
alter
table
t1
rebuild
partition
p1
;
alter
table
t1
rebuild
partition
p1
;
alter
table
t1
rebuild
partition
p1
;
alter
table
t1
rebuild
partition
p1
;
alter
table
t1
rebuild
partition
p1
;
alter
table
t1
rebuild
partition
p1
;
alter
table
t1
rebuild
partition
p1
;
drop
table
t1
;
#
# BUG 19304 Partitions: MERGE handler not allowed in partitioned tables
#
...
...
mysql-test/t/partition_error.test
View file @
fef3cb33
...
...
@@ -8,46 +8,6 @@
drop
table
if
exists
t1
;
--
enable_warnings
#
# Bug 18198: Partitions: Too flexible functions
#
--
error
ER_PARTITION_FUNCTION_IS_NOT_ALLOWED
create
table
t1
(
a
int
)
partition
by
range
(
a
)
(
partition
p0
values
less
than
((
select
count
(
*
)
from
t1
)));
--
error
1054
create
table
t1
(
a
int
)
partition
by
range
(
a
)
(
partition
p0
values
less
than
(
a
);
create
table
t1
(
a
int
)
partition
by
range
(
a
)
(
partition
p0
values
less
than
(
1
));
--
error
1054
alter
table
t1
add
partition
(
partition
p1
values
less
than
(
a
));
--
error
ER_PARTITION_FUNCTION_IS_NOT_ALLOWED
alter
table
t1
add
partition
(
partition
p1
values
less
than
((
select
count
(
*
)
from
t1
)));
drop
table
t1
;
#
# Bug 20397: Partitions: Crash when using non-existing engine
#
create
table
t1
(
a
int
)
engine
=
x
partition
by
key
(
a
);
show
create
table
t1
;
drop
table
t1
;
create
table
t1
(
a
int
)
engine
=
innodb
partition
by
list
(
a
)
(
partition
p0
values
in
(
0
));
alter
table
t1
engine
=
x
;
show
create
table
t1
;
drop
table
t1
;
#
# Partition by key stand-alone error
#
...
...
mysql-test/t/partition_innodb.test
View file @
fef3cb33
...
...
@@ -8,3 +8,71 @@ create table t1 (a int) engine=innodb partition by hash(a) ;
show
table
status
like
't1'
;
drop
table
t1
;
#
# Bug 21173: SHOW TABLE STATUS crashes server in InnoDB
#
create
table
t1
(
a
int
)
engine
=
innodb
partition
by
key
(
a
);
show
table
status
;
insert
into
t1
values
(
0
),
(
1
),
(
2
),
(
3
);
show
table
status
;
drop
table
t1
;
create
table
t1
(
a
int
auto_increment
primary
key
)
engine
=
innodb
partition
by
key
(
a
);
show
table
status
;
insert
into
t1
values
(
NULL
),
(
NULL
),
(
NULL
),
(
NULL
);
show
table
status
;
insert
into
t1
values
(
NULL
),
(
NULL
),
(
NULL
),
(
NULL
);
show
table
status
;
drop
table
t1
;
#
# BUG 19122 Crash after ALTER TABLE t1 REBUILD PARTITION p1
#
create
table
t1
(
a
int
)
partition
by
key
(
a
)
(
partition
p1
engine
=
innodb
);
alter
table
t1
rebuild
partition
p1
;
alter
table
t1
rebuild
partition
p1
;
alter
table
t1
rebuild
partition
p1
;
alter
table
t1
rebuild
partition
p1
;
alter
table
t1
rebuild
partition
p1
;
alter
table
t1
rebuild
partition
p1
;
alter
table
t1
rebuild
partition
p1
;
drop
table
t1
;
#
# Bug 21339: Crash in Explain Partitions
#
create
table
t1
(
a
date
)
engine
=
innodb
partition
by
range
(
year
(
a
))
(
partition
p0
values
less
than
(
2006
),
partition
p1
values
less
than
(
2007
));
explain
partitions
select
*
from
t1
where
a
between
'2006-01-01'
and
'2007-06-01'
;
drop
table
t1
;
#
# Bug 20397: Partitions: Crash when using non-existing engine
#
create
table
t1
(
a
int
)
engine
=
x
partition
by
key
(
a
);
show
create
table
t1
;
drop
table
t1
;
create
table
t1
(
a
int
)
engine
=
innodb
partition
by
list
(
a
)
(
partition
p0
values
in
(
0
));
alter
table
t1
engine
=
x
;
show
create
table
t1
;
drop
table
t1
;
mysql-test/t/partition_range.test
View file @
fef3cb33
...
...
@@ -9,18 +9,6 @@
drop
table
if
exists
t1
;
--
enable_warnings
#
# Bug 21339: Crash in Explain Partitions
#
create
table
t1
(
a
date
)
engine
=
innodb
partition
by
range
(
year
(
a
))
(
partition
p0
values
less
than
(
2006
),
partition
p1
values
less
than
(
2007
));
explain
partitions
select
*
from
t1
where
a
between
'2006-01-01'
and
'2007-06-01'
;
drop
table
t1
;
#
# More checks for partition pruning
#
...
...
sql/ha_partition.cc
View file @
fef3cb33
...
...
@@ -1364,6 +1364,7 @@ int ha_partition::change_partitions(HA_CREATE_INFO *create_info,
i
=
0
;
part_count
=
0
;
orig_count
=
0
;
first
=
TRUE
;
part_it
.
rewind
();
do
{
...
...
@@ -1391,9 +1392,16 @@ int ha_partition::change_partitions(HA_CREATE_INFO *create_info,
DBUG_RETURN
(
ER_OUTOFMEMORY
);
}
}
while
(
++
j
<
no_subparts
);
if
(
part_elem
->
part_state
==
PART_CHANGED
)
orig_count
+=
no_subparts
;
else
if
(
temp_partitions
&&
first
)
{
orig_count
+=
(
no_subparts
*
temp_partitions
);
first
=
FALSE
;
}
}
}
while
(
++
i
<
no_parts
);
first
=
FALSE
;
/*
Step 5:
Create the new partitions and also open, lock and call external_lock
...
...
@@ -3655,7 +3663,10 @@ int ha_partition::read_range_first(const key_range *start_key,
if
(
!
start_key
)
// Read first record
{
m_index_scan_type
=
partition_index_first
;
if
(
m_ordered
)
m_index_scan_type
=
partition_index_first
;
else
m_index_scan_type
=
partition_index_first_unordered
;
error
=
common_first_last
(
m_rec0
);
}
else
...
...
@@ -3869,6 +3880,18 @@ int ha_partition::handle_unordered_scan_next_partition(byte * buf)
DBUG_PRINT
(
"info"
,
(
"index_first on partition %d"
,
i
));
error
=
file
->
index_first
(
buf
);
break
;
case
partition_index_first_unordered
:
/*
We perform a scan without sorting and this means that we
should not use the index_first since not all handlers
support it and it is also unnecessary to restrict sort
order.
*/
DBUG_PRINT
(
"info"
,
(
"read_range_first on partition %d"
,
i
));
table
->
record
[
0
]
=
buf
;
error
=
file
->
read_range_first
(
0
,
end_range
,
eq_range
,
0
);
table
->
record
[
0
]
=
m_rec0
;
break
;
default:
DBUG_ASSERT
(
FALSE
);
DBUG_RETURN
(
1
);
...
...
sql/ha_partition.h
View file @
fef3cb33
...
...
@@ -45,9 +45,10 @@ class ha_partition :public handler
{
partition_index_read
=
0
,
partition_index_first
=
1
,
partition_index_last
=
2
,
partition_index_read_last
=
3
,
partition_no_index_scan
=
4
partition_index_first_unordered
=
2
,
partition_index_last
=
3
,
partition_index_read_last
=
4
,
partition_no_index_scan
=
5
};
/* Data for the partition handler */
int
m_mode
;
// Open mode
...
...
sql/sql_table.cc
View file @
fef3cb33
...
...
@@ -1132,6 +1132,26 @@ bool execute_ddl_log_entry(THD *thd, uint first_entry)
}
/*
Close the ddl log
SYNOPSIS
close_ddl_log()
RETURN VALUES
NONE
*/
static
void
close_ddl_log
()
{
DBUG_ENTER
(
"close_ddl_log"
);
if
(
global_ddl_log
.
file_id
>=
0
)
{
VOID
(
my_close
(
global_ddl_log
.
file_id
,
MYF
(
MY_WME
)));
global_ddl_log
.
file_id
=
(
File
)
-
1
;
}
DBUG_VOID_RETURN
;
}
/*
Execute the ddl log at recovery of MySQL Server
SYNOPSIS
...
...
@@ -1183,6 +1203,7 @@ void execute_ddl_log_recovery()
}
}
}
close_ddl_log
();
create_ddl_log_file_name
(
file_name
);
VOID
(
my_delete
(
file_name
,
MYF
(
0
)));
global_ddl_log
.
recovery_phase
=
FALSE
;
...
...
@@ -1220,11 +1241,7 @@ void release_ddl_log()
my_free
((
char
*
)
free_list
,
MYF
(
0
));
free_list
=
tmp
;
}
if
(
global_ddl_log
.
file_id
>=
0
)
{
VOID
(
my_close
(
global_ddl_log
.
file_id
,
MYF
(
MY_WME
)));
global_ddl_log
.
file_id
=
(
File
)
-
1
;
}
close_ddl_log
();
global_ddl_log
.
inited
=
0
;
pthread_mutex_unlock
(
&
LOCK_gdl
);
VOID
(
pthread_mutex_destroy
(
&
LOCK_gdl
));
...
...
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