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
535b23be
Commit
535b23be
authored
Dec 28, 2005
by
evgen@moonbone.local
Browse files
Options
Browse Files
Download
Plain Diff
Merge epotemkin@bk-internal.mysql.com:/home/bk/mysql-4.1
into moonbone.local:/work/14583-bug-4.1-mysql
parents
44ef4989
d91cbf34
Changes
3
Show whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
54 additions
and
2 deletions
+54
-2
mysql-test/r/ctype_ucs.result
mysql-test/r/ctype_ucs.result
+7
-0
mysql-test/t/ctype_ucs.test
mysql-test/t/ctype_ucs.test
+8
-0
strings/ctype-ucs2.c
strings/ctype-ucs2.c
+39
-2
No files found.
mysql-test/r/ctype_ucs.result
View file @
535b23be
...
@@ -677,3 +677,10 @@ hex(a)
...
@@ -677,3 +677,10 @@ hex(a)
005B
005B
803D
803D
drop table t1;
drop table t1;
create table t1(f1 varchar(5) CHARACTER SET ucs2 COLLATE ucs2_bin NOT NULL) engine=InnoDB;
insert into t1 values('a');
create index t1f1 on t1(f1);
select f1 from t1 where f1 like 'a%';
f1
a
drop table t1;
mysql-test/t/ctype_ucs.test
View file @
535b23be
...
@@ -419,4 +419,12 @@ insert into t1 values (0x005b);
...
@@ -419,4 +419,12 @@ insert into t1 values (0x005b);
select
hex
(
a
)
from
t1
;
select
hex
(
a
)
from
t1
;
drop
table
t1
;
drop
table
t1
;
#
# Bug #14583 Bug on query using a LIKE on indexed field with ucs2_bin collation
#
create
table
t1
(
f1
varchar
(
5
)
CHARACTER
SET
ucs2
COLLATE
ucs2_bin
NOT
NULL
)
engine
=
InnoDB
;
insert
into
t1
values
(
'a'
);
create
index
t1f1
on
t1
(
f1
);
select
f1
from
t1
where
f1
like
'a%'
;
drop
table
t1
;
# End of 4.1 tests
# End of 4.1 tests
strings/ctype-ucs2.c
View file @
535b23be
...
@@ -1352,11 +1352,48 @@ int my_strnncoll_ucs2_bin(CHARSET_INFO *cs,
...
@@ -1352,11 +1352,48 @@ int my_strnncoll_ucs2_bin(CHARSET_INFO *cs,
return
t_is_prefix
?
(
int
)
(
t
-
te
)
:
(
int
)
((
se
-
s
)
-
(
te
-
t
));
return
t_is_prefix
?
(
int
)
(
t
-
te
)
:
(
int
)
((
se
-
s
)
-
(
te
-
t
));
}
}
static
int
my_strnncollsp_ucs2_bin
(
CHARSET_INFO
*
cs
,
static
int
my_strnncollsp_ucs2_bin
(
CHARSET_INFO
*
cs
__attribute__
((
unused
))
,
const
uchar
*
s
,
uint
slen
,
const
uchar
*
s
,
uint
slen
,
const
uchar
*
t
,
uint
tlen
)
const
uchar
*
t
,
uint
tlen
)
{
{
return
my_strnncoll_ucs2_bin
(
cs
,
s
,
slen
,
t
,
tlen
,
0
);
const
uchar
*
se
,
*
te
;
uint
minlen
;
/* extra safety to make sure the lengths are even numbers */
slen
=
(
slen
>>
1
)
<<
1
;
tlen
=
(
tlen
>>
1
)
<<
1
;
se
=
s
+
slen
;
te
=
t
+
tlen
;
for
(
minlen
=
min
(
slen
,
tlen
);
minlen
;
minlen
-=
2
)
{
int
s_wc
=
s
[
0
]
*
256
+
s
[
1
];
int
t_wc
=
t
[
0
]
*
256
+
t
[
1
];
if
(
s_wc
!=
t_wc
)
return
s_wc
>
t_wc
?
1
:
-
1
;
s
+=
2
;
t
+=
2
;
}
if
(
slen
!=
tlen
)
{
int
swap
=
1
;
if
(
slen
<
tlen
)
{
s
=
t
;
se
=
te
;
swap
=
-
1
;
}
for
(
;
s
<
se
;
s
+=
2
)
{
if
(
s
[
0
]
||
s
[
1
]
!=
' '
)
return
(
s
[
0
]
==
0
&&
s
[
1
]
<
' '
)
?
-
swap
:
swap
;
}
}
return
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