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
6590cb3b
Commit
6590cb3b
authored
Nov 06, 2009
by
Mikael Ronstrom
Browse files
Options
Browse Files
Download
Plain Diff
Merge BUG#48161, BUG#48447
parents
d476bbb0
bf7771df
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 @
6590cb3b
...
...
@@ -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 @
6590cb3b
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 @
6590cb3b
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 @
6590cb3b
...
...
@@ -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 @
6590cb3b
...
...
@@ -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 @
6590cb3b
...
...
@@ -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 @
6590cb3b
...
...
@@ -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
(
param
->
using_real_indexes
)
...
...
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