MCPcopy Create free account
hub / github.com/apache/orc / TestRangePredicates

Function TestRangePredicates

c++/test/TestPredicatePushdown.cc:71–119  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

69 }
70
71 void TestRangePredicates(Reader* reader) {
72 // Build search argument (x >= 300000 AND x < 600000) for column 'int1'.
73 // Test twice for using column name and column id respectively.
74 for (int k = 0; k < 2; ++k) {
75 std::unique_ptr<SearchArgument> sarg;
76 if (k == 0) {
77 sarg =
78 SearchArgumentFactory::newBuilder()
79 ->startAnd()
80 .startNot()
81 .lessThan("int1", PredicateDataType::LONG, Literal(static_cast<int64_t>(300000L)))
82 .end()
83 .lessThan("int1", PredicateDataType::LONG, Literal(static_cast<int64_t>(600000L)))
84 .end()
85 .build();
86 } else {
87 sarg = SearchArgumentFactory::newBuilder()
88 ->startAnd()
89 .startNot()
90 .lessThan(/*columnId=*/1, PredicateDataType::LONG,
91 Literal(static_cast<int64_t>(300000L)))
92 .end()
93 .lessThan(/*columnId=*/1, PredicateDataType::LONG,
94 Literal(static_cast<int64_t>(600000L)))
95 .end()
96 .build();
97 }
98
99 RowReaderOptions rowReaderOpts;
100 rowReaderOpts.searchArgument(std::move(sarg));
101 auto rowReader = reader->createRowReader(rowReaderOpts);
102
103 auto readBatch = rowReader->createRowBatch(2000);
104 auto& batch0 = dynamic_cast<StructVectorBatch&>(*readBatch);
105 auto& batch1 = dynamic_cast<LongVectorBatch&>(*batch0.fields[0]);
106 auto& batch2 = dynamic_cast<StringVectorBatch&>(*batch0.fields[1]);
107
108 EXPECT_EQ(true, rowReader->next(*readBatch));
109 EXPECT_EQ(1000, readBatch->numElements);
110 EXPECT_EQ(1000, rowReader->getRowNumber());
111 for (uint64_t i = 1000; i < 2000; ++i) {
112 EXPECT_EQ(300 * i, batch1.data[i - 1000]);
113 EXPECT_EQ(std::to_string(10 * i),
114 std::string(batch2.data[i - 1000], static_cast<size_t>(batch2.length[i - 1000])));
115 }
116 EXPECT_EQ(false, rowReader->next(*readBatch));
117 EXPECT_EQ(3500, rowReader->getRowNumber());
118 }
119 }
120
121 void TestNoRowsSelected(Reader* reader) {
122 // Look through the file with no rows selected: x < 0

Callers 1

TESTFunction · 0.85

Calls 9

LiteralClass · 0.85
searchArgumentMethod · 0.80
buildMethod · 0.65
endMethod · 0.65
nextMethod · 0.65
getRowNumberMethod · 0.65
to_stringFunction · 0.50
createRowReaderMethod · 0.45
createRowBatchMethod · 0.45

Tested by

no test coverage detected