• Sergei Golubchik's avatar
    PARTITION BY SYSTEM_TIME INTERVAL ... · e36c5ec0
    Sergei Golubchik authored
    Lots of changes:
    * calculate the current history partition in ::external_lock(),
      not in ::write_row() or ::update_row()
    * remove dynamically collected per-partition row_end stats
    * no full table scan in open_table_from_share to calculate these
      stats, no manual MDL/thr_locks in open_table_from_share
    * no shared stats in TABLE_SHARE = no mutexes or condition waits when
      calculating current history partition
    * always compare timestamps, don't convert them to MYSQL_TIME
      (avoid DST ambiguity, and it's faster too)
    * correct interval handling, 1 month = 1 month, not 30 * 24 * 3600 seconds
    * save/restore first partition start time, and count intervals from there
    * only allow to drop first partitions if INTERVAL
    * when adding new history partitions, split the data in the last history
      parition, if it was overflowed
    * show partition boundaries in INFORMATION_SCHEMA.PARTITIONS
    e36c5ec0
table.cc 266 KB