diff --git a/google/cloud/bigquery/v2/minimal/benchmarks/benchmarks_config.cc b/google/cloud/bigquery/v2/minimal/benchmarks/benchmarks_config.cc index 83a0119653c6e..7d9c931722d96 100644 --- a/google/cloud/bigquery/v2/minimal/benchmarks/benchmarks_config.cc +++ b/google/cloud/bigquery/v2/minimal/benchmarks/benchmarks_config.cc @@ -359,6 +359,12 @@ google::cloud::StatusOr JobConfig::ParseArgs( flags_.push_back( {"--use-int64-timestamp=", "outputs timestamp as usec int64", [this](std::string const& v) { use_int64_timestamp = (v == "true"); }}); + flags_.push_back( + {"--timestamp-output-format=", + "sets timestamp output format", + [this](std::string const& v) { + timestamp_output_format = v; + }}); flags_.push_back( {"--min-creation-time=", "min job creation time. If set, only jobs created after or at this " diff --git a/google/cloud/bigquery/v2/minimal/benchmarks/benchmarks_config.h b/google/cloud/bigquery/v2/minimal/benchmarks/benchmarks_config.h index aaf908fabf0c1..99a75a8840c03 100644 --- a/google/cloud/bigquery/v2/minimal/benchmarks/benchmarks_config.h +++ b/google/cloud/bigquery/v2/minimal/benchmarks/benchmarks_config.h @@ -100,6 +100,7 @@ struct JobConfig : public Config { int start_index = 0; int timeout_ms; bool use_int64_timestamp; + std::string timestamp_output_format; bigquery_v2_minimal_internal::Projection projection; bigquery_v2_minimal_internal::StateFilter state_filter; diff --git a/google/cloud/bigquery/v2/minimal/internal/job_request.cc b/google/cloud/bigquery/v2/minimal/internal/job_request.cc index 0c2063e936368..b06032b037aac 100644 --- a/google/cloud/bigquery/v2/minimal/internal/job_request.cc +++ b/google/cloud/bigquery/v2/minimal/internal/job_request.cc @@ -343,6 +343,7 @@ std::string DataFormatOptions::DebugString(absl::string_view name, int indent) const { return internal::DebugFormatter(name, options, indent) .Field("use_int64_timestamp", use_int64_timestamp) + .Field("timestamp_output_format",timestamp_output_format) .Build(); } diff --git a/google/cloud/bigquery/v2/minimal/internal/job_request.h b/google/cloud/bigquery/v2/minimal/internal/job_request.h index 2c59df70d2e51..c641ad81cdf9f 100644 --- a/google/cloud/bigquery/v2/minimal/internal/job_request.h +++ b/google/cloud/bigquery/v2/minimal/internal/job_request.h @@ -313,12 +313,14 @@ struct DataFormatOptions { DataFormatOptions() = default; bool use_int64_timestamp = false; + std::string timestamp_output_format = "FLOAT64"; std::string DebugString(absl::string_view name, TracingOptions const& options = {}, int indent = 0) const; }; NLOHMANN_DEFINE_TYPE_NON_INTRUSIVE_WITH_DEFAULT(DataFormatOptions, - use_int64_timestamp); + use_int64_timestamp, + timestamp_output_format); // Indicates the type of compute mode for the query stage. // diff --git a/google/cloud/bigquery/v2/minimal/internal/job_request_test.cc b/google/cloud/bigquery/v2/minimal/internal/job_request_test.cc index 3e27d9b18ee72..96b9c298dd38b 100644 --- a/google/cloud/bigquery/v2/minimal/internal/job_request_test.cc +++ b/google/cloud/bigquery/v2/minimal/internal/job_request_test.cc @@ -1028,7 +1028,7 @@ TEST(PostQueryRequestTest, DebugString) { R"( parameter_value { value: "query-parameter-value" } })" R"( labels { key: "lk1" value: "lv1" } labels { key: "lk2" value: "lv2" })" R"( default_dataset { project_id: "2" dataset_id: "1" })" - R"( format_options { use_int64_timestamp: true })" + R"( format_options { use_int64_timestamp: true timestamp_output_format: FLOAT64 })" R"( job_creation_mode { value: "JOB_CREATION_MODE_UNSPECIFIED" } } })"); EXPECT_EQ( @@ -1049,7 +1049,7 @@ TEST(PostQueryRequestTest, DebugString) { R"( parameter_value { value: "query-p......" } })" R"( labels { key: "lk1" value: "lv1" } labels { key: "lk2" value: "lv2" })" R"( default_dataset { project_id: "2" dataset_id: "1" })" - R"( format_options { use_int64_timestamp: true })" + R"( format_options { use_int64_timestamp: true timestamp_output_format: FLOAT64 })" R"( job_creation_mode { value: "JOB_CRE......" } } })"); EXPECT_EQ(request.DebugString("PostQueryRequest", TracingOptions{}.SetOptions( @@ -1103,6 +1103,7 @@ TEST(PostQueryRequestTest, DebugString) { } format_options { use_int64_timestamp: true + timestamp_output_format: FLOAT64 } job_creation_mode { value: "JOB_CREATION_MODE_UNSPECIFIED"