| 299 | } |
| 300 | |
| 301 | void Plan::AddTableScan(const TableName& table_name) { |
| 302 | const Table& table = schema_.GetTable(table_name); |
| 303 | const vector<Block>& blocks = table.blocks; |
| 304 | for (int i = 0; i < blocks.size(); ++i) { |
| 305 | const Block& block = blocks[i]; |
| 306 | TScanRangeLocationList scan_range_locations; |
| 307 | BuildTScanRangeLocationList(table_name, block, i, table.naming_policy, |
| 308 | &scan_range_locations); |
| 309 | scan_range_specs_.concrete_ranges.push_back(scan_range_locations); |
| 310 | } |
| 311 | const vector<FileSplitGeneratorSpec>& specs = table.specs; |
| 312 | for (int i = 0; i < specs.size(); ++i) { |
| 313 | const FileSplitGeneratorSpec& file_spec = specs[i]; |
| 314 | TFileSplitGeneratorSpec spec; |
| 315 | BuildScanRangeSpec(table_name, file_spec, i, table.naming_policy, &spec); |
| 316 | scan_range_specs_.split_specs.push_back(spec); |
| 317 | } |
| 318 | } |
| 319 | |
| 320 | void Plan::BuildTScanRangeLocationList(const TableName& table_name, const Block& block, |
| 321 | int block_idx, BlockNamingPolicy naming_policy, |
no test coverage detected