MCPcopy Create free account
hub / github.com/bytedance/bolt / generateInputDataWithRowNumber

Method generateInputDataWithRowNumber

bolt/exec/fuzzer/AggregationFuzzerBase.cpp:334–368  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

332}
333
334std::vector<RowVectorPtr> AggregationFuzzerBase::generateInputDataWithRowNumber(
335 std::vector<std::string> names,
336 std::vector<TypePtr> types,
337 const CallableSignature& signature) {
338 names.push_back("row_number");
339 types.push_back(BIGINT());
340
341 auto generator = findInputGenerator(signature);
342
343 std::vector<RowVectorPtr> input;
344 auto size = vectorFuzzer_.getOptions().vectorSize;
345 bolt::test::VectorMaker vectorMaker{pool_.get()};
346 int64_t rowNumber = 0;
347 for (auto j = 0; j < FLAGS_num_batches; ++j) {
348 std::vector<VectorPtr> children;
349
350 if (generator != nullptr) {
351 children =
352 generator->generate(signature.args, vectorFuzzer_, rng_, pool_.get());
353 }
354
355 for (auto i = children.size(); i < types.size() - 1; ++i) {
356 children.push_back(vectorFuzzer_.fuzz(types[i], size));
357 }
358 children.push_back(vectorMaker.flatVector<int64_t>(
359 size, [&](auto /*row*/) { return rowNumber++; }));
360 input.push_back(vectorMaker.rowVector(names, children));
361 }
362
363 if (generator != nullptr) {
364 generator->reset();
365 }
366
367 return input;
368}
369
370// static
371exec::Split AggregationFuzzerBase::makeSplit(const std::string& filePath) {

Callers

nothing calls this directly

Calls 7

fuzzMethod · 0.80
rowVectorMethod · 0.80
push_backMethod · 0.45
getMethod · 0.45
generateMethod · 0.45
sizeMethod · 0.45
resetMethod · 0.45

Tested by

no test coverage detected