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

DX-64328 Array types for Gandiva #58

Merged
merged 46 commits into from
Nov 20, 2023

Conversation

lriggs
Copy link

@lriggs lriggs commented Oct 25, 2023

Add List input and output types for Gandiva functions. Add new reference implementations for array_contains and array_remove, tested via integration with Dremio. int32, int64, double and float list types have been tested.

  • Support List types in function specification and llvm code generation.
  • Pass back function type information through the expression registry.

See 1p here: https://docs.google.com/document/d/1exwXdUUnk5FqZLzVZyTdhqgwxTk0u9bL54aLVNM5Tas/edit

@github-actions
Copy link

Thanks for opening a pull request!

If this is not a minor PR. Could you open an issue for this pull request on GitHub? https://github.com/apache/arrow/issues/new/choose

Opening GitHub issues ahead of time contributes to the Openness of the Apache Arrow project.

Then could you also rename the pull request title in the following format?

GH-${GITHUB_ISSUE_ID}: [${COMPONENT}] ${SUMMARY}

or

MINOR: [${COMPONENT}] ${SUMMARY}

In the case of PARQUET issues on JIRA the title also supports:

PARQUET-${JIRA_ISSUE_ID}: [${COMPONENT}] ${SUMMARY}

See also:

cpp/src/gandiva/annotator.cc Show resolved Hide resolved
cpp/src/gandiva/array_ops.cc Outdated Show resolved Hide resolved
cpp/src/gandiva/projector.cc Outdated Show resolved Hide resolved
if (arrow::is_binary_like(internal_type->id())) {
child_data = arrow::ArrayData::Make(
internal_type, 0 /*initialize length*/,
{nullptr, std::move(buffers[2]), std::move(buffers[3])}, 0);

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

0,1,2,3 indexes as constants

cpp/src/gandiva/tests/list_test.cc Show resolved Hide resolved
}

if (type->id() == arrow::Type::LIST) {
jlong offsets_addr = in_buf_addrs[buf_idx++];

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Does gandiva tests perform any memory leak checks? How do we make sure that added code does not result in memory leaks?

child_data = arrow::ArrayData::Make(internal_type, 0,
{std::move(buffers[2]), std::move(data_buffer)});
}
if (arrow::is_binary_like(internal_type->id())) {

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is this block required?

@lriggs lriggs changed the base branch from dremio_24.3_12.0 to dremio_25.0_12.0 November 20, 2023 19:12
@lriggs lriggs changed the title WIP: DX-64328 Array types for Gandiva DX-64328 Array types for Gandiva Nov 20, 2023
@lriggs lriggs merged commit a225426 into dremio:dremio_25.0_12.0 Nov 20, 2023
22 of 23 checks passed
DenisTarasyuk pushed a commit that referenced this pull request Dec 19, 2023
Add List input and output types for Gandiva functions. Add new reference implementations for array_contains and array_remove, tested via integration with Dremio. int32, int64, double and float list types have been tested.

Support List types in function specification and llvm code generation.
Pass back function type information through the expression registry.
See 1p here: https://docs.google.com/document/d/1exwXdUUnk5FqZLzVZyTdhqgwxTk0u9bL54aLVNM5Tas/edit
DenisTarasyuk pushed a commit that referenced this pull request Dec 20, 2023
Add List input and output types for Gandiva functions. Add new reference implementations for array_contains and array_remove, tested via integration with Dremio. int32, int64, double and float list types have been tested.

Support List types in function specification and llvm code generation.
Pass back function type information through the expression registry.
See 1p here: https://docs.google.com/document/d/1exwXdUUnk5FqZLzVZyTdhqgwxTk0u9bL54aLVNM5Tas/edit
DenisTarasyuk pushed a commit that referenced this pull request Jan 16, 2024
Add List input and output types for Gandiva functions. Add new reference implementations for array_contains and array_remove, tested via integration with Dremio. int32, int64, double and float list types have been tested.

Support List types in function specification and llvm code generation.
Pass back function type information through the expression registry.
See 1p here: https://docs.google.com/document/d/1exwXdUUnk5FqZLzVZyTdhqgwxTk0u9bL54aLVNM5Tas/edit
DenisTarasyuk pushed a commit that referenced this pull request Jan 17, 2024
Add List input and output types for Gandiva functions. Add new reference implementations for array_contains and array_remove, tested via integration with Dremio. int32, int64, double and float list types have been tested.

Support List types in function specification and llvm code generation.
Pass back function type information through the expression registry.
See 1p here: https://docs.google.com/document/d/1exwXdUUnk5FqZLzVZyTdhqgwxTk0u9bL54aLVNM5Tas/edit
DenisTarasyuk pushed a commit that referenced this pull request Mar 6, 2024
Add List input and output types for Gandiva functions. Add new reference implementations for array_contains and array_remove, tested via integration with Dremio. int32, int64, double and float list types have been tested.

Support List types in function specification and llvm code generation.
Pass back function type information through the expression registry.
See 1p here: https://docs.google.com/document/d/1exwXdUUnk5FqZLzVZyTdhqgwxTk0u9bL54aLVNM5Tas/edit
DenisTarasyuk pushed a commit that referenced this pull request Mar 7, 2024
Add List input and output types for Gandiva functions. Add new reference implementations for array_contains and array_remove, tested via integration with Dremio. int32, int64, double and float list types have been tested.

Support List types in function specification and llvm code generation.
Pass back function type information through the expression registry.
See 1p here: https://docs.google.com/document/d/1exwXdUUnk5FqZLzVZyTdhqgwxTk0u9bL54aLVNM5Tas/edit
lriggs added a commit to lriggs/arrow that referenced this pull request Mar 12, 2024
Add List input and output types for Gandiva functions. Add new reference implementations for array_contains and array_remove, tested via integration with Dremio. int32, int64, double and float list types have been tested.

Support List types in function specification and llvm code generation.
Pass back function type information through the expression registry.
See 1p here: https://docs.google.com/document/d/1exwXdUUnk5FqZLzVZyTdhqgwxTk0u9bL54aLVNM5Tas/edit
lriggs added a commit to lriggs/arrow that referenced this pull request Apr 25, 2024
Add List input and output types for Gandiva functions. Add new reference implementations for array_contains and array_remove, tested via integration with Dremio. int32, int64, double and float list types have been tested.

Support List types in function specification and llvm code generation.
Pass back function type information through the expression registry.
See 1p here: https://docs.google.com/document/d/1exwXdUUnk5FqZLzVZyTdhqgwxTk0u9bL54aLVNM5Tas/edit
stevelorddremio pushed a commit to stevelorddremio/arrow that referenced this pull request Jun 14, 2024
Add List input and output types for Gandiva functions. Add new reference implementations for array_contains and array_remove, tested via integration with Dremio. int32, int64, double and float list types have been tested.

Support List types in function specification and llvm code generation.
Pass back function type information through the expression registry.
See 1p here: https://docs.google.com/document/d/1exwXdUUnk5FqZLzVZyTdhqgwxTk0u9bL54aLVNM5Tas/edit
lriggs added a commit to lriggs/arrow that referenced this pull request Sep 3, 2024
Add List input and output types for Gandiva functions. Add new reference implementations for array_contains and array_remove, tested via integration with Dremio. int32, int64, double and float list types have been tested.

Support List types in function specification and llvm code generation.
Pass back function type information through the expression registry.
See 1p here: https://docs.google.com/document/d/1exwXdUUnk5FqZLzVZyTdhqgwxTk0u9bL54aLVNM5Tas/edit
lriggs added a commit to lriggs/arrow that referenced this pull request Sep 6, 2024
Add List input and output types for Gandiva functions. Add new reference implementations for array_contains and array_remove, tested via integration with Dremio. int32, int64, double and float list types have been tested.

Support List types in function specification and llvm code generation.
Pass back function type information through the expression registry.
See 1p here: https://docs.google.com/document/d/1exwXdUUnk5FqZLzVZyTdhqgwxTk0u9bL54aLVNM5Tas/edit
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Development

Successfully merging this pull request may close these issues.

3 participants