Also replace derived types (map_type, collection_type, etc.).
As we'll change data_type's definition, this reduces the number of places
that need to be modified later, and is more readable.
From Pekka:
"This patch series converts LegacySchemaTables keyspace merging code to
C++. After this series, keyspaces are actually created as demonstrated
by the newly added test in cql_query_test.cc."
Use decorated_key in partition maps, from Tomasz:
"Partitions should be ordered using Origin's ordering, which is the natural
ordering of decorated_key. This is achieved by switching column_family's
partition map to use decorated_key instead of a bare partition_key.
This also includes some cleanups."
[avi] trivial adjustments to sstables/keys.cc
If we end up including more than one boost::<>::join, like
boost::range::join and boost::string::join, that will create an ambiguity.
The compiler doesn't like it very much.
Signed-off-by: Glauber Costa <glommer@cloudius-systems.com>
Needed by the cf_prop_defs class to modify a schema object in the
apply_to_cf_metadata() function.
Signed-off-by: Pekka Enberg <penberg@cloudius-systems.com>
Schema has containers which hash pointers to column definitions
embedded in the schema. It's not safe to just copy those, we need to
rehash them using new locations.
tuple_type is for managing our internal representation of keys. It
shares some interface with abstract_type, but the latter is a basis
for types of data stored in cells. tuple_type does not need to hide
behind a virtual interface.
Note: there is a TupleType in Origin, but it serves a different purpose.
Add a comment string to a schema, which may be set but is currently
not further used.
The originals Cassandra code has a comment for each of the builtin
schemas, and it's a shame not to remember them.
Signed-off-by: Nadav Har'El <nyh@cloudius-systems.com>