A bug-fix release. Upgrading is recommended.
As with 2.0.5, this release includes fixes for issues found by LLM-assisted code audits.
Fixes
- Fixed several memory-management bugs.
- Very small (sub-mas) cone searches could miss objects, including the object at their own centre.
- Polygon queries could return results for the previous row's polygon when the polygon changed from row to row.
- Radial, ellipse and polygon queries near cube corners could fail with "too many ipix ranges".
q3c_ellipse_joincould miss matches for thin ellipses that cross a cube corner.
Behaviour changes
q3c_joinno longer fails when a position is NaN or infinite. That row simply matches nothing. Radial, ellipse andq3c_nearbyqueries with a NaN or infinite centre or radius now return no rows instead of raising an error (#52).q3c_in_poly()returns NULL for a NaN or infinite point. A polygon with NaN or infinite vertices raises an error, and so does a polygon that is too large (#50, #52).q3c_dist_pm/q3c_sindist_pmreturn NULL whencosdec_flagis NULL (#55).q3c_in_ellipse()has been rewritten to be more numerically accurate. Results can differ for points right on the edge of very small (around milliarcsecond) ellipses.
Thanks to @demitri for reporting several of these issues.