michalursa commented on code in PR #13493:
URL: https://github.com/apache/arrow/pull/13493#discussion_r918457704


##########
cpp/src/arrow/compute/exec/hash_join_node.cc:
##########
@@ -654,6 +655,33 @@ struct BloomFilterPushdownContext {
     FilterFinishedCallback on_finished_;
   } eval_;
 };
+bool HashJoinSchema::HasDictionaries() const {
+  for (int side = 0; side <= 1; ++side) {
+    for (int icol = 0; icol < 
proj_maps[side].num_cols(HashJoinProjection::INPUT);
+         ++icol) {
+      const std::shared_ptr<DataType>& column_type =
+          proj_maps[side].data_type(HashJoinProjection::INPUT, icol);
+      if (column_type->id() == Type::DICTIONARY) {
+        return true;
+      }
+    }
+  }
+  return false;
+}
+
+bool HashJoinSchema::HasLargeBinary() const {
+  for (int side = 0; side <= 1; ++side) {
+    for (int icol = 0; icol < 
proj_maps[side].num_cols(HashJoinProjection::INPUT);
+         ++icol) {
+      const std::shared_ptr<DataType>& column_type =
+          proj_maps[side].data_type(HashJoinProjection::INPUT, icol);
+      if (is_large_binary_like(column_type->id())) {
+        return true;
+      }
+    }
+  }
+  return false;
+}

Review Comment:
   I would rather move the class declaration from hash_join.h to 
hash_join_node.h.
   HashJoinBasicImpl in hash_join.cc doesn't need it anymore (and same for 
SwissJoin), so HashJoinNode is the only user of that class now.



-- 
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]

Reply via email to