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} + { } +}; + } }