Skip to content

Commit a1c2b09

Browse files
authored
feat(bigtable): introduce minimal DataConnection implementation (#15651)
* feat(bigtable): introduce minimal DataConnection implementation
1 parent 14ccd99 commit a1c2b09

File tree

5 files changed

+76
-0
lines changed

5 files changed

+76
-0
lines changed

google/cloud/bigtable/data_connection.cc

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@
2020
#include "google/cloud/bigtable/internal/mutate_rows_limiter.h"
2121
#include "google/cloud/bigtable/internal/row_reader_impl.h"
2222
#include "google/cloud/bigtable/options.h"
23+
#include "google/cloud/bigtable/results.h"
2324
#include "google/cloud/background_threads.h"
2425
#include "google/cloud/common_options.h"
2526
#include "google/cloud/credentials.h"
@@ -156,6 +157,21 @@ future<StatusOr<std::pair<bool, Row>>> DataConnection::AsyncReadRow(
156157
Status(StatusCode::kUnimplemented, "not implemented"));
157158
}
158159

160+
StatusOr<bigtable::PreparedQuery> DataConnection::PrepareQuery(
161+
bigtable::PrepareQueryParams const&) {
162+
return Status(StatusCode::kUnimplemented, "not implemented");
163+
}
164+
future<StatusOr<bigtable::PreparedQuery>> DataConnection::AsyncPrepareQuery(
165+
bigtable::PrepareQueryParams const&) {
166+
return make_ready_future<StatusOr<PreparedQuery>>(
167+
Status(StatusCode::kUnimplemented, "not implemented"));
168+
}
169+
170+
StatusOr<bigtable::RowStream> DataConnection::ExecuteQuery(
171+
bigtable::ExecuteQueryParams const&) {
172+
return Status(StatusCode::kUnimplemented, "not implemented");
173+
}
174+
159175
std::shared_ptr<DataConnection> MakeDataConnection(Options options) {
160176
google::cloud::internal::CheckExpectedOptions<
161177
AppProfileIdOption, CommonOptionList, GrpcOptionList,

google/cloud/bigtable/data_connection.h

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,10 +19,13 @@
1919
#include "google/cloud/bigtable/internal/bigtable_stub.h"
2020
#include "google/cloud/bigtable/mutation_branch.h"
2121
#include "google/cloud/bigtable/mutations.h"
22+
#include "google/cloud/bigtable/prepared_query.h"
23+
#include "google/cloud/bigtable/results.h"
2224
#include "google/cloud/bigtable/row.h"
2325
#include "google/cloud/bigtable/row_key_sample.h"
2426
#include "google/cloud/bigtable/row_reader.h"
2527
#include "google/cloud/bigtable/row_set.h"
28+
#include "google/cloud/bigtable/sql_statement.h"
2629
#include "google/cloud/backoff_policy.h"
2730
#include "google/cloud/options.h"
2831
#include "google/cloud/status_or.h"
@@ -52,6 +55,13 @@ struct ReadRowsParams {
5255
bool reverse = false;
5356
};
5457

58+
struct PrepareQueryParams {
59+
bigtable::InstanceResource instance;
60+
bigtable::SqlStatement sql_statement;
61+
};
62+
63+
struct ExecuteQueryParams {};
64+
5565
/**
5666
* A connection to the Cloud Bigtable Data API.
5767
*
@@ -143,6 +153,13 @@ class DataConnection {
143153

144154
virtual future<StatusOr<std::pair<bool, Row>>> AsyncReadRow(
145155
std::string const& table_name, std::string row_key, Filter filter);
156+
157+
virtual StatusOr<bigtable::PreparedQuery> PrepareQuery(
158+
bigtable::PrepareQueryParams const& p);
159+
virtual future<StatusOr<bigtable::PreparedQuery>> AsyncPrepareQuery(
160+
bigtable::PrepareQueryParams const& p);
161+
virtual StatusOr<bigtable::RowStream> ExecuteQuery(
162+
bigtable::ExecuteQueryParams const& p);
146163
};
147164

148165
/**

google/cloud/bigtable/internal/data_connection_impl.cc

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@
2121
#include "google/cloud/bigtable/internal/defaults.h"
2222
#include "google/cloud/bigtable/internal/operation_context.h"
2323
#include "google/cloud/bigtable/options.h"
24+
#include "google/cloud/bigtable/results.h"
2425
#include "google/cloud/background_threads.h"
2526
#include "google/cloud/grpc_options.h"
2627
#include "google/cloud/idempotency.h"
@@ -617,6 +618,22 @@ DataConnectionImpl::AsyncReadRow(std::string const& table_name,
617618
return handler->GetFuture();
618619
}
619620

621+
StatusOr<bigtable::PreparedQuery> DataConnectionImpl::PrepareQuery(
622+
bigtable::PrepareQueryParams const&) {
623+
return Status(StatusCode::kUnimplemented, "not implemented");
624+
}
625+
626+
future<StatusOr<bigtable::PreparedQuery>> DataConnectionImpl::AsyncPrepareQuery(
627+
bigtable::PrepareQueryParams const&) {
628+
return make_ready_future<StatusOr<bigtable::PreparedQuery>>(
629+
Status(StatusCode::kUnimplemented, "not implemented"));
630+
}
631+
632+
StatusOr<bigtable::RowStream> DataConnectionImpl::ExecuteQuery(
633+
bigtable::ExecuteQueryParams const&) {
634+
return Status(StatusCode::kUnimplemented, "not implemented");
635+
};
636+
620637
GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END
621638
} // namespace bigtable_internal
622639
} // namespace cloud

google/cloud/bigtable/internal/data_connection_impl.h

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,8 @@
1919
#include "google/cloud/bigtable/internal/bigtable_stub.h"
2020
#include "google/cloud/bigtable/internal/mutate_rows_limiter.h"
2121
#include "google/cloud/bigtable/internal/operation_context_factory.h"
22+
#include "google/cloud/bigtable/prepared_query.h"
23+
#include "google/cloud/bigtable/results.h"
2224
#include "google/cloud/background_threads.h"
2325
#include "google/cloud/options.h"
2426
#include "google/cloud/status_or.h"
@@ -101,6 +103,13 @@ class DataConnectionImpl : public bigtable::DataConnection {
101103
std::string const& table_name, std::string row_key,
102104
bigtable::Filter filter) override;
103105

106+
StatusOr<bigtable::PreparedQuery> PrepareQuery(
107+
bigtable::PrepareQueryParams const& p) override;
108+
future<StatusOr<bigtable::PreparedQuery>> AsyncPrepareQuery(
109+
bigtable::PrepareQueryParams const& p) override;
110+
StatusOr<bigtable::RowStream> ExecuteQuery(
111+
bigtable::ExecuteQueryParams const& p) override;
112+
104113
private:
105114
void AsyncReadRowsHelper(std::string const& table_name,
106115
std::function<future<bool>(bigtable::Row)> on_row,

google/cloud/bigtable/internal/data_connection_impl_test.cc

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@
2020
#include "google/cloud/testing_util/fake_clock.h"
2121
#endif
2222
#include "google/cloud/bigtable/options.h"
23+
#include "google/cloud/bigtable/sql_statement.h"
2324
#include "google/cloud/bigtable/testing/mock_bigtable_stub.h"
2425
#include "google/cloud/bigtable/testing/mock_mutate_rows_limiter.h"
2526
#include "google/cloud/bigtable/testing/mock_policies.h"
@@ -2722,6 +2723,22 @@ TEST_F(DataConnectionTest, AsyncReadRowFailure) {
27222723
EXPECT_THAT(resp, StatusIs(StatusCode::kPermissionDenied));
27232724
}
27242725

2726+
TEST_F(DataConnectionTest, ExecuteQuery) {
2727+
auto conn = TestConnection(std::make_shared<MockBigtableStub>());
2728+
internal::OptionsSpan span(CallOptions());
2729+
EXPECT_THAT(conn->ExecuteQuery(bigtable::ExecuteQueryParams{}),
2730+
StatusIs(StatusCode::kUnimplemented));
2731+
}
2732+
2733+
TEST_F(DataConnectionTest, PrepareQuery) {
2734+
auto conn = TestConnection(std::make_shared<MockBigtableStub>());
2735+
internal::OptionsSpan span(CallOptions());
2736+
EXPECT_THAT(conn->PrepareQuery(bigtable::PrepareQueryParams{
2737+
bigtable::InstanceResource(google::cloud::Project(""), ""),
2738+
bigtable::SqlStatement("")}),
2739+
StatusIs(StatusCode::kUnimplemented));
2740+
}
2741+
27252742
} // namespace
27262743
GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END
27272744
} // namespace bigtable_internal

0 commit comments

Comments
 (0)