Skip to content

Commit 3259c37

Browse files
authored
fix: propagate LOAD DATA error status instead of returning false SUCCESS (#646)
1 parent 9f856a5 commit 3259c37

3 files changed

Lines changed: 10 additions & 8 deletions

File tree

README.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
# MiniOB 介绍
22

3+
> **声明:本项目仅供学习用途,不承诺代码安全及稳定可靠。请勿将其直接用于生产环境。**
4+
35
<div align="left">
46

57
[![Chinese Doc](https://img.shields.io/badge/文档-简体中文-blue)](https://oceanbase.github.io/miniob/)

src/observer/sql/executor/load_data_executor.cpp

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -24,13 +24,11 @@ using namespace common;
2424

2525
RC LoadDataExecutor::execute(SQLStageEvent *sql_event)
2626
{
27-
RC rc = RC::SUCCESS;
2827
SqlResult *sql_result = sql_event->session_event()->sql_result();
2928
LoadDataStmt *stmt = static_cast<LoadDataStmt *>(sql_event->stmt());
3029
Table *table = stmt->table();
3130
const char *file_name = stmt->filename();
32-
load_data(table, file_name, stmt->terminated(), stmt->enclosed(), sql_result);
33-
return rc;
31+
return load_data(table, file_name, stmt->terminated(), stmt->enclosed(), sql_result);
3432
}
3533

3634
/**
@@ -83,7 +81,7 @@ RC insert_record_from_file(
8381

8482

8583
// TODO: pax format and row format
86-
void LoadDataExecutor::load_data(Table *table, const char *file_name, char terminated, char enclosed, SqlResult *sql_result)
84+
RC LoadDataExecutor::load_data(Table *table, const char *file_name, char terminated, char enclosed, SqlResult *sql_result)
8785
{
8886
// your code here
8987
stringstream result_string;
@@ -94,7 +92,7 @@ void LoadDataExecutor::load_data(Table *table, const char *file_name, char termi
9492
result_string << "Failed to open file: " << file_name << ". system error=" << strerror(errno) << endl;
9593
sql_result->set_return_code(RC::FILE_NOT_EXIST);
9694
sql_result->set_state_string(result_string.str());
97-
return;
95+
return RC::FILE_NOT_EXIST;
9896
}
9997

10098
struct timespec begin_time;
@@ -144,6 +142,8 @@ void LoadDataExecutor::load_data(Table *table, const char *file_name, char termi
144142
if (RC::SUCCESS == rc) {
145143
result_string << strrc(rc);
146144
}
147-
LOG_INFO("load data done. row num: %s, result: %s", insertion_count, strrc(rc));
148-
sql_result->set_return_code(RC::SUCCESS);
145+
LOG_INFO("load data done. row num: %d, result: %s", insertion_count, strrc(rc));
146+
sql_result->set_return_code(rc);
147+
sql_result->set_state_string(result_string.str());
148+
return rc;
149149
}

src/observer/sql/executor/load_data_executor.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,5 +33,5 @@ class LoadDataExecutor
3333
RC execute(SQLStageEvent *sql_event);
3434

3535
private:
36-
void load_data(Table *table, const char *file_name, char terminated, char enclosed, SqlResult *sql_result);
36+
RC load_data(Table *table, const char *file_name, char terminated, char enclosed, SqlResult *sql_result);
3737
};

0 commit comments

Comments
 (0)