You are viewing a plain text version of this content. The canonical link for it is here.
Posted to github@datafusion.apache.org by "alamb (via GitHub)" <gi...@apache.org> on 2024/07/30 21:48:33 UTC
[PR] Support `convert_to_state` for `AVG` accumulator [datafusion]
alamb opened a new pull request, #11734:
URL: https://github.com/apache/datafusion/pull/11734
Builds on https://github.com/apache/datafusion/pull/11627 from @korowa
TODO: write tests
## Which issue does this PR close?
N/A
## Rationale for this change
To take advantage of the benefits of https://github.com/apache/datafusion/pull/11627 a new method must be implemented for each accumulator. At least one ClickBench query (the one in https://github.com/apache/datafusion/issues/6937) uses Avg
## What changes are included in this PR?
1. Implement `convert_to_state` for `AVG` accumulator
## Are these changes tested?
Not yet
<!--
We typically require tests for all PRs in order to:
1. Prevent the code from being accidentally broken by subsequent changes
3. Serve as another way to document the expected behavior of the code
If tests are not included in your PR, please explain why (for example, are they covered by existing tests)?
-->
## Are there any user-facing changes?
<!--
If there are user-facing changes then we may require documentation to be updated before approving the PR.
-->
<!--
If there are any breaking changes to public APIs, please add the `api change` 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: github-unsubscribe@datafusion.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
---------------------------------------------------------------------
To unsubscribe, e-mail: github-unsubscribe@datafusion.apache.org
For additional commands, e-mail: github-help@datafusion.apache.org
Re: [PR] Support `convert_to_state` for `AVG` accumulator [datafusion]
Posted by "alamb (via GitHub)" <gi...@apache.org>.
alamb merged PR #11734:
URL: https://github.com/apache/datafusion/pull/11734
--
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: github-unsubscribe@datafusion.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
---------------------------------------------------------------------
To unsubscribe, e-mail: github-unsubscribe@datafusion.apache.org
For additional commands, e-mail: github-help@datafusion.apache.org
Re: [PR] Support `convert_to_state` for `AVG` accumulator [datafusion]
Posted by "korowa (via GitHub)" <gi...@apache.org>.
korowa commented on PR #11734:
URL: https://github.com/apache/datafusion/pull/11734#issuecomment-2260996144
> There is something strange going on with AVG in this query -- it is giving different answers when convert to state is enabled vs not. Maybe it is due to float rounding, but I am not confident
Kind of expected -- result set is sorted by `COUNT(*)` which equals 2 for only 4 records, and 1 for all other records, so this ordering may be considered as nondeterministic.
I've got different results after two consecutive runs even on main branch (without any skipped aggregation).
--
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: github-unsubscribe@datafusion.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
---------------------------------------------------------------------
To unsubscribe, e-mail: github-unsubscribe@datafusion.apache.org
For additional commands, e-mail: github-help@datafusion.apache.org
Re: [PR] Support `convert_to_state` for `AVG` accumulator [datafusion]
Posted by "alamb (via GitHub)" <gi...@apache.org>.
alamb commented on PR #11734:
URL: https://github.com/apache/datafusion/pull/11734#issuecomment-2284944526
Thanks @comphead -- we are making progress here slowly
--
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: github-unsubscribe@datafusion.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
---------------------------------------------------------------------
To unsubscribe, e-mail: github-unsubscribe@datafusion.apache.org
For additional commands, e-mail: github-help@datafusion.apache.org
Re: [PR] Support `convert_to_state` for `AVG` accumulator [datafusion]
Posted by "alamb (via GitHub)" <gi...@apache.org>.
alamb commented on PR #11734:
URL: https://github.com/apache/datafusion/pull/11734#issuecomment-2269687928
This PR is failing like the following when running on benchmarks on TPCH. I think there may be a bug related to types in the intermediates. I will keep debugging
```
Query 19 iteration 3 took 161.5 ms and returned 1 rows
Query 19 iteration 4 took 171.7 ms and returned 1 rows
Query 19 avg time: 164.29 ms
Error: External(ArrowError(InvalidArgumentError("column types must match schema types, expected Decimal128(25, 2) but fou\
nd Decimal128(38, 10) at column index 2"), None))
```
--
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: github-unsubscribe@datafusion.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
---------------------------------------------------------------------
To unsubscribe, e-mail: github-unsubscribe@datafusion.apache.org
For additional commands, e-mail: github-help@datafusion.apache.org
Re: [PR] Support `convert_to_state` for `AVG` accumulator [datafusion]
Posted by "alamb (via GitHub)" <gi...@apache.org>.
alamb commented on PR #11734:
URL: https://github.com/apache/datafusion/pull/11734#issuecomment-2260409691
There is something strange going on with AVG in this query -- it is giving different answers when convert to state is enabled vs not. Maybe it is due to float rounding, but I am not confident
--
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: github-unsubscribe@datafusion.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
---------------------------------------------------------------------
To unsubscribe, e-mail: github-unsubscribe@datafusion.apache.org
For additional commands, e-mail: github-help@datafusion.apache.org
Re: [PR] Support `convert_to_state` for `AVG` accumulator [datafusion]
Posted by "2010YOUY01 (via GitHub)" <gi...@apache.org>.
2010YOUY01 commented on code in PR #11734:
URL: https://github.com/apache/datafusion/pull/11734#discussion_r1711476951
##########
datafusion/physical-expr-common/src/aggregate/groups_accumulator/nulls.rs:
##########
@@ -0,0 +1,87 @@
+// Licensed to the Apache Software Foundation (ASF) under one
+// or more contributor license agreements. See the NOTICE file
+// distributed with this work for additional information
+// regarding copyright ownership. The ASF licenses this file
+// to you under the Apache License, Version 2.0 (the
+// "License"); you may not use this file except in compliance
+// with the License. You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing,
+// software distributed under the License is distributed on an
+// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+// KIND, either express or implied. See the License for the
+// specific language governing permissions and limitations
+// under the License.
+
+//! XX utlities for working with nulls
+
+use arrow::array::{Array, ArrowNumericType, BooleanArray, PrimitiveArray};
+use arrow::buffer::NullBuffer;
+
+/// Sets the validity mask for a `PrimitiveArray` to `nulls`
+/// replacing any existing null mask
+pub fn set_nulls<T: ArrowNumericType + Send>(
+ array: PrimitiveArray<T>,
+ nulls: Option<NullBuffer>,
+) -> PrimitiveArray<T> {
+ let (dt, values, _old_nulls) = array.into_parts();
+ PrimitiveArray::<T>::new(values, nulls).with_data_type(dt)
+}
+
+/// Converts a `BooleanBuffer` representing a filter to a `NullBuffer.
+///
+/// The `NullBuffer` is
+/// * `true` (representing valid) for values that were `true` in filter
+/// * `false` (representing null) for values that were `false` or `null` in filter
+fn filter_to_nulls(filter: &BooleanArray) -> Option<NullBuffer> {
+ let (filter_bools, filter_nulls) = filter.clone().into_parts();
+ let filter_bools = NullBuffer::from(filter_bools);
+ NullBuffer::union(Some(&filter_bools), filter_nulls.as_ref())
+}
+
+/// Compute an output validity mask for an array that has been filtered
+///
+/// This can be used to compute nulls for the output of
+/// [`GroupsAccumulator::convert_to_state`], which quickly applies an optional
+/// filter to the input rows by setting any filtered rows to NULL in the output.
+/// Subsequent applications of aggregate functions that ignore NULLs (most of
+/// them) will thus ignore the filtered rows as well.
+///
+/// # Output element is `true`
+/// * A `true` in the output represents non null output for all values that were both:
+///
+/// * `true` in any `opt_filter` (aka values that passed the filter)
+///
+/// * `non null` in `input`
+///
+/// # Output element is `false`
+/// * is false (null) for all values that were false in the filter or null in the input
+///
+/// # Example
+///
+/// ```text
+/// ┌─────┐ ┌─────┐ ┌─────┐
+/// │true │ │NULL │ │NULL │
+/// │true │ │ │true │ │true │
+/// │true │ ───┼─── │false│ ────────▶ │false│ filtered_nulls
+/// │false│ │ │NULL │ │NULL │
+/// │false│ │true │ │true │
+/// └─────┘ └─────┘ └─────┘
+/// array opt_filter output nulls
Review Comment:
Looks like output nulls has typo, should be `false; true; false; false; fasle`?
--
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: github-unsubscribe@datafusion.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
---------------------------------------------------------------------
To unsubscribe, e-mail: github-unsubscribe@datafusion.apache.org
For additional commands, e-mail: github-help@datafusion.apache.org
Re: [PR] Support `convert_to_state` for `AVG` accumulator [datafusion]
Posted by "korowa (via GitHub)" <gi...@apache.org>.
korowa commented on code in PR #11734:
URL: https://github.com/apache/datafusion/pull/11734#discussion_r1707760103
##########
datafusion/physical-expr-common/src/aggregate/groups_accumulator/nulls.rs:
##########
@@ -0,0 +1,87 @@
+// Licensed to the Apache Software Foundation (ASF) under one
+// or more contributor license agreements. See the NOTICE file
+// distributed with this work for additional information
+// regarding copyright ownership. The ASF licenses this file
+// to you under the Apache License, Version 2.0 (the
+// "License"); you may not use this file except in compliance
+// with the License. You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing,
+// software distributed under the License is distributed on an
+// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+// KIND, either express or implied. See the License for the
+// specific language governing permissions and limitations
+// under the License.
+
+//! XX utlities for working with nulls
Review Comment:
Is XX an intentional naming or a leftover from WIP stage?
--
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: github-unsubscribe@datafusion.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
---------------------------------------------------------------------
To unsubscribe, e-mail: github-unsubscribe@datafusion.apache.org
For additional commands, e-mail: github-help@datafusion.apache.org
Re: [PR] Support `convert_to_state` for `AVG` accumulator [datafusion]
Posted by "alamb (via GitHub)" <gi...@apache.org>.
alamb commented on code in PR #11734:
URL: https://github.com/apache/datafusion/pull/11734#discussion_r1707989300
##########
datafusion/physical-expr-common/src/aggregate/groups_accumulator/nulls.rs:
##########
@@ -0,0 +1,87 @@
+// Licensed to the Apache Software Foundation (ASF) under one
+// or more contributor license agreements. See the NOTICE file
+// distributed with this work for additional information
+// regarding copyright ownership. The ASF licenses this file
+// to you under the Apache License, Version 2.0 (the
+// "License"); you may not use this file except in compliance
+// with the License. You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing,
+// software distributed under the License is distributed on an
+// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+// KIND, either express or implied. See the License for the
+// specific language governing permissions and limitations
+// under the License.
+
+//! XX utlities for working with nulls
Review Comment:
It is a leftover from WIP -- I apologize
```suggestion
//! [`set_nulls`], and [`filtered_null_mask`], utilities for working with nulls
```
--
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: github-unsubscribe@datafusion.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
---------------------------------------------------------------------
To unsubscribe, e-mail: github-unsubscribe@datafusion.apache.org
For additional commands, e-mail: github-help@datafusion.apache.org
Re: [PR] Support `convert_to_state` for `AVG` accumulator [datafusion]
Posted by "Dandandan (via GitHub)" <gi...@apache.org>.
Dandandan commented on PR #11734:
URL: https://github.com/apache/datafusion/pull/11734#issuecomment-2285646253
Nice work 🎉
--
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: github-unsubscribe@datafusion.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
---------------------------------------------------------------------
To unsubscribe, e-mail: github-unsubscribe@datafusion.apache.org
For additional commands, e-mail: github-help@datafusion.apache.org
Re: [PR] Support `convert_to_state` for `AVG` accumulator [datafusion]
Posted by "alamb (via GitHub)" <gi...@apache.org>.
alamb commented on PR #11734:
URL: https://github.com/apache/datafusion/pull/11734#issuecomment-2261021277
I debugged this a bit more and I think the issue may be that `AVG` uses `Float64` internally to accumulate the sum, and since this column has giant integers that can't fit into a float64 precisely, the order of operations affects the final output. I will update the test to use a column other than this giant int64 column I think
--
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: github-unsubscribe@datafusion.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
---------------------------------------------------------------------
To unsubscribe, e-mail: github-unsubscribe@datafusion.apache.org
For additional commands, e-mail: github-help@datafusion.apache.org
Re: [PR] Support `convert_to_state` for `AVG` accumulator [datafusion]
Posted by "alamb (via GitHub)" <gi...@apache.org>.
alamb commented on PR #11734:
URL: https://github.com/apache/datafusion/pull/11734#issuecomment-2289756659
I am *very* excited to get the `StringView` work (https://github.com/apache/datafusion/issues/11752) done and enabled -- and then rerun the clickbench benchmarks again for DataFusion. 🚀
@Rachelint is also working on some good stuff.
--
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: github-unsubscribe@datafusion.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
---------------------------------------------------------------------
To unsubscribe, e-mail: github-unsubscribe@datafusion.apache.org
For additional commands, e-mail: github-help@datafusion.apache.org
Re: [PR] Support `convert_to_state` for `AVG` accumulator [datafusion]
Posted by "alamb (via GitHub)" <gi...@apache.org>.
alamb commented on code in PR #11734:
URL: https://github.com/apache/datafusion/pull/11734#discussion_r1713002523
##########
datafusion/physical-expr-common/src/aggregate/groups_accumulator/nulls.rs:
##########
@@ -0,0 +1,87 @@
+// Licensed to the Apache Software Foundation (ASF) under one
+// or more contributor license agreements. See the NOTICE file
+// distributed with this work for additional information
+// regarding copyright ownership. The ASF licenses this file
+// to you under the Apache License, Version 2.0 (the
+// "License"); you may not use this file except in compliance
+// with the License. You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing,
+// software distributed under the License is distributed on an
+// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+// KIND, either express or implied. See the License for the
+// specific language governing permissions and limitations
+// under the License.
+
+//! XX utlities for working with nulls
+
+use arrow::array::{Array, ArrowNumericType, BooleanArray, PrimitiveArray};
+use arrow::buffer::NullBuffer;
+
+/// Sets the validity mask for a `PrimitiveArray` to `nulls`
+/// replacing any existing null mask
+pub fn set_nulls<T: ArrowNumericType + Send>(
+ array: PrimitiveArray<T>,
+ nulls: Option<NullBuffer>,
+) -> PrimitiveArray<T> {
+ let (dt, values, _old_nulls) = array.into_parts();
+ PrimitiveArray::<T>::new(values, nulls).with_data_type(dt)
+}
+
+/// Converts a `BooleanBuffer` representing a filter to a `NullBuffer.
+///
+/// The `NullBuffer` is
+/// * `true` (representing valid) for values that were `true` in filter
+/// * `false` (representing null) for values that were `false` or `null` in filter
+fn filter_to_nulls(filter: &BooleanArray) -> Option<NullBuffer> {
+ let (filter_bools, filter_nulls) = filter.clone().into_parts();
+ let filter_bools = NullBuffer::from(filter_bools);
+ NullBuffer::union(Some(&filter_bools), filter_nulls.as_ref())
+}
+
+/// Compute an output validity mask for an array that has been filtered
+///
+/// This can be used to compute nulls for the output of
+/// [`GroupsAccumulator::convert_to_state`], which quickly applies an optional
+/// filter to the input rows by setting any filtered rows to NULL in the output.
+/// Subsequent applications of aggregate functions that ignore NULLs (most of
+/// them) will thus ignore the filtered rows as well.
+///
+/// # Output element is `true`
+/// * A `true` in the output represents non null output for all values that were both:
+///
+/// * `true` in any `opt_filter` (aka values that passed the filter)
+///
+/// * `non null` in `input`
+///
+/// # Output element is `false`
+/// * is false (null) for all values that were false in the filter or null in the input
+///
+/// # Example
+///
+/// ```text
+/// ┌─────┐ ┌─────┐ ┌─────┐
+/// │true │ │NULL │ │NULL │
+/// │true │ │ │true │ │true │
+/// │true │ ───┼─── │false│ ────────▶ │false│ filtered_nulls
+/// │false│ │ │NULL │ │NULL │
+/// │false│ │true │ │true │
+/// └─────┘ └─────┘ └─────┘
+/// array opt_filter output nulls
Review Comment:
Yes you are correct -- thank you for catching that. I fixed it in 149406bb6
--
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: github-unsubscribe@datafusion.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
---------------------------------------------------------------------
To unsubscribe, e-mail: github-unsubscribe@datafusion.apache.org
For additional commands, e-mail: github-help@datafusion.apache.org
Re: [PR] Support `convert_to_state` for `AVG` accumulator [datafusion]
Posted by "alamb (via GitHub)" <gi...@apache.org>.
alamb commented on PR #11734:
URL: https://github.com/apache/datafusion/pull/11734#issuecomment-2275579264
> LGTM, thank you @alamb.
>
> Regarding q28 slowdown from PR description -- I suppose it's not a stable slowdown, and just a result on single benchmark run (since the regexp over `Referrer` field in the query doesn't seem to produce high enough cardinality to skip partial aggregation)?
That is my understanding too. I also have high hopes that the StringView work will make that query in particualr faster as well
--
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: github-unsubscribe@datafusion.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
---------------------------------------------------------------------
To unsubscribe, e-mail: github-unsubscribe@datafusion.apache.org
For additional commands, e-mail: github-help@datafusion.apache.org
Re: [PR] Support `convert_to_state` for `AVG` accumulator [datafusion]
Posted by "korowa (via GitHub)" <gi...@apache.org>.
korowa commented on PR #11734:
URL: https://github.com/apache/datafusion/pull/11734#issuecomment-2274962185
LGTM, thank you @alamb.
Regarding q28 slowdown from PR description -- I suppose it's not a stable slowdown, and just a result on single benchmark run (since the regexp over `Referrer` field in the query doesn't seem to produce high enough cardinality to skip partial aggregation)?
--
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: github-unsubscribe@datafusion.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
---------------------------------------------------------------------
To unsubscribe, e-mail: github-unsubscribe@datafusion.apache.org
For additional commands, e-mail: github-help@datafusion.apache.org
Re: [PR] Support `convert_to_state` for `AVG` accumulator [datafusion]
Posted by "korowa (via GitHub)" <gi...@apache.org>.
korowa commented on PR #11734:
URL: https://github.com/apache/datafusion/pull/11734#issuecomment-2261123584
Oh, the `AVG` values themselves, got it.
--
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: github-unsubscribe@datafusion.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
---------------------------------------------------------------------
To unsubscribe, e-mail: github-unsubscribe@datafusion.apache.org
For additional commands, e-mail: github-help@datafusion.apache.org
Re: [PR] Support `convert_to_state` for `AVG` accumulator [datafusion]
Posted by "comphead (via GitHub)" <gi...@apache.org>.
comphead commented on code in PR #11734:
URL: https://github.com/apache/datafusion/pull/11734#discussion_r1714160369
##########
datafusion/sqllogictest/test_files/aggregate_skip_partial.slt:
##########
@@ -267,6 +282,20 @@ FROM aggregate_test_100_null GROUP BY c2 ORDER BY c2;
4 11 14
5 8 7
+# Test avg for tinyint / float
Review Comment:
just wondering why the test is only for tinyint / floats?
--
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: github-unsubscribe@datafusion.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
---------------------------------------------------------------------
To unsubscribe, e-mail: github-unsubscribe@datafusion.apache.org
For additional commands, e-mail: github-help@datafusion.apache.org
Re: [PR] Support `convert_to_state` for `AVG` accumulator [datafusion]
Posted by "alamb (via GitHub)" <gi...@apache.org>.
alamb commented on code in PR #11734:
URL: https://github.com/apache/datafusion/pull/11734#discussion_r1714392608
##########
datafusion/sqllogictest/test_files/aggregate_skip_partial.slt:
##########
@@ -267,6 +282,20 @@ FROM aggregate_test_100_null GROUP BY c2 ORDER BY c2;
4 11 14
5 8 7
+# Test avg for tinyint / float
Review Comment:
The idea was that `AVG` the accumulator is already tested elsewhere -- this test is only to exercise the partial aggregate skipping logic
--
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: github-unsubscribe@datafusion.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
---------------------------------------------------------------------
To unsubscribe, e-mail: github-unsubscribe@datafusion.apache.org
For additional commands, e-mail: github-help@datafusion.apache.org