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

ARROW-17412: [C++] AsofJoin multiple keys and types #13880

Merged
merged 29 commits into from
Sep 8, 2022
Merged
Show file tree
Hide file tree
Changes from 25 commits
Commits
Show all changes
29 commits
Select commit Hold shift + click to select a range
20607a8
AsOfJoin support for integer, floating, and timestamp types
rtpsw Aug 7, 2022
f4c450d
fix basic test coverage
rtpsw Aug 7, 2022
0dc0971
test more types
rtpsw Aug 8, 2022
c768376
AsofJoinNode error checks, test cases, docs
rtpsw Aug 9, 2022
cde1d25
AsofJoinNode multi-key support
rtpsw Aug 15, 2022
e8177a3
ARROW-17412: [C++] AsofJoin multiple keys and types
rtpsw Aug 15, 2022
d4f06bd
fix method overload conflict
rtpsw Aug 15, 2022
f37b3c6
AsofJoin additional temporal types, tests, cleanups
rtpsw Aug 17, 2022
167fb55
AsofJoin additional temporal types, tests, cleanups
rtpsw Aug 19, 2022
aab623d
AsofJoin var-binary types with tests, Hashing32/64 large offsets
rtpsw Aug 21, 2022
ca350d9
cleanup
rtpsw Aug 21, 2022
8881cdf
AsofJoin var-binary types with tests, Hashing32/64 large offsets, cle…
rtpsw Aug 21, 2022
7174688
sanitize
rtpsw Aug 21, 2022
c3d71e0
AsofJoin test time limit
rtpsw Aug 21, 2022
82b5a32
AsofJoin support/test for null values, null by-key, out-of-order on-key
rtpsw Aug 23, 2022
0a9a6b6
AsofJoin fixes for nullable and out-of-order by-key
rtpsw Aug 24, 2022
7e7398c
requested fixes
rtpsw Aug 25, 2022
faf7949
more requested fixes
rtpsw Aug 25, 2022
519f6fa
clean up tests
rtpsw Aug 25, 2022
494c57c
more fixes
rtpsw Aug 27, 2022
3d4afda
AsofJoin empty-key support and tests
rtpsw Aug 28, 2022
053cbad
fix compilation warning
rtpsw Aug 28, 2022
dad8e36
AsofJoinNode initialization cleanup
rtpsw Aug 30, 2022
8bee234
fix override
rtpsw Aug 31, 2022
9abb02e
rehashing on null by-key, cleaner user API
rtpsw Sep 2, 2022
a912128
requested fixes
rtpsw Sep 2, 2022
c0a492d
Merge branch 'master' into ARROW-17412
rtpsw Sep 2, 2022
a371f8c
fix queue initialization
rtpsw Sep 3, 2022
3cd3042
add doc
rtpsw Sep 8, 2022
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
15 changes: 8 additions & 7 deletions cpp/src/arrow/array/data.h
Original file line number Diff line number Diff line change
Expand Up @@ -167,6 +167,11 @@ struct ARROW_EXPORT ArrayData {

std::shared_ptr<ArrayData> Copy() const { return std::make_shared<ArrayData>(*this); }

bool IsNull(int64_t i) const {
return ((buffers[0] != NULLPTR) ? !bit_util::GetBit(buffers[0]->data(), i + offset)
: null_count.load() == length);
}

// Access a buffer's data as a typed C pointer
template <typename T>
inline const T* GetValues(int i, int64_t absolute_offset) const {
Expand Down Expand Up @@ -324,18 +329,14 @@ struct ARROW_EXPORT ArraySpan {
return GetValues<T>(i, this->offset);
}

bool IsNull(int64_t i) const {
return ((this->buffers[0].data != NULLPTR)
? !bit_util::GetBit(this->buffers[0].data, i + this->offset)
: this->null_count == this->length);
}

bool IsValid(int64_t i) const {
inline bool IsValid(int64_t i) const {
return ((this->buffers[0].data != NULLPTR)
? bit_util::GetBit(this->buffers[0].data, i + this->offset)
: this->null_count != this->length);
}

inline bool IsNull(int64_t i) const { return !IsValid(i); }

std::shared_ptr<ArrayData> ToArrayData() const;

std::shared_ptr<Array> ToArray() const;
Expand Down
2 changes: 1 addition & 1 deletion cpp/src/arrow/compute/exec/asof_join_benchmark.cc
Original file line number Diff line number Diff line change
Expand Up @@ -109,7 +109,7 @@ static void TableJoinOverhead(benchmark::State& state,

static void AsOfJoinOverhead(benchmark::State& state) {
int64_t tolerance = 0;
AsofJoinNodeOptions options = AsofJoinNodeOptions(kTimeCol, kKeyCol, tolerance);
AsofJoinNodeOptions options = AsofJoinNodeOptions(kTimeCol, {kKeyCol}, tolerance);
TableJoinOverhead(
state,
TableGenerationProperties{int(state.range(0)), int(state.range(1)),
Expand Down
Loading