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
55b4a2ab
Commit
55b4a2ab
authored
Nov 10, 2009
by
Alexander Nozdrin
Browse files
Options
Browse Files
Download
Plain Diff
Auto-merge from mysql-next-mr-alik.
parents
dadf8207
52beed00
Changes
7
Hide whitespace changes
Inline
Side-by-side
Showing
7 changed files
with
151 additions
and
1 deletion
+151
-1
mysql-test/r/ctype_collate.result
mysql-test/r/ctype_collate.result
+30
-0
mysql-test/r/partition_column.result
mysql-test/r/partition_column.result
+50
-0
mysql-test/r/partition_innodb.result
mysql-test/r/partition_innodb.result
+11
-0
mysql-test/t/ctype_collate.test
mysql-test/t/ctype_collate.test
+12
-0
mysql-test/t/partition_column.test
mysql-test/t/partition_column.test
+31
-0
mysql-test/t/partition_innodb.test
mysql-test/t/partition_innodb.test
+15
-0
sql/opt_range.cc
sql/opt_range.cc
+2
-1
No files found.
mysql-test/r/ctype_collate.result
View file @
55b4a2ab
...
...
@@ -548,6 +548,36 @@ SELECT * FROM t1 WHERE s2 = s3;
s1 s2 s3
a A A
DROP TABLE t1;
create table t1 (a varchar(1) character set latin1 collate latin1_general_ci);
insert into t1 values ('A'),('a'),('B'),('b'),('C'),('c');
select * from t1 where a > 'B' collate latin1_bin;
a
a
b
C
c
select * from t1 where a <> 'B' collate latin1_bin;
a
A
a
b
C
c
create index i on t1 (a);
select * from t1 where a > 'B' collate latin1_bin;
a
a
b
C
c
select * from t1 where a <> 'B' collate latin1_bin;
a
A
a
b
C
c
drop table t1;
SET NAMES latin1;
CREATE TABLE t1
(s1 char(10) COLLATE latin1_german1_ci,
...
...
mysql-test/r/partition_column.result
View file @
55b4a2ab
drop table if exists t1;
create table t1 (a varchar(1) character set latin1 collate latin1_general_ci)
partition by range columns(a)
( partition p0 values less than ('a'),
partition p1 values less than ('b'),
partition p2 values less than ('c'),
partition p3 values less than ('d'));
insert into t1 values ('A'),('a'),('B'),('b'),('C'),('c');
select * from t1 where a > 'B' collate latin1_bin;
a
a
b
C
c
select * from t1 where a <> 'B' collate latin1_bin;
a
A
a
b
C
c
alter table t1 remove partitioning;
select * from t1 where a > 'B' collate latin1_bin;
a
a
b
C
c
select * from t1 where a <> 'B' collate latin1_bin;
a
A
a
b
C
c
drop table t1;
create table t1 (a varchar(2) character set latin1,
b varchar(2) character set latin1)
partition by list columns(a,b)
(partition p0 values in (('a','a')));
insert into t1 values ('A','A');
select * from t1 where b <> 'a' collate latin1_bin AND
a = 'A' collate latin1_bin;
a b
A A
alter table t1 remove partitioning;
select * from t1 where b <> 'a' collate latin1_bin AND
a = 'A' collate latin1_bin;
a b
A A
drop table t1;
create table t1 (a varchar(5))
partition by list columns(a)
( partition p0 values in ('\''),
...
...
mysql-test/r/partition_innodb.result
View file @
55b4a2ab
drop table if exists t1;
create table t1 (a varchar(5), b int signed, c varchar(10), d datetime)
partition by range columns(b,c)
subpartition by hash(to_seconds(d))
( partition p0 values less than (2, 'b'),
partition p1 values less than (4, 'd'),
partition p2 values less than (10, 'za'));
insert into t1 values ('a', 3, 'w', '2001-10-27 04:34:00');
insert into t1 values ('r', 7, 'w', '2001-10-27 05:34:00');
insert into t1 values ('g', 10, 'w', '2001-10-27 06:34:00');
update t1 set a = 'c' where a > 'f';
drop table t1;
create table t1 (a varchar(5))
engine=memory
partition by range columns(a)
...
...
mysql-test/t/ctype_collate.test
View file @
55b4a2ab
...
...
@@ -172,6 +172,18 @@ DROP TABLE t1;
#
# Test that optimizer doesn't use indexes with wrong collation
#
#
# BUG#48447, Delivering too few records with indexes using collate syntax
#
create
table
t1
(
a
varchar
(
1
)
character
set
latin1
collate
latin1_general_ci
);
insert
into
t1
values
(
'A'
),(
'a'
),(
'B'
),(
'b'
),(
'C'
),(
'c'
);
select
*
from
t1
where
a
>
'B'
collate
latin1_bin
;
select
*
from
t1
where
a
<>
'B'
collate
latin1_bin
;
create
index
i
on
t1
(
a
);
select
*
from
t1
where
a
>
'B'
collate
latin1_bin
;
select
*
from
t1
where
a
<>
'B'
collate
latin1_bin
;
drop
table
t1
;
SET
NAMES
latin1
;
CREATE
TABLE
t1
(
s1
char
(
10
)
COLLATE
latin1_german1_ci
,
...
...
mysql-test/t/partition_column.test
View file @
55b4a2ab
...
...
@@ -8,6 +8,37 @@
drop
table
if
exists
t1
;
--
enable_warnings
#
# BUG#48161, Delivering too few records using collate syntax with partitions
#
# Test case from BUG#48447 with some extension
create
table
t1
(
a
varchar
(
1
)
character
set
latin1
collate
latin1_general_ci
)
partition
by
range
columns
(
a
)
(
partition
p0
values
less
than
(
'a'
),
partition
p1
values
less
than
(
'b'
),
partition
p2
values
less
than
(
'c'
),
partition
p3
values
less
than
(
'd'
));
insert
into
t1
values
(
'A'
),(
'a'
),(
'B'
),(
'b'
),(
'C'
),(
'c'
);
select
*
from
t1
where
a
>
'B'
collate
latin1_bin
;
select
*
from
t1
where
a
<>
'B'
collate
latin1_bin
;
alter
table
t1
remove
partitioning
;
select
*
from
t1
where
a
>
'B'
collate
latin1_bin
;
select
*
from
t1
where
a
<>
'B'
collate
latin1_bin
;
drop
table
t1
;
# Test case from BUG#48161
create
table
t1
(
a
varchar
(
2
)
character
set
latin1
,
b
varchar
(
2
)
character
set
latin1
)
partition
by
list
columns
(
a
,
b
)
(
partition
p0
values
in
((
'a'
,
'a'
)));
insert
into
t1
values
(
'A'
,
'A'
);
select
*
from
t1
where
b
<>
'a'
collate
latin1_bin
AND
a
=
'A'
collate
latin1_bin
;
alter
table
t1
remove
partitioning
;
select
*
from
t1
where
b
<>
'a'
collate
latin1_bin
AND
a
=
'A'
collate
latin1_bin
;
drop
table
t1
;
create
table
t1
(
a
varchar
(
5
))
partition
by
list
columns
(
a
)
(
partition
p0
values
in
(
'\''
),
...
...
mysql-test/t/partition_innodb.test
View file @
55b4a2ab
...
...
@@ -5,6 +5,21 @@
drop
table
if
exists
t1
;
--
enable_warnings
#
# BUG#47774, Assertion failure in InnoDB using column list partitioning
#
create
table
t1
(
a
varchar
(
5
),
b
int
signed
,
c
varchar
(
10
),
d
datetime
)
partition
by
range
columns
(
b
,
c
)
subpartition
by
hash
(
to_seconds
(
d
))
(
partition
p0
values
less
than
(
2
,
'b'
),
partition
p1
values
less
than
(
4
,
'd'
),
partition
p2
values
less
than
(
10
,
'za'
));
insert
into
t1
values
(
'a'
,
3
,
'w'
,
'2001-10-27 04:34:00'
);
insert
into
t1
values
(
'r'
,
7
,
'w'
,
'2001-10-27 05:34:00'
);
insert
into
t1
values
(
'g'
,
10
,
'w'
,
'2001-10-27 06:34:00'
);
update
t1
set
a
=
'c'
where
a
>
'f'
;
drop
table
t1
;
#
# BUG#47776, Failed to update for MEMORY engine, crash for InnoDB and success for MyISAM
#
...
...
sql/opt_range.cc
View file @
55b4a2ab
...
...
@@ -5882,7 +5882,8 @@ get_mm_leaf(RANGE_OPT_PARAM *param, COND *conf_func, Field *field,
value
->
result_type
()
==
STRING_RESULT
&&
key_part
->
image_type
==
Field
::
itRAW
&&
((
Field_str
*
)
field
)
->
charset
()
!=
conf_func
->
compare_collation
()
&&
!
(
conf_func
->
compare_collation
()
->
state
&
MY_CS_BINSORT
))
!
(
conf_func
->
compare_collation
()
->
state
&
MY_CS_BINSORT
&&
(
type
==
Item_func
::
EQUAL_FUNC
||
type
==
Item_func
::
EQ_FUNC
)))
goto
end
;
if
(
key_part
->
image_type
==
Field
::
itMBR
)
...
...
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