Skip to content

Commit

Permalink
Address PR comments
Browse files Browse the repository at this point in the history
  • Loading branch information
mewim committed Apr 12, 2024
1 parent 2ff6c53 commit 1583ea2
Show file tree
Hide file tree
Showing 3 changed files with 16 additions and 15 deletions.
18 changes: 9 additions & 9 deletions tools/nodejs_api/src_cpp/include/node_connection.h
Original file line number Diff line number Diff line change
Expand Up @@ -42,15 +42,15 @@ class ConnectionInitAsyncWorker : public Napi::AsyncWorker {

~ConnectionInitAsyncWorker() override = default;

inline void Execute() override {
void Execute() override {
try {
nodeConnection->InitCppConnection();
} catch (const std::exception& exc) { SetError(std::string(exc.what())); }
}

inline void OnOK() override { Callback().Call({Env().Null()}); }
void OnOK() override { Callback().Call({Env().Null()}); }

inline void OnError(Napi::Error const& error) override { Callback().Call({error.Value()}); }
void OnError(Napi::Error const& error) override { Callback().Call({error.Value()}); }

private:
NodeConnection* nodeConnection;
Expand All @@ -66,7 +66,7 @@ class ConnectionExecuteAsyncWorker : public Napi::AsyncWorker {
params(std::move(params)) {}
~ConnectionExecuteAsyncWorker() override = default;

inline void Execute() override {
void Execute() override {
try {
std::shared_ptr<QueryResult> result =
connection->executeWithParams(preparedStatement.get(), std::move(params));
Expand All @@ -78,9 +78,9 @@ class ConnectionExecuteAsyncWorker : public Napi::AsyncWorker {
} catch (const std::exception& exc) { SetError(std::string(exc.what())); }
}

inline void OnOK() override { Callback().Call({Env().Null()}); }
void OnOK() override { Callback().Call({Env().Null()}); }

inline void OnError(Napi::Error const& error) override { Callback().Call({error.Value()}); }
void OnError(Napi::Error const& error) override { Callback().Call({error.Value()}); }

private:
std::shared_ptr<Connection> connection;
Expand All @@ -98,7 +98,7 @@ class ConnectionQueryAsyncWorker : public Napi::AsyncWorker {

~ConnectionQueryAsyncWorker() override = default;

inline void Execute() override {
void Execute() override {
try {
std::shared_ptr<QueryResult> result = connection->query(statement);
nodeQueryResult->SetQueryResult(result);
Expand All @@ -109,9 +109,9 @@ class ConnectionQueryAsyncWorker : public Napi::AsyncWorker {
} catch (const std::exception& exc) { SetError(std::string(exc.what())); }
}

inline void OnOK() override { Callback().Call({Env().Null()}); }
void OnOK() override { Callback().Call({Env().Null()}); }

inline void OnError(Napi::Error const& error) override { Callback().Call({error.Value()}); }
void OnError(Napi::Error const& error) override { Callback().Call({error.Value()}); }

private:
std::shared_ptr<Connection> connection;
Expand Down
2 changes: 2 additions & 0 deletions tools/python_api/src_cpp/include/py_connection.h
Original file line number Diff line number Diff line change
Expand Up @@ -38,4 +38,6 @@ class PyConnection {
private:
std::unique_ptr<StorageDriver> storageDriver;
std::unique_ptr<Connection> conn;

static std::unique_ptr<PyQueryResult> checkAndWrapQueryResult( std::unique_ptr<QueryResult>& queryResult);
};
11 changes: 5 additions & 6 deletions tools/python_api/src_cpp/py_connection.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -57,18 +57,17 @@ std::unique_ptr<PyQueryResult> PyConnection::execute(PyPreparedStatement* prepar
auto queryResult =
conn->executeWithParams(preparedStatement->preparedStatement.get(), std::move(parameters));
py::gil_scoped_acquire acquire;
if (!queryResult->isSuccess()) {
throw std::runtime_error(queryResult->getErrorMessage());
}
auto pyQueryResult = std::make_unique<PyQueryResult>();
pyQueryResult->queryResult = std::move(queryResult);
return pyQueryResult;
return checkAndWrapQueryResult(queryResult);
}

std::unique_ptr<PyQueryResult> PyConnection::query(const std::string& statement) {
py::gil_scoped_release release;
auto queryResult = conn->query(statement);
py::gil_scoped_acquire acquire;
return checkAndWrapQueryResult(queryResult);
}

std::unique_ptr<PyQueryResult> PyConnection::checkAndWrapQueryResult( std::unique_ptr<QueryResult>& queryResult) {
if (!queryResult->isSuccess()) {
throw std::runtime_error(queryResult->getErrorMessage());
}
Expand Down

0 comments on commit 1583ea2

Please sign in to comment.