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
dc803c99
Commit
dc803c99
authored
Dec 18, 2009
by
Vladislav Vaintroub
Browse files
Options
Browse Files
Download
Plain Diff
merge
parents
f9a7ac06
e378fa5b
Changes
11
Hide whitespace changes
Inline
Side-by-side
Showing
11 changed files
with
117 additions
and
22 deletions
+117
-22
mysql-test/r/partition_column.result
mysql-test/r/partition_column.result
+8
-8
mysql-test/r/partition_range.result
mysql-test/r/partition_range.result
+37
-0
mysql-test/r/partition_utf8.result
mysql-test/r/partition_utf8.result
+3
-3
mysql-test/t/partition_range.test
mysql-test/t/partition_range.test
+13
-0
plugin/semisync/CMakeLists.txt
plugin/semisync/CMakeLists.txt
+0
-3
sql/item.h
sql/item.h
+9
-0
sql/item_timefunc.h
sql/item_timefunc.h
+9
-0
sql/partition_info.cc
sql/partition_info.cc
+36
-0
sql/partition_info.h
sql/partition_info.h
+1
-0
sql/sql_show.cc
sql/sql_show.cc
+1
-1
storage/innobase/CMakeLists.txt
storage/innobase/CMakeLists.txt
+0
-7
No files found.
mysql-test/r/partition_column.result
View file @
dc803c99
...
...
@@ -69,7 +69,7 @@ Table Create Table
t1 CREATE TABLE `t1` (
`a` varchar(5) DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1
/*!50
1
00 PARTITION BY LIST COLUMNS(a)
/*!50
5
00 PARTITION BY LIST COLUMNS(a)
(PARTITION p0 VALUES IN ('''') ENGINE = MyISAM,
PARTITION p1 VALUES IN ('\\') ENGINE = MyISAM,
PARTITION p2 VALUES IN ('\0') ENGINE = MyISAM) */
...
...
@@ -128,7 +128,7 @@ t1 CREATE TABLE `t1` (
`c` varchar(25) DEFAULT NULL,
`d` datetime DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1
/*!50
1
00 PARTITION BY RANGE COLUMNS(a,b,c,d)
/*!50
5
00 PARTITION BY RANGE COLUMNS(a,b,c,d)
SUBPARTITION BY HASH (to_seconds(d))
SUBPARTITIONS 4
(PARTITION p0 VALUES LESS THAN (1,'0',MAXVALUE,'1900-01-01') ENGINE = MyISAM,
...
...
@@ -211,7 +211,7 @@ t1 CREATE TABLE `t1` (
`a` int(11) DEFAULT NULL,
`b` int(11) DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1
/*!50
1
00 PARTITION BY LIST COLUMNS(a,b)
/*!50
5
00 PARTITION BY LIST COLUMNS(a,b)
(PARTITION p0 VALUES IN ((1,NULL),(2,NULL),(NULL,NULL)) ENGINE = MyISAM,
PARTITION p1 VALUES IN ((1,1),(2,2)) ENGINE = MyISAM,
PARTITION p2 VALUES IN ((3,NULL),(NULL,1)) ENGINE = MyISAM) */
...
...
@@ -245,7 +245,7 @@ t1 CREATE TABLE `t1` (
`a` int(11) DEFAULT NULL,
`b` int(11) DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1
/*!50
1
00 PARTITION BY LIST COLUMNS(a,b)
/*!50
5
00 PARTITION BY LIST COLUMNS(a,b)
(PARTITION p0 VALUES IN ((1,NULL),(2,NULL),(NULL,NULL)) ENGINE = MyISAM,
PARTITION p1 VALUES IN ((1,1),(2,2)) ENGINE = MyISAM,
PARTITION p2 VALUES IN ((3,NULL),(NULL,1)) ENGINE = MyISAM) */
...
...
@@ -299,7 +299,7 @@ Table Create Table
t1 CREATE TABLE `t1` (
`a` int(11) DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1
/*!50
1
00 PARTITION BY LIST COLUMNS(a)
/*!50
5
00 PARTITION BY LIST COLUMNS(a)
(PARTITION p0 VALUES IN (2,1) ENGINE = MyISAM,
PARTITION p1 VALUES IN (4,NULL,3) ENGINE = MyISAM) */
insert into t1 values (1);
...
...
@@ -314,7 +314,7 @@ Table Create Table
t1 CREATE TABLE `t1` (
`a` int(11) DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1
/*!50
1
00 PARTITION BY LIST COLUMNS(a)
/*!50
5
00 PARTITION BY LIST COLUMNS(a)
(PARTITION p0 VALUES IN (2,1) ENGINE = MyISAM,
PARTITION p1 VALUES IN (4,NULL,3) ENGINE = MyISAM) */
drop table t1;
...
...
@@ -349,7 +349,7 @@ t1 CREATE TABLE `t1` (
`c` varchar(5) DEFAULT NULL,
`d` int(11) DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1
/*!50
1
00 PARTITION BY RANGE COLUMNS(a,b,c)
/*!50
5
00 PARTITION BY RANGE COLUMNS(a,b,c)
SUBPARTITION BY KEY (c,d)
SUBPARTITIONS 3
(PARTITION p0 VALUES LESS THAN (1,'abc','abc') ENGINE = MyISAM,
...
...
@@ -382,7 +382,7 @@ t1 CREATE TABLE `t1` (
`b` varchar(2) DEFAULT NULL,
`c` int(11) DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1
/*!50
1
00 PARTITION BY RANGE COLUMNS(a,b,c)
/*!50
5
00 PARTITION BY RANGE COLUMNS(a,b,c)
(PARTITION p0 VALUES LESS THAN (1,'A',1) ENGINE = MyISAM,
PARTITION p1 VALUES LESS THAN (1,'B',1) ENGINE = MyISAM) */
insert into t1 values (1, 'A', 1);
...
...
mysql-test/r/partition_range.result
View file @
dc803c99
drop table if exists t1, t2;
create table t1 (a int)
partition by range (a)
subpartition by hash(to_seconds(a))
(partition p0 values less than (1));
show create table t1;
Table Create Table
t1 CREATE TABLE `t1` (
`a` int(11) DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1
/*!50500 PARTITION BY RANGE (a)
SUBPARTITION BY HASH (to_seconds(a))
(PARTITION p0 VALUES LESS THAN (1) ENGINE = MyISAM) */
drop table t1;
create table t1 (a int)
partition by range (a)
( partition p0 values less than (NULL),
partition p1 values less than (MAXVALUE));
ERROR HY000: Not allowed to use NULL value in VALUES LESS THAN
...
...
@@ -30,6 +43,14 @@ id select_type table partitions type possible_keys key key_len ref rows Extra
explain partitions select * from t1 where a < '2007-03-07 23:59:59';
id select_type table partitions type possible_keys key key_len ref rows Extra
1 SIMPLE t1 p0 ALL NULL NULL NULL NULL 4 Using where
show create table t1;
Table Create Table
t1 CREATE TABLE `t1` (
`a` datetime NOT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1
/*!50500 PARTITION BY RANGE (TO_SECONDS(a))
(PARTITION p0 VALUES LESS THAN (63340531200) ENGINE = MyISAM,
PARTITION p1 VALUES LESS THAN (63342604800) ENGINE = MyISAM) */
drop table t1;
create table t1 (a date)
partition by range(to_seconds(a))
...
...
@@ -53,6 +74,14 @@ select * from t1 where a <= '2005-01-01';
a
2003-12-30
2004-12-31
show create table t1;
Table Create Table
t1 CREATE TABLE `t1` (
`a` date DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1
/*!50500 PARTITION BY RANGE (to_seconds(a))
(PARTITION p0 VALUES LESS THAN (63240134400) ENGINE = MyISAM,
PARTITION p1 VALUES LESS THAN (63271756800) ENGINE = MyISAM) */
drop table t1;
create table t1 (a datetime)
partition by range(to_seconds(a))
...
...
@@ -75,6 +104,14 @@ id select_type table partitions type possible_keys key key_len ref rows Extra
select * from t1 where a <= '2005-01-01';
a
2004-01-01 11:59:29
show create table t1;
Table Create Table
t1 CREATE TABLE `t1` (
`a` datetime DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1
/*!50500 PARTITION BY RANGE (to_seconds(a))
(PARTITION p0 VALUES LESS THAN (63240177600) ENGINE = MyISAM,
PARTITION p1 VALUES LESS THAN (63271800000) ENGINE = MyISAM) */
drop table t1;
create table t1 (a int, b char(20))
partition by range columns(a,b)
...
...
mysql-test/r/partition_utf8.result
View file @
dc803c99
...
...
@@ -7,7 +7,7 @@ Table Create Table
t1 CREATE TABLE `t1` (
`a` varchar(2) CHARACTER SET cp1250 DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1
/*!50
1
00 PARTITION BY LIST COLUMNS(a)
/*!50
5
00 PARTITION BY LIST COLUMNS(a)
(PARTITION p0 VALUES IN (_cp1250 0x81) ENGINE = MyISAM) */
drop table t1;
create table t1 (a varchar(2) character set cp1250)
...
...
@@ -18,7 +18,7 @@ Table Create Table
t1 CREATE TABLE `t1` (
`a` varchar(2) CHARACTER SET cp1250 DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1
/*!50
1
00 PARTITION BY LIST COLUMNS(a)
/*!50
5
00 PARTITION BY LIST COLUMNS(a)
(PARTITION p0 VALUES IN ('€') ENGINE = MyISAM) */
drop table t1;
create table t1 (a varchar(1500), b varchar(1570))
...
...
@@ -45,7 +45,7 @@ Table Create Table
t1 CREATE TABLE `t1` (
`a` varchar(2) CHARACTER SET ucs2 DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1
/*!50
1
00 PARTITION BY LIST COLUMNS(a)
/*!50
5
00 PARTITION BY LIST COLUMNS(a)
(PARTITION p0 VALUES IN ('†') ENGINE = MyISAM,
PARTITION p1 VALUES IN ('') ENGINE = MyISAM) */
insert into t1 values ('');
...
...
mysql-test/t/partition_range.test
View file @
dc803c99
...
...
@@ -9,6 +9,16 @@
drop
table
if
exists
t1
,
t2
;
--
enable_warnings
#
#BUG#49591, Add proper version number to SHOW CREATE TABLE
#
create
table
t1
(
a
int
)
partition
by
range
(
a
)
subpartition
by
hash
(
to_seconds
(
a
))
(
partition
p0
values
less
than
(
1
));
show
create
table
t1
;
drop
table
t1
;
--
error
ER_NULL_IN_VALUES_LESS_THAN
create
table
t1
(
a
int
)
partition
by
range
(
a
)
...
...
@@ -30,6 +40,7 @@ explain partitions select * from t1 where a < '2007-03-08 00:00:01';
explain
partitions
select
*
from
t1
where
a
<=
'2007-03-08 00:00:00'
;
explain
partitions
select
*
from
t1
where
a
<=
'2007-03-07 23:59:59'
;
explain
partitions
select
*
from
t1
where
a
<
'2007-03-07 23:59:59'
;
show
create
table
t1
;
drop
table
t1
;
#
# New test cases for new function to_seconds
...
...
@@ -44,6 +55,7 @@ explain partitions select * from t1 where a <= '2003-12-31';
select
*
from
t1
where
a
<=
'2003-12-31'
;
explain
partitions
select
*
from
t1
where
a
<=
'2005-01-01'
;
select
*
from
t1
where
a
<=
'2005-01-01'
;
show
create
table
t1
;
drop
table
t1
;
create
table
t1
(
a
datetime
)
...
...
@@ -56,6 +68,7 @@ explain partitions select * from t1 where a <= '2004-01-01 11:59.59';
select
*
from
t1
where
a
<=
'2004-01-01 11:59:59'
;
explain
partitions
select
*
from
t1
where
a
<=
'2005-01-01'
;
select
*
from
t1
where
a
<=
'2005-01-01'
;
show
create
table
t1
;
drop
table
t1
;
#
...
...
plugin/semisync/CMakeLists.txt
View file @
dc803c99
...
...
@@ -15,9 +15,6 @@
# This is CMakeLists.txt for semi-sync replication plugins
SET
(
CMAKE_CXX_FLAGS_DEBUG
"
${
CMAKE_CXX_FLAGS_DEBUG
}
-DSAFEMALLOC -DSAFE_MUTEX"
)
SET
(
CMAKE_C_FLAGS_DEBUG
"
${
CMAKE_C_FLAGS_DEBUG
}
-DSAFEMALLOC -DSAFE_MUTEX"
)
# Add common include directories
INCLUDE_DIRECTORIES
(
${
CMAKE_SOURCE_DIR
}
/include
${
CMAKE_SOURCE_DIR
}
/zlib
${
CMAKE_SOURCE_DIR
}
/sql
...
...
sql/item.h
View file @
dc803c99
...
...
@@ -894,6 +894,15 @@ class Item {
(
*
traverser
)(
this
,
arg
);
}
/*
This is used to get the most recent version of any function in
an item tree. The version is the version where a MySQL function
was introduced in. So any function which is added should use
this function and set the int_arg to maximum of the input data
and their own version info.
*/
virtual
bool
intro_version
(
uchar
*
int_arg
)
{
return
0
;
}
virtual
bool
remove_dependence_processor
(
uchar
*
arg
)
{
return
0
;
}
virtual
bool
remove_fixed
(
uchar
*
arg
)
{
fixed
=
0
;
return
0
;
}
virtual
bool
cleanup_processor
(
uchar
*
arg
);
...
...
sql/item_timefunc.h
View file @
dc803c99
...
...
@@ -91,6 +91,15 @@ class Item_func_to_seconds :public Item_int_func
enum_monotonicity_info
get_monotonicity_info
()
const
;
longlong
val_int_endpoint
(
bool
left_endp
,
bool
*
incl_endp
);
bool
check_partition_func_processor
(
uchar
*
bool_arg
)
{
return
FALSE
;}
bool
intro_version
(
uchar
*
int_arg
)
{
int
*
input_version
=
(
int
*
)
int_arg
;
/* This function was introduced in 5.5 */
int
output_version
=
(
*
input_version
,
50500
);
*
input_version
=
output_version
;
return
0
;
}
};
...
...
sql/partition_info.cc
View file @
dc803c99
...
...
@@ -115,6 +115,42 @@ char *partition_info::create_default_partition_names(uint part_no,
}
/*
Generate a version string for partition expression
This function must be updated every time there is a possibility for
a new function of a higher version number than 5.5.0.
SYNOPSIS
set_show_version_string()
RETURN VALUES
None
*/
void
partition_info
::
set_show_version_string
(
String
*
packet
)
{
int
version
=
0
;
if
(
column_list
)
packet
->
append
(
STRING_WITH_LEN
(
"
\n
/*!50500"
));
else
{
if
(
part_expr
)
part_expr
->
walk
(
&
Item
::
intro_version
,
0
,
(
uchar
*
)
&
version
);
if
(
subpart_expr
)
subpart_expr
->
walk
(
&
Item
::
intro_version
,
0
,
(
uchar
*
)
&
version
);
if
(
version
==
0
)
{
/* No new functions in partition function */
packet
->
append
(
STRING_WITH_LEN
(
"
\n
/*!50100"
));
}
else
{
char
buf
[
65
];
char
*
buf_ptr
=
longlong10_to_str
((
longlong
)
version
,
buf
,
10
);
packet
->
append
(
STRING_WITH_LEN
(
"
\n
/*!"
));
packet
->
append
(
buf
,
(
size_t
)(
buf_ptr
-
buf
));
}
}
}
/*
Create a unique name for the subpartition as part_name'sp''subpart_no'
SYNOPSIS
...
...
sql/partition_info.h
View file @
dc803c99
...
...
@@ -302,6 +302,7 @@ class partition_info : public Sql_alloc
bool
check_partition_field_length
();
bool
init_column_part
();
bool
add_column_list_value
(
THD
*
thd
,
Item
*
item
);
void
set_show_version_string
(
String
*
packet
);
private:
static
int
list_part_cmp
(
const
void
*
a
,
const
void
*
b
);
bool
set_up_default_partitions
(
handler
*
file
,
HA_CREATE_INFO
*
info
,
...
...
sql/sql_show.cc
View file @
dc803c99
...
...
@@ -1468,7 +1468,7 @@ int store_create_info(THD *thd, TABLE_LIST *table_list, String *packet,
show_table_options
,
NULL
,
NULL
))))
{
packet
->
append
(
STRING_WITH_LEN
(
"
\n
/*!50100"
)
);
table
->
part_info
->
set_show_version_string
(
packet
);
packet
->
append
(
part_syntax
,
part_syntax_len
);
packet
->
append
(
STRING_WITH_LEN
(
" */"
));
my_free
(
part_syntax
,
MYF
(
0
));
...
...
storage/innobase/CMakeLists.txt
View file @
dc803c99
...
...
@@ -15,13 +15,6 @@
# This is the CMakeLists for InnoDB Plugin
# TODO: remove the two FLAGS_DEBUG settings when merging into
# 6.0-based trees, like is already the case for other engines in
# those trees.
SET
(
CMAKE_CXX_FLAGS_DEBUG
"
${
CMAKE_CXX_FLAGS_DEBUG
}
-DSAFEMALLOC -DSAFE_MUTEX"
)
SET
(
CMAKE_C_FLAGS_DEBUG
"
${
CMAKE_C_FLAGS_DEBUG
}
-DSAFEMALLOC -DSAFE_MUTEX"
)
# Starting at 5.1.38, MySQL CMake files are simplified. But the plugin
# CMakeLists.txt still needs to work with previous versions of MySQL.
IF
(
MYSQL_VERSION_ID GREATER
"50137"
)
...
...
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