zanmato1984 commented on code in PR #42188:
URL: https://github.com/apache/arrow/pull/42188#discussion_r1650973410
##########
cpp/src/arrow/compute/row/compare_test.cc:
##########
@@ -164,5 +166,126 @@ TEST(KeyCompare, CompareColumnsToRowsTempStackUsage) {
}
}
+// Compare columns to rows at offsets over 2GB within a row table.
+// Certain AVX2 instructions may behave unexpectedly causing troubles like
GH-41813.
+TEST(KeyCompare, CompareColumnsToRowsLarge) {
+ if constexpr (sizeof(void*) == 4) {
+ GTEST_SKIP() << "Test only works on 64-bit platforms";
+ }
+
+ // The idea of this case is to create a row table using several fixed length
columns and
+ // one var length column (so the row is hence var length and has offset
buffer), with
+ // the overall data size exceeding 2GB. Then compare each row with itself.
+ constexpr int64_t two_gb = 2ll * 1024ll * 1024ll * 1024ll;
+ // The compare function requires the row id of the left column to be
uint16_t, hence the
+ // number of rows.
+ constexpr int64_t num_rows = std::numeric_limits<uint16_t>::max() + 1;
+ // TODO: This test will fail if we switch the order between uint64 and
uint32.
Review Comment:
Verified to be a mis-use. TODO removed.
--
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: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]