types/comparable_bytes: add a missing implementation for date_type_impl
date_type_impl is like timestamp_type_impl, but unsigned.
This commit is contained in:
@@ -190,7 +190,7 @@ BOOST_AUTO_TEST_CASE(test_bigint) {
|
||||
byte_comparable_test(generate_integer_test_data<int64_t>());
|
||||
}
|
||||
|
||||
BOOST_AUTO_TEST_CASE(test_date) {
|
||||
BOOST_AUTO_TEST_CASE(test_simple_date) {
|
||||
byte_comparable_test(generate_integer_test_data<uint32_t>([] (uint32_t days) {
|
||||
return data_value(simple_date_native_type{days});
|
||||
}));
|
||||
@@ -212,6 +212,12 @@ BOOST_AUTO_TEST_CASE(test_timestamp) {
|
||||
}));
|
||||
}
|
||||
|
||||
BOOST_AUTO_TEST_CASE(test_date) {
|
||||
byte_comparable_test(generate_integer_test_data<db_clock::rep>([] (db_clock::rep milliseconds) {
|
||||
return data_value(date_type_native_type{db_clock::time_point{db_clock::duration(milliseconds)}});
|
||||
}));
|
||||
}
|
||||
|
||||
template <std::floating_point fp_type>
|
||||
static std::vector<data_value> generate_floating_point_test_data() {
|
||||
std::vector<data_value> test_data;
|
||||
|
||||
@@ -1231,6 +1231,11 @@ struct to_comparable_bytes_visitor {
|
||||
|
||||
void operator()(const empty_type_impl&) {}
|
||||
|
||||
void operator()(const date_type_impl&) {
|
||||
out.write(serialized_bytes_view.prefix(sizeof(db_clock::rep)));
|
||||
serialized_bytes_view.remove_prefix(sizeof(db_clock::rep));
|
||||
}
|
||||
|
||||
void operator()(const abstract_type& type) {
|
||||
// Unimplemented
|
||||
on_internal_error(cblogger, fmt::format("byte comparable format not supported for type {}", type.name()));
|
||||
@@ -1353,6 +1358,11 @@ struct from_comparable_bytes_visitor {
|
||||
|
||||
void operator()(const empty_type_impl&) {}
|
||||
|
||||
void operator()(const date_type_impl&) {
|
||||
out.write(comparable_bytes_view.prefix(sizeof(db_clock::rep)));
|
||||
comparable_bytes_view.remove_prefix(sizeof(db_clock::rep));
|
||||
}
|
||||
|
||||
void operator()(const abstract_type& type) {
|
||||
// Unimplemented
|
||||
on_internal_error(cblogger, fmt::format("byte comparable format not supported for type {}", type.name()));
|
||||
|
||||
Reference in New Issue
Block a user