forked from MaterializeInc/materialize
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathfloat.slt
108 lines (83 loc) · 2.5 KB
/
float.slt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
# Copyright Materialize, Inc. and contributors. All rights reserved.
#
# Use of this software is governed by the Business Source License
# included in the LICENSE file at the root of this repository.
#
# As of the Change Date specified in that file, in accordance with
# the Business Source License, use of this software will be governed
# by the Apache License, Version 2.0.
mode cockroach
query T
SELECT '-0'::float::text
----
-0
query TTTTT
SELECT 'Inf'::float::text, 'Infinity'::float::text, 'inFinIty'::float::text, '+inf'::float::text, '+infinity'::float::text
----
Infinity Infinity Infinity Infinity Infinity
query TTT
SELECT '-Inf'::float::text, '-Infinity'::float::text, '-inFinIty'::float::text
----
-Infinity -Infinity -Infinity
query TTT
SELECT 'NaN'::float::text, 'nan'::float::text, 'nAN'::float::text
----
NaN NaN NaN
query TTTTT
SELECT 'Inf'::double precision::text, 'Infinity'::double precision::text, 'inFinIty'::double precision::text, '+inf'::double precision::text, '+infinity'::double precision::text
----
Infinity Infinity Infinity Infinity Infinity
query TTT
SELECT '-Inf'::double precision::text, '-Infinity'::double precision::text, '-inFinIty'::double precision::text
----
-Infinity -Infinity -Infinity
query TTT
SELECT 'NaN'::double precision::text, 'nan'::double precision::text, 'nAN'::double precision::text
----
NaN NaN NaN
query R
SELECT 1.2::float8::float4
----
1.2
query R
SELECT '2e40'::float8
----
20000000000000000000000000000000000000000
query error value out of range: overflow
SELECT '2e40'::float8::float4
query R
SELECT '2147483583'::float4::int;
----
2147483520
query error "2147483600" integer out of range
SELECT '2147483648'::float4::int
query R
SELECT '-2147483648'::float4::int
----
-2147483648
query error "-2147484000" integer out of range
SELECT '-2147483777'::float4::int;
# Invalid type mods
query error precision for type float must be within \(\[1-53\]\)
SELECT 1::float(0);
query error precision for type float must be within \(\[1-53\]\)
SELECT 1::float(55);
# Test SUM() with floats
statement ok
create table t1 (f1 double, f2 double)
statement ok
insert into t1 values (1e31, 1e31), (1e31, 1e31)
query T
SELECT f1+f2 FROM t1
----
19999999999999999271792589930496.000
19999999999999999271792589930496.000
query T
SELECT SUM(f1) FROM t1
----
-282409603651671152154661355520.000
# This *should* be zero, known issue https://github.com/MaterializeInc/materialize/issues/15186
query T
SELECT MIN(f1+f2)-SUM(f1) FROM t1
----
20282409603651670423947251286016.000