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
32a62d50
Commit
32a62d50
authored
Nov 21, 2003
by
monty@mysql.com
Browse files
Options
Browse Files
Download
Plain Diff
Merge with 4.0 to revert patch for BIGINT assignment to double
parents
b01fcb4e
41eda1c9
Changes
3
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
15 additions
and
13 deletions
+15
-13
mysql-test/r/bigint.result
mysql-test/r/bigint.result
+7
-1
mysql-test/t/bigint.test
mysql-test/t/bigint.test
+3
-1
sql/item.cc
sql/item.cc
+5
-11
No files found.
mysql-test/r/bigint.result
View file @
32a62d50
...
...
@@ -18,9 +18,11 @@ select -(0-3),round(-(0-3)), round(9999999999999999999);
-(0-3) round(-(0-3)) round(9999999999999999999)
3 3 10000000000000000000
create table t1 (a bigint unsigned not null, primary key(a));
insert into t1 values (18446744073709551615), (0xFFFFFFFFFFFFFFFE);
insert into t1 values (18446744073709551615), (0xFFFFFFFFFFFFFFFE)
, (18446744073709551613), (18446744073709551612)
;
select * from t1;
a
18446744073709551612
18446744073709551613
18446744073709551614
18446744073709551615
select * from t1 where a=18446744073709551615;
...
...
@@ -29,6 +31,8 @@ a
delete from t1 where a=18446744073709551615;
select * from t1;
a
18446744073709551612
18446744073709551613
18446744073709551614
drop table t1;
create table t1 ( a int not null default 1, big bigint );
...
...
@@ -72,9 +76,11 @@ id a
drop table t1;
CREATE TABLE t1 ( quantity decimal(60,0));
insert into t1 values (10000000000000000000);
insert into t1 values (10000000000000000000.0);
insert into t1 values ('10000000000000000000');
select * from t1;
quantity
-8446744073709551616
10000000000000000000
10000000000000000000
drop table t1;
mysql-test/t/bigint.test
View file @
32a62d50
...
...
@@ -22,7 +22,7 @@ select -(0-3),round(-(0-3)), round(9999999999999999999);
#
create
table
t1
(
a
bigint
unsigned
not
null
,
primary
key
(
a
));
insert
into
t1
values
(
18446744073709551615
),
(
0xFFFFFFFFFFFFFFFE
);
insert
into
t1
values
(
18446744073709551615
),
(
0xFFFFFFFFFFFFFFFE
)
,
(
18446744073709551613
),
(
18446744073709551612
)
;
select
*
from
t1
;
select
*
from
t1
where
a
=
18446744073709551615
;
# select * from t1 where a='18446744073709551615';
...
...
@@ -58,10 +58,12 @@ drop table t1;
#
# Item_uint::save_to_field()
# BUG#1845
# This can't be fixed in MySQL 4.0 without loosing precisions for bigints
#
CREATE
TABLE
t1
(
quantity
decimal
(
60
,
0
));
insert
into
t1
values
(
10000000000000000000
);
insert
into
t1
values
(
10000000000000000000.0
);
insert
into
t1
values
(
'10000000000000000000'
);
select
*
from
t1
;
drop
table
t1
;
...
...
sql/item.cc
View file @
32a62d50
...
...
@@ -1192,17 +1192,11 @@ int Item_string::save_in_field(Field *field, bool no_conversions)
int
Item_uint
::
save_in_field
(
Field
*
field
,
bool
no_conversions
)
{
longlong
nr
=
val_int
();
int
res
;
if
(
null_value
)
return
set_field_to_null
(
field
);
field
->
set_notnull
();
if
(
nr
<
0
)
res
=
field
->
store
(
ulonglong2double
(
nr
);
else
res
=
field
->
store
(
nr
);
return
res
?
-
1
:
0
;
/*
TODO: To be fixed when wen have a
field->store(longlong, unsigned_flag) method
*/
Item_int
::
save_in_field
(
field
,
no_conversions
);
}
...
...
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