Skip to content

Commit

Permalink
Updated Google save methods to use creat.
Browse files Browse the repository at this point in the history
  • Loading branch information
EpsilonPrime committed Jul 27, 2023
1 parent 4b44d42 commit 0903f74
Show file tree
Hide file tree
Showing 4 changed files with 23 additions and 6 deletions.
4 changes: 3 additions & 1 deletion src/substrait/common/Io.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -13,8 +13,10 @@ namespace io::substrait {

namespace {

// TODO - Avoid capturing.
const std::regex kIsJson(R"(("extensionUris"|"extensions"|"relations"))");
const std::regex kIsProtoText(R"(potatoes)");
const std::regex kIsProtoText(
R"((^|\n)((relations|extensions|extension_uris|expected_type_urls) \{))");
const std::regex kIsText(
R"((^|\n) *(pipelines|[a-z]+ *relation|schema|source|extension_space) *)");

Expand Down
1 change: 1 addition & 0 deletions src/substrait/common/tests/IoTest.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -65,6 +65,7 @@ TEST_P(SaveAndLoadTestFixture, SaveAndLoad) {
::substrait::proto::Plan plan;
auto root = plan.add_relations()->mutable_root();
auto read = root->mutable_input()->mutable_read();
read->mutable_common()->mutable_direct();
read->mutable_named_table()->add_names("table_name");
auto status = ::io::substrait::savePlan(plan, tempFilename, encoding);
ASSERT_TRUE(status.ok()) << "Save failed.\n" << status;
Expand Down
3 changes: 2 additions & 1 deletion src/substrait/textplan/converter/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,8 @@ target_link_libraries(
substrait_proto
symbol_table
error_listener
date::date)
date::date
fmt::fmt-header-only)

if(${SUBSTRAIT_CPP_BUILD_TESTING})
add_subdirectory(tests)
Expand Down
21 changes: 17 additions & 4 deletions src/substrait/textplan/converter/SaveBinary.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@

#include "substrait/textplan/converter/SaveBinary.h"

#include <fmt/format.h>
#include <libc.h>
#include <fstream>
#include <limits>
Expand All @@ -17,9 +18,11 @@ absl::Status savePlanToBinary(
const ::substrait::proto::Plan& plan,
const std::string_view& output_filename) {
int outputFileDescriptor =
open(std::string{output_filename}.c_str(), O_WRONLY);
creat(std::string{output_filename}.c_str(), S_IREAD | S_IWRITE);
if (outputFileDescriptor == -1) {
return absl::ErrnoToStatus(errno, "Failed to open file for writing");
return absl::ErrnoToStatus(
errno,
fmt::format("Failed to open file {} for writing", output_filename));
}
auto stream =
new google::protobuf::io::FileOutputStream(outputFileDescriptor);
Expand All @@ -37,7 +40,12 @@ absl::Status savePlanToJson(
const ::substrait::proto::Plan& plan,
const std::string_view& output_filename) {
int outputFileDescriptor =
open(std::string{output_filename}.c_str(), O_WRONLY);
creat(std::string{output_filename}.c_str(), S_IREAD | S_IWRITE);
if (outputFileDescriptor == -1) {
return absl::ErrnoToStatus(
errno,
fmt::format("Failed to open file {} for writing", output_filename));
}
auto stream =
new google::protobuf::io::FileOutputStream(outputFileDescriptor);

Expand Down Expand Up @@ -76,7 +84,12 @@ absl::Status savePlanToProtoText(
const ::substrait::proto::Plan& plan,
const std::string_view& output_filename) {
int outputFileDescriptor =
open(std::string{output_filename}.c_str(), O_WRONLY);
creat(std::string{output_filename}.c_str(), S_IREAD | S_IWRITE);
if (outputFileDescriptor == -1) {
return absl::ErrnoToStatus(
errno,
fmt::format("Failed to open file {} for writing", output_filename));
}
auto stream =
new google::protobuf::io::FileOutputStream(outputFileDescriptor);

Expand Down

0 comments on commit 0903f74

Please sign in to comment.