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
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
Kirill Smelkov
mariadb
Commits
f78a7779
Commit
f78a7779
authored
Jun 20, 2003
by
bar@bar.mysql.r18.ru
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
item_cmpfunc.cc:
Rewritten in nicer way ,
parent
7a6059cc
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
37 additions
and
24 deletions
+37
-24
sql/item_cmpfunc.cc
sql/item_cmpfunc.cc
+37
-24
No files found.
sql/item_cmpfunc.cc
View file @
f78a7779
...
@@ -90,38 +90,51 @@ static bool convert_constant_item(Field *field, Item **item)
...
@@ -90,38 +90,51 @@ static bool convert_constant_item(Field *field, Item **item)
bool
Item_bool_func2
::
set_cmp_charset
(
CHARSET_INFO
*
cs1
,
enum
coercion
co1
,
bool
Item_bool_func2
::
set_cmp_charset
(
CHARSET_INFO
*
cs1
,
enum
coercion
co1
,
CHARSET_INFO
*
cs2
,
enum
coercion
co2
)
CHARSET_INFO
*
cs2
,
enum
coercion
co2
)
{
{
if
(
(
cs1
==
&
my_charset_bin
)
||
(
cs2
==
&
my_charset_bin
))
if
(
!
my_charset_same
(
cs1
,
cs2
))
{
{
cmp_charset
=
&
my_charset_bin
;
/*
return
0
;
We do allow to use BLOBS together with character strings
BLOBS have more precedance
*/
if
((
co1
<=
co2
)
&&
(
cs1
==&
my_charset_bin
))
{
cmp_charset
=
cs1
;
coercibility
=
co1
;
}
else
if
((
co2
<=
co1
)
&&
(
cs2
==&
my_charset_bin
))
{
cmp_charset
=
cs2
;
coercibility
=
co2
;
}
else
{
cmp_charset
=
0
;
coercibility
=
COER_NOCOLL
;
return
1
;
}
}
}
else
if
(
co1
<
co2
)
if
((
co1
==
COER_NOCOLL
)
||
(
co2
==
COER_NOCOLL
))
{
return
1
;
if
(
!
my_charset_same
(
cs1
,
cs2
))
return
1
;
if
(
co1
<
co2
)
cmp_charset
=
cs1
;
cmp_charset
=
cs1
;
coercibility
=
co1
;
}
else
if
(
co2
<
co1
)
else
if
(
co2
<
co1
)
cmp_charset
=
cs2
;
else
// co1==co2
{
{
cmp_charset
=
cs2
;
coercibility
=
co1
;
}
else
{
if
(
cs1
==
cs2
)
if
(
cs1
==
cs2
)
{
cmp_charset
=
cs1
;
cmp_charset
=
cs1
;
else
coercibility
=
co1
;
}
else
{
{
if
(
co1
==
COER_COERCIBLE
)
coercibility
=
COER_NOCOLL
;
{
cmp_charset
=
0
;
CHARSET_INFO
*
c
;
return
(
co1
==
COER_EXPLICIT
)
?
1
:
0
;
if
((
c
=
get_charset_by_csname
(
cs1
->
csname
,
MY_CS_PRIMARY
,
MYF
(
0
))))
{
cmp_charset
=
c
;
return
0
;
}
}
return
1
;
}
}
}
}
return
0
;
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