提交 f5ab1463 编写于 作者: G groot

MS-19 code refine


Former-commit-id: 41929d308d4db03baf4427cdcab4c1aa91fbf8b0
上级 717b37d7
...@@ -177,18 +177,30 @@ ServerError CreateTableTask::OnExecute() { ...@@ -177,18 +177,30 @@ ServerError CreateTableTask::OnExecute() {
TimeRecorder rc("CreateTableTask"); TimeRecorder rc("CreateTableTask");
try { try {
if(schema_.table_name.empty() || schema_.dimension == 0 || schema_.index_type == 0) { //step 1: check arguments
return SERVER_INVALID_ARGUMENT; if(schema_.table_name.empty() || schema_.dimension <= 0) {
error_code_ = SERVER_INVALID_ARGUMENT;
error_msg_ = "Invalid table name or dimension";
SERVER_LOG_ERROR << error_msg_;
return error_code_;
} }
//step 1: construct table schema engine::EngineType engine_type = EngineType(schema_.index_type);
if(engine_type == engine::EngineType::INVALID) {
error_code_ = SERVER_INVALID_ARGUMENT;
error_msg_ = "Invalid index type";
SERVER_LOG_ERROR << error_msg_;
return error_code_;
}
//step 2: construct table schema
engine::meta::TableSchema table_info; engine::meta::TableSchema table_info;
table_info.dimension_ = (uint16_t)schema_.dimension; table_info.dimension_ = (uint16_t)schema_.dimension;
table_info.table_id_ = schema_.table_name; table_info.table_id_ = schema_.table_name;
table_info.engine_type_ = (int)EngineType(schema_.index_type); table_info.engine_type_ = (int)EngineType(schema_.index_type);
table_info.store_raw_data_ = schema_.store_raw_vector; table_info.store_raw_data_ = schema_.store_raw_vector;
//step 2: create table //step 3: create table
engine::Status stat = DB()->CreateTable(table_info); engine::Status stat = DB()->CreateTable(table_info);
if(!stat.ok()) {//table could exist if(!stat.ok()) {//table could exist
error_code_ = SERVER_UNEXPECTED_ERROR; error_code_ = SERVER_UNEXPECTED_ERROR;
...@@ -225,6 +237,15 @@ ServerError DescribeTableTask::OnExecute() { ...@@ -225,6 +237,15 @@ ServerError DescribeTableTask::OnExecute() {
TimeRecorder rc("DescribeTableTask"); TimeRecorder rc("DescribeTableTask");
try { try {
//step 1: check arguments
if(table_name_.empty()) {
error_code_ = SERVER_INVALID_ARGUMENT;
error_msg_ = "Table name cannot be empty";
SERVER_LOG_ERROR << error_msg_;
return error_code_;
}
//step 2: get table info
engine::meta::TableSchema table_info; engine::meta::TableSchema table_info;
table_info.table_id_ = table_name_; table_info.table_id_ = table_name_;
engine::Status stat = DB()->DescribeTable(table_info); engine::Status stat = DB()->DescribeTable(table_info);
...@@ -267,7 +288,7 @@ ServerError DeleteTableTask::OnExecute() { ...@@ -267,7 +288,7 @@ ServerError DeleteTableTask::OnExecute() {
try { try {
TimeRecorder rc("DeleteTableTask"); TimeRecorder rc("DeleteTableTask");
//step 1: check validation //step 1: check arguments
if (table_name_.empty()) { if (table_name_.empty()) {
error_code_ = SERVER_INVALID_ARGUMENT; error_code_ = SERVER_INVALID_ARGUMENT;
error_msg_ = "Table name cannot be empty"; error_msg_ = "Table name cannot be empty";
...@@ -358,11 +379,22 @@ ServerError AddVectorTask::OnExecute() { ...@@ -358,11 +379,22 @@ ServerError AddVectorTask::OnExecute() {
try { try {
TimeRecorder rc("AddVectorTask"); TimeRecorder rc("AddVectorTask");
//step 1: check arguments
if (table_name_.empty()) {
error_code_ = SERVER_INVALID_ARGUMENT;
error_msg_ = "Table name cannot be empty";
SERVER_LOG_ERROR << error_msg_;
return error_code_;
}
if(record_array_.empty()) { if(record_array_.empty()) {
return SERVER_SUCCESS; error_code_ = SERVER_INVALID_ARGUMENT;
error_msg_ = "Row record array is empty";
SERVER_LOG_ERROR << error_msg_;
return error_code_;
} }
//step 1: check table existence //step 2: check table existence
engine::meta::TableSchema table_info; engine::meta::TableSchema table_info;
table_info.table_id_ = table_name_; table_info.table_id_ = table_name_;
engine::Status stat = DB()->DescribeTable(table_info); engine::Status stat = DB()->DescribeTable(table_info);
...@@ -375,7 +407,7 @@ ServerError AddVectorTask::OnExecute() { ...@@ -375,7 +407,7 @@ ServerError AddVectorTask::OnExecute() {
rc.Record("check validation"); rc.Record("check validation");
//step 2: prepare float data //step 3: prepare float data
std::vector<float> vec_f; std::vector<float> vec_f;
error_code_ = ConvertRowRecordToFloatArray(record_array_, table_info.dimension_, vec_f); error_code_ = ConvertRowRecordToFloatArray(record_array_, table_info.dimension_, vec_f);
if(error_code_ != SERVER_SUCCESS) { if(error_code_ != SERVER_SUCCESS) {
...@@ -385,7 +417,7 @@ ServerError AddVectorTask::OnExecute() { ...@@ -385,7 +417,7 @@ ServerError AddVectorTask::OnExecute() {
rc.Record("prepare vectors data"); rc.Record("prepare vectors data");
//step 3: insert vectors //step 4: insert vectors
uint64_t vec_count = (uint64_t)record_array_.size(); uint64_t vec_count = (uint64_t)record_array_.size();
stat = DB()->InsertVectors(table_name_, vec_count, vec_f.data(), record_ids_); stat = DB()->InsertVectors(table_name_, vec_count, vec_f.data(), record_ids_);
rc.Record("add vectors to engine"); rc.Record("add vectors to engine");
...@@ -442,7 +474,14 @@ ServerError SearchVectorTask::OnExecute() { ...@@ -442,7 +474,14 @@ ServerError SearchVectorTask::OnExecute() {
try { try {
TimeRecorder rc("SearchVectorTask"); TimeRecorder rc("SearchVectorTask");
//step 1: check validation //step 1: check arguments
if (table_name_.empty()) {
error_code_ = SERVER_INVALID_ARGUMENT;
error_msg_ = "Table name cannot be empty";
SERVER_LOG_ERROR << error_msg_;
return error_code_;
}
if(top_k_ <= 0 || record_array_.empty()) { if(top_k_ <= 0 || record_array_.empty()) {
error_code_ = SERVER_INVALID_ARGUMENT; error_code_ = SERVER_INVALID_ARGUMENT;
error_msg_ = "Invalid topk value, or query record array is empty"; error_msg_ = "Invalid topk value, or query record array is empty";
...@@ -542,7 +581,7 @@ ServerError GetTableRowCountTask::OnExecute() { ...@@ -542,7 +581,7 @@ ServerError GetTableRowCountTask::OnExecute() {
try { try {
TimeRecorder rc("GetTableRowCountTask"); TimeRecorder rc("GetTableRowCountTask");
//step 1: check validation //step 1: check arguments
if (table_name_.empty()) { if (table_name_.empty()) {
error_code_ = SERVER_INVALID_ARGUMENT; error_code_ = SERVER_INVALID_ARGUMENT;
error_msg_ = "Table name cannot be empty"; error_msg_ = "Table name cannot be empty";
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册