MCPcopy Create free account
hub / github.com/apache/arrow / HashJoinSimple

Function HashJoinSimple

cpp/src/arrow/acero/hash_join_node_test.cc:877–910  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

875}
876
877std::shared_ptr<Table> HashJoinSimple(
878 ExecContext* ctx, JoinType join_type, const std::vector<JoinKeyCmp>& cmp,
879 int num_key_fields, const std::vector<int32_t>& key_id_l,
880 const std::vector<int32_t>& key_id_r,
881 const std::vector<std::shared_ptr<Array>>& original_l,
882 const std::vector<std::shared_ptr<Array>>& original_r,
883 const std::vector<std::shared_ptr<Array>>& l,
884 const std::vector<std::shared_ptr<Array>>& r, const std::vector<int>& output_ids_l,
885 const std::vector<int>& output_ids_r, int64_t output_length_limit,
886 bool* length_limit_reached) {
887 std::vector<std::shared_ptr<Array>> key_l(num_key_fields);
888 std::vector<std::shared_ptr<Array>> key_r(num_key_fields);
889 for (int i = 0; i < num_key_fields; ++i) {
890 key_l[i] = original_l[i];
891 key_r[i] = original_r[i];
892 }
893 std::vector<bool> null_key_l = NullInKey(cmp, key_l);
894 std::vector<bool> null_key_r = NullInKey(cmp, key_r);
895
896 std::vector<int32_t> row_ids_l;
897 std::vector<int32_t> row_ids_r;
898 HashJoinSimpleInt(join_type, key_id_l, null_key_l, key_id_r, null_key_r, &row_ids_l,
899 &row_ids_r, output_length_limit, length_limit_reached);
900
901 std::vector<std::shared_ptr<Array>> result = ConstructJoinOutputFromRowIds(
902 ctx, row_ids_l, row_ids_r, l, r, output_ids_l, output_ids_r);
903
904 std::vector<std::shared_ptr<Field>> fields(result.size());
905 for (size_t i = 0; i < result.size(); ++i) {
906 fields[i] = std::make_shared<Field>("a" + std::to_string(i), result[i]->type(), true);
907 }
908 std::shared_ptr<Schema> schema = std::make_shared<Schema>(std::move(fields));
909 return Table::Make(schema, result, result[0]->length());
910}
911
912Result<std::vector<ExecBatch>> HashJoinWithExecPlan(
913 Random64Bit& rng, bool parallel, const HashJoinNodeOptions& join_options,

Callers 1

TESTFunction · 0.85

Calls 8

NullInKeyFunction · 0.85
HashJoinSimpleIntFunction · 0.85
to_stringFunction · 0.85
MakeFunction · 0.50
sizeMethod · 0.45
typeMethod · 0.45
lengthMethod · 0.45

Tested by

no test coverage detected