diff --git a/services/distributeddataservice/service/data_share/gaussdb_rd/src/executor/document/check_common.cpp b/services/distributeddataservice/service/data_share/gaussdb_rd/src/executor/document/check_common.cpp index b65452a3da6cbcf586e8062c9b19fb5cfcf67904..70792700ec194e17c76618093c9ba59d20071c24 100644 --- a/services/distributeddataservice/service/data_share/gaussdb_rd/src/executor/document/check_common.cpp +++ b/services/distributeddataservice/service/data_share/gaussdb_rd/src/executor/document/check_common.cpp @@ -83,8 +83,7 @@ int CheckCommon::CheckFilter(JsonObject &filterObj, bool &isOnlyId, std::vector< return -E_INVALID_ARGS; } } - int errCode = E_OK; - if (!filterObj.GetObjectItem("_id", errCode).GetNext().IsNull() && errCode != E_OK) { + if (!filterObj.GetChild().GetNext().IsNull()) { // check contained other field at the same level as the id node isOnlyId = false; } for (size_t i = 0; i < filterPath.size(); i++) { @@ -141,8 +140,11 @@ int CheckCommon::CheckDocument(JsonObject &documentObj) } bool isIdExist = true; int ret = CheckIdFormat(documentObj, isIdExist); - if (!isIdExist || ret != E_OK) { + if (!isIdExist) { GLOGE("Document Id format is illegal"); + return -E_INVALID_ARGS; + } + if (ret != E_OK) { return ret; } JsonObject documentObjChild = documentObj.GetChild(); diff --git a/services/distributeddataservice/service/data_share/gaussdb_rd/src/executor/document/grd_document_api.cpp b/services/distributeddataservice/service/data_share/gaussdb_rd/src/executor/document/grd_document_api.cpp index 6bf152277f01eeeb88cd8e808814df1ab9819582..9c6cadda6ce47ba7a4886b7b64aacafda742908f 100644 --- a/services/distributeddataservice/service/data_share/gaussdb_rd/src/executor/document/grd_document_api.cpp +++ b/services/distributeddataservice/service/data_share/gaussdb_rd/src/executor/document/grd_document_api.cpp @@ -116,7 +116,6 @@ int32_t GRD_FindDoc(GRD_DB *db, const char *collectionName, Query query, uint32_ int ret = db->store_->FindDocument(collectionName, query.filter, query.projection, flags, grdResultSet); if (ret != E_OK) { delete grdResultSet; - *resultSet = nullptr; return TransferDocErr(ret); } *resultSet = grdResultSet; diff --git a/services/distributeddataservice/service/data_share/gaussdb_rd/test/unittest/api/documentdb_insert_test.cpp b/services/distributeddataservice/service/data_share/gaussdb_rd/test/unittest/api/documentdb_insert_test.cpp index 4dc404b81339ee55166e9761fd428349624e8b10..54be32da739f55f4338a71f2c3d56ef418f664a8 100644 --- a/services/distributeddataservice/service/data_share/gaussdb_rd/test/unittest/api/documentdb_insert_test.cpp +++ b/services/distributeddataservice/service/data_share/gaussdb_rd/test/unittest/api/documentdb_insert_test.cpp @@ -820,4 +820,10 @@ HWTEST_F(DocumentDBInsertTest, DocumentDBInsertTest045, TestSize.Level1) const char *document1 = R""({"_id":"0123", "num.":"num"})""; EXPECT_EQ(GRD_InsertDoc(g_db, RIGHT_COLLECTION_NAME, document1, 0), GRD_INVALID_ARGS); } + +HWTEST_F(DocumentDBInsertTest, DocumentDBInsertTest046, TestSize.Level1) +{ + const char *document1 = R""({})""; + EXPECT_EQ(GRD_InsertDoc(g_db, RIGHT_COLLECTION_NAME, document1, 0), GRD_INVALID_ARGS); +} } // namespace