Add support for nested lists in substrait consumer#20953
Merged
gabotechs merged 4 commits intoapache:mainfrom Mar 19, 2026
Merged
Add support for nested lists in substrait consumer#20953gabotechs merged 4 commits intoapache:mainfrom
gabotechs merged 4 commits intoapache:mainfrom
Conversation
fea10ee to
4abf8f7
Compare
4abf8f7 to
6eadf6d
Compare
2 tasks
LiaCastaneda
approved these changes
Mar 16, 2026
Contributor
There was a problem hiding this comment.
LGTM
fyi @dd-david-levin since you were looking into this too in #20821
cc @gabotechs could you take a look at this one whenever you have time? I think it’s good to go
vbarua
reviewed
Mar 16, 2026
e3d511d to
d74bd37
Compare
d74bd37 to
fc7b3e8
Compare
vbarua
approved these changes
Mar 19, 2026
Contributor
vbarua
left a comment
There was a problem hiding this comment.
Thanks for the updates @alexanderbianchi. Changes LGTM from the Substrait perspective.
| NestedType::List(list) => { | ||
| if list.values.is_empty() { | ||
| return substrait_err!( | ||
| "Empty Nested lists are not supported; use Literal.empty_list instead" |
Contributor
There was a problem hiding this comment.
Good idea providing the alternative encoding needed in the error message.
gabotechs
approved these changes
Mar 19, 2026
Contributor
gabotechs
left a comment
There was a problem hiding this comment.
Looks good. Thanks @alexanderbianchi for the PR and @vbarua and @LiaCastaneda for the reviews!
haohuaijin
pushed a commit
to haohuaijin/arrow-datafusion
that referenced
this pull request
Mar 21, 2026
## Rationale for this change Adds support for nested array expressions to the substrait consumer. Defined in [algebra.proto.](https://github.com/substrait-io/substrait/blob/main/proto/substrait/algebra.proto#L1162) ## What changes are included in this PR? Implements the previously unimplemented `consume_nested` for `NestedType::List`. ## Are these changes tested? Yes, unit tests match the testing pattern for substrait literals in `consumer/expr/literal.rs`. Snapshot test is added for `make_array()` path. ## Are there any user-facing changes? User's will now be able to send nested list expressions. This change is purely additive all previous consumable Substrait plans will continue to work.
LiaCastaneda
pushed a commit
to DataDog/datafusion
that referenced
this pull request
Mar 21, 2026
Adds support for nested array expressions to the substrait consumer. Defined in [algebra.proto.](https://github.com/substrait-io/substrait/blob/main/proto/substrait/algebra.proto#L1162) Implements the previously unimplemented `consume_nested` for `NestedType::List`. Yes, unit tests match the testing pattern for substrait literals in `consumer/expr/literal.rs`. Snapshot test is added for `make_array()` path. User's will now be able to send nested list expressions. This change is purely additive all previous consumable Substrait plans will continue to work. (cherry picked from commit 4010a55)
LiaCastaneda
pushed a commit
to DataDog/datafusion
that referenced
this pull request
Mar 23, 2026
Adds support for nested array expressions to the substrait consumer. Defined in [algebra.proto.](https://github.com/substrait-io/substrait/blob/main/proto/substrait/algebra.proto#L1162) Implements the previously unimplemented `consume_nested` for `NestedType::List`. Yes, unit tests match the testing pattern for substrait literals in `consumer/expr/literal.rs`. Snapshot test is added for `make_array()` path. User's will now be able to send nested list expressions. This change is purely additive all previous consumable Substrait plans will continue to work. (cherry picked from commit 4010a55)
LiaCastaneda
added a commit
to DataDog/datafusion
that referenced
this pull request
Mar 23, 2026
* Add support for nested lists in substrait consumer (apache#20953) Adds support for nested array expressions to the substrait consumer. Defined in [algebra.proto.](https://github.com/substrait-io/substrait/blob/main/proto/substrait/algebra.proto#L1162) Implements the previously unimplemented `consume_nested` for `NestedType::List`. Yes, unit tests match the testing pattern for substrait literals in `consumer/expr/literal.rs`. Snapshot test is added for `make_array()` path. User's will now be able to send nested list expressions. This change is purely additive all previous consumable Substrait plans will continue to work. (cherry picked from commit 4010a55) * bad merge -- Add missing import * Format --------- Co-authored-by: alexanderbianchi <75697973+alexanderbianchi@users.noreply.github.com>
de-bgunter
pushed a commit
to de-bgunter/datafusion
that referenced
this pull request
Mar 24, 2026
## Rationale for this change Adds support for nested array expressions to the substrait consumer. Defined in [algebra.proto.](https://github.com/substrait-io/substrait/blob/main/proto/substrait/algebra.proto#L1162) ## What changes are included in this PR? Implements the previously unimplemented `consume_nested` for `NestedType::List`. ## Are these changes tested? Yes, unit tests match the testing pattern for substrait literals in `consumer/expr/literal.rs`. Snapshot test is added for `make_array()` path. ## Are there any user-facing changes? User's will now be able to send nested list expressions. This change is purely additive all previous consumable Substrait plans will continue to work.
gabotechs
pushed a commit
to DataDog/datafusion
that referenced
this pull request
Apr 16, 2026
## Rationale for this change Adds support for nested array expressions to the substrait consumer. Defined in [algebra.proto.](https://github.com/substrait-io/substrait/blob/main/proto/substrait/algebra.proto#L1162) ## What changes are included in this PR? Implements the previously unimplemented `consume_nested` for `NestedType::List`. ## Are these changes tested? Yes, unit tests match the testing pattern for substrait literals in `consumer/expr/literal.rs`. Snapshot test is added for `make_array()` path. ## Are there any user-facing changes? User's will now be able to send nested list expressions. This change is purely additive all previous consumable Substrait plans will continue to work. (cherry picked from commit 4010a55)
gabotechs
pushed a commit
to DataDog/datafusion
that referenced
this pull request
Apr 16, 2026
## Rationale for this change Adds support for nested array expressions to the substrait consumer. Defined in [algebra.proto.](https://github.com/substrait-io/substrait/blob/main/proto/substrait/algebra.proto#L1162) ## What changes are included in this PR? Implements the previously unimplemented `consume_nested` for `NestedType::List`. ## Are these changes tested? Yes, unit tests match the testing pattern for substrait literals in `consumer/expr/literal.rs`. Snapshot test is added for `make_array()` path. ## Are there any user-facing changes? User's will now be able to send nested list expressions. This change is purely additive all previous consumable Substrait plans will continue to work. (cherry picked from commit 4010a55)
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Rationale for this change
Adds support for nested array expressions to the substrait consumer. Defined in algebra.proto.
What changes are included in this PR?
Implements the previously unimplemented
consume_nestedforNestedType::List.Are these changes tested?
Yes, unit tests match the testing pattern for substrait literals in
consumer/expr/literal.rs. Snapshot test is added formake_array()path.Are there any user-facing changes?
User's will now be able to send nested list expressions. This change is purely additive all previous consumable Substrait plans will continue to work.