Skip to content

Branch 0.7 - #1

Merged
karthikeyann merged 41 commits into
karthikeyann:branch-0.7from
NVIDIA:branch-0.7
May 8, 2019
Merged

Branch 0.7#1
karthikeyann merged 41 commits into
karthikeyann:branch-0.7from
NVIDIA:branch-0.7

Conversation

@karthikeyann

Copy link
Copy Markdown
Owner

No description provided.

thomcom and others added 30 commits May 6, 2019 06:57
… loop once it hits the line terminator. Add tests for the previously broken cases.
[REVIEW] CSV Reader: Fix skip_blank_lines behavior with Windows line terminators (\r\n)
[REVIEW] Fix potentially uninitialized tail rows when skiprows!=0
This is for compatibility with dask dataframe after dask/dask#4771
Support the group_keys=True parameter in groupby method
[REVIEW] Add a way to get a pointer to the underlying gdf_column of a Column
@karthikeyann
karthikeyann merged commit dad059b into karthikeyann:branch-0.7 May 8, 2019
@karthikeyann karthikeyann mentioned this pull request May 9, 2019
karthikeyann pushed a commit that referenced this pull request May 14, 2019
karthikeyann pushed a commit that referenced this pull request Jun 13, 2019
* ENH: Support `GDF_BOOL8` in Parquet reader

* Translate `parquet::BOOLEAN` to `GDF_BOOL8`
* Remove no-longer-necessary type conversion in pytests

* ENH: Support `GDF_BOOL8` in CSV reader

* Add new type detection count for booleans
* Add `true` and `false` as detected boolean values
* Add extra pytest case for bools

* ENH: Support `GDF_BOOL8` in CSV writer

* Uncomment lines to call nvstring to convert booleans to string
* Fix wrong order of na, true, false arguments
* Add boolean column to gtest

* Update CHANGELOG.md for PR

* first draft of inequality_comparator to replace LesserRTTI

* fixed build issues

* Added optimization for inequality comparator so that it is faster if there are no nulls

* ENH: Support `GDF_BOOL8` in ORC reader

* Translate `orc::BOOLEAN` to `GDF_BOOL8`
* Remove no-longer-necessary type conversion in pytests

* WIP and compiles

* split nulls and non nulls operators. This increases compile time. Commiting here anyways for historical reasons

* fixed inequality_comparator, updated group by to use new equality_comparator, removed no longer needed null handling flag from context

* cleaned up

* updated CHANGELOG

* improved formatting and added changes that somehow did not make it in a previous commit

* fixed issues caused by formatting in previous commit

* Fix issue by handling multiindex in series groupby

* CHANGELOG

* CHANGELOG again

* refactored based on PR feedback and added more code documentation

* Change output datatype for count groupby to np.int32

* Add assert to ensure count() datatype is updated if gdf_size_type changes

* Add changelog entry

* Don't check for dtype when doing groupby-count

* Split device_atomics.cuh file

split the file into `device_atomics.cuh` and `device_operators.cuh`
separated the difinition of the device operators

* Remove atomicCASImpl(int8 or int16)

move atomicCASImpl(int8 or int16) into typesAtomicCASImpl

* Simplify `atomicAdd`

* Simplify atomicMin, atomixMax

simplify atomicMin, atomixMax
add cudf::bool8 for atomic test case for atomicAdd,Min,Max
add cudf::bool8 specialization for genericAtomicOperation

* Add more test coverage

* Simplify atomicAnd/Or/Xor

* Removed `genericAtomicOperationUnderlyingType`

* Remove `typesAtomicOperation32|64`

* Update doxygen texts for atomics

* Add '__forceinline__ __device__'

Add '__forceinline__ __device__' to `W genericAtomicOperator(W)`

* add static_assert for long long int size

Add size check assert between `long long int` and `int64_t`

* remove redundant `sizeof(T)` from `CASImpl`

remove redundant `sizeof(T)` when calling 'typesAtomicCASImpl`

* remove redundant `sizeof(T)` from `atomic op impl`

remove redundant `sizeof(T)` when calling 'genericAtomicOperationImpl`

* Add `genericAtomicOperationImpl(int64_t, Sum)`

Add native atomicAdd(uint64_t) call for sint64_t

* Add comment for impl of atomicAdd(int64_t)

Add comment for `genericAtomicOperationImpl<int64_t, DeviceSum, 8>`
 why it uses atomicAdd(uint64) inside

* Removed `genericAtomicOperation(W)`

Removed `genericAtomicOperation(W)` since it is not invoked for
 cudf::wrapper types.
Merged it into `genericAtomicOperation(T)`

Add size check assert at `type_reinterpret`.

* CHANGELOG.

* CHANGELOG.

* Don't check for dtype when doing groupby-count in test_string.pu

* Update CHANGELOG.md

Co-Authored-By: Keith Kraus <keith.j.kraus@gmail.com>

* update changelog

* Concatenate multiindexes.

* Use temporary buffer for `NvString:create_from_bool` for GDF_BOOL8

* No guarantee that `cudf::bool8` and `bool` are same type for cast

* Insane MultiIndex _concat method and many supporting tests.

* Fix style and CHANGELOG

* Add two more inverse tests.

* CSV reader: support specifying a subset of dtypes when using usecols parameter. Include C++ API changes

* Complete the support for partial dtype list w/ usecols. Expanded the test and refactored the dtype assignment.

* remove unused include

* Update CHANGELOG.md

* fix Python style

* Fix error cheking when setting the dtype array.

* implemented PR feedback

* Fix handling read only schema buffers in gpuarrow reader

* Changelog #

* Remove insane multiindex concatenation block and raise NotImplementedError instead.

* typo fixed

* Use one line list comprehension and eliminate shallow copies now that the _concat is not performed with levels/codes multiindices.

* One more single line fix

* Change the dtype behavior with usecols and list dtype parameter - user need to specify all column types, not just the active ones.

* format fix

* correct a comment

* Handle more generalized numpy input instead of forcing unsigned char

* Change test to use foreign memory similar to OmniSci

* Update CHANGELOG.md

* fixed build issue

* REL v0.7.2 release

* fix groupby count dtype issue

* maintain the original series name in series.unique output

* changelog

* ENH: Add test for cudf::bool8 in booleans gtest

* Fill mask with zeros when making a null column

* Fix merge

* Merge branch 'ohe-perf' of https://github.com/RFinkelberg/cudf into ohe-perf

# Please enter a commit message to explain why this merge is necessary,
# especially if it merges an updated upstream into a topic branch.
#
# Lines starting with '#' will be ignored, and an empty message aborts
# the commit.

* Some cleanup of bindings and fixes for s_v and v_s binops
karthikeyann pushed a commit that referenced this pull request Jun 27, 2019
Minor cudf serialization improvements
karthikeyann pushed a commit that referenced this pull request Aug 13, 2019
karthikeyann pushed a commit that referenced this pull request Oct 9, 2019
…tcher

Add string_view to type_dispatcher and traits
karthikeyann pushed a commit that referenced this pull request Nov 11, 2019
replace more to_gpu_array() calls
karthikeyann pushed a commit that referenced this pull request Nov 11, 2019
karthikeyann pushed a commit that referenced this pull request Feb 14, 2020
…on_column

[REVIEW] Full join issue with no common column
karthikeyann pushed a commit that referenced this pull request Apr 8, 2020
karthikeyann pushed a commit that referenced this pull request Jun 24, 2020
karthikeyann pushed a commit that referenced this pull request Jul 2, 2020
karthikeyann pushed a commit that referenced this pull request Jul 8, 2020
karthikeyann pushed a commit that referenced this pull request Jul 8, 2020
karthikeyann pushed a commit that referenced this pull request Jun 10, 2023
This implements stacktrace and adds a stacktrace string into any exception thrown by cudf. By doing so, the exception carries information about where it originated, allowing the downstream application to trace back with much less effort.

Closes NVIDIA#12422.

### Example:
```
#0: cudf/cpp/build/libcudf.so : std::unique_ptr<cudf::column, std::default_delete<cudf::column> > cudf::detail::sorted_order<false>(cudf::table_view, std::vector<cudf::order, std::allocator<cudf::order> > const&, std::vector<cudf::null_order, std::allocator<cudf::null_order> > const&, rmm::cuda_stream_view, rmm::mr::device_memory_resource*)+0x446
#1: cudf/cpp/build/libcudf.so : cudf::detail::sorted_order(cudf::table_view const&, std::vector<cudf::order, std::allocator<cudf::order> > const&, std::vector<cudf::null_order, std::allocator<cudf::null_order> > const&, rmm::cuda_stream_view, rmm::mr::device_memory_resource*)+0x113
#2: cudf/cpp/build/libcudf.so : std::unique_ptr<cudf::column, std::default_delete<cudf::column> > cudf::detail::segmented_sorted_order_common<(cudf::detail::sort_method)1>(cudf::table_view const&, cudf::column_view const&, std::vector<cudf::order, std::allocator<cudf::order> > const&, std::vector<cudf::null_order, std::allocator<cudf::null_order> > const&, rmm::cuda_stream_view, rmm::mr::device_memory_resource*)+0x66e
#3: cudf/cpp/build/libcudf.so : cudf::detail::segmented_sort_by_key(cudf::table_view const&, cudf::table_view const&, cudf::column_view const&, std::vector<cudf::order, std::allocator<cudf::order> > const&, std::vector<cudf::null_order, std::allocator<cudf::null_order> > const&, rmm::cuda_stream_view, rmm::mr::device_memory_resource*)+0x88
#4: cudf/cpp/build/libcudf.so : cudf::segmented_sort_by_key(cudf::table_view const&, cudf::table_view const&, cudf::column_view const&, std::vector<cudf::order, std::allocator<cudf::order> > const&, std::vector<cudf::null_order, std::allocator<cudf::null_order> > const&, rmm::mr::device_memory_resource*)+0xb9
#5: cudf/cpp/build/gtests/SORT_TEST : ()+0xe3027
#6: cudf/cpp/build/lib/libgtest.so.1.13.0 : void testing::internal::HandleExceptionsInMethodIfSupported<testing::Test, void>(testing::Test*, void (testing::Test::*)(), char const*)+0x8f
#7: cudf/cpp/build/lib/libgtest.so.1.13.0 : testing::Test::Run()+0xd6
#8: cudf/cpp/build/lib/libgtest.so.1.13.0 : testing::TestInfo::Run()+0x195
#9: cudf/cpp/build/lib/libgtest.so.1.13.0 : testing::TestSuite::Run()+0x109
#10: cudf/cpp/build/lib/libgtest.so.1.13.0 : testing::internal::UnitTestImpl::RunAllTests()+0x44f
#11: cudf/cpp/build/lib/libgtest.so.1.13.0 : bool testing::internal::HandleExceptionsInMethodIfSupported<testing::internal::UnitTestImpl, bool>(testing::internal::UnitTestImpl*, bool (testing::internal::UnitTestImpl::*)(), char const*)+0x87
#12: cudf/cpp/build/lib/libgtest.so.1.13.0 : testing::UnitTest::Run()+0x95
#13: cudf/cpp/build/gtests/SORT_TEST : ()+0xdb08c
#14: /lib/x86_64-linux-gnu/libc.so.6 : ()+0x29d90
#15: /lib/x86_64-linux-gnu/libc.so.6 : __libc_start_main()+0x80
NVIDIA#16: cudf/cpp/build/gtests/SORT_TEST : ()+0xdf3d5
```

### Usage

In order to retrieve a stacktrace with fully human-readable symbols, some compiling options must be adjusted. To make such adjustment convenient and effortless, a new cmake option (`CUDF_BUILD_STACKTRACE_DEBUG`) has been added. Just set this option to `ON` before building cudf and it will be ready to use.

For downstream applications, whenever a cudf-type exception is thrown, it can retrieve the stored stacktrace and do whatever it wants with it. For example:
```
try {
  // cudf API calls
} catch (cudf::logic_error const& e) {
  std::cout << e.what() << std::endl;
  std::cout << e.stacktrace() << std::endl;
  throw e;
} 
// similar with catching other exception types
```

### Follow-up work

The next step would be patching `rmm` to attach stacktrace into `rmm::` exceptions. Doing so will allow debugging various memory exceptions thrown from libcudf using their stacktrace.


### Note:
 * This feature doesn't require libcudf to be built in Debug mode.
 * The flag `CUDF_BUILD_STACKTRACE_DEBUG` should not be turned on in production as it may affect code optimization. Instead, libcudf compiled with that flag turned on should be used only when needed, when debugging cudf throwing exceptions.
 * This flag removes the current optimization flag from compiling (such as `-O2` or `-O3`, if in Release mode) and replaces by `-Og` (optimize for debugging).
 * If this option is not set to `ON`, the stacktrace will not be available. This is to avoid expensive stracktrace retrieval if the throwing exception is expected.

Authors:
  - Nghia Truong (https://github.com/ttnghia)

Approvers:
  - AJ Schmidt (https://github.com/ajschmidt8)
  - Robert Maynard (https://github.com/robertmaynard)
  - Vyas Ramasubramani (https://github.com/vyasr)
  - Jason Lowe (https://github.com/jlowe)

URL: NVIDIA#13298
karthikeyann pushed a commit that referenced this pull request Sep 24, 2023
Pin conda packages to `aws-sdk-cpp<1.11`. The recent upgrade in version `1.11.*` has caused several issues with cleaning up (more details on changes can be read in [this link](https://github.com/aws/aws-sdk-cpp#version-111-is-now-available)), leading to Distributed and Dask-CUDA processes to segfault. The stack for one of those crashes looks like the following:

```
(gdb) bt
#0  0x00007f5125359a0c in Aws::Utils::Logging::s_aws_logger_redirect_get_log_level(aws_logger*, unsigned int) () from /opt/conda/envs/dask/lib/python3.9/site-packages/pyarrow/../../.././libaws-cpp-sdk-core.so
#1  0x00007f5124968f83 in aws_event_loop_thread () from /opt/conda/envs/dask/lib/python3.9/site-packages/pyarrow/../../../././libaws-c-io.so.1.0.0
#2  0x00007f5124ad9359 in thread_fn () from /opt/conda/envs/dask/lib/python3.9/site-packages/pyarrow/../../../././libaws-c-common.so.1
#3  0x00007f519958f6db in start_thread () from /lib/x86_64-linux-gnu/libpthread.so.0
#4  0x00007f5198b1361f in clone () from /lib/x86_64-linux-gnu/libc.so.6
```

Such segfaults now manifest frequently in CI, and in some cases are reproducible with a hit rate of ~30%. Given the approaching release time, it's probably the safest option to just pin to an older version of the package while we don't pinpoint the exact cause for the issue and a patched build is released upstream.

The `aws-sdk-cpp` is statically-linked in the `pyarrow` pip package, which prevents us from using the same pinning technique. cuDF is currently pinned to `pyarrow=12.0.1` which seems to be built against `aws-sdk-cpp=1.10.*`, as per [recent build logs](https://github.com/apache/arrow/actions/runs/6276453828/job/17046177335?pr=37792#step:6:1372).

Authors:
  - Peter Andreas Entschev (https://github.com/pentschev)

Approvers:
  - GALI PREM SAGAR (https://github.com/galipremsagar)
  - Ray Douglass (https://github.com/raydouglass)

URL: NVIDIA#14173
karthikeyann pushed a commit that referenced this pull request Nov 10, 2023
karthikeyann pushed a commit that referenced this pull request Jul 31, 2025
As currently libcudf hides non-public symbols by default, stacktrace using C++ ABI `backtrace_symbols` no longer produces meaningful output. For example:
```
#0: gtests/STREAM_REDUCTION_TEST() [0x5bb586]
#1: gtests/STREAM_REDUCTION_TEST() [0x6a742d]
#2: gtests/STREAM_REDUCTION_TEST() [0x68a04e]
...
#8: /usr/lib64/libc.so.6 : __libc_start_main+0xe5
#9: gtests/STREAM_REDUCTION_TEST() [0x53419e]

unknown file: Failure
C++ exception with description "cudf_identify_stream_usage found unexpected stream!" thrown in the test body.
```

This PR removes completely the stacktrace generation code.

Closes NVIDIA#18831. Also closes NVIDIA#16724.

Authors:
  - Nghia Truong (https://github.com/ttnghia)
  - Vyas Ramasubramani (https://github.com/vyasr)

Approvers:
  - Vukasin Milovanovic (https://github.com/vuule)
  - Vyas Ramasubramani (https://github.com/vyasr)
  - Robert (Bobby) Evans (https://github.com/revans2)

URL: NVIDIA#19048
karthikeyann pushed a commit that referenced this pull request Oct 21, 2025
Fixes a out of bounds memory read on the `decode_page_data_generic` kernel.
Error shows up with `compute-sanitizer` with `HybridScanTest.PruneDataPagesOnlyAndScanAllColumns` using the following:
```
compute-sanitizer --tool memcheck gtests/HYBRID_SCAN --gtest_filter=HybridScanTest.PruneDataPagesOnlyAndScanAllColumns --rmm_mode=cuda
```
Partial output:
```
[ RUN      ] HybridScanTest.PruneDataPagesOnlyAndScanAllColumns
========= Invalid __global__ read of size 4 bytes
=========     at void cudf::io::parquet::detail::<unnamed>::decode_page_data_generic<unsigned char, (int)128, (cudf::io::parquet::detail::decode_kernel_mask)32>(cudf::io::parquet::detail::PageInfo *, cudf::device_span<const cudf::io::parquet::detail::ColumnChunkDesc, (unsigned long)18446744073709551615>, unsigned long, unsigned long, cudf::device_span<const bool, (unsigned long)18446744073709551615>, cudf::device_span<unsigned long, (unsigned long)18446744073709551615>, unsigned int *)+0x100d0 in decode_fixed.cu:1053
=========     by thread (0,0,0) in block (7,0,0)
=========     Access to 0x7065b66314ac is out of bounds
=========     and is 45 bytes after the nearest allocation at 0x7065b6631400 of size 128 bytes
=========     Saved host backtrace up to driver entry point at kernel launch time
=========         Host Frame: cudf::io::parquet::detail::decode_page_data(cudf::detail::hostdevice_span<cudf::io::parquet::detail::PageInfo>, cudf::detail::hostdevice_span<cudf::io::parquet::detail::ColumnChunkDesc const>, unsigned long, unsigned long, int, cudf::io::parquet::detail::decode_kernel_mask, cudf::device_span<bool const, 18446744073709551615ul>, cudf::device_span<unsigned long, 18446744073709551615ul>, unsigned int*, rmm::cuda_stream_view) [0xeb9dc4] in libcudf.so
=========         Host Frame: cudf::io::parquet::detail::reader_impl::decode_page_data(cudf::io::parquet::detail::reader_impl::read_mode, unsigned long, unsigned long)::{lambda(cudf::io::parquet::detail::decode_kernel_mask)#1}::operator()(cudf::io::parquet::detail::decode_kernel_mask) const [0xe22f79] in libcudf.so
=========         Host Frame: cudf::io::parquet::detail::reader_impl::decode_page_data(cudf::io::parquet::detail::reader_impl::read_mode, unsigned long, unsigned long) [0xe293f7] in libcudf.so
=========         Host Frame: cudf::io::table_with_metadata cudf::io::parquet::experimental::detail::hybrid_scan_reader_impl::read_chunk_internal<cudf::mutable_column_view>(cudf::io::parquet::detail::reader_impl::read_mode, cudf::io::parquet::experimental::detail::hybrid_scan_reader_impl::read_columns_mode, cudf::mutable_column_view) [0xdb6c8c] in libcudf.so
=========         Host Frame: cudf::io::parquet::experimental::detail::hybrid_scan_reader_impl::materialize_filter_columns(cudf::host_span<std::vector<int, std::allocator<int> > const, 18446744073709551615ul>, std::vector<rmm::device_buffer, std::allocator<rmm::device_buffer> >&&, cudf::mutable_column_view&, cudf::io::parquet::experimental::use_data_page_mask, cudf::io::parquet_reader_options const&, rmm::cuda_stream_view) [0xdb828f] in libcudf.so
=========         Host Frame: cudf::io::parquet::experimental::hybrid_scan_reader::materialize_filter_columns(cudf::host_span<int const, 18446744073709551615ul>, std::vector<rmm::device_buffer, std::allocator<rmm::device_buffer> >&&, cudf::mutable_column_view&, cudf::io::parquet::experimental::use_data_page_mask, cudf::io::parquet_reader_options const&, rmm::cuda_stream_view) const [0xd99139] in libcudf.so
 ...
```

Authors:
  - David Wendt (https://github.com/davidwendt)
  - Vyas Ramasubramani (https://github.com/vyasr)
  - Muhammad Haseeb (https://github.com/mhaseeb123)

Approvers:
  - Bradley Dice (https://github.com/bdice)
  - Muhammad Haseeb (https://github.com/mhaseeb123)
  - Vyas Ramasubramani (https://github.com/vyasr)

URL: NVIDIA#19995
karthikeyann pushed a commit that referenced this pull request Dec 22, 2025
Adds support for printing the duckDB query plan and changes the left join to inner join in Q17.

DuckDB Query 17 - Plan.
<details>

```
DuckDB Query 17 - Plan

┌───────────────────────────┐
│         PROJECTION        │
│    ────────────────────   │
│         avg_yearly        │
│                           │
│           ~1 row          │
└─────────────┬─────────────┘
┌─────────────┴─────────────┐
│    UNGROUPED_AGGREGATE    │
│    ────────────────────   │
│    Aggregates: sum(#0)    │
└─────────────┬─────────────┘
┌─────────────┴─────────────┐
│         PROJECTION        │
│    ────────────────────   │
│      l_extendedprice      │
│                           │
│     ~120,007,580 rows     │
└─────────────┬─────────────┘
┌─────────────┴─────────────┐
│         PROJECTION        │
│    ────────────────────   │
│             #1            │
│                           │
│     ~120,007,580 rows     │
└─────────────┬─────────────┘
┌─────────────┴─────────────┐
│           FILTER          │
│    ────────────────────   │
│  (l_quantity < SUBQUERY)  │
│                           │
│     ~120,007,580 rows     │
└─────────────┬─────────────┘
┌─────────────┴─────────────┐
│      LEFT_DELIM_JOIN      │
│    ────────────────────   │
│      Join Type: LEFT      │
│                           │
│        Conditions:        ├───────────────────────────────────────────┬──────────────────────────────────────────────────────────────────────────────────────┐
│ p_partkey IS NOT DISTINCT │                                           │                                                                                      │
│       FROM p_partkey      │                                           │                                                                                      │
│                           │                                           │                                                                                      │
│          ~0 rows          │                                           │                                                                                      │
└─────────────┬─────────────┘                                           │                                                                                      │
┌─────────────┴─────────────┐                             ┌─────────────┴─────────────┐                                                          ┌─────────────┴─────────────┐
│         HASH_JOIN         │                             │         HASH_JOIN         │                                                          │       HASH_GROUP_BY       │
│    ────────────────────   │                             │    ────────────────────   │                                                          │    ────────────────────   │
│      Join Type: INNER     │                             │      Join Type: LEFT      │                                                          │         Groups: #0        │
│                           │                             │                           │                                                          │                           │
│        Conditions:        ├──────────────┐              │        Conditions:        ├──────────────┐                                           │                           │
│   l_partkey = p_partkey   │              │              │ p_partkey IS NOT DISTINCT │              │                                           │                           │
│                           │              │              │       FROM p_partkey      │              │                                           │                           │
│                           │              │              │                           │              │                                           │                           │
│     ~120,007,580 rows     │              │              │          ~0 rows          │              │                                           │     ~108,768,418 rows     │
└─────────────┬─────────────┘              │              └─────────────┬─────────────┘              │                                           └───────────────────────────┘
┌─────────────┴─────────────┐┌─────────────┴─────────────┐┌─────────────┴─────────────┐┌─────────────┴─────────────┐
│       PARQUET_SCAN        ││       PARQUET_SCAN        ││      COLUMN_DATA_SCAN     ││         PROJECTION        │
│    ────────────────────   ││    ────────────────────   ││    ────────────────────   ││    ────────────────────   │
│         Function:         ││         Function:         ││                           ││  (0.2 * avg(l_quantity))  │
│        PARQUET_SCAN       ││        PARQUET_SCAN       ││                           ││         p_partkey         │
│                           ││                           ││                           ││                           │
│        Projections:       ││        Projections:       ││                           ││                           │
│         l_partkey         ││         p_partkey         ││                           ││                           │
│         l_quantity        ││                           ││                           ││                           │
│      l_extendedprice      ││          Filters:         ││                           ││                           │
│                           ││     p_brand='Brand#23'    ││                           ││                           │
│                           ││   p_container='MED BOX'   ││                           ││                           │
│                           ││                           ││                           ││                           │
│     ~600,037,902 rows     ││      ~4,000,000 rows      ││          ~0 rows          ││      ~54,384,209 rows     │
└───────────────────────────┘└───────────────────────────┘└───────────────────────────┘└─────────────┬─────────────┘
                                                                                       ┌─────────────┴─────────────┐
                                                                                       │         PROJECTION        │
                                                                                       │    ────────────────────   │
                                                                                       │__internal_decompress_integ│
                                                                                       │     ral_bigint(#0, 1)     │
                                                                                       │             #1            │
                                                                                       │                           │
                                                                                       │      ~54,384,209 rows     │
                                                                                       └─────────────┬─────────────┘
                                                                                       ┌─────────────┴─────────────┐
                                                                                       │       HASH_GROUP_BY       │
                                                                                       │    ────────────────────   │
                                                                                       │         Groups: #0        │
                                                                                       │    Aggregates: avg(#1)    │
                                                                                       │                           │
                                                                                       │      ~54,384,209 rows     │
                                                                                       └─────────────┬─────────────┘
                                                                                       ┌─────────────┴─────────────┐
                                                                                       │         PROJECTION        │
                                                                                       │    ────────────────────   │
                                                                                       │         p_partkey         │
                                                                                       │         l_quantity        │
                                                                                       │                           │
                                                                                       │     ~108,768,418 rows     │
                                                                                       └─────────────┬─────────────┘
                                                                                       ┌─────────────┴─────────────┐
                                                                                       │         PROJECTION        │
                                                                                       │    ────────────────────   │
                                                                                       │             #0            │
                                                                                       │__internal_compress_integra│
                                                                                       │     l_uinteger(#1, 1)     │
                                                                                       │                           │
                                                                                       │     ~108,768,418 rows     │
                                                                                       └─────────────┬─────────────┘
                                                                                       ┌─────────────┴─────────────┐
                                                                                       │         PROJECTION        │
                                                                                       │    ────────────────────   │
                                                                                       │         l_quantity        │
                                                                                       │         p_partkey         │
                                                                                       │                           │
                                                                                       │     ~108,768,418 rows     │
                                                                                       └─────────────┬─────────────┘
                                                                                       ┌─────────────┴─────────────┐
                                                                                       │         HASH_JOIN         │
                                                                                       │    ────────────────────   │
                                                                                       │      Join Type: INNER     │
                                                                                       │                           │
                                                                                       │        Conditions:        ├──────────────┐
                                                                                       │   l_partkey = p_partkey   │              │
                                                                                       │                           │              │
                                                                                       │     ~108,768,418 rows     │              │
                                                                                       └─────────────┬─────────────┘              │
                                                                                       ┌─────────────┴─────────────┐┌─────────────┴─────────────┐
                                                                                       │       PARQUET_SCAN        ││         DELIM_SCAN        │
                                                                                       │    ────────────────────   ││    ────────────────────   │
                                                                                       │         Function:         ││       Delim Index: 1      │
                                                                                       │        PARQUET_SCAN       ││                           │
                                                                                       │                           ││                           │
                                                                                       │        Projections:       ││                           │
                                                                                       │         l_partkey         ││                           │
                                                                                       │         l_quantity        ││                           │
                                                                                       │                           ││                           │
                                                                                       │     ~600,037,902 rows     ││     ~108,768,418 rows     │
                                                                                       └───────────────────────────┘└───────────────────────────┘
```

</details>

Authors:
  - Matthew Murray (https://github.com/Matt711)

Approvers:
  - Richard (Rick) Zamora (https://github.com/rjzamora)

URL: NVIDIA#20615
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

10 participants