Skip deserialization in ST_EqualsIdentical when both geometry buffers are byte-identical
Maintainers usually reply within 1 day
A pull request for this has already been merged.
- #3457 by @jiayuasu — merged
Assessment
- Difficulty
- 3/5
- Estimated time
- Half a day
- Newbie friendliness
- 25/100
- Issue type
- Feature
- Clarity
- Mostly clear
- Activity status
- Active
- Domain
- data-engineering
Research direction
The work is in the ST_EqualsIdentical SQL function, which currently deserializes both geometry buffers into JTS objects before comparing them. The payload names no files, so locate the function's implementation first. Pull request #3457 is already open against this issue, so review it before starting. Done means a byte-identical pair returns true without deserializing, while pairs with differing bytes still go through the existing structural comparison.
Written by the indexing model from the issue text.
Description
ST_EqualsIdentical deserializes both serialized geometry buffers into JTS objects before comparing them. For stored geometry columns that are often equal (for example round-trip validation), that deserialization dominates the cost: about 104 KB are allocated per equal 1,000-vertex XYZM pair, while the comparison itself allocates nothing.
A byte-identical pair of buffers always encodes identical geometries, so the function can return true for it without deserializing. Pairs whose bytes differ still need the structural comparison, because identical geometries can be encoded differently (different SRIDs, NaN payloads, signed zeros).
- Dominant language
- Java
- Stars
- 2.4k
- Forks
- 794
- Avg merge
- 1d 20h
- Merged PRs (30d)
- 52
Getting set up
- No Dockerfile or Docker Compose file
- Has a pull request template
- Read the contributing guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from apache/sedona
-
ST_AddMeasure assigns incorrect measures on bent lines and MultiLineStringsPossibly taken @vera-rubin claimed this 1 day ago. Open
Difficulty 2/5 1-3 hours Newbie friendliness 74/100
Maintainers usually reply within 1 day
-
Difficulty 3/5 1-2 days Newbie friendliness 62/100
Maintainers usually reply within 1 day
-
Difficulty 5/5 Over a week Newbie friendliness 45/100
apache/sedona#3429 · 1 comment ·
Maintainers usually reply within 1 day
-
Clearing NoData on one raster band changes another band's MapAlgebra resultsMay be free again A pull request for this issue was closed without being merged. Openbug
Difficulty 4/5 3-5 days Newbie friendliness 55/100
apache/sedona#3324 · 1 comment ·
Maintainers usually reply within 1 day
-
Difficulty 4/5 3-5 days Newbie friendliness 68/100
Maintainers usually reply within 1 day
Similar issues
-
Triage
Difficulty 2/5 1-3 hours Newbie friendliness 75/100
MinecraftForge/MinecraftForge#10902 · 1 comment ·
-
bug
Difficulty 2/5 1-3 hours Newbie friendliness 74/100
refinedmods/refinedstorage2#1421 ·
-
StepExamBenchmarkTest runs a loop and prints a timing but asserts nothingPossibly taken A pull request linked to this issue is open or already merged. Openjules
Difficulty 1/5 Under an hour Newbie friendliness 82/100
open-learning-exchange/myplanet#18199 · 1 comment ·
Maintainers usually reply within 4 days
-
Difficulty 1/5 Under an hour Newbie friendliness 82/100
wikipathways/GPML2RDF#126 ·
-
Difficulty 2/5 1-3 hours Newbie friendliness 65/100
Maintainers usually reply within 1 day