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
7a1ba137
Commit
7a1ba137
authored
Nov 14, 2006
by
unknown
Browse files
Options
Browse Files
Download
Plain Diff
Merge polly.local:/tmp/maint/bug22129/my51-bug22129
into polly.local:/home/kaa/src/maint/mysql-5.1-maint
parents
9e67e2d6
34c553dc
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
5 additions
and
17 deletions
+5
-17
mysql-test/r/type_float.result
mysql-test/r/type_float.result
+1
-1
strings/strtod.c
strings/strtod.c
+4
-16
No files found.
mysql-test/r/type_float.result
View file @
7a1ba137
...
...
@@ -264,7 +264,7 @@ a decimal(21,2) NO 0.00
drop table t1,t2,t3;
select 1e-308, 1.00000001e-300, 100000000e-300;
1e-308 1.00000001e-300 100000000e-300
0
1.00000001e-300 1e-292
1e-308
1.00000001e-300 1e-292
select 10e307;
10e307
1e+308
...
...
strings/strtod.c
View file @
7a1ba137
...
...
@@ -31,7 +31,6 @@
#define MAX_DBL_EXP 308
#define MAX_RESULT_FOR_MAX_EXP 1.7976931348623157
#define MIN_RESULT_FOR_MIN_EXP 2.225073858507202
static
double
scaler10
[]
=
{
1
.
0
,
1e10
,
1e20
,
1e30
,
1e40
,
1e50
,
1e60
,
1e70
,
1e80
,
1e90
};
...
...
@@ -161,26 +160,15 @@ double my_strtod(const char *str, char **end_ptr, int *error)
order
=
exp
+
(
neg_exp
?
-
1
:
1
)
*
(
ndigits
-
1
);
if
(
order
<
0
)
order
=
-
order
;
if
(
order
>=
MAX_DBL_EXP
&&
result
)
if
(
order
>=
MAX_DBL_EXP
&&
!
neg_exp
&&
result
)
{
double
c
;
/* Compute modulus of C (see comment above) */
c
=
result
/
scaler
*
10
.
0
;
if
(
neg_exp
)
if
(
order
>
MAX_DBL_EXP
||
c
>
MAX_RESULT_FOR_MAX_EXP
)
{
if
(
order
>
MAX_DBL_EXP
||
c
<
MIN_RESULT_FOR_MIN_EXP
)
{
result
=
0
.
0
;
goto
done
;
}
}
else
{
if
(
order
>
MAX_DBL_EXP
||
c
>
MAX_RESULT_FOR_MAX_EXP
)
{
overflow
=
1
;
goto
done
;
}
overflow
=
1
;
goto
done
;
}
}
...
...
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