zanmato1984 commented on code in PR #41335:
URL: https://github.com/apache/arrow/pull/41335#discussion_r1598791898


##########
cpp/src/arrow/compute/row/compare_internal.h:
##########
@@ -32,6 +32,13 @@ namespace compute {
 
 class ARROW_EXPORT KeyCompare {
  public:
+  // Clarify the max temp stack usage for CompareColumnsToRows so the caller 
could reserve
+  // enough size in advance.
+  constexpr static int64_t CompareColumnsToRowsTempStackUsage(int64_t 
num_rows) {
+    return (sizeof(uint8_t) + sizeof(uint8_t) + sizeof(uint8_t)) * num_rows +

Review Comment:
   They correspond to:
   
https://github.com/apache/arrow/blob/a715ea06b71ec206a987d7921264778e9954404b/cpp/src/arrow/compute/row/compare_internal.cc#L342-L347
   Will add more comment on this.
   
   > Also, elsewhere we multiple by kMiniBatchLength but here it seems we are 
adding kMiniBatchLength. Why the difference?
   
   The idea is to keep extra `kMiniBatchLength` bytes (to cope with stack 
aligning and padding) anyhow. Elsewhere using multiply is because the other 
parts are all in unit of `kMiniBatchLength` but this one is special - multiple 
of `num_rows` which can be arbitrary.



-- 
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-unsubscr...@arrow.apache.org

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org

Reply via email to