• Marko Mäkelä's avatar
    MDEV-25791: Remove UNIV_INTERN · a7d68e7a
    Marko Mäkelä authored
    Back in 2006 or 2007, when MySQL AB and Innobase Oy existed as
    separately controlled entities (Innobase had been acquired by
    Oracle Corporation), MySQL 5.1 introduced a storage engine plugin
    interface and Oracle made use of it by distributing a separate
    InnoDB Plugin, which would contain some more bug fixes and
    improvements, compared to the version of InnoDB that was statically
    linked with the mysqld server that was distributed by MySQL AB.
    The built-in InnoDB would export global symbols, which would clash
    with the symbols of the dynamic InnoDB Plugin (which was supposed
    to override the built-in one when present).
    
    The solution to this problem was to declare all global symbols with
    UNIV_INTERN, so that they would get the GCC function attribute that
    specifies hidden visibility.
    
    Later, in MariaDB Server, something based on Percona XtraDB (a fork of
    MySQL InnoDB) became the statically linked implementation, and something
    closer to MySQL InnoDB was available as a dynamic plugin. Starting with
    version 10.2, MariaDB Server includes only one InnoDB implementation,
    and hence any reason to have the UNIV_INTERN definition was lost.
    
    btr_get_size_and_reserved(): Move to the same compilation unit with
    the only caller.
    
    innodb_set_buf_pool_size(): Remove. Modify innobase_buffer_pool_size
    directly.
    
    fil_crypt_calculate_checksum(): Merge to the only caller.
    
    ha_innobase::innobase_reset_autoinc(): Merge to the only caller.
    
    thd_query_start_micro(): Remove. Call thd_start_utime() directly.
    a7d68e7a
trx0trx.cc 59 KB