You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@arrow.apache.org by we...@apache.org on 2023/01/01 05:57:40 UTC
[arrow] branch master updated: GH-15141: [C++] fix for unstable test due to unstable sort (#15142)
This is an automated email from the ASF dual-hosted git repository.
westonpace pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/arrow.git
The following commit(s) were added to refs/heads/master by this push:
new 5a57e6dd1e GH-15141: [C++] fix for unstable test due to unstable sort (#15142)
5a57e6dd1e is described below
commit 5a57e6dd1e4b1d89ecabe86b45d063619a0f2f54
Author: Weston Pace <we...@gmail.com>
AuthorDate: Sat Dec 31 21:57:30 2022 -0800
GH-15141: [C++] fix for unstable test due to unstable sort (#15142)
The sorting done by orderby is not stable. This means, given the input:
a | b
--- | ---
1 | false
1 | true
the test could have generated both `[false, true]` and `[true, false]` for the `b` column. We likely did not encounter this before https://github.com/apache/arrow/commit/498b645e1d09306bf5399a9a019a5caa99513815 because the entire thing was run serially (even though there was a `parallel` option it was not setup correctly).
Now that things are properly running parallel the results are non-deterministic. We could remove the `b` column but I feel it is a better stress test to have at least one payload column. So I changed the test to only compare the key array and not the payload array.
* Closes: #15141
Authored-by: Weston Pace <we...@gmail.com>
Signed-off-by: Weston Pace <we...@gmail.com>
---
cpp/src/arrow/compute/exec/plan_test.cc | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/cpp/src/arrow/compute/exec/plan_test.cc b/cpp/src/arrow/compute/exec/plan_test.cc
index 6db069cd9f..2db6c78d4c 100644
--- a/cpp/src/arrow/compute/exec/plan_test.cc
+++ b/cpp/src/arrow/compute/exec/plan_test.cc
@@ -808,7 +808,9 @@ TEST(ExecPlanExecution, StressSourceOrderBy) {
TableFromExecBatches(input_schema, random_data.batches));
ASSERT_OK_AND_ASSIGN(auto sort_indices, SortIndices(original, options));
ASSERT_OK_AND_ASSIGN(auto expected, Take(original, sort_indices));
- AssertTablesEqual(*actual, *expected.table());
+ AssertSchemaEqual(actual->schema(), expected.table()->schema());
+ AssertArraysEqual(*actual->column(0)->chunk(0),
+ *expected.table()->column(0)->chunk(0));
}
}
}