Coverage Report

Created: 2024-02-25 06:14

/src/sql-parser/src/SQLParserResult.cpp
Line
Count
Source (jump to first uncovered line)
1
2
#include "SQLParserResult.h"
3
#include <algorithm>
4
5
namespace hsql {
6
7
5.22k
SQLParserResult::SQLParserResult() : isValid_(false), errorMsg_(nullptr) {}
8
9
0
SQLParserResult::SQLParserResult(SQLStatement* stmt) : isValid_(false), errorMsg_(nullptr) { addStatement(stmt); }
10
11
// Move constructor.
12
0
SQLParserResult::SQLParserResult(SQLParserResult&& moved) { *this = std::forward<SQLParserResult>(moved); }
13
14
0
SQLParserResult& SQLParserResult::operator=(SQLParserResult&& moved) {
15
0
  isValid_ = moved.isValid_;
16
0
  errorMsg_ = moved.errorMsg_;
17
0
  statements_ = std::move(moved.statements_);
18
19
0
  moved.errorMsg_ = nullptr;
20
0
  moved.reset();
21
0
  return *this;
22
0
}
23
24
5.22k
SQLParserResult::~SQLParserResult() { reset(); }
25
26
63.6k
void SQLParserResult::addStatement(SQLStatement* stmt) { statements_.push_back(stmt); }
27
28
0
const SQLStatement* SQLParserResult::getStatement(size_t index) const { return statements_[index]; }
29
30
0
SQLStatement* SQLParserResult::getMutableStatement(size_t index) { return statements_[index]; }
31
32
0
size_t SQLParserResult::size() const { return statements_.size(); }
33
34
0
bool SQLParserResult::isValid() const { return isValid_; }
35
36
653
const char* SQLParserResult::errorMsg() const { return errorMsg_; }
37
38
0
int SQLParserResult::errorLine() const { return errorLine_; }
39
40
0
int SQLParserResult::errorColumn() const { return errorColumn_; }
41
42
10.5k
void SQLParserResult::setIsValid(bool isValid) { isValid_ = isValid; }
43
44
5.35k
void SQLParserResult::setErrorDetails(char* errorMsg, int errorLine, int errorColumn) {
45
5.35k
  errorMsg_ = errorMsg;
46
5.35k
  errorLine_ = errorLine;
47
5.35k
  errorColumn_ = errorColumn;
48
5.35k
}
49
50
0
const std::vector<SQLStatement*>& SQLParserResult::getStatements() const { return statements_; }
51
52
0
std::vector<SQLStatement*> SQLParserResult::releaseStatements() {
53
0
  std::vector<SQLStatement*> copy = statements_;
54
55
0
  statements_.clear();
56
57
0
  return copy;
58
0
}
59
60
5.22k
void SQLParserResult::reset() {
61
63.6k
  for (SQLStatement* statement : statements_) {
62
63.6k
    delete statement;
63
63.6k
  }
64
5.22k
  statements_.clear();
65
66
5.22k
  isValid_ = false;
67
68
5.22k
  free(errorMsg_);
69
5.22k
  errorMsg_ = nullptr;
70
5.22k
  errorLine_ = -1;
71
5.22k
  errorColumn_ = -1;
72
5.22k
}
73
74
// Does NOT take ownership.
75
237k
void SQLParserResult::addParameter(Expr* parameter) {
76
237k
  parameters_.push_back(parameter);
77
1.93G
  std::sort(parameters_.begin(), parameters_.end(), [](const Expr* a, const Expr* b) { return a->ival < b->ival; });
78
237k
}
79
80
0
const std::vector<Expr*>& SQLParserResult::parameters() { return parameters_; }
81
82
}  // namespace hsql