Skip to content

feat(bindings): span_hash / span_hash_extended for all span types#15

Merged
nhungoc1508 merged 1 commit into
mainfrom
feat/span-hash-bindings
Apr 27, 2026
Merged

feat(bindings): span_hash / span_hash_extended for all span types#15
nhungoc1508 merged 1 commit into
mainfrom
feat/span-hash-bindings

Conversation

@estebanzimanyi

Copy link
Copy Markdown
Member

Summary

Adds the two MEOS hash scalars for all five span types (intspan/bigintspan/floatspan/datespan/tstzspan):

  • span_hash(<span>) -> UINTEGER (MEOS uint32 span_hash)
  • span_hash_extended(<span>, BIGINT seed) -> UBIGINT (MEOS uint64 span_hash_extended; seed cast to uint64)

Mirrors set_hash / set_hash_extended from the corresponding set PR. Implementation copies the blob into a malloc'd Span, calls MEOS, frees. Registered in the per-span-type loop in src/temporal/span.cpp next to lower / upper / lowerInc / upperInc.

Smoke test

SELECT span_hash(intspan '[1,2]');                                 -- 2065175488 (UINTEGER)
SELECT span_hash_extended(tstzspan '[2000-01-01,2000-01-02]', 1);  -- 13017976434127639577 (UBIGINT)

Test plan

  • make release then TZ=UTC ./build/release/test/unittest "<proj>/test/*" — full suite passes.

Activates the span_hash skip block in test/sql/parity/003_span.test (open in PR #13) once both land.

Adds the two MEOS hash scalars for intspan/bigintspan/floatspan/
datespan/tstzspan:
  - span_hash(<span>) -> UINTEGER (MEOS uint32 span_hash)
  - span_hash_extended(<span>, BIGINT seed) -> UBIGINT (MEOS uint64
    span_hash_extended; seed cast to uint64)

Mirrors set_hash / set_hash_extended landed in the corresponding set
PR. Implementation copies the blob into a malloc'd Span, calls MEOS,
frees. Registered in the per-span-type loop in src/temporal/span.cpp
next to lower / upper / lowerInc / upperInc.

Smoke test:
  SELECT span_hash(intspan '[1,2]');
    -> 2065175488 (UINTEGER)
  SELECT span_hash_extended(tstzspan '[2000-01-01,2000-01-02]', 1);
    -> 13017976434127639577 (UBIGINT)

Full suite passes (747 assertions, 13 test cases).
@nhungoc1508 nhungoc1508 merged commit aac0005 into main Apr 27, 2026
17 checks passed
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.

2 participants