diff --git a/cql3/abstract_marker.cc b/cql3/abstract_marker.cc index b217f80299..2a14ccbc60 100644 --- a/cql3/abstract_marker.cc +++ b/cql3/abstract_marker.cc @@ -31,7 +31,7 @@ namespace cql3 { -::shared_ptr abstract_marker::raw::prepare(sstring keyspace, ::shared_ptr receiver) +::shared_ptr abstract_marker::raw::prepare(const sstring& keyspace, ::shared_ptr receiver) { auto receiver_type = ::dynamic_pointer_cast(receiver->type); if (receiver_type != nullptr) { @@ -45,7 +45,7 @@ namespace cql3 { assert(0); } -::shared_ptr abstract_marker::in_raw::prepare(sstring keyspace, ::shared_ptr receiver) { +::shared_ptr abstract_marker::in_raw::prepare(const sstring& keyspace, ::shared_ptr receiver) { return ::make_shared(_bind_index, make_in_receiver(receiver)); } diff --git a/cql3/abstract_marker.hh b/cql3/abstract_marker.hh index 10e8548f1e..6b0da7e195 100644 --- a/cql3/abstract_marker.hh +++ b/cql3/abstract_marker.hh @@ -68,9 +68,9 @@ public: : _bind_index{bind_index} { } - virtual ::shared_ptr prepare(sstring keyspace, ::shared_ptr receiver) override; + virtual ::shared_ptr prepare(const sstring& keyspace, ::shared_ptr receiver) override; - virtual assignment_testable::test_result test_assignment(sstring keyspace, ::shared_ptr receiver) override { + virtual assignment_testable::test_result test_assignment(const sstring& keyspace, ::shared_ptr receiver) override { return assignment_testable::test_result::WEAKLY_ASSIGNABLE; } @@ -97,7 +97,7 @@ public: return ::make_shared(receiver->ks_name, receiver->cf_name, in_name, db::marshal::list_type::get_instance(receiver->type, false)); } - virtual ::shared_ptr prepare(sstring keyspace, ::shared_ptr receiver) override; + virtual ::shared_ptr prepare(const sstring& keyspace, ::shared_ptr receiver) override; }; }; diff --git a/cql3/assignment_testable.hh b/cql3/assignment_testable.hh index e2a92270f5..24a8b91d87 100644 --- a/cql3/assignment_testable.hh +++ b/cql3/assignment_testable.hh @@ -49,7 +49,7 @@ public: // Test all elements of toTest for assignment. If all are exact match, return exact match. If any is not assignable, // return not assignable. Otherwise, return weakly assignable. - static test_result test_all(sstring keyspace, ::shared_ptr receiver, const std::vector<::shared_ptr>& to_test) { + static test_result test_all(const sstring& keyspace, ::shared_ptr receiver, const std::vector<::shared_ptr>& to_test) { test_result res = test_result::EXACT_MATCH; for (auto&& rt : to_test) { if (rt == nullptr) { @@ -77,7 +77,7 @@ public: * Most caller should just call the isAssignable() method on the result, though functions have a use for * testing "strong" equality to decide the most precise overload to pick when multiple could match. */ - virtual test_result test_assignment(sstring keyspace, ::shared_ptr receiver) = 0; + virtual test_result test_assignment(const sstring& keyspace, ::shared_ptr receiver) = 0; }; } diff --git a/cql3/attributes.hh b/cql3/attributes.hh index 3937c679ae..6ca42c0a1c 100644 --- a/cql3/attributes.hh +++ b/cql3/attributes.hh @@ -53,7 +53,7 @@ private: { } public: - bool uses_function(sstring ks_name, sstring function_name) const { + bool uses_function(const sstring& ks_name, const sstring& function_name) const { return (_timestamp && _timestamp.value()->uses_function(ks_name, function_name)) || (_time_to_live && _time_to_live.value()->uses_function(ks_name, function_name)); } @@ -126,18 +126,18 @@ public: ::shared_ptr timestamp; ::shared_ptr time_to_live; - std::unique_ptr prepare(sstring ks_name, sstring cf_name) { + std::unique_ptr prepare(const sstring& ks_name, const sstring& cf_name) { auto ts = !timestamp ? ::shared_ptr{} : timestamp->prepare(ks_name, timestamp_receiver(ks_name, cf_name)); auto ttl = !time_to_live ? ::shared_ptr{} : time_to_live->prepare(ks_name, time_to_live_receiver(ks_name, cf_name)); return std::unique_ptr{new attributes{std::move(ts), std::move(ttl)}}; } private: - ::shared_ptr timestamp_receiver(const sstring ks_name, sstring cf_name) { + ::shared_ptr timestamp_receiver(const sstring& ks_name, const sstring& cf_name) { return ::make_shared(ks_name, cf_name, ::make_shared("[timestamp]", true), data_type_for()); } - ::shared_ptr time_to_live_receiver(sstring ks_name, sstring cf_name) { + ::shared_ptr time_to_live_receiver(const sstring& ks_name, const sstring& cf_name) { return ::make_shared(ks_name, cf_name, ::make_shared("[ttl]", true), data_type_for()); } }; diff --git a/cql3/column_condition.hh b/cql3/column_condition.hh index e7a9ae4ef4..528126135a 100644 --- a/cql3/column_condition.hh +++ b/cql3/column_condition.hh @@ -106,7 +106,7 @@ public: } #endif - bool uses_function(sstring ks_name, sstring function_name) const { + bool uses_function(const sstring& ks_name, const sstring& function_name) const { throw std::runtime_error("not implemented"); #if 0 if (collectionElement != null && collectionElement.usesFunction(ksName, functionName)) diff --git a/cql3/constants.hh b/cql3/constants.hh index 28b078bf8f..cd74644889 100644 --- a/cql3/constants.hh +++ b/cql3/constants.hh @@ -142,7 +142,7 @@ public: return ::make_shared(type::HEX, text); } - virtual ::shared_ptr prepare(sstring keyspace, ::shared_ptr receiver) override { + virtual ::shared_ptr prepare(const sstring& keyspace, ::shared_ptr receiver) override { throw std::runtime_error("not implemented"); #if 0 if (!testAssignment(keyspace, receiver).isAssignable()) @@ -177,7 +177,7 @@ public: } #endif - virtual assignment_testable::test_result test_assignment(sstring keyspace, ::shared_ptr receiver) override { + virtual assignment_testable::test_result test_assignment(const sstring& keyspace, ::shared_ptr receiver) override { throw new std::runtime_error("not implemented"); #if 0 CQL3Type receiverType = receiver.type.asCQL3Type(); diff --git a/cql3/cql_statement.hh b/cql3/cql_statement.hh index 15c50d8cb4..8ddde8477e 100644 --- a/cql3/cql_statement.hh +++ b/cql3/cql_statement.hh @@ -72,7 +72,7 @@ public: virtual future> execute_internal(service::query_state& state, const query_options& options) = 0; - virtual bool uses_function(sstring ks_name, sstring function_name) const = 0; + virtual bool uses_function(const sstring& ks_name, const sstring& function_name) const = 0; }; } diff --git a/cql3/functions/abstract_function.hh b/cql3/functions/abstract_function.hh index bafe066840..abc8677ffa 100644 --- a/cql3/functions/abstract_function.hh +++ b/cql3/functions/abstract_function.hh @@ -66,7 +66,7 @@ public: && _return_type == x._return_type; } - virtual bool uses_function(sstring ks_name, sstring function_name) override { + virtual bool uses_function(const sstring& ks_name, const sstring& function_name) override { return _name.keyspace == ks_name && _name.name == function_name; } diff --git a/cql3/functions/function.hh b/cql3/functions/function.hh index 90f5189c32..6982be983b 100644 --- a/cql3/functions/function.hh +++ b/cql3/functions/function.hh @@ -64,7 +64,7 @@ public: virtual void print(std::ostream& os) const = 0; protected: - virtual bool uses_function(sstring ks_name, sstring function_name) = 0; + virtual bool uses_function(const sstring& ks_name, const sstring& function_name) = 0; virtual bool has_reference_to(function& f) = 0; friend class function_call; friend std::ostream& operator<<(std::ostream& os, const function& f); diff --git a/cql3/functions/function_call.hh b/cql3/functions/function_call.hh index a7da7235c3..86e2ed9492 100644 --- a/cql3/functions/function_call.hh +++ b/cql3/functions/function_call.hh @@ -41,8 +41,8 @@ public: : _fun(std::move(fun)), _terms(std::move(terms)) { } - virtual bool uses_function(sstring ks_name, sstring function_name) const override { - return _fun->uses_function(std::move(ks_name), std::move(function_name)); + virtual bool uses_function(const sstring& ks_name, const sstring& function_name) const override { + return _fun->uses_function(ks_name, function_name); } virtual void collect_marker_specification(shared_ptr bound_names) override { diff --git a/cql3/operation.hh b/cql3/operation.hh index f62bcbf558..cd0a21acc3 100644 --- a/cql3/operation.hh +++ b/cql3/operation.hh @@ -77,7 +77,7 @@ protected: { } public: - virtual bool uses_function(sstring ks_name, sstring function_name) const { + virtual bool uses_function(const sstring& ks_name, const sstring& function_name) const { return _t && _t->uses_function(ks_name, function_name); } diff --git a/cql3/restrictions/restriction.hh b/cql3/restrictions/restriction.hh index 038ef7fb60..f39707140d 100644 --- a/cql3/restrictions/restriction.hh +++ b/cql3/restrictions/restriction.hh @@ -56,7 +56,7 @@ public: * @param functionName the function name * @return true if one of the restrictions use the specified function, false otherwise. */ - virtual bool uses_function(sstring ksName, sstring functionName) = 0; + virtual bool uses_function(const sstring& ksName, const sstring& functionName) = 0; /** * Checks if the specified bound is set or not. diff --git a/cql3/statements/modification_statement.hh b/cql3/statements/modification_statement.hh index 39e72fcc74..f4438e2aa8 100644 --- a/cql3/statements/modification_statement.hh +++ b/cql3/statements/modification_statement.hh @@ -128,7 +128,7 @@ public: , _column_operations{} { } - virtual bool uses_function(sstring ks_name, sstring function_name) const override { + virtual bool uses_function(const sstring& ks_name, const sstring& function_name) const override { if (attrs->uses_function(ks_name, function_name)) { return true; } diff --git a/cql3/statements/parsed_statement.hh b/cql3/statements/parsed_statement.hh index 7f791d79c4..43110db0b0 100644 --- a/cql3/statements/parsed_statement.hh +++ b/cql3/statements/parsed_statement.hh @@ -78,7 +78,7 @@ public: virtual std::unique_ptr prepare(database& db) = 0; - virtual bool uses_function(sstring ks_name, sstring function_name) const { + virtual bool uses_function(const sstring& ks_name, const sstring& function_name) const { return false; } }; diff --git a/cql3/statements/use_statement.hh b/cql3/statements/use_statement.hh index 4d842f8ff5..ae44205ccd 100644 --- a/cql3/statements/use_statement.hh +++ b/cql3/statements/use_statement.hh @@ -49,7 +49,7 @@ public: return std::make_unique(this->shared_from_this()); } - virtual bool uses_function(sstring ks_name, sstring function_name) const override { + virtual bool uses_function(const sstring& ks_name, const sstring& function_name) const override { return parsed_statement::uses_function(ks_name, function_name); } diff --git a/cql3/term.hh b/cql3/term.hh index 111a21fd3c..04e0a6661f 100644 --- a/cql3/term.hh +++ b/cql3/term.hh @@ -83,7 +83,7 @@ public: */ virtual bool contains_bind_marker() const = 0; - virtual bool uses_function(sstring ks_name, sstring function_name) const = 0; + virtual bool uses_function(const sstring& ks_name, const sstring& function_name) const = 0; /** * A parsed, non prepared (thus untyped) term. @@ -106,14 +106,14 @@ public: * case this RawTerm describe a list index or a map key, etc... * @return the prepared term. */ - virtual ::shared_ptr prepare(sstring keyspace, ::shared_ptr receiver) = 0; + virtual ::shared_ptr prepare(const sstring& keyspace, ::shared_ptr receiver) = 0; virtual sstring to_string() = 0; }; class multi_column_raw : public virtual raw { public: - virtual ::shared_ptr prepare(sstring keyspace, const std::vector& receiver) = 0; + virtual ::shared_ptr prepare(const sstring& keyspace, const std::vector& receiver) = 0; }; }; @@ -140,7 +140,7 @@ public: return this->shared_from_this(); } - virtual bool uses_function(sstring ks_name, sstring function_name) const override { + virtual bool uses_function(const sstring& ks_name, const sstring& function_name) const override { return false; } @@ -183,7 +183,7 @@ public: */ class non_terminal : public term { public: - virtual bool uses_function(sstring ks_name, sstring function_name) const override { + virtual bool uses_function(const sstring& ks_name, const sstring& function_name) const override { return false; }