Piotr Sarna
10f90d0e25
types: remove deprecated comment
...
The comment does not apply anymore, as this definition is no more
in database.hh.
Message-Id: <a0b6ff851e1e3bcb5fcd402fbf363be7af0219af.1569580556.git.sarna@scylladb.com >
2019-09-27 19:32:17 +02:00
Rafael Ávila de Espíndola
01cd21c04d
types: Remove timestamp_native_type
...
Now that we know that anything expecting a date_type has been
converted to date_type_native_type, switch to using
db_clock::time_point when we want a timestamp_type.
Signed-off-by: Rafael Ávila de Espíndola <espindola@scylladb.com >
2019-09-07 10:07:33 -07:00
Rafael Ávila de Espíndola
df6c2d1230
types: Don't specialize data_type_for for db_clock::time_point
...
This also moves every user to date_type_native_type. A followup patch
will convert to timestamp_type when appropriate.
Signed-off-by: Rafael Ávila de Espíndola <espindola@scylladb.com >
2019-09-07 10:07:33 -07:00
Rafael Ávila de Espíndola
e09fa2dcff
types: Make it harder to create date_type
...
date_type was replaced with timestamp_type, but it was very easy to
create a date_type instead of a timestamp_type by accident.
This patch changes the code so that a date_type is no longer
implicitly used when constructing a data_value. All existing code that
was depending on this is converted to explicitly using
date_type_native_type. A followup patch will convert to timestamp_type
when appropriate.
Signed-off-by: Rafael Ávila de Espíndola <espindola@scylladb.com >
2019-09-07 10:07:33 -07:00
Rafael Ávila de Espíndola
e0065b414e
types: Avoid shared_ptr copies
...
They are somewhat expensive (in code size at least) and not needed
everywhere.
Inside the getter the variables are 'const data_type&', so we can
return that. Everything still works when a copy is needed, but in code
that just wants to check a property we avoid the copy.
Signed-off-by: Rafael Ávila de Espíndola <espindola@scylladb.com >
2019-09-03 07:43:35 -07:00
Rafael Ávila de Espíndola
1cb7127bf3
types: Make abstract_type::serialize a static helper
...
Signed-off-by: Rafael Ávila de Espíndola <espindola@scylladb.com >
2019-08-14 16:25:42 -07:00
Rafael Ávila de Espíndola
b175657ee7
types: Devirtualize abstract_type::validate
...
Signed-off-by: Rafael Ávila de Espíndola <espindola@scylladb.com >
2019-08-14 16:25:42 -07:00
Rafael Ávila de Espíndola
bf96f1111c
types: Make abstract_type::serialized_size a static helper
...
Signed-off-by: Rafael Ávila de Espíndola <espindola@scylladb.com >
2019-08-14 16:25:41 -07:00
Rafael Ávila de Espíndola
6831e05471
types: Move functions that use abstract_type::serialized_size out of line
...
Signed-off-by: Rafael Ávila de Espíndola <espindola@scylladb.com >
2019-08-14 10:02:00 -07:00
Rafael Ávila de Espíndola
047e34a31d
types: Remove serialize_value
...
It is no longer needed.
Signed-off-by: Rafael Ávila de Espíndola <espindola@scylladb.com >
2019-08-14 10:02:00 -07:00
Rafael Ávila de Espíndola
1e0663c56c
types: Devirtualize abstract_type::from_string
...
Signed-off-by: Rafael Ávila de Espíndola <espindola@scylladb.com >
2019-08-14 10:02:00 -07:00
Rafael Ávila de Espíndola
68b26047cc
types: Devirtualize abstract_type::serialize
...
Signed-off-by: Rafael Ávila de Espíndola <espindola@scylladb.com >
2019-08-14 10:02:00 -07:00
Rafael Ávila de Espíndola
18da5f9001
types: Devirtualize abstract_type::from_json_object
...
Signed-off-by: Rafael Ávila de Espíndola <espindola@scylladb.com >
2019-08-14 10:02:00 -07:00
Rafael Ávila de Espíndola
b987b2dcbe
types: Devirtualize abstract_type::to_json_string
...
Signed-off-by: Rafael Ávila de Espíndola <espindola@scylladb.com >
2019-08-14 10:02:00 -07:00
Rafael Ávila de Espíndola
968365b7e3
types: Devirtualize abstract_type::serialized_size
...
Signed-off-by: Rafael Ávila de Espíndola <espindola@scylladb.com >
2019-08-14 10:02:00 -07:00
Rafael Ávila de Espíndola
793bc50d69
types: Delete abstract_type::validate_collection_member
...
Signed-off-by: Rafael Ávila de Espíndola <espindola@scylladb.com >
2019-08-14 10:02:00 -07:00
Rafael Ávila de Espíndola
37686964f0
types: Devirtualize abstract_type::hash
...
Signed-off-by: Rafael Ávila de Espíndola <espindola@scylladb.com >
2019-08-14 10:02:00 -07:00
Rafael Ávila de Espíndola
396f5c7656
types: Devirtualize abstract_type::native_typeid
...
Signed-off-by: Rafael Ávila de Espíndola <espindola@scylladb.com >
2019-08-14 10:02:00 -07:00
Rafael Ávila de Espíndola
492043a77d
types: Devirtualize abstract_type::native_value_delete
...
Signed-off-by: Rafael Ávila de Espíndola <espindola@scylladb.com >
2019-08-14 10:02:00 -07:00
Rafael Ávila de Espíndola
4d849d7742
types: Devirtualize abstract_type::native_value_clone
...
Signed-off-by: Rafael Ávila de Espíndola <espindola@scylladb.com >
2019-08-14 10:02:00 -07:00
Rafael Ávila de Espíndola
ba887b7e56
types: Delete abstract_type::native_value_destroy
...
Signed-off-by: Rafael Ávila de Espíndola <espindola@scylladb.com >
2019-08-14 10:02:00 -07:00
Rafael Ávila de Espíndola
5c0e78d70c
types: Delete abstract_type::native_value_move
...
Signed-off-by: Rafael Ávila de Espíndola <espindola@scylladb.com >
2019-08-14 10:02:00 -07:00
Rafael Ávila de Espíndola
2bc6471a1e
types: Delete abstract_type::native_value_copy
...
Signed-off-by: Rafael Ávila de Espíndola <espindola@scylladb.com >
2019-08-14 10:02:00 -07:00
Rafael Ávila de Espíndola
33394dfdc1
types: Delete abstract_type::native_value_size
...
Signed-off-by: Rafael Ávila de Espíndola <espindola@scylladb.com >
2019-08-14 10:02:00 -07:00
Rafael Ávila de Espíndola
c22ca2f9c9
types: Delete abstract_type::native_value_alignment
...
Signed-off-by: Rafael Ávila de Espíndola <espindola@scylladb.com >
2019-08-14 10:02:00 -07:00
Rafael Ávila de Espíndola
37c0f5b985
types: Devirtualize get_string
...
Signed-off-by: Rafael Ávila de Espíndola <espindola@scylladb.com >
2019-08-14 10:02:00 -07:00
Rafael Ávila de Espíndola
f633f70616
types: Devirtualize abstract_type::is_value_compatible_with_internal
...
It now is a static helper.
Signed-off-by: Rafael Ávila de Espíndola <espindola@scylladb.com >
2019-08-14 10:02:00 -07:00
Rafael Ávila de Espíndola
19c9a033d9
types: Devirtualize abstract_type::is_compatible_with
...
Signed-off-by: Rafael Ávila de Espíndola <espindola@scylladb.com >
2019-08-14 10:02:00 -07:00
Rafael Ávila de Espíndola
d245d08045
types: Devirtualize abstract_type::is_string
...
Signed-off-by: Rafael Ávila de Espíndola <espindola@scylladb.com >
2019-08-14 10:02:00 -07:00
Rafael Ávila de Espíndola
ae30d78ca9
types: Devirtualize abstract_type::equal
...
Signed-off-by: Rafael Ávila de Espíndola <espindola@scylladb.com >
2019-08-14 10:02:00 -07:00
Rafael Ávila de Espíndola
f087756684
types: Implement less with compare
...
We defined less for some types and compare for others. There is no
type for which compare is substantially more expensive, so define it
for all types and implement less with compare.
Signed-off-by: Rafael Ávila de Espíndola <espindola@scylladb.com >
2019-08-14 10:02:00 -07:00
Rafael Ávila de Espíndola
9bbf55e9c0
types: Devirtualize abstract_type::compare
...
Signed-off-by: Rafael Ávila de Espíndola <espindola@scylladb.com >
2019-08-14 10:02:00 -07:00
Rafael Ávila de Espíndola
a5daa8d258
types: Devirtualize abstract_type::less
...
Signed-off-by: Rafael Ávila de Espíndola <espindola@scylladb.com >
2019-08-14 10:02:00 -07:00
Rafael Ávila de Espíndola
a3e898a648
types: Devirtualize abstract_type::deserialize
...
Signed-off-by: Rafael Ávila de Espíndola <espindola@scylladb.com >
2019-08-14 10:02:00 -07:00
Rafael Ávila de Espíndola
8145faa66f
types: Inline is_byte_order_comparable into only user
...
Signed-off-by: Rafael Ávila de Espíndola <espindola@scylladb.com >
2019-08-14 10:02:00 -07:00
Rafael Ávila de Espíndola
325418db16
types: Devirtualize abstract_type::is_byte_order_comparable
...
Signed-off-by: Rafael Ávila de Espíndola <espindola@scylladb.com >
2019-08-14 10:02:00 -07:00
Rafael Ávila de Espíndola
d2b063877b
types: Devirtualize abstract_type::is_byte_order_equal
...
Signed-off-by: Rafael Ávila de Espíndola <espindola@scylladb.com >
2019-08-14 10:02:00 -07:00
Rafael Ávila de Espíndola
21da060b24
types: Devirtualize abstract_type::update_user_type
...
The type walking is similar to what the find function does, but
refactoring it doesn't seem worth it if these are the only two uses.
Signed-off-by: Rafael Ávila de Espíndola <espindola@scylladb.com >
2019-08-14 10:02:00 -07:00
Rafael Ávila de Espíndola
25a5631a46
types: Devirtualize abstract_type::references_user_type
...
Signed-off-by: Rafael Ávila de Espíndola <espindola@scylladb.com >
2019-08-14 10:02:00 -07:00
Rafael Ávila de Espíndola
544337f380
types: Devirtualize abstract_type::references_duration
...
Signed-off-by: Rafael Ávila de Espíndola <espindola@scylladb.com >
2019-08-14 10:02:00 -07:00
Rafael Ávila de Espíndola
a6b48bda03
types: Devirtualize abstract_type::is_native
...
Signed-off-by: Rafael Ávila de Espíndola <espindola@scylladb.com >
2019-08-14 10:02:00 -07:00
Rafael Ávila de Espíndola
f5b4fe5685
types: Devirtualize abstract_type::is_atomic
...
Signed-off-by: Rafael Ávila de Espíndola <espindola@scylladb.com >
2019-08-14 10:02:00 -07:00
Rafael Ávila de Espíndola
ec09fb94cb
types: Devirtualize abstract_type::is_multi_cell
...
Signed-off-by: Rafael Ávila de Espíndola <espindola@scylladb.com >
2019-08-14 10:02:00 -07:00
Rafael Ávila de Espíndola
1bea7747ce
types: Devirtualize abstract_type::is_tuple
...
Signed-off-by: Rafael Ávila de Espíndola <espindola@scylladb.com >
2019-08-14 10:02:00 -07:00
Rafael Ávila de Espíndola
1581805a8d
types: Devirtualize abstract_type::is_collection
...
Signed-off-by: Rafael Ávila de Espíndola <espindola@scylladb.com >
2019-08-14 10:02:00 -07:00
Rafael Ávila de Espíndola
1137695cb2
types: Devirtualize abstract_type::is_counter
...
Signed-off-by: Rafael Ávila de Espíndola <espindola@scylladb.com >
2019-08-14 10:02:00 -07:00
Rafael Ávila de Espíndola
d3ba0d132a
types: Devirtualize abstract_type::is_user_type
...
Signed-off-by: Rafael Ávila de Espíndola <espindola@scylladb.com >
2019-08-14 10:02:00 -07:00
Rafael Ávila de Espíndola
0ff539500f
types: Devirtualize abstract_type::cql3_type_name_impl
...
Signed-off-by: Rafael Ávila de Espíndola <espindola@scylladb.com >
2019-08-14 10:02:00 -07:00
Rafael Ávila de Espíndola
5314b489e3
types: Devirtualize abstract_type::get_cql3_kind_impl
...
Signed-off-by: Rafael Ávila de Espíndola <espindola@scylladb.com >
2019-08-14 10:02:00 -07:00
Rafael Ávila de Espíndola
2f0c64844f
types: Devirtualize abstract_type::is_reversed
...
Signed-off-by: Rafael Ávila de Espíndola <espindola@scylladb.com >
2019-08-14 10:02:00 -07:00