| 73 | } |
| 74 | |
| 75 | std::vector<std::optional<StringView>> getDataFromFile() { |
| 76 | const std::string sample(getExampleFilePath("str_sort.parquet")); |
| 77 | auto rowType = ROW({"query_sig", "result_sig"}, {VARCHAR(), VARCHAR()}); |
| 78 | auto pool = memory::memoryManager()->addLeafPool(); |
| 79 | bytedance::bolt::dwio::common::ReaderOptions readerOptions{pool.get()}; |
| 80 | bytedance::bolt::parquet::ParquetReader reader = |
| 81 | createReader(sample, readerOptions); |
| 82 | auto rowReaderOpts = getReaderOpts(rowType); |
| 83 | auto scanSpec = makeScanSpec(rowType); |
| 84 | rowReaderOpts.setScanSpec(scanSpec); |
| 85 | auto rowReader = reader.createRowReader(rowReaderOpts); |
| 86 | auto data = BaseVector::create(rowType, 50000, pool.get()); |
| 87 | rowReader->next(50000, data); |
| 88 | auto querySigCol = |
| 89 | data->as<RowVector>()->childAt(0)->asFlatVector<StringView>(); |
| 90 | auto resSigCol = |
| 91 | data->as<RowVector>()->childAt(1)->asFlatVector<StringView>(); |
| 92 | std::vector<std::optional<StringView>> stdVector(querySigCol->size()); |
| 93 | for (int i = 0; i < querySigCol->size(); i++) { |
| 94 | auto merge = |
| 95 | querySigCol->valueAt(i).getString() + resSigCol->valueAt(i).getString(); |
| 96 | stdVector[i] = StringView(merge); |
| 97 | } |
| 98 | return stdVector; |
| 99 | } |
| 100 | |
| 101 | std::vector<char*> store( |
| 102 | bolt::exec::RowContainer& rowContainer, |
no test coverage detected