Browse Source

fix

pull/2/head
cyq 8 months ago
parent
commit
55c59fe021
3 changed files with 10 additions and 10 deletions
  1. +1
    -1
      fielddb/field_db.cpp
  2. +2
    -0
      fielddb/field_db.h
  3. +7
    -9
      fielddb/request.cpp

+ 1
- 1
fielddb/field_db.cpp View File

@ -227,7 +227,7 @@ Status FieldDB::HandleRequest(Request &req) {
// 这里把一个空串作为常规put的name // 这里把一个空串作为常规put的name
Status FieldDB::Put(const WriteOptions &options, const Slice &key, const Slice &value) { Status FieldDB::Put(const WriteOptions &options, const Slice &key, const Slice &value) {
FieldArray FA = {{"",value.ToString()}};
FieldArray FA = {{EMPTY,value.ToString()}};
return PutFields(options, key, FA); return PutFields(options, key, FA);
// return kvDB_->Put(options, key, value); // return kvDB_->Put(options, key, value);
} }

+ 2
- 0
fielddb/field_db.h View File

@ -18,6 +18,8 @@
namespace fielddb { namespace fielddb {
using namespace leveldb; using namespace leveldb;
const char EMPTY[1] = {0};
enum IndexStatus{ enum IndexStatus{
Creating, Creating,
Deleting, Deleting,

+ 7
- 9
fielddb/request.cpp View File

@ -17,8 +17,6 @@
namespace fielddb { namespace fielddb {
using namespace leveldb; using namespace leveldb;
const char EMPTY[1] = {0};
//为虚函数提供最基本的实现 //为虚函数提供最基本的实现
void Request::PendReq(Request *req) { void Request::PendReq(Request *req) {
assert(0); assert(0);
@ -340,13 +338,13 @@ BatchReq::BatchReq(WriteBatch *Batch,port::Mutex *mu):
void Put(const Slice &key, const Slice &value) override { void Put(const Slice &key, const Slice &value) override {
//为key和value构造存储的地方,防止由于string的析构造成可能得内存访问错误 //为key和value构造存储的地方,防止由于string的析构造成可能得内存访问错误
str_buf->push_back(key.ToString()); str_buf->push_back(key.ToString());
fa_buf->push_back({{EMPTY,value.ToString()}});
// FieldArray *field = new FieldArray;
// field = ParseValue(value.ToString(), field);
// if (field->empty()){ //batch中的value没有field
// } else {
// fa_buf->push_back(*field);
// }
FieldArray *field = new FieldArray;
field = ParseValue(value.ToString(), field);
if (field->empty()){ //batch中的value没有field
fa_buf->push_back({{EMPTY,value.ToString()}});
} else {
fa_buf->push_back(*field);
}
sub_requests->emplace_back(new FieldsReq(&str_buf->back(),&fa_buf->back(),mu)); sub_requests->emplace_back(new FieldsReq(&str_buf->back(),&fa_buf->back(),mu));
sub_requests->back()->parent = req; sub_requests->back()->parent = req;

Loading…
Cancel
Save