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

Method ensureErrorsVectorSize

bolt/expression/EvalCtx.cpp:120–144  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

118}
119
120void EvalCtx::ensureErrorsVectorSize(ErrorVectorPtr& vector, vector_size_t size)
121 const {
122 auto oldSize = vector ? vector->size() : 0;
123 if (!vector) {
124 vector = std::make_shared<ErrorVector>(
125 pool(),
126 OpaqueType::create<void>(),
127 AlignedBuffer::allocate<bool>(size, pool(), false) /*nulls*/,
128 size /*length*/,
129 AlignedBuffer::allocate<ErrorVector::value_type>(
130 size, pool(), ErrorVector::value_type()),
131 std::vector<BufferPtr>(0),
132 SimpleVectorStats<std::shared_ptr<void>>{},
133 1 /*distinctValueCount*/,
134 size /*nullCount*/,
135 false /*isSorted*/,
136 size /*representedBytes*/);
137 } else if (vector->size() < size) {
138 vector->resize(size, false);
139 // Set all new positions to null, including the one to be set.
140 for (auto i = oldSize; i < size; ++i) {
141 vector->setNull(i, true);
142 }
143 }
144}
145
146void EvalCtx::addError(
147 vector_size_t index,

Callers 2

evalArgsDefaultNullsMethod · 0.80
TEST_FFunction · 0.80

Calls 4

poolFunction · 0.50
sizeMethod · 0.45
resizeMethod · 0.45
setNullMethod · 0.45

Tested by 1

TEST_FFunction · 0.64