1. 03 May, 2019 9 commits
    • Sergey Vojtovich's avatar
      Allocate Transaction_state_tracker statically · a7adc2ce
      Sergey Vojtovich authored
      One less new/delete per connection.
      
      Part of MDEV-14984 - regression in connect performance
      a7adc2ce
    • Sergey Vojtovich's avatar
      Static current schema and state change trackers · 47bd06d5
      Sergey Vojtovich authored
      Saves 2 new/delete per connection.
      
      Part of MDEV-14984 - regression in connect performance
      47bd06d5
    • Sergey Vojtovich's avatar
      Allocate orig_list statically · 01e8f3c5
      Sergey Vojtovich authored
      tool_list is a temporary list needed only for SET SESSION
      session_track_system_variables, so allocate it on stack instead.
      
      Sane reinit() calls.
      
      Saves 2 new/delete per connection.
      
      Part of MDEV-14984 - regression in connect performance
      01e8f3c5
    • Sergey Vojtovich's avatar
      Get rid of not implemented SESSION_GTIDS_TRACKER · 55bdd7f7
      Sergey Vojtovich authored
      One less new/delete per connection.
      
      Part of MDEV-14984 - regression in connect performance
      55bdd7f7
    • Sergey Vojtovich's avatar
      Cleanup session tracker API · 2be28a91
      Sergey Vojtovich authored
      - Session_sysvars_tracker::server_init_check() -> sysvartrack_validate_value()
      - Session_sysvars_tracker::check_var_list()    -> sysvartrack_validate_value()
      
      - Session_sysvars_tracker::server_init_process() -> sysvartrack_global_update()
      - sysvartrack_reprint_value()                    -> sysvartrack_global_update()
      
      - sysvartrack_value_len()       -> sysvartrack_session_value_ptr()
      - sysvartrack_value_construct() -> sysvartrack_session_value_ptr()
      
      - sysvartrack_update() -> Session_sysvars_tracker::update()
      - Session_tracker::server_boot_verify() -> session_tracker_init()
      - sysvar_tracker() -> /dev/null
      
      Part of MDEV-14984 - regression in connect performance
      2be28a91
    • Sergey Vojtovich's avatar
      Cleanup session tracker redundancy · 19d5ddcc
      Sergey Vojtovich authored
      - m_enabled is initialised by the base class constructor
      - removed unused schema_track_inited
      - moved Transaction_state_tracker constructor to declaration
      - common enable()
      - removed unused Session_sysvars_tracker::check_str()
      - classes are "private" by default
      - don't even try to compile for embedded
      
      Part of MDEV-14984 - regression in connect performance
      19d5ddcc
    • Sergey Vojtovich's avatar
      Session_sysvars_tracker::vars_list cleanups · 8f594b33
      Sergey Vojtovich authored
      - return proper type
      - removed useless node argument
      - removed useless mem_flag
      - classes are "private" by default
      - simplified iterators
      
      Part of MDEV-14984 - regression in connect performance
      8f594b33
    • Sergey Vojtovich's avatar
      A proper State_tracker::m_changed enacpsulation · 0e91e0c3
      Sergey Vojtovich authored
      Note: preserved original behaviour, where remaining trackers are not reset
      on error from store(). This effectively means subsequent statements will
      start tracking from unclean state.
      
      Part of MDEV-14984 - regression in connect performance
      0e91e0c3
    • Varun Gupta's avatar
      MDEV-18943: Group Concat with limit not working with views · 879878e4
      Varun Gupta authored
      Adjusted the Item_func_group_concat::print function to take into account
      limit if present with GROUP_CONCAT
      879878e4
  2. 02 May, 2019 6 commits
    • Marko Mäkelä's avatar
      Merge 10.2 into 10.3 · 51823483
      Marko Mäkelä authored
      51823483
    • Marko Mäkelä's avatar
      Merge 10.2 into 10.3 · 158247d3
      Marko Mäkelä authored
      158247d3
    • Monty's avatar
      Fixed some compilation warnings/errors · 0d6fb43e
      Monty authored
      0d6fb43e
    • Thirunarayanan Balathandayuthapani's avatar
      MDEV-14398 innodb_encryption_rotate_key_age=0 causes innodb_encrypt_tables to be ignored · ada1074b
      Thirunarayanan Balathandayuthapani authored
      The statement
      
      SET GLOBAL innodb_encryption_rotate_key_age=0;
      
      would have the unwanted side effect that ENCRYPTION=DEFAULT tablespaces
      would no longer be encrypted or decrypted according to the setting of
      innodb_encrypt_tables.
      
      We implement a trigger, so that whenever one of the following is executed:
      
      SET GLOBAL innodb_encrypt_tables=OFF;
      SET GLOBAL innodb_encrypt_tables=ON;
      SET GLOBAL innodb_encrypt_tables=FORCE;
      
      all wrong-state ENCRYPTION=DEFAULT tablespaces will be added to
      fil_system_t::rotation_list, so that the encryption will be added
      or removed.
      
      Note: This will *NOT* happen automatically after a server restart.
      Before reading the first page of a data file, InnoDB cannot know
      the encryption status of the data file. The statement
      SET GLOBAL innodb_encrypt_tables will have the side effect that
      all not-yet-read InnoDB data files will be accessed in order to
      determine the encryption status.
      
      innodb_encrypt_tables_validate(): Stop disallowing
      SET GLOBAL innodb_encrypt_tables when innodb_encryption_rotate_key_age=0.
      This reverts part of commit 50eb40a2
      that addressed MDEV-11738 and MDEV-11581.
      
      fil_system_t::read_page0(): Trigger a call to fil_node_t::read_page0().
      Refactored from fil_space_get_space().
      
      fil_crypt_rotation_list_fill(): If innodb_encryption_rotate_key_age=0,
      initialize fil_system->rotation_list. This is invoked both on
      SET GLOBAL innodb_encrypt_tables and
      on SET GLOBAL innodb_encryption_rotate_key_age=0.
      
      fil_space_set_crypt_data(): Remove.
      
      fil_parse_write_crypt_data(): Simplify the logic.
      
      This is joint work with Marko Mäkelä.
      ada1074b
    • Aleksey Midenkov's avatar
    • Varun Gupta's avatar
      Adjust the result for join_cache.test · 0fd5ecb0
      Varun Gupta authored
      0fd5ecb0
  3. 01 May, 2019 3 commits
    • Anel Husakovic's avatar
      MDEV-17654 Incorrect syntax returned for column with CHECK constraint in the... · 2370eeb0
      Anel Husakovic authored
      MDEV-17654 Incorrect syntax returned for column with CHECK constraint in the "SHOW CREATE TABLE ..." result
      
      Prepend COMMENT before CHECK constraint in SHOW CREATE
      
      Closes #924
      2370eeb0
    • Daniel Black's avatar
      MDEV-15051: signal handler - output information about the core generation · dc8e15db
      Daniel Black authored
      The working directory, resource limits and core pattern will
      aid the user finding a core file in the case of failure.
      
      While the core file size is most relevant however other resource
      limits may give a clue as the the cause of the fatal signal so
      include them also.
      
      As signal handler functions are limited, proc filesystem reads/
      readlink calls are used instead of the more obvious getcwd/getrlimits
      functions which aren't listed as signal safe.
      
      Results in output of the form:
      
      Writing a core file: working directory at /tmp/datadir
      Resource Limits:
      Limit                     Soft Limit           Hard Limit Units
      Max cpu time              unlimited            unlimited seconds
      Max file size             unlimited            unlimited bytes
      Max data size             unlimited            unlimited bytes
      Max stack size            8388608              unlimited bytes
      Max core file size        unlimited            unlimited bytes
      Max resident set          unlimited            unlimited bytes
      Max processes             47194                47194 processes
      Max open files            1024                 4096 files
      Max locked memory         65536                65536 bytes
      Max address space         unlimited            unlimited bytes
      Max file locks            unlimited            unlimited locks
      Max pending signals       47194                47194 signals
      Max msgqueue size         819200               819200 bytes
      Max nice priority         0                    0
      Max realtime priority     0                    0
      Max realtime timeout      unlimited            unlimited            us
      Core pattern: |/usr/libexec/abrt-hook-ccpp %s %c %p %u %g %t %P %I
      
      Segmentation fault (core dumped)
      
      Closes #537
      dc8e15db
    • Sergei Golubchik's avatar
      compilation fixes for VS 2019 · b953bf7e
      Sergei Golubchik authored
      b953bf7e
  4. 30 Apr, 2019 3 commits
  5. 29 Apr, 2019 11 commits
  6. 28 Apr, 2019 3 commits
  7. 27 Apr, 2019 1 commit
  8. 26 Apr, 2019 4 commits
    • Alexander Barkov's avatar
      Tests for MDEV-15881 Assertion `is_valid_value_slow()' failed in... · 00377147
      Alexander Barkov authored
      Tests for MDEV-15881 Assertion `is_valid_value_slow()' failed in Datetime::Datetime or corrupt data after ALTER with indexed persistent column
      
      The patch for "MDEV-18486 Database crash on a table with indexed virtual column"
      fixed MDEV-15881 as well. So adding tests only.
      00377147
    • Marko Mäkelä's avatar
      1a5ba2a4
    • Marko Mäkelä's avatar
      Remove roll_node_t::partial · 4e9f8c9c
      Marko Mäkelä authored
      The field roll_node_t::partial holds if and only if
      savept has been set. Make savept a pointer.
      
      trx_rollback_start(): Use the semantic type undo_no_t for roll_limit.
      4e9f8c9c
    • Aditya A's avatar
      Bug #29021730 CRASHING INNOBASE_COL_CHECK_FK WITH FOREIGN KEYS · f3a9f12b
      Aditya A authored
      PROBLEM
      -------
      Function innodb_base_col_setup_for_stored() was skipping to store
      the base column information for a generated column if the base column
      was a "STORED" generated column. This later causes a crash in function
      innoabse_col_check_fk() where it says that a generated columns depends
      upon two base columns ,but there is information on only one of them.
      There was a explicit check barring the stored columns being stored,
      which is wrong because the documentation says that a generated stored
      column can be a part of a generated column.
      
      FIX
      ----
      Store the information of base column if it is a stored generated column.
      
      #RB21247
      Reviewed by: Debarun Banerjee <debarun.banerjee@oracle.com>
      f3a9f12b