Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat(query): add json array lambda functions #16573

Merged
merged 7 commits into from
Oct 9, 2024

Conversation

sundy-li
Copy link
Member

@sundy-li sundy-li commented Oct 9, 2024

I hereby agree to the terms of the CLA available at: https://docs.databend.com/dev/policies/cla/

Summary

  1. Support cast functions that cast from variant type into Array<T>
  2. Add json array lambda functions:
    "json_array_transform",
    "json_array_apply",
    "json_array_map",
    "json_array_filter",
    "json_array_reduce",

Similar to the array lambda function, it accepts variant type as the first argument and returns the variant type.

select json_array_reduce([1,2,3,4]::Variant, (x, y) -> 3 + x + y);
----
19

select json_array_map([1,2,3,4]::Variant, x -> x + 1);
----
[2,3,4,5]

select json_array_filter([1,2,3,4]::Variant, x -> x % 2 = 0);
----
[2, 4]

Tests

  • Unit Test
  • Logic Test
  • Benchmark Test
  • No Test - Explain why

Type of change

  • Bug Fix (non-breaking change which fixes an issue)
  • New Feature (non-breaking change which adds functionality)
  • Breaking Change (fix or feature that could cause existing functionality not to work as expected)
  • Documentation Update
  • Refactoring
  • Performance Improvement
  • Other (please describe):

This change is Reviewable

@github-actions github-actions bot added the pr-feature this PR introduces a new feature to the codebase label Oct 9, 2024
@sundy-li
Copy link
Member Author

sundy-li commented Oct 9, 2024

docs @soyeric128

src/query/expression/src/evaluator.rs Outdated Show resolved Hide resolved
src/query/expression/src/evaluator.rs Outdated Show resolved Hide resolved
@sundy-li sundy-li added this pull request to the merge queue Oct 9, 2024
@BohuTANG BohuTANG removed this pull request from the merge queue due to a manual request Oct 9, 2024
@BohuTANG BohuTANG merged commit bcf3a6a into databendlabs:main Oct 9, 2024
71 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
pr-feature this PR introduces a new feature to the codebase
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants