Uploaded image for project: 'MariaDB Server'
  1. MariaDB Server
  2. MDEV-16452

Split TIME and DATETIME handling in Item_func_between, in_temporal, cmp_item_internal

    Details

      Description

      These methods:

      longlong Item_func_between::val_int_cmp_temporal()
      char *in_temporal::get_value_internal()
      void cmp_item_temporal::store_value_internal()
      

      use val_temporal_packed(field_type()) internally.
      This is not friendly to new data types, e.g. it won't work for a new implementation for TIMESTAMP (needed for MDEV-15654) which transfers TIMESTAMP data inside the server using my_time_t representation rather than MYSQL_TIME representation.

      This task is to remove Item::val_temporal_packed() and split implementations of the mentioned methods into separate methods for TIME and DATETIME:

      longlong Item_func_between::val_int_cmp_time()
      longlong Item_func_between::val_int_cmp_datetime()
      uchar *in_datetime::get_value()
      uchar *in_time::get_value()
      void cmp_item_datetime::store_value()
      void cmp_item_time::store_value()
      

      These methods will use val_time_packed() and val_datetime_packed() directly.

        Attachments

          Issue Links

            Activity

              People

              • Assignee:
                bar Alexander Barkov
                Reporter:
                bar Alexander Barkov
              • Votes:
                0 Vote for this issue
                Watchers:
                2 Start watching this issue

                Dates

                • Created:
                  Updated:
                  Resolved: