seawinde opened a new pull request, #63196:
URL: https://github.com/apache/doris/pull/63196
### What problem does this PR solve?
Issue Number: N/A
Related PR: N/A
Problem Summary:
This PR adds a builtin 128-bit MurmurHash3 scalar function,
`murmur_hash3_128`, for callers that need a wider hash value than the existing
32-bit and 64-bit variants.
| File | Change Description |
|------|--------------------|
| `be/src/exprs/function/function_hash.cpp` | Adds BE implementation for
`murmur_hash3_128`, returning LARGEINT. |
| `be/test/exprs/function/function_hash_test.cpp` | Adds unit coverage for
constant and multi-argument hash cases. |
| `BuiltinScalarFunctions.java` | Registers the Nereids scalar function. |
| `MurmurHash3128.java` | Adds FE scalar function metadata and signatures. |
| `ScalarFunctionVisitor.java` | Adds visitor entry for the new scalar
function. |
Design rationale: the function reuses the existing MurmurHash3 x64 128-bit
processing path in BE and exposes the packed 128-bit result as LARGEINT,
matching Doris' existing signed 128-bit integer representation.
### Release note
Support `murmur_hash3_128` function.
### Check List (For Author)
- Test
- [ ] Regression test
- [x] Unit Test
- [ ] Manual test (add detailed scripts or steps below)
- [ ] No need to test or manual test. Explain why:
- [ ] This is a refactor/code format and no logic has been changed.
- [ ] Previous test can cover this change.
- [ ] No code files have been changed.
- [ ] Other reason
Unit tests run locally:
- `./run-fe-ut.sh --coverage --run
org.apache.doris.nereids.rules.analysis.FunctionRegistryTest` passed.
- `./run-be-ut.sh --run '--filter=HashFunctionTest.*'` was attempted, but
the local worktree failed before compilation while downloading the `apache-orc`
submodule from GitHub.
- Behavior changed:
- [ ] No.
- [x] Yes. Adds a new builtin scalar function.
- Does this need documentation?
- [ ] No.
- [x] Yes. Function documentation should be added if this PR is kept
beyond CI validation.
### Check List (For Reviewer who merge this PR)
- [ ] Confirm the release note
- [ ] Confirm test cases
- [ ] Confirm document
- [ ] Add branch pick label
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]