You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
feat: support binary arguments for StringConcat operator (#21883)
## Which issue does this PR close?
- Refers #12709.
## Rationale for this change
Binary arguments are supported for concat UDFs, but not for the pipe
operator (`||`), which supports only text.
## What changes are included in this PR?
- Support binary concat by providing specialised kernels for pure binary
operations. Avoid support of mixed string/binary arguments as it doesn't
match the behaviour of major DBs, except for Postgres (see the table in
the linked ticket).
- Add `concat_elements_binary_view_array` kernel
- Refactor private `binary_coercion` to support symmetric BinaryLike +
BinaryLike - required for the new codeflow
Concat UDFs are out of scope and supported separately.
## Are these changes tested?
- Existing SLTs
- Moved a few tests to a more appropriate `binary.slt`
- Added new unit tests
## Are there any user-facing changes?
Concatenation `||` operator now allows binary+binary concatenation
(`SELECT x'636166c3a9' || x'68656c6c6f'`), but denies mixed
string+binary concatenation `SELECT x'636166c3a9' || 'hello'`
---------
Co-authored-by: Jeffrey Vo <jeffrey.vo.australia@gmail.com>
0 commit comments