Skip to content

Commit 756f193

Browse files
committed
reduce ditto
1 parent c021e50 commit 756f193

File tree

3 files changed

+6
-17
lines changed

3 files changed

+6
-17
lines changed

src/types/redis_json.cc

Lines changed: 2 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -205,22 +205,11 @@ rocksdb::Status Json::ArrLen(const std::string &user_key, const std::string &pat
205205
rocksdb::Status Json::StrAppend(const std::string &user_key, const std::string &path, const std::string &value,
206206
std::vector<uint64_t> &append_cnt) {
207207
auto ns_key = AppendNamespacePrefix(user_key);
208-
209-
LockGuard guard(storage_->GetLockManager(), ns_key);
210-
211-
std::string bytes;
212208
JsonMetadata metadata;
213-
Slice rest;
214-
auto s = GetMetadata(kRedisJson, ns_key, &bytes, &metadata, &rest);
209+
JsonValue json_val;
210+
auto s = read(ns_key, &metadata, &json_val);
215211
if (!s.ok()) return s;
216212

217-
if (metadata.format != JsonStorageFormat::JSON)
218-
return rocksdb::Status::NotSupported("JSON storage format not supported");
219-
220-
auto json_res = JsonValue::FromString(rest.ToStringView());
221-
if (!json_res) return rocksdb::Status::Corruption(json_res.Msg());
222-
auto json_val = *std::move(json_res);
223-
224213
auto append_res = json_val.StrAppend(path, value, append_cnt);
225214
if (!append_res) return rocksdb::Status::InvalidArgument(append_res.Msg());
226215
// need Reverse order

tests/cppunit/types/json_test.cc

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -276,13 +276,13 @@ TEST_F(RedisJsonTest, ArrLen) {
276276

277277
TEST_F(RedisJsonTest, StrAppend) {
278278
ASSERT_TRUE(json_->Set(key_, "$", R"({"a":"foo", "nested": {"a": "hello"}, "nested2": {"a": 31}})").ok());
279-
ASSERT_TRUE(json_->StrAppend(key_, "$.a", "be", append_cnt_).ok());
279+
ASSERT_TRUE(json_->StrAppend(key_, "$.a", "\"be\"", append_cnt_).ok());
280280
ASSERT_EQ(append_cnt_.size(), 1);
281281
ASSERT_EQ(append_cnt_[0], 5);
282282

283283
append_cnt_.clear();
284284
ASSERT_TRUE(json_->Set(key_, "$", R"({"a":"foo", "nested": {"a": "hello"}, "nested2": {"a": 31}})").ok());
285-
ASSERT_TRUE(json_->StrAppend(key_, "$..a", "be", append_cnt_).ok());
285+
ASSERT_TRUE(json_->StrAppend(key_, "$..a", "\"be\"", append_cnt_).ok());
286286
ASSERT_EQ(append_cnt_.size(), 3);
287287
int64_t result1[] = {5, 7, -1};
288288
for (int i = 0; i < 3; ++i) {

tests/gocase/unit/type/json/json_test.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -135,12 +135,12 @@ func TestJson(t *testing.T) {
135135
var result1 = make([]interface{}, 0)
136136
result1 = append(result1, int64(5))
137137
require.NoError(t, rdb.Do(ctx, "JSON.SET", "a", "$", `{"a":"foo", "nested": {"a": "hello"}, "nested2": {"a": 31}}`).Err())
138-
require.Equal(t, rdb.Do(ctx, "JSON.STRAPPEND", "a", "$.a", "be").Val(), result1)
138+
require.Equal(t, rdb.Do(ctx, "JSON.STRAPPEND", "a", "$.a", "\"be\"").Val(), result1)
139139

140140
var result2 = make([]interface{}, 0)
141141
result2 = append(result2, int64(5), int64(7), interface{}(nil))
142142
require.NoError(t, rdb.Do(ctx, "JSON.SET", "a", "$", `{"a":"foo", "nested": {"a": "hello"}, "nested2": {"a": 31}}`).Err())
143-
require.Equal(t, rdb.Do(ctx, "JSON.STRAPPEND", "a", "$..a", "be").Val(), result2)
143+
require.Equal(t, rdb.Do(ctx, "JSON.STRAPPEND", "a", "$..a", "\"be\"").Val(), result2)
144144
})
145145

146146
t.Run("JSON.STRLEN basics", func(t *testing.T) {

0 commit comments

Comments
 (0)