mirror of
https://github.com/typesense/typesense.git
synced 2025-05-20 05:32:30 +08:00
Handle emplace + null values.
This commit is contained in:
parent
10c1f4c5c1
commit
b3f248bd93
@ -626,7 +626,7 @@ Option<uint32_t> validator_t::validate_index_in_memory(nlohmann::json& document,
|
||||
continue;
|
||||
}
|
||||
|
||||
if((a_field.optional || op == UPDATE || op == EMPLACE) && document.count(field_name) == 0) {
|
||||
if((a_field.optional || op == UPDATE || (op == EMPLACE && is_update)) && document.count(field_name) == 0) {
|
||||
continue;
|
||||
}
|
||||
|
||||
|
@ -2578,6 +2578,19 @@ TEST_F(CollectionNestedFieldsTest, EmplaceWithNullValueOnRequiredField) {
|
||||
ASSERT_TRUE(op.ok());
|
||||
Collection *coll1 = op.get();
|
||||
|
||||
auto doc_with_null = R"({
|
||||
"id": "0",
|
||||
"currency": {
|
||||
"eu": null
|
||||
}
|
||||
})"_json;
|
||||
|
||||
auto add_op = coll1->add(doc_with_null.dump(), EMPLACE);
|
||||
ASSERT_FALSE(add_op.ok());
|
||||
|
||||
add_op = coll1->add(doc_with_null.dump(), CREATE);
|
||||
ASSERT_FALSE(add_op.ok());
|
||||
|
||||
auto doc1 = R"({
|
||||
"id": "0",
|
||||
"currency": {
|
||||
@ -2585,7 +2598,7 @@ TEST_F(CollectionNestedFieldsTest, EmplaceWithNullValueOnRequiredField) {
|
||||
}
|
||||
})"_json;
|
||||
|
||||
auto add_op = coll1->add(doc1.dump(), CREATE);
|
||||
add_op = coll1->add(doc1.dump(), CREATE);
|
||||
ASSERT_TRUE(add_op.ok());
|
||||
|
||||
// now update with null value -- should not be allowed
|
||||
|
Loading…
x
Reference in New Issue
Block a user