Skip to content

Reject incompatible MinHashLSH merges#4

Closed
dipeshbabu wants to merge 1 commit into
masterfrom
agent/reject-incompatible-lsh-merges
Closed

Reject incompatible MinHashLSH merges#4
dipeshbabu wants to merge 1 commit into
masterfrom
agent/reject-incompatible-lsh-merges

Conversation

@dipeshbabu

Copy link
Copy Markdown
Owner

What

Require matching key serialization, band hash callables, and byte-key requirements in addition to the existing band layout checks before merging indexes.

Why

Copying rows from an index with a different band hash function makes those entries unreachable. Mixing pickled and raw key representations also corrupts membership and query behavior.

Impact

Incompatible merges now fail before mutating the destination. Compatible indexes with different thresholds, weights, or storage backends can still merge when their effective representation matches.

Root cause

The equivalence check covered only num_perm, band count, and band size.

Checks

  • uv run pytest -q test/test_lsh.py (26 passed)
  • uv run ruff check datasketch/lsh.py test/test_lsh.py
  • uvx pyright (0 errors)
  • git diff --check

@dipeshbabu
dipeshbabu marked this pull request as ready for review July 19, 2026 03:50
@dipeshbabu

Copy link
Copy Markdown
Owner Author

Superseded by upstream pull request ekzhu#328.

@dipeshbabu dipeshbabu closed this Jul 19, 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