Commit Graph

29 Commits

Author SHA1 Message Date
Avi Kivity
ebaeefa02b Merge seatar upstream (seastar namespace)
- introcduced "seastarx.hh" header, which does a "using namespace seastar";
 - 'net' namespace conflicts with seastar::net, renamed to 'netw'.
 - 'transport' namespace conflicts with seastar::transport, renamed to
   cql_transport.
 - "logger" global variables now conflict with logger global type, renamed
   to xlogger.
 - other minor changes
2017-05-21 12:26:15 +03:00
Avi Kivity
7bd4b7ca63 cql3: split use_statement into raw and prepared variants
Rather than having one class fulfil both roles, have one class per role,
disentangling dependencies.
Message-Id: <1465053407-20931-1-git-send-email-avi@scylladb.com>
2016-06-08 16:48:45 +03:00
Avi Kivity
6728454591 cql3: rationalize extract_result_metadata()
Rather than dynamic_cast<>ing the statement to see whether it is a
select statement, add a virtual function to cql_statement to get the
result metadata.

This is faster and easier to follow.
Message-Id: <1464334638-7971-2-git-send-email-avi@scylladb.com>
2016-05-31 09:12:02 +03:00
Avi Kivity
caf8d4f0e6 cql3: separate parsed_statement and parsed_statment::prepared
cql3::statements::parsed_statement
    -> cql3::statements::raw::parsed_statement
  cql3::statements::parsed_statement::prepared
    -> cql3::statements::prepared_statement
Message-Id: <1464609556-3756-2-git-send-email-avi@scylladb.com>
2016-05-31 09:09:10 +03:00
Calle Wilund
3906dc9f0d cql3::statements: Change check_access to future<> + implement 2016-04-19 11:49:05 +00:00
Pekka Enberg
38a54df863 Fix pre-ScyllaDB copyright statements
People keep tripping over the old copyrights and copy-pasting them to
new files. Search and replace "Cloudius Systems" with "ScyllaDB".

Message-Id: <1460013664-25966-1-git-send-email-penberg@scylladb.com>
2016-04-08 08:12:47 +03:00
Pekka Enberg
6dbee22d2e cql3: Move use_statement class implementation to source file
Signed-off-by: Pekka Enberg <penberg@scylladb.com>
2015-10-23 16:17:17 +03:00
Pekka Enberg
ff93a840ae cql3: Remove ifdef'd code from use_statement.hh
Signed-off-by: Pekka Enberg <penberg@scylladb.com>
2015-10-23 15:52:02 +03:00
Pekka Enberg
83e6c428be transport: Add messages_fwd.hh and use it
Signed-off-by: Pekka Enberg <penberg@scylladb.com>
2015-10-23 15:52:02 +03:00
Pekka Enberg
1890d276b9 cql3: Add depends_on_{keyspace|column_family} helper to cql_statement
Signed-off-by: Pekka Enberg <penberg@scylladb.com>
2015-10-15 09:18:52 +03:00
Avi Kivity
d5cf0fb2b1 Add license notices 2015-09-20 10:43:39 +03:00
Calle Wilund
e99ffef141 cql_statement: change signature of execute_internal.
* Use storage_proxy here as well, even though the execution is 
  by definition local. (Since some local ops are better done 
  via SP anyway)
2015-07-06 08:21:15 +02:00
Gleb Natapov
a338407e29 make storage_proxy object distributed
storage_proxy holds per cpu state now to track clustering, so it has to
be distributed otherwise smp setup does not work.
2015-06-17 15:14:06 +02:00
Calle Wilund
1631ce132e Add "storage_proxy&" argument to cql_statement::validate
To make db, schemas etc reachable
2015-06-03 10:13:52 +02:00
Pekka Enberg
4efaccaff6 cql3: Use forward declaration for result_message
There's a cyclic dependency between cql3 and transport namespaces when
we introduce prepared statements. The latter pulls
parsed_statement::prepared from the former. Break the cycle by using
a forward delcaration in cql_statement.hh.

Signed-off-by: Pekka Enberg <penberg@cloudius-systems.com>
2015-03-18 11:14:40 +02:00
Pekka Enberg
b40661c330 cql3: Use shared_ptr for prepared statements
Query processor needs to store prepared statements as part of a client
session for PREPARE and EXECUTE requests. Switch from unique_ptr to
shared_ptr in preparation for that.

Signed-off-by: Pekka Enberg <penberg@cloudius-systems.com>
2015-03-18 10:49:41 +02:00
Pekka Enberg
39f4a58bde cql3: Implement use_statement::execute()
Signed-off-by: Pekka Enberg <penberg@cloudius-systems.com>
2015-02-25 10:18:18 +01:00
Tomasz Grabiec
0f2a1dffb6 cql3: Pass bound term count around as unsigned integer
It's compared with size_t and is set from size_t. To avoid ugly casts
we can store it as unsigned int. It's always positive anyway. Origin
uses signed int ("int") because there is no unsigned int in Java.
2015-02-12 19:40:58 +01:00
Tomasz Grabiec
f3130d395f cql3: Return shared_ptr<result_message> instead of optional
It's polymorphic type in Origin.
2015-02-12 19:40:57 +01:00
Tomasz Grabiec
9530a372cc cql3: Take reference to storage_proxy and call instance methods 2015-02-09 10:28:44 +01:00
Tomasz Grabiec
d243fb7a01 cql3: Pass sstrings as const& where applicable 2015-02-04 10:29:00 +01:00
Tomasz Grabiec
3a6cb52c28 cql3: Make cql_statement::prepare() accept a database reference 2015-02-04 10:28:59 +01:00
Tomasz Grabiec
5710a99f44 cql3: Fix mis-overrides of cql_statement::execute*()
The method may defer so the result is wrapped in future<>.

I think we don't need to wrap arguments in shared_ptr<> because they
may come from the request state object.
2015-02-04 10:28:51 +01:00
Pekka Enberg
74f8799324 cql3: Make cql::statement::uses_function const
Signed-off-by: Pekka Enberg <penberg@cloudius-systems.com>
2015-01-20 11:47:38 +02:00
Pekka Enberg
6211dd68df cql3: Fix parsed_statement type
Parsed statements are not CQL statements so we shouldn't inherit from the
latter although commit 485620a ("cql3: Fix cql_statement and parsed_statement
confusion") claims otherwise.

This is needed to convert classes such as UpdateStatement.ParsedInsert.

Signed-off-by: Pekka Enberg <penberg@cloudius-systems.com>
2015-01-20 11:41:08 +02:00
Pekka Enberg
677264fb3b cql3: Use shared_from_this for parsed_statement::prepare()
Use shared_from_this instead of the synthetic unique_ptr argument for
parsed_statement::prepare() to preserve the original Cassandra API for
parsed statements.

Signed-off-by: Pekka Enberg <penberg@cloudius-systems.com>
2015-01-12 15:02:52 +02:00
Pekka Enberg
046d827be6 cql3: Fix use_statement class override annotations
Add a missing override annotation to the use_statement class.

Signed-off-by: Pekka Enberg <penberg@cloudius-systems.com>
2015-01-01 10:35:26 +02:00
Pekka Enberg
c5d8506086 cql3: use unique_ptr for parsed_statement::prepare()
We cannot keep a C++ reference to the statement object because we then
lose ownership information. Start using unique_ptr as suggested by Avi
instead.

Signed-off-by: Pekka Enberg <penberg@cloudius-systems.com>
2014-12-30 16:27:47 +02:00
Pekka Enberg
cff499989d cql3: convert UseStatement to C++
Signed-off-by: Pekka Enberg <penberg@cloudius-systems.com>
2014-12-30 15:53:58 +02:00