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
c91d648b
Commit
c91d648b
authored
Jan 18, 2007
by
ramil/ram@mysql.com/myoffice.izhnet.ru
Browse files
Options
Browse Files
Download
Plain Diff
Merge rkalimullin@bk-internal.mysql.com:/home/bk/mysql-4.1-maint
into mysql.com:/usr/home/ram/work/bug22533/my41-bug22533
parents
c9a0cccc
0b5696b8
Changes
4
Show whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
50 additions
and
9 deletions
+50
-9
mysql-test/r/select.result
mysql-test/r/select.result
+17
-0
mysql-test/t/range.test
mysql-test/t/range.test
+2
-2
mysql-test/t/select.test
mysql-test/t/select.test
+12
-1
sql/item.cc
sql/item.cc
+19
-6
No files found.
mysql-test/r/select.result
View file @
c91d648b
...
@@ -2819,3 +2819,20 @@ select min(key1) from t1 where key1 >= 0.3762 and rand() + 0.5 >= 0.5;
...
@@ -2819,3 +2819,20 @@ select min(key1) from t1 where key1 >= 0.3762 and rand() + 0.5 >= 0.5;
min(key1)
min(key1)
0.37619999051094
0.37619999051094
DROP TABLE t1,t2;
DROP TABLE t1,t2;
create table t1(a bigint unsigned, b bigint);
insert into t1 values (0xfffffffffffffffff, 0xfffffffffffffffff),
(0x10000000000000000, 0x10000000000000000),
(0x8fffffffffffffff, 0x8fffffffffffffff);
Warnings:
Warning 1264 Data truncated; out of range for column 'a' at row 1
Warning 1264 Data truncated; out of range for column 'b' at row 1
Warning 1264 Data truncated; out of range for column 'a' at row 2
Warning 1264 Data truncated; out of range for column 'b' at row 2
Warning 1264 Data truncated; out of range for column 'b' at row 3
select hex(a), hex(b) from t1;
hex(a) hex(b)
FFFFFFFFFFFFFFFF 7FFFFFFFFFFFFFFF
FFFFFFFFFFFFFFFF 7FFFFFFFFFFFFFFF
8FFFFFFFFFFFFFFF 7FFFFFFFFFFFFFFF
drop table t1;
End of 4.1 tests
mysql-test/t/range.test
View file @
c91d648b
...
@@ -400,8 +400,8 @@ select count(*) from t1 where x = 18446744073709551601;
...
@@ -400,8 +400,8 @@ select count(*) from t1 where x = 18446744073709551601;
create
table
t2
(
x
bigint
not
null
);
create
table
t2
(
x
bigint
not
null
);
insert
into
t2
(
x
)
values
(
0xfffffffffffffff0
);
insert
into
t2
(
x
)
values
(
-
16
);
insert
into
t2
(
x
)
values
(
0xfffffffffffffff1
);
insert
into
t2
(
x
)
values
(
-
15
);
select
*
from
t2
;
select
*
from
t2
;
select
count
(
*
)
from
t2
where
x
>
0
;
select
count
(
*
)
from
t2
where
x
>
0
;
select
count
(
*
)
from
t2
where
x
=
0
;
select
count
(
*
)
from
t2
where
x
=
0
;
...
...
mysql-test/t/select.test
View file @
c91d648b
...
@@ -2342,4 +2342,15 @@ select min(key1) from t1 where key1 >= 0.3762 and rand() + 0.5 >= 0.5;
...
@@ -2342,4 +2342,15 @@ select min(key1) from t1 where key1 >= 0.3762 and rand() + 0.5 >= 0.5;
DROP
TABLE
t1
,
t2
;
DROP
TABLE
t1
,
t2
;
--
enable_ps_protocol
--
enable_ps_protocol
# End of 4.1 tests
#
# Bug #22533: storing large hex strings
#
create
table
t1
(
a
bigint
unsigned
,
b
bigint
);
insert
into
t1
values
(
0xfffffffffffffffff
,
0xfffffffffffffffff
),
(
0x10000000000000000
,
0x10000000000000000
),
(
0x8fffffffffffffff
,
0x8fffffffffffffff
);
select
hex
(
a
),
hex
(
b
)
from
t1
;
drop
table
t1
;
--
echo
End
of
4.1
tests
sql/item.cc
View file @
c91d648b
...
@@ -2369,18 +2369,31 @@ longlong Item_varbinary::val_int()
...
@@ -2369,18 +2369,31 @@ longlong Item_varbinary::val_int()
int
Item_varbinary
::
save_in_field
(
Field
*
field
,
bool
no_conversions
)
int
Item_varbinary
::
save_in_field
(
Field
*
field
,
bool
no_conversions
)
{
{
int
error
;
field
->
set_notnull
();
field
->
set_notnull
();
if
(
field
->
result_type
()
==
STRING_RESULT
)
if
(
field
->
result_type
()
==
STRING_RESULT
)
return
field
->
store
(
str_value
.
ptr
(),
str_value
.
length
(),
collation
.
collation
);
ulonglong
nr
;
uint32
length
=
str_value
.
length
();
if
(
length
>
8
)
{
{
error
=
field
->
store
(
str_value
.
ptr
(),
str_value
.
length
(),
collation
.
collation
);
nr
=
field
->
flags
&
UNSIGNED_FLAG
?
ULONGLONG_MAX
:
LONGLONG_MAX
;
goto
warn
;
}
}
else
nr
=
(
ulonglong
)
val_int
();
if
((
length
==
8
)
&&
!
(
field
->
flags
&
UNSIGNED_FLAG
)
&&
(
nr
>
LONGLONG_MAX
))
{
{
longlong
nr
=
val_int
()
;
nr
=
LONGLONG_MAX
;
error
=
field
->
store
(
nr
)
;
goto
warn
;
}
}
return
error
;
return
field
->
store
((
longlong
)
nr
);
warn:
if
(
!
field
->
store
((
longlong
)
nr
))
field
->
set_warning
(
MYSQL_ERROR
::
WARN_LEVEL_WARN
,
ER_WARN_DATA_OUT_OF_RANGE
,
1
);
return
1
;
}
}
...
...
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