From 39f4a58bdee6b33ff37ae37475c3d4e9de9a2dff Mon Sep 17 00:00:00 2001 From: Pekka Enberg Date: Wed, 25 Feb 2015 11:12:37 +0200 Subject: [PATCH] cql3: Implement use_statement::execute() Signed-off-by: Pekka Enberg --- cql3/statements/use_statement.hh | 8 +++----- transport/messages/result_message.hh | 11 +++++++++++ 2 files changed, 14 insertions(+), 5 deletions(-) diff --git a/cql3/statements/use_statement.hh b/cql3/statements/use_statement.hh index abb34a97bb..9f8db35db0 100644 --- a/cql3/statements/use_statement.hh +++ b/cql3/statements/use_statement.hh @@ -62,11 +62,9 @@ public: virtual future<::shared_ptr> execute(service::storage_proxy& proxy, service::query_state& state, const query_options& options) override { - throw std::runtime_error("not implemented"); -#if 0 - state.getClientState().setKeyspace(keyspace); - return new ResultMessage.SetKeyspace(keyspace); -#endif + state.get_client_state().set_keyspace(_keyspace); + auto result =::make_shared(_keyspace); + return make_ready_future<::shared_ptr>(result); } virtual future<::shared_ptr> diff --git a/transport/messages/result_message.hh b/transport/messages/result_message.hh index 2673028528..4ffbde1181 100644 --- a/transport/messages/result_message.hh +++ b/transport/messages/result_message.hh @@ -7,14 +7,25 @@ namespace messages { // FIXME: stub class result_message { +public: virtual ~result_message() {} class void_message; + class set_keyspace; }; class result_message::void_message : public result_message { }; +class result_message::set_keyspace : public result_message { +private: + sstring _keyspace; +public: + set_keyspace(const sstring& keyspace) + : _keyspace{keyspace} + { } +}; + } }