diff --git a/services/distributeddataservice/service/data_share/gaussdb_rd/src/interface/src/document_store.cpp b/services/distributeddataservice/service/data_share/gaussdb_rd/src/interface/src/document_store.cpp index 83dac352cad366aa5118b9e6b90b47bcb58e496a..fe2d1ded4b75c70a510f38a8e7bb3c80bffbb702 100644 --- a/services/distributeddataservice/service/data_share/gaussdb_rd/src/interface/src/document_store.cpp +++ b/services/distributeddataservice/service/data_share/gaussdb_rd/src/interface/src/document_store.cpp @@ -620,47 +620,75 @@ Collection DocumentStore::GetCollection(std::string &collectionName) return Collection(collectionName, executor_); } -int JudgeViewType(const size_t &index, ValueObject &leafItem, bool &viewType) +int JudgeBoolViewType(const size_t index, ValueObject &leafItem, bool &viewType) { + if (leafItem.GetBoolValue()) { + if (index != 0 && !viewType) { + return -E_INVALID_ARGS; + } + viewType = true; + } else { + if (index != 0 && viewType) { + return -E_INVALID_ARGS; + } + viewType = false; + } + return E_OK; +} + +int JudgeStringViewType(const size_t index, ValueObject &leafItem, bool &viewType) +{ + if (leafItem.GetStringValue() == "") { + if (index != 0 && !viewType) { + return -E_INVALID_ARGS; + } + viewType = true; + } else { + return -E_INVALID_ARGS; + } + return E_OK; +} + +int JudgeIntViewType(const size_t index, ValueObject &leafItem, bool &viewType) +{ + if (leafItem.GetIntValue() == 0) { + if (index != 0 && viewType) { + return -E_INVALID_ARGS; + } + viewType = false; + } else { + if (index != 0 && !viewType) { + return -E_INVALID_ARGS; + } + viewType = true; + } + return E_OK; +} + +int JudgeViewType(const size_t index, ValueObject &leafItem, bool &viewType) +{ + int errCode = E_OK; switch (leafItem.GetValueType()) { case ValueObject::ValueType::VALUE_BOOL: - if (leafItem.GetBoolValue()) { - if (index != 0 && !viewType) { - return -E_INVALID_ARGS; - } - viewType = true; - } else { - if (index != 0 && viewType) { - return E_INVALID_ARGS; - } - viewType = false; + errCode = JudgeBoolViewType(index, leafItem, viewType); + if (errCode != E_OK) { + return errCode; } break; case ValueObject::ValueType::VALUE_STRING: - if (leafItem.GetStringValue() == "") { - if (index != 0 && !viewType) { - return -E_INVALID_ARGS; - } - viewType = true; - } else { - return -E_INVALID_ARGS; + errCode = JudgeStringViewType(index, leafItem, viewType); + if (errCode != E_OK) { + return errCode; } break; case ValueObject::ValueType::VALUE_NUMBER: - if (leafItem.GetIntValue() == 0) { - if (index != 0 && viewType) { - return -E_INVALID_ARGS; - } - viewType = false; - } else { - if (index != 0 && !viewType) { - return E_INVALID_ARGS; - } - viewType = true; + errCode = JudgeIntViewType(index, leafItem, viewType); + if (errCode != E_OK) { + return errCode; } break; default: - return E_INVALID_ARGS; + return -E_INVALID_ARGS; } return E_OK; } @@ -669,7 +697,7 @@ int GetViewType(JsonObject &jsonObj, bool &viewType) { std::vector leafValue = JsonCommon::GetLeafValue(jsonObj); if (leafValue.size() == 0) { - return E_INVALID_ARGS; + return -E_INVALID_ARGS; } int ret = E_OK; for (size_t i = 0; i < leafValue.size(); i++) { @@ -823,7 +851,7 @@ int DocumentStore::EraseCollection(const std::string &collectionName) return E_OK; } GLOGE("erase collection failed"); - return E_INVALID_ARGS; + return -E_INVALID_ARGS; } void DocumentStore::OnClose(const std::function ¬ifier)