Duarte Nunes
809b45e160
udt: Add drop type statement
...
Signed-off-by: Duarte Nunes <duarte@scylladb.com >
2016-04-20 18:07:02 +02:00
Duarte Nunes
66c60f03fe
udt: Add references_user_type to abstract_type
...
This patch adds a virtual function to the abstract_type hierarchy to
tell whether a given type references the specified type. Needed to
implement the drop and alter type statements.
Signed-off-by: Duarte Nunes <duarte@scylladb.com >
2016-04-20 09:54:07 +02:00
Duarte Nunes
6732da67ab
udt: Add is_user_type function to abstract_type
...
This patch adds a function to identify a given abstract_type as a
user_type_impl.
Signed-off-by: Duarte Nunes <duarte@scylladb.com >
2016-04-20 09:54:07 +02:00
Duarte Nunes
ddb4a4b29b
udt: Implement as_cql3_type for user_type_impl
...
Signed-off-by: Duarte Nunes <duarte@scylladb.com >
2016-04-20 09:54:06 +02:00
Duarte Nunes
35a88b5d49
udt: Complete create_type_statement
...
Signed-off-by: Duarte Nunes <duarte@scylladb.com >
2016-04-20 09:54:06 +02:00
Duarte Nunes
d1f215b743
udt: Merge user defined type mutations
...
This patch implements the merge_types() function,
allowing mutations to user defined types to be applied.
Signed-off-by: Duarte Nunes <duarte@scylladb.com >
2016-04-20 09:54:06 +02:00
Duarte Nunes
fdddcfb3ea
udt: Fix user type compatibility check
...
A new user type is checked for compatibility against the previous
version of that type, so as to ensure that an updated field type
is compatible with the previous field type (e.g., altering a field
type from text to blob is allowed, but not the other way around).
However, it is also possible to add new fields to a user type. So,
when comparing a user type against its previous version, we should
also allow the current, new type to be longer than the previous one.
The current code instead allows for the previous type to be longer,
which this patch fixes.
Signed-off-by: Duarte Nunes <duarte@scylladb.com >
2016-04-20 09:54:06 +02:00
Duarte Nunes
eae7f10906
map_difference: Allow on unordered_map
...
This patch changes the map_difference interface so difference()
can be called on on unordered_maps.
Signed-off-by: Duarte Nunes <duarte@scylladb.com >
2016-04-20 09:54:06 +02:00
Duarte Nunes
7dc895e63d
types: Add operator== for abstract_types
...
This patch allows abstract_types to be compared for equality. In
particular, it enables the indirect_equal_to<abstract_type> idiom.
Signed-off-by: Duarte Nunes <duarte@scylladb.com >
2016-04-20 09:54:06 +02:00
Duarte Nunes
0aeb4dcaaf
udt: Implement equals() for user_type_impl
...
Signed-off-by: Duarte Nunes <duarte@scylladb.com >
2016-04-20 09:54:06 +02:00
Duarte Nunes
d6d29f7c52
schema: Replace ad hoc func with indirect_equal_to
...
Signed-off-by: Duarte Nunes <duarte@scylladb.com >
2016-04-20 09:54:06 +02:00
Duarte Nunes
08a7bba4ed
udt: Announce UDT migrations
...
This patch defines the member functions responsible for announce
create, update and drop user defined types migration.
Signed-off-by: Duarte Nunes <duarte@scylladb.com >
2016-04-20 09:54:06 +02:00
Duarte Nunes
dd75fe8ec0
udt: Add mutations for user defined types
...
This patch implements mutations for user defined types.
Signed-off-by: Duarte Nunes <duarte@scylladb.com >
2016-04-20 09:54:06 +02:00
Duarte Nunes
37a1547971
udt: Add migration notifications
...
This patch adds migration notifications for user defined types.
Signed-off-by: Duarte Nunes <duarte@scylladb.com >
2016-04-20 09:54:06 +02:00
Duarte Nunes
c2e3e918e8
udt: Take name by ref when querying for an UDT
...
..so as not to incur in a copy.
Signed-off-by: Duarte Nunes <duarte@scylladb.com >
2016-04-20 09:54:06 +02:00
Duarte Nunes
2c15778fe0
udt: Remove user_types field from keyspace
...
This field is superfluous and adds confusion regarding the user_types
field in the keyspace metadata.
Signed-off-by: Duarte Nunes <duarte@scylladb.com >
2016-04-20 09:54:06 +02:00
Duarte Nunes
c7b3a4b144
udt: Parse user types system table
...
This patch loads and parses the user types system table during
bootstrap.
Signed-off-by: Duarte Nunes <duarte@scylladb.com >
2016-04-20 09:54:06 +02:00
Duarte Nunes
f8d8dbdeb7
types: Don't wrap tombstone in an std::optional
...
All the callers of do_serialize_mutation_form pass a valid tombstone
that is converted into a non-empty optional. This happens even if the
tombstone is empty (tombstone::timestamp == api::missing_timestamp).
This patch fixes this by passing in a reference to the tombstone which
is convertible to bool, based on whether it is empty or not.
Signed-off-by: Duarte Nunes <duarte@scylladb.com >
Message-Id: <1460620528-3628-1-git-send-email-duarte@scylladb.com >
2016-04-20 09:22:01 +02:00
Duarte Nunes
40c1b29701
cql3: Implement contains relation
...
Although it doesn't work in the absence of secondary indexes,
now we provide the same error messages as origin when trying to use
the contains relation.
Fixes #1158
Signed-off-by: Duarte Nunes <duarte@scylladb.com >
Message-Id: <1461088626-26958-1-git-send-email-duarte@scylladb.com >
2016-04-20 09:22:25 +03:00
Pekka Enberg
4ed702f0da
Merge "Authorizer support" from Calle
...
"Conversion/implementation of "authorizer" code from origin, handling
permissions management for users/resources.
Default implementation keeps mapping of <user.resource>->{permissions}
in a table, contents of which is cached for slightly quicker checks.
Adds access control to all (existing) cql statements.
Adds access management support to the CQL impl. (GRANT/REVOKE/LIST)
Verified manually and with dtest auth_test.py. Note that several of these
still fail due to (unrelated) unimplemented features, like index, types
etc.
Fixes #1138 "
2016-04-19 15:00:38 +03:00
Calle Wilund
4c246b5cc3
scylla.yaml: Move authorizer/authenticator options to supported section
2016-04-19 11:49:06 +00:00
Calle Wilund
9ed25a970e
Cql.g: Permission statements parsing
2016-04-19 11:49:06 +00:00
Calle Wilund
3b101c6e19
cql3::statements::drop_user_statement: Drop all permissions for user
2016-04-19 11:49:06 +00:00
Calle Wilund
14cc47d8b9
cql3::statements::revoke_statement: Initial conversion
2016-04-19 11:49:06 +00:00
Calle Wilund
4e1ef3c1bc
cql3::statements::grant_statement: Initial conversion
2016-04-19 11:49:05 +00:00
Calle Wilund
04c37def3a
cql3::statements::list_permissions_statement: Initial conversion
2016-04-19 11:49:05 +00:00
Calle Wilund
fe23447f6f
cql3::statements::permission_altering_statement: Inital conversion
...
Alter permission base typ
2016-04-19 11:49:05 +00:00
Calle Wilund
add2111c0a
cql3::statements::authorizarion_statement: Initial conversion
...
Auth cql base type
2016-04-19 11:49:05 +00:00
Calle Wilund
3906dc9f0d
cql3::statements: Change check_access to future<> + implement
2016-04-19 11:49:05 +00:00
Calle Wilund
dac6cf69eb
service::client_state: Add authorization checkers
2016-04-19 11:49:05 +00:00
Calle Wilund
072acc68da
validation: Add KS validation + convinence methods
...
Looking up local db.
2016-04-19 11:49:05 +00:00
Calle Wilund
a7e1af1c06
db::config: Add permissions cache entries/mark auth/perm as used
2016-04-19 11:49:05 +00:00
Calle Wilund
36bb40c205
auth::auth: Add authorizer initialization + permissions getter
...
Create and init authorizer object on start. Create thread local
permissions cache to front end the actual authorizer.
2016-04-19 11:49:05 +00:00
Calle Wilund
03568d0325
tests::cql_test_env: Fake logged in user in case test requires is.
2016-04-19 11:49:05 +00:00
Calle Wilund
ead1c882f8
utils::loading_cache: Version of the LoadingCache type used in origin
...
Simple, expiring, cache of potentially limited number of entries.
2016-04-19 11:49:05 +00:00
Calle Wilund
956ee87e12
auth::authenticator: Change "protected_resources" to return reference
...
It it an immutable static value anyway.
2016-04-19 11:49:05 +00:00
Calle Wilund
1f0bbf2d9a
auth::authorizer: Initial conversion
...
Main authorization endpoint. Default (and only) real authorizer
keeps a mapping resource -> permission sets in system table
2016-04-19 11:49:04 +00:00
Benoît Canet
e17795d2dd
scylla_dev_mode_setup: Unify --developer-mode prompt and parsing
...
Fixes : #1194
Signed-of-by: Benoît Canet <benoit@scylladb.com >
Message-Id: <1461002978-5379-2-git-send-email-benoit@scylladb.com >
2016-04-19 09:38:03 +03:00
Takuya ASADA
f6252be0c1
utils: fix compilation error on utils/exceptions.hh
...
It doesn't able to find std::system_error due to missing header.
Fixes #1202
Signed-off-by: Takuya ASADA <syuu@scylladb.com >
Message-Id: <1461006884-28316-1-git-send-email-syuu@scylladb.com >
2016-04-19 09:37:31 +03:00
Raphael S. Carvalho
bf03cd1ea6
sstables: kill unused code from size tiered strategy
...
Signed-off-by: Raphael S. Carvalho <raphaelsc@scylladb.com >
Message-Id: <485b1e49419cb052218ab4558f27270ce3bd03b4.1460761821.git.raphaelsc@scylladb.com >
2016-04-19 08:46:06 +03:00
Raphael S. Carvalho
29db5f5e1f
sstables: move compaction strategy code to a new source file
...
Moving compaction strategy code from sstables/compaction.cc to
sstables/compaction_strategy.cc
That improves readability. Strategy code should be separated
from the generic compaction code.
Signed-off-by: Raphael S. Carvalho <raphaelsc@scylladb.com >
Message-Id: <5af6fc8f7321351a071fc0ce03c80ffea21f8396.1460761821.git.raphaelsc@scylladb.com >
2016-04-19 08:45:43 +03:00
Pekka Enberg
a3a0404d33
Merge seastar upstream
...
* seastar 2185f37...2b3c363 (1):
> net/tls: Fix compilation with older GnuTLS versions
2016-04-19 08:43:36 +03:00
Calle Wilund
c446fe50e6
tuple_hash: Add convinence operator for two arguments (non-pair)
2016-04-18 13:51:15 +00:00
Calle Wilund
f0d2efd206
data_value: Add constructor from unordered_set<>
2016-04-18 13:51:15 +00:00
Calle Wilund
690c7207fe
cql3::untyped_result_set: Add get_set<> method
...
Gets a value as a, you guessed it, set.
2016-04-18 13:51:15 +00:00
Calle Wilund
443af44f24
log: Add output operator for std::exception&/std::system_error&
2016-04-18 13:51:15 +00:00
Calle Wilund
ca7d339110
auth::authenticated_user: Add copy/move constructors
2016-04-18 13:51:15 +00:00
Calle Wilund
d3a9650646
auth::permission_set: Add < operator
2016-04-18 13:51:15 +00:00
Calle Wilund
c93d114949
auth::permission: Add stringizers + move sets into namespace
2016-04-18 13:51:15 +00:00
Calle Wilund
6e09920f93
auth::data_resource: Fix to_string to match origin
2016-04-18 13:51:15 +00:00