| 355 | #endif |
| 356 | |
| 357 | TEST(TestMatch, columnSelectionTest) { |
| 358 | ReaderOptions readerOpts; |
| 359 | RowReaderOptions rowReaderOpts; |
| 360 | std::list<uint64_t> includes; |
| 361 | for (uint64_t i = 0; i < 9; i += 2) { |
| 362 | includes.push_back(i); |
| 363 | } |
| 364 | rowReaderOpts.include(includes); |
| 365 | std::string filename = findExample("demo-11-none.orc"); |
| 366 | std::unique_ptr<Reader> reader = |
| 367 | createReader(readLocalFile(filename, readerOpts.getReaderMetrics()), readerOpts); |
| 368 | std::unique_ptr<RowReader> rowReader = reader->createRowReader(rowReaderOpts); |
| 369 | |
| 370 | EXPECT_EQ(CompressionKind_NONE, reader->getCompression()); |
| 371 | EXPECT_EQ(256 * 1024, reader->getCompressionSize()); |
| 372 | EXPECT_EQ(385, reader->getNumberOfStripes()); |
| 373 | EXPECT_EQ(1920800, reader->getNumberOfRows()); |
| 374 | EXPECT_EQ(10000, reader->getRowIndexStride()); |
| 375 | EXPECT_EQ(5069718, reader->getContentLength()); |
| 376 | EXPECT_EQ(filename, reader->getStreamName()); |
| 377 | EXPECT_THAT(reader->getMetadataKeys(), testing::IsEmpty()); |
| 378 | EXPECT_FALSE(reader->hasMetadataValue("foo")); |
| 379 | EXPECT_EQ(18446744073709551615UL, rowReader->getRowNumber()); |
| 380 | |
| 381 | const Type& rootType = reader->getType(); |
| 382 | EXPECT_EQ(0, rootType.getColumnId()); |
| 383 | EXPECT_EQ(STRUCT, rootType.getKind()); |
| 384 | ASSERT_EQ(9, rootType.getSubtypeCount()); |
| 385 | EXPECT_EQ("_col0", rootType.getFieldName(0)); |
| 386 | EXPECT_EQ("_col1", rootType.getFieldName(1)); |
| 387 | EXPECT_EQ("_col2", rootType.getFieldName(2)); |
| 388 | EXPECT_EQ("_col3", rootType.getFieldName(3)); |
| 389 | EXPECT_EQ("_col4", rootType.getFieldName(4)); |
| 390 | EXPECT_EQ("_col5", rootType.getFieldName(5)); |
| 391 | EXPECT_EQ("_col6", rootType.getFieldName(6)); |
| 392 | EXPECT_EQ("_col7", rootType.getFieldName(7)); |
| 393 | EXPECT_EQ("_col8", rootType.getFieldName(8)); |
| 394 | EXPECT_EQ(INT, rootType.getSubtype(0)->getKind()); |
| 395 | EXPECT_EQ(STRING, rootType.getSubtype(1)->getKind()); |
| 396 | EXPECT_EQ(STRING, rootType.getSubtype(2)->getKind()); |
| 397 | EXPECT_EQ(STRING, rootType.getSubtype(3)->getKind()); |
| 398 | EXPECT_EQ(INT, rootType.getSubtype(4)->getKind()); |
| 399 | EXPECT_EQ(STRING, rootType.getSubtype(5)->getKind()); |
| 400 | EXPECT_EQ(INT, rootType.getSubtype(6)->getKind()); |
| 401 | EXPECT_EQ(INT, rootType.getSubtype(7)->getKind()); |
| 402 | EXPECT_EQ(INT, rootType.getSubtype(8)->getKind()); |
| 403 | for (unsigned int i = 0; i < 9; ++i) { |
| 404 | EXPECT_EQ(i + 1, rootType.getSubtype(i)->getColumnId()) << "fail on " << i; |
| 405 | } |
| 406 | |
| 407 | const std::vector<bool> selected = rowReader->getSelectedColumns(); |
| 408 | EXPECT_EQ(true, selected[0]) << "fail on " << 0; |
| 409 | for (size_t i = 1; i < 10; ++i) { |
| 410 | EXPECT_EQ(i % 2 == 1 ? true : false, selected[i]) << "fail on " << i; |
| 411 | } |
| 412 | |
| 413 | unsigned long rowCount = 0; |
| 414 | std::unique_ptr<ColumnVectorBatch> batch = rowReader->createRowBatch(1024); |
nothing calls this directly
no test coverage detected