From 485620abcf87dee1725e1d0f40f3dd27e9b54887 Mon Sep 17 00:00:00 2001 From: Pekka Enberg Date: Tue, 13 Jan 2015 10:49:32 +0200 Subject: [PATCH] cql3: Fix cql_statement and parsed_statement confusion Cassandra's ParsedStatement does not implement CqlStatement. Classes such as UseStatement extend ParsedStatement and implement CqlStatement which causes JVM to dispatch methods such as usesFunction to ParsedStatement. This doesn't happen in C++, of course, which leaves classes such as use_statement abstract and thus uninstantiable. Signed-off-by: Pekka Enberg --- cql3/statements/parsed_statement.hh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/cql3/statements/parsed_statement.hh b/cql3/statements/parsed_statement.hh index 86948344fd..b53dfdcd04 100644 --- a/cql3/statements/parsed_statement.hh +++ b/cql3/statements/parsed_statement.hh @@ -39,7 +39,7 @@ namespace cql3 { namespace statements { -class parsed_statement { +class parsed_statement : public virtual cql_statement { private: ::shared_ptr _variables; @@ -78,7 +78,7 @@ public: virtual std::unique_ptr prepare() = 0; - virtual bool uses_function(sstring ks_name, sstring function_name) { + virtual bool uses_function(sstring ks_name, sstring function_name) override { return false; } };