Skip to content

Deterministic and consistent output with and without duplicate removal - #26

Open
patrickbr wants to merge 8 commits into
masterfrom
deterministic-output
Open

Deterministic and consistent output with and without duplicate removal#26
patrickbr wants to merge 8 commits into
masterfrom
deterministic-output

Conversation

@patrickbr

@patrickbr patrickbr commented Aug 19, 2026

Copy link
Copy Markdown
Member

Fix some issues which made the spatialjoin output not completely deterministic (modulo output ordering, which is non-deterministic).

1.) Make the sweep ordering deterministic for equivalent pairs which also makes it deterministic which input geometry will be the reference geometry for duplicates (note that this should not be necessary for a full deterministic output, but makes testing and debugging easier because failures become deterministic)
2.) Fix an issue with crosses: there never was a method for writeCrosses which only writes crosses in one direction, and the raw witeRel was used instead here. But that circumvented the refs mechanisms, and therefore the output for these triples depended on which geometry was the duplication reference (and it may have also missed some "crosses" triples).
3.) Fix a nasty issue: writeNotOverlaps( in multiOut( used a dummy sub id of 1 the signal "is a multigeometry", but that may have overwritten a real overlap of sub id 1.
4.) Data race in overlaps between TWO multi geometries, a non-overlap for one side may not be recorded depending on which multi geom is OUTed first

@patrickbr patrickbr changed the title Deterministic output Deterministic and consistent output with and without duplicate removal Aug 20, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant