Skip to content

Commit 8cb2a22

Browse files
Fix NaN comparison in circle_same test
Commit c4c3400 changed geometric operators to use float4 and float8 functions, and handle NaN's in a better way. The circle sameness test had a typo in the code which resulted in all comparisons with the left circle having a NaN radius considered same. postgres=# select '<(0,0),NaN>'::circle ~= '<(0,0),1>'::circle; ?column? ---------- t (1 row) This fixes the sameness test to consider the radius of both the left and right circle. Backpatch to v12 where this was introduced. Author: Ranier Vilela <ranier.vf@gmail.com> Discussion: https://postgr.es/m/CAEudQAo8dK=yctg2ZzjJuzV4zgOPBxRU5+Kb+yatFiddtQk6Rw@mail.gmail.com Backpatch-through: v12
1 parent 07d8af5 commit 8cb2a22

File tree

2 files changed

+2
-3
lines changed

2 files changed

+2
-3
lines changed

src/backend/utils/adt/geo_ops.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4710,7 +4710,7 @@ circle_same(PG_FUNCTION_ARGS)
47104710
CIRCLE *circle1 = PG_GETARG_CIRCLE_P(0);
47114711
CIRCLE *circle2 = PG_GETARG_CIRCLE_P(1);
47124712

4713-
PG_RETURN_BOOL(((isnan(circle1->radius) && isnan(circle1->radius)) ||
4713+
PG_RETURN_BOOL(((isnan(circle1->radius) && isnan(circle2->radius)) ||
47144714
FPeq(circle1->radius, circle2->radius)) &&
47154715
point_eq_point(&circle1->center, &circle2->center));
47164716
}

src/test/regress/expected/geometry.out

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4380,9 +4380,8 @@ SELECT c1.f1, c2.f1 FROM CIRCLE_TBL c1, CIRCLE_TBL c2 WHERE c1.f1 ~= c2.f1;
43804380
<(100,200),10> | <(100,200),10>
43814381
<(100,1),115> | <(100,1),115>
43824382
<(3,5),0> | <(3,5),0>
4383-
<(3,5),NaN> | <(3,5),0>
43844383
<(3,5),NaN> | <(3,5),NaN>
4385-
(9 rows)
4384+
(8 rows)
43864385

43874386
-- Overlap with circle
43884387
SELECT c1.f1, c2.f1 FROM CIRCLE_TBL c1, CIRCLE_TBL c2 WHERE c1.f1 && c2.f1;

0 commit comments

Comments
 (0)
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy