1. 12 Mar, 2018 5 commits
  2. 11 Mar, 2018 1 commit
  3. 10 Mar, 2018 4 commits
    • Marko Mäkelä's avatar
      MDEV-15529 IMPORT TABLESPACE unnecessarily uses the doublewrite buffer · 112df069
      Marko Mäkelä authored
      fil_space_t::atomic_write_supported: Always set this flag for
      TEMPORARY TABLESPACE and during IMPORT TABLESPACE. The page
      writes during these operations are by definition not crash-safe
      because they are not written to the redo log.
      
      fil_space_t::use_doublewrite(): Determine if doublewrite should
      be used.
      
      buf_dblwr_update(): Add assertions, and let the caller check whether
      doublewrite buffering is desired.
      
      buf_flush_write_block_low(): Disable the doublewrite buffer for
      the temporary tablespace and for IMPORT TABLESPACE.
      
      fil_space_set_imported(), fil_node_open_file(), fil_space_create():
      Initialize or revise the space->atomic_write_supported flag.
      
      buf_page_io_complete(), buf_flush_write_complete(): Add the parameter
      dblwr, to indicate whether doublewrite was used for writes.
      
      buf_dblwr_sync_datafiles(): Remove an unnecessary flush of
      persistent tablespaces when flushing temporary tablespaces.
      (Move the call to buf_dblwr_flush_buffered_writes().)
      112df069
    • Marko Mäkelä's avatar
      MDEV-15524 Do not disable page checksums for temporary tables · 54765aaa
      Marko Mäkelä authored
      buf_flush_init_for_writing(): Remove the parameter skip_checksum.
      54765aaa
    • Marko Mäkelä's avatar
      MDEV-15524 Do not write garbage for temporary tables · 4fa18d52
      Marko Mäkelä authored
      fsp_init_file_page_low(): Always initialize the page.
      4fa18d52
    • Marko Mäkelä's avatar
      1e4cb840
  4. 09 Mar, 2018 2 commits
  5. 08 Mar, 2018 1 commit
  6. 07 Mar, 2018 2 commits
    • Marko Mäkelä's avatar
      MDEV-14904 Backport innodb_default_row_format · 8ef727b3
      Marko Mäkelä authored
      InnoDB in Debian uses utf8mb4 as default character set since
      version 10.0.20-2. This leads to major pain due to keys longer
      than 767 bytes.
      
      MariaDB 10.2 (and MySQL 5.7) introduced the setting
      innodb_default_row_format that is DYNAMIC by default. These
      versions also changed the default values of the parameters
      innodb_large_prefix=ON and innodb_file_format=Barracuda.
      This would allow longer column index prefixes to be created.
      The original purpose of these parameters was to allow InnoDB
      to be downgraded to MySQL 5.1, which is long out of support.
      
      Every InnoDB version since MySQL 5.5 does support operation
      with the relaxed limits.
      
      We backport the parameter innodb_default_row_format to
      MariaDB 10.1, but we will keep its default value at COMPACT.
      This allows MariaDB 10.1 to be configured so that CREATE TABLE
      is less likely to encounter a problem with the limitation:
      
      	loose_innodb_large_prefix=ON
      	loose_innodb_default_row_format=DYNAMIC
      
      (Note that the setting innodb_large_prefix was deprecated in
      MariaDB 10.2 and removed in MariaDB 10.3.)
      
      The only observable difference in the behaviour with the default
      settings should be that ROW_FORMAT=DYNAMIC tables can be created
      both in the system tablespace and in .ibd files, no matter what
      innodb_file_format has been assigned to. Unlike MariaDB 10.2,
      we are not changing the default value of innodb_file_format,
      so ROW_FORMAT=COMPRESSED tables cannot be created without
      changing the parameter.
      8ef727b3
    • Ian Gilfillan's avatar
      a0501897
  7. 04 Mar, 2018 1 commit
  8. 02 Mar, 2018 2 commits
  9. 28 Feb, 2018 1 commit
  10. 27 Feb, 2018 1 commit
    • Alexander Barkov's avatar
      MDEV-11952 Oracle-style packages: stage#5 · 5f7c764f
      Alexander Barkov authored
      Backporting from bb-10.2-compatibility to bb-10.2-ext
      
      Version: 2018-01-26
      
      - CREATE PACKAGE [BODY] statements are now
        entirely written to mysql.proc with type='PACKAGE' and type='PACKAGE BODY'.
      - CREATE PACKAGE BODY now supports IF NOT EXISTS
      - DROP PACKAGE BODY now supports IF EXISTS
      - CREATE OR REPLACE PACKAGE [BODY] is now supported
      - CREATE PACKAGE [BODY] now support the DEFINER clause:
      
          CREATE DEFINER user@host PACKAGE pkg ... END;
          CREATE DEFINER user@host PACKAGE BODY pkg ... END;
      
      - CREATE PACKAGE [BODY] now supports SQL SECURITY and COMMENT clauses, e.g.:
      
          CREATE PACKAGE p1 SQL SECURITY INVOKER COMMENT "comment" AS ... END;
      
      - Package routines are now created from the package CREATE PACKAGE BODY
        statement and don't produce individual records in mysql.proc.
      
      - CREATE PACKAGE BODY now supports package-wide variables.
        Package variables can be read and set inside package routines.
        Package variables are stored in a separate sp_rcontext,
        which is cached in THD on the first packate routine call.
      
      - CREATE PACKAGE BODY now supports the initialization section.
      
      - All public routines (i.e. declared in CREATE PACKAGE)
        must have implementations in CREATE PACKAGE BODY
      
      - Only public package routines are available outside of the package
      
      - {CREATE|DROP} PACKAGE [BODY] now respects CREATE ROUTINE and ALTER ROUTINE
        privileges
      
      - "GRANT EXECUTE ON PACKAGE BODY pkg" is now supported
      
      - SHOW CREATE PACKAGE [BODY] is now supported
      
      - SHOW PACKAGE [BODY] STATUS is now supported
      
      - CREATE and DROP for PACKAGE [BODY] now works for non-current databases
      
      - mysqldump now supports packages
      
      - "SHOW {PROCEDURE|FUNCTION) CODE pkg.routine" now works for package routines
      
      - "SHOW PACKAGE BODY CODE pkg" now works (the package initialization section)
      
      - A new package body level MDL was added
      
      - Recursive calls for package procedures are now possible
      
      - Routine forward declarations in CREATE PACKATE BODY are now supported.
      
      - Package body variables now work as SP OUT parameters
      
      - Package body variables now work as SELECT INTO targets
      
      - Package body variables now support ROW, %ROWTYPE, %TYPE
      5f7c764f
  11. 25 Feb, 2018 1 commit
    • Alexander Barkov's avatar
      MDEV-15420 Wrong result for CAST from TIME or DATETIME with zero integer part... · d0cc7a52
      Alexander Barkov authored
      MDEV-15420 Wrong result for CAST from TIME or DATETIME with zero integer part and non-zero microseconds to DECIMAL(X,Y)
      
      The loop in ull2dec() does not iterate if "from" is zero,
      so to->intg got erroneously set to 0 instead of 1.
      Because if this, my_decimal2seconds() wrote the fractional
      part into a wrong buf[x].
      
      Catching the special case with zero "from" and properly initialize "to"
      using decimal_make_zero().
      d0cc7a52
  12. 24 Feb, 2018 2 commits
  13. 22 Feb, 2018 8 commits
  14. 21 Feb, 2018 9 commits