MCPcopy Create free account
hub / github.com/LadybugDB/ladybug / insert

Method insert

src/processor/operator/persistent/index_builder.cpp:142–169  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

140}
141
142void IndexBuilder::insert(const ColumnChunkData& chunk,
143 const std::vector<ColumnChunkData*>& warningData, offset_t nodeOffset, offset_t numNodes,
144 NodeBatchInsertErrorHandler& errorHandler) {
145 TypeUtils::visit(
146 chunk.getDataType().getPhysicalType(),
147 [&]<HashablePrimitive T>(T) {
148 for (auto i = 0u; i < numNodes; i++) {
149 if (checkNonNullConstraint(chunk, warningData, nodeOffset, i, errorHandler)) {
150 auto value = chunk.getValue<T>(i);
151 localBuffers.insert(value, nodeOffset + i,
152 getWarningDataFromChunks(warningData, i), errorHandler);
153 }
154 }
155 },
156 [&](string_t) {
157 auto& stringColumnChunk = dynamic_cast_checked<const StringChunkData&>(chunk);
158 for (auto i = 0u; i < numNodes; i++) {
159 if (checkNonNullConstraint(chunk, warningData, nodeOffset, i, errorHandler)) {
160 auto value = stringColumnChunk.getValue<std::string>(i);
161 localBuffers.insert(std::move(value), nodeOffset + i,
162 getWarningDataFromChunks(warningData, i), errorHandler);
163 }
164 }
165 },
166 [&](auto) {
167 throw CopyException(ExceptionMessage::invalidPKType(chunk.getDataType().toString()));
168 });
169}
170
171void IndexBuilder::finishedProducing(NodeBatchInsertErrorHandler& errorHandler) {
172 localBuffers.flush(errorHandler);

Calls 5

getWarningDataFromChunksFunction · 0.85
getDataTypeMethod · 0.80
visitFunction · 0.50
getPhysicalTypeMethod · 0.45
toStringMethod · 0.45

Tested by

no test coverage detected