Skip to content

Commit b622bdc

Browse files
committed
Phase 0 of adding array support
1 parent 723bf2d commit b622bdc

File tree

2 files changed

+20
-1
lines changed

2 files changed

+20
-1
lines changed

src/oatpp-postgresql/mapping/Deserializer.cpp

Lines changed: 18 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -69,7 +69,7 @@ Deserializer::Deserializer() {
6969
setDeserializerMethod(data::mapping::type::__class::AbstractObject::CLASS_ID, nullptr);
7070
setDeserializerMethod(data::mapping::type::__class::AbstractEnum::CLASS_ID, &Deserializer::deserializeEnum);
7171

72-
setDeserializerMethod(data::mapping::type::__class::AbstractVector::CLASS_ID, nullptr);
72+
setDeserializerMethod(data::mapping::type::__class::AbstractVector::CLASS_ID, &Deserializer::deserializeArray);
7373
setDeserializerMethod(data::mapping::type::__class::AbstractList::CLASS_ID, nullptr);
7474
setDeserializerMethod(data::mapping::type::__class::AbstractUnorderedSet::CLASS_ID, nullptr);
7575

@@ -314,4 +314,21 @@ oatpp::Void Deserializer::deserializeUuid(const Deserializer* _this, const InDat
314314

315315
}
316316

317+
oatpp::Void Deserializer::deserializeArray(const Deserializer* _this, const InData& data, const Type* type) {
318+
319+
(void) _this;
320+
(void) type;
321+
322+
switch(data.oid) {
323+
case FLOAT4ARRAYOID: return oatpp::Vector<Float32>();
324+
case FLOAT8ARRAYOID: return oatpp::Vector<Float64>();
325+
}
326+
327+
if(data.isNull) {
328+
return oatpp::postgresql::Uuid();
329+
}
330+
331+
return postgresql::Uuid((p_char8)data.data);
332+
}
333+
317334
}}}

src/oatpp-postgresql/mapping/Deserializer.hpp

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -96,6 +96,8 @@ class Deserializer {
9696

9797
static oatpp::Void deserializeUuid(const Deserializer* _this, const InData& data, const Type* type);
9898

99+
static oatpp::Void deserializeArray(const Deserializer* _this, const InData& data, const Type* type);
100+
99101
};
100102

101103
}}}

0 commit comments

Comments
 (0)