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

Method deSerialize

src/common/vector/value_vector.cpp:419–442  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

417}
418
419std::unique_ptr<ValueVector> ValueVector::deSerialize(Deserializer& deSer,
420 storage::MemoryManager* mm, std::shared_ptr<DataChunkState> dataChunkState) {
421 std::string key;
422 deSer.validateDebuggingInfo(key, "data_type");
423 auto dataType = LogicalType::deserialize(deSer);
424 auto result = std::make_unique<ValueVector>(std::move(dataType), mm);
425 result->setState(dataChunkState);
426 deSer.validateDebuggingInfo(key, "num_values");
427 sel_t numValues = 0;
428 deSer.deserializeValue<sel_t>(numValues);
429 result->state->getSelVectorUnsafe().setSelSize(numValues);
430 DASSERT(result->state->getSelVector().isUnfiltered());
431 bool isNull = false;
432 for (auto i = 0u; i < numValues; i++) {
433 deSer.deserializeValue<bool>(isNull);
434 result->setNull(i, isNull);
435 }
436 deSer.validateDebuggingInfo(key, "values");
437 for (auto i = 0u; i < numValues; i++) {
438 auto val = Value::deserialize(deSer);
439 result->copyFromValue(result->state->getSelVector()[i], *val);
440 }
441 return result;
442}
443
444template LBUG_API void ValueVector::setValue<nodeID_t>(uint32_t pos, nodeID_t val);
445template LBUG_API void ValueVector::setValue<bool>(uint32_t pos, bool val);

Callers

nothing calls this directly

Calls 6

validateDebuggingInfoMethod · 0.80
setStateMethod · 0.80
setSelSizeMethod · 0.80
isUnfilteredMethod · 0.80
copyFromValueMethod · 0.80
setNullMethod · 0.45

Tested by

no test coverage detected