MCPcopy Create free account
hub / github.com/apache/impala / prepareMergeStatement

Function prepareMergeStatement

be/src/service/impala-http-handler-test.cc:691–726  ·  view source on GitHub ↗

Prepares query plan for an Iceberg merge statement. The root sink will be a merge sink, consisting of an HDFS writer and an Iceberg buffered delete sink. F00:PLAN FRAGMENT | MERGE SINK |->WRITE TO HDFS | |->BUFFERED DELETE FROM ICEBERG | 03:MERGE | 02:HASH JOIN | |--04:EXCHANGE | | | F01:PLAN FRAGMENT | 01:SCAN HDFS | 00:SCAN HDFS [functional_parquet.target, RANDOM] Expected JSON output for t

Source from the content-addressed store, hash-verified

689// ]
690// }
691static void prepareMergeStatement(const vector<string>& labels,
692 const vector<string>& label_details, vector<TPlanFragment>* fragments,
693 TExecSummary* summary) {
694 ASSERT_EQ(labels.size(), 5);
695 ASSERT_EQ(label_details.size(), 5);
696
697 // F00:PLAN FRAGMENT
698 TPlanFragment fragment00 = ImpalaHttpHandlerTest::createTPlanFragment(0);
699 TDataSink merge_sink = ImpalaHttpHandlerTest::createMergeSink(
700 {ImpalaHttpHandlerTest::createHdfsTableSink(),
701 ImpalaHttpHandlerTest::createIcebergDeleteTableSink()});
702 ImpalaHttpHandlerTest::addSinkToFragment(merge_sink, &fragment00, summary);
703 // 03:MERGE
704 ImpalaHttpHandlerTest::addNodeToFragment(
705 labels.at(0), label_details.at(0), 1, &fragment00, summary);
706 // 02:HASH JOIN
707 ImpalaHttpHandlerTest::addNodeToFragment(
708 labels.at(1), label_details.at(1), 2, &fragment00, summary);
709 // 04:EXCHANGE
710 ImpalaHttpHandlerTest::addNodeToFragment(
711 labels.at(2), label_details.at(2), 0, &fragment00, summary);
712 // 00:SCAN HDFS
713 ImpalaHttpHandlerTest::addNodeToFragment(
714 labels.at(3), label_details.at(3), 0, &fragment00, summary);
715 fragments->push_back(fragment00);
716
717 // F01:PLAN FRAGMENT
718 TPlanFragment fragment01 = ImpalaHttpHandlerTest::createTPlanFragment(1);
719 TDataSink stream_sink =
720 ImpalaHttpHandlerTest::createStreamSink(fragment00.plan.nodes[2].node_id);
721 ImpalaHttpHandlerTest::addSinkToFragment(stream_sink, &fragment01, summary);
722 // 01:SCAN HDFS
723 ImpalaHttpHandlerTest::addNodeToFragment(
724 labels.at(4), label_details.at(4), 0, &fragment01, summary);
725 fragments->push_back(fragment01);
726}
727
728} // namespace impala
729

Callers 1

TEST_FFunction · 0.85

Calls 2

push_backMethod · 0.80
sizeMethod · 0.45

Tested by

no test coverage detected