v4-0008-Add-rounding-cases-tests-for-float4.patch
text/x-patch
Filename: v4-0008-Add-rounding-cases-tests-for-float4.patch
Type: text/x-patch
Part: 6
Patch
Format: format-patch
Series: patch v4-0008
Subject: Add rounding cases tests for float4
| File | + | − |
|---|---|---|
| contrib/btree_gin/expected/float4.out | 88 | 0 |
| contrib/btree_gin/sql/float4.sql | 15 | 0 |
From 0288223e268f16255b8754be9a60588ddc7006c9 Mon Sep 17 00:00:00 2001 From: Arseniy Mukhin <arseniy.mukhin.dev@gmail.com> Date: Wed, 2 Jul 2025 10:29:14 +0300 Subject: [PATCH v4 8/8] Add rounding cases tests for float4 --- contrib/btree_gin/expected/float4.out | 88 +++++++++++++++++++++++++++ contrib/btree_gin/sql/float4.sql | 15 +++++ 2 files changed, 103 insertions(+) diff --git a/contrib/btree_gin/expected/float4.out b/contrib/btree_gin/expected/float4.out index 02c88e4007d..ac04a1e2198 100644 --- a/contrib/btree_gin/expected/float4.out +++ b/contrib/btree_gin/expected/float4.out @@ -269,3 +269,91 @@ SELECT * FROM test_float4 WHERE i>'NaN'::float8 ORDER BY i; --- (0 rows) +-- Check rounding cases +-- 1e-300 rounds to 0 for float4 but not for float8 +SELECT * FROM test_float4 WHERE i < -1e-300::float8 ORDER BY i; + i +----------- + -Infinity + -2 + -1 +(3 rows) + +SELECT * FROM test_float4 WHERE i <= -1e-300::float8 ORDER BY i; + i +----------- + -Infinity + -2 + -1 +(3 rows) + +SELECT * FROM test_float4 WHERE i = -1e-300::float8 ORDER BY i; + i +--- +(0 rows) + +SELECT * FROM test_float4 WHERE i > -1e-300::float8 ORDER BY i; + i +---------- + 0 + 1 + 2 + 3 + Infinity + NaN +(6 rows) + +SELECT * FROM test_float4 WHERE i >= -1e-300::float8 ORDER BY i; + i +---------- + 0 + 1 + 2 + 3 + Infinity + NaN +(6 rows) + +SELECT * FROM test_float4 WHERE i < 1e-300::float8 ORDER BY i; + i +----------- + -Infinity + -2 + -1 + 0 +(4 rows) + +SELECT * FROM test_float4 WHERE i <= 1e-300::float8 ORDER BY i; + i +----------- + -Infinity + -2 + -1 + 0 +(4 rows) + +SELECT * FROM test_float4 WHERE i = 1e-300::float8 ORDER BY i; + i +--- +(0 rows) + +SELECT * FROM test_float4 WHERE i > 1e-300::float8 ORDER BY i; + i +---------- + 1 + 2 + 3 + Infinity + NaN +(5 rows) + +SELECT * FROM test_float4 WHERE i >= 1e-300::float8 ORDER BY i; + i +---------- + 1 + 2 + 3 + Infinity + NaN +(5 rows) + diff --git a/contrib/btree_gin/sql/float4.sql b/contrib/btree_gin/sql/float4.sql index e850e1a0588..cbda77f26a4 100644 --- a/contrib/btree_gin/sql/float4.sql +++ b/contrib/btree_gin/sql/float4.sql @@ -50,3 +50,18 @@ SELECT * FROM test_float4 WHERE i<='NaN'::float8 ORDER BY i; SELECT * FROM test_float4 WHERE i='NaN'::float8 ORDER BY i; SELECT * FROM test_float4 WHERE i>='NaN'::float8 ORDER BY i; SELECT * FROM test_float4 WHERE i>'NaN'::float8 ORDER BY i; + +-- Check rounding cases +-- 1e-300 rounds to 0 for float4 but not for float8 + +SELECT * FROM test_float4 WHERE i < -1e-300::float8 ORDER BY i; +SELECT * FROM test_float4 WHERE i <= -1e-300::float8 ORDER BY i; +SELECT * FROM test_float4 WHERE i = -1e-300::float8 ORDER BY i; +SELECT * FROM test_float4 WHERE i > -1e-300::float8 ORDER BY i; +SELECT * FROM test_float4 WHERE i >= -1e-300::float8 ORDER BY i; + +SELECT * FROM test_float4 WHERE i < 1e-300::float8 ORDER BY i; +SELECT * FROM test_float4 WHERE i <= 1e-300::float8 ORDER BY i; +SELECT * FROM test_float4 WHERE i = 1e-300::float8 ORDER BY i; +SELECT * FROM test_float4 WHERE i > 1e-300::float8 ORDER BY i; +SELECT * FROM test_float4 WHERE i >= 1e-300::float8 ORDER BY i; -- 2.43.0