1. 11 Aug, 2020 1 commit
    • Monty's avatar
      Fixed bug in free locks that caused rows in cache to not be properly flushed · 1ff23d0c
      Monty authored
      Fixed by doing adding external_lock(F_UNLCK) in free_locks.
      I also moved unlock of cache_handler to be after changing lock type of
      cached tables to ensure that no one can use cached table while this is
      happening (as cache table is locked with write lock).
      I also fixed a wrong mutex order bug in ha_cache::flush_insert_cache()
      
      Other things:
      - Addded share::cached_rows to track inserted rows. This is only used
        for asserts to check the number of rows in the cache.
      - Fixed wrong mysql_file_chsize() in case of repair
      1ff23d0c
  2. 01 Jul, 2020 2 commits
    • Monty's avatar
      36590b33
    • Monty's avatar
      Fixed crashed bug on simple insert · ba731bdc
      Monty authored
      Other things:
      - Added test from columnstore team
      - Fixed two reported bugs from columnstore team
      - Call free_locks as part of start_trans() instead of get_status()
        to ensure that we have locks both for cached table and cache table
        before we try to free any.
      - Store pointers to lock->get_status and lock->update_status for the
        cached table. Was needed by ha_tina in flush_insert_cache to make
        new insert rows visible for the SELECT that caused the flush
      ba731bdc
  3. 18 Jun, 2020 1 commit
    • Monty's avatar
      Fixed bug in cache: · 0463e1f7
      Monty authored
      - The THR_LOCK org_lock must be stored in a shared structure so that all
        instances of a table can use it. Fixed by adding a ha_cache_share object
        that keeps track of this one.
      - Fixed wrong test in get_status_and_flush_cache to detect in insert command
      - Fixed in get_status_and_flush_cache that we always free the insert lock
        if we don't need it.
      0463e1f7
  4. 23 Apr, 2020 1 commit
  5. 18 Apr, 2020 2 commits
  6. 17 Apr, 2020 3 commits
    • Kentoku SHIBA's avatar
      MDEV-20502 Queries against spider tables return wrong values for columns... · 181f17c3
      Kentoku SHIBA authored
      MDEV-20502 Queries against spider tables return wrong values for columns following constant declarations.
      
      When executing a query like "select id, 0 as const, val from ...", there are 3 columns(items) in Query->select at handlerton->create_group_by(). After that, MariaDB makes a temporary table with 2 columns. The skipped items are const item, so fixing Spider to skip const items for items at Query->select.
      181f17c3
    • Kentoku SHIBA's avatar
      b4dd996d
    • Vladislav Vaintroub's avatar
      Post-fixes for MDEV-18851 for Windows · e2a932c9
      Vladislav Vaintroub authored
      - On Windows, do not handle lack of SeLockMemory privilege as fatal error.
      Just like on any other platform, there is a fallback to ordinary pages.
      It is better than server that does not start, silently.
      
      - On Windows, remove incorrect  irritating "fallback to conventional pages failed"
      from the warning, when allocating large pages fails.
      e2a932c9
  7. 14 Apr, 2020 4 commits
    • Marko Mäkelä's avatar
      MDEV-22242 B-trees can become extremely skewed · 2f7d91bb
      Marko Mäkelä authored
      The test innodb.innodb_wl6326 that had been disabled in 10.4 due to
      MDEV-21535 is failing on 10.5 due to a different reason: the removal
      of the MLOG_COMP_END_COPY_CREATED operations in MDEV-12353
      commit 276f996a caused PAGE_LAST_INSERT
      to be set to something nonzero by the function page_copy_rec_list_end().
      
      This in turn would cause btr_page_get_split_rec_to_right() to behave
      differently: we would not attempt to split the page at all, but simply
      insert the new record into the new, empty, right leaf page.
      
      Even though the change reduced the sizes of some tables, it is better
      to aim for balanced trees.
      
      page_copy_rec_list_end(), PageBulk::finishPage():
      Preserve PAGE_LAST_INSERT, PAGE_N_DIRECTION, PAGE_DIRECTION.
      
      PageBulk::finish(): Move some common code from PageBulk::finishPage().
      2f7d91bb
    • Otto Kekäläinen's avatar
      MDEV-22150: Symlink and move test client plugins to client plugin path · 87a7968c
      Otto Kekäläinen authored
      Without this, the mtr will fail to load client plugins and the following
      tests would fail:
      
      - main.plugin_auth_qa_2
      - main.plugin_auth_qa_3
      - main.plugin_auth
      - plugins.multiauth
      - plugins.auth_ed25519
      87a7968c
    • Vicențiu Ciorbaru's avatar
      Specify a new client_plugindir path, to be used during testing · 8447edb7
      Vicențiu Ciorbaru authored
      When testing installed packages, the client (mariadb or mysql) can have
      plugins stored in a separate location compared to server. This change
      ensures that the correct paths are used for the plugin-dir directive in
      the my.cnf generated by mysql-test-run.
      
      The directives in my.cnf will be replaced like so:
      
      [client]
      plugin-dir=$client_plugindir
      
      [mysqld]
      plugin-dir=$plugindir
      
      where $<variable-name> corresponds to the variable name in mtr.
      8447edb7
    • Vicențiu Ciorbaru's avatar
      Update dialog to not provide plugin-dir path to mysqltest · 609a9312
      Vicențiu Ciorbaru authored
      plugin-dir is provided via --defaults-file=<config-file> already part of
      the exec call.
      609a9312
  8. 13 Apr, 2020 1 commit
    • Otto Kekäläinen's avatar
      MDEV-22053: Pass INSTALL_LAYOUT "DEB" correctly to CONC (libmariadb) · 4bc31a90
      Otto Kekäläinen authored
      As this was missing, the libmariadb/install.cmake section for Debian
      builds was not triggered at all, and existing fixes to make the
      Debian paths correct did not apply.
      
      Update libmariadb3 paths in Debian packaging after MariaDB Connector C
      3.1.8 upgrade
      
      Also now include caching_sha2_password.so which was previously omitted.
      
      Keep old libmariadbclient.a as symbolic link for backwards compatibility.
      
      Closes: CONC-304
      Related: CONC-456, MDEV-22150
      4bc31a90
  9. 12 Apr, 2020 2 commits
    • Sergei Golubchik's avatar
      cleanup: comments · 91e79dff
      Sergei Golubchik authored
      91e79dff
    • Sergei Golubchik's avatar
      MDEV-22218 InnoDB: Failing assertion: node->pcur->rel_pos == BTR_PCUR_ON upon... · fcd84da5
      Sergei Golubchik authored
      MDEV-22218 InnoDB: Failing assertion: node->pcur->rel_pos == BTR_PCUR_ON upon LOAD DATA with NO_BACKSLASH_ESCAPES in SQL_MODE and unique blob in table
      
      `inited == NONE` at the initialization time does not always mean
      that it'll be `NONE` later, at the execution time. Use a more complex
      caller-specific logic to decide whether to create a cloned lookup handler.
      
      Besides LOAD (as in the original bug report) make sure that all
      prepare_for_insert() invocations are covered by tests. Add tests for
      CREATE ... SELECT, multi-UPDATE, and multi-DELETE.
      
      Don't enable write cache with long uniques.
      fcd84da5
  10. 11 Apr, 2020 2 commits
  11. 10 Apr, 2020 5 commits
    • Vladislav Vaintroub's avatar
      remove debugging message · 364e7a9a
      Vladislav Vaintroub authored
      364e7a9a
    • Vladislav Vaintroub's avatar
      Windows build - use InstallRequiredSystemLibraries for MSVC_CRT_TYPE=/MD · 3ab21fd4
      Vladislav Vaintroub authored
      CMake parameter
      
      This includes compiler-specific dependencies
      - tiny part of CRT, mostly memcpy/memset in msvcr140.dll
      - exception handling in msvc140_1.dll
      - C++ standard library in msvcp140
      not much else
      
      CMake is smart enough to copy the dependencies into the bin directory
      itself.
      3ab21fd4
    • Vladislav Vaintroub's avatar
      MDEV-22214 mariadbd.exe calls function mysqld.exe, and crashes · 93efbc39
      Vladislav Vaintroub authored
      Stop linking plugins to the server executable on Windows.
      Instead, extract whole server functionality into a large DLL, called
      server.dll. Link both plugins, and small server "stub" exe to it.
      
      This eliminates plugin dependency on the name of the server executable.
      It also reduces the size of the packages (since tiny mysqld.exe
      and mariadbd.exe are now both linked to one big DLL)
      
      Also, simplify the functionality of exporing all symbols from selected
      static libraries. Rely on WINDOWS_EXPORT_ALL_SYMBOLS, rather than old
      self-backed solution.
      
      fix compile error
      
      replace GetProcAddress(GetModuleHandle(NULL), "variable_name")
      for server exported data with actual variable names.
      
      Runtime loading was never required,was error prone
      , since symbols could be missing at runtime, and now it actually failed,
      because we do not export symbols from executable anymore, but from a shared
      library
      
      This did require a MYSQL_PLUGIN_IMPORT decoration for the plugin,
      but made the code more straightforward, and avoids missing symbols at
      runtime (as mentioned before).
      
      The audit plugin is still doing some dynamic loading, as it aims to work
      cross-version. Now it won't work cross-version on Windows, as it already
      uses some symbols that are *not* dynamically loaded, e.g fn_format
      and those symbols now exported from server.dll , when earlier they were
      exported by mysqld.exe
      
      Windows, fixes for storage engine plugin loading
      after various rebranding stuff
      
      Create server.dll containing functionality of the whole server
      make mariadbd.exe/mysqld.exe a stub that is only  calling mysqld_main()
      
      fix build
      93efbc39
    • Vladislav Vaintroub's avatar
    • Vladislav Vaintroub's avatar
      CMake : Do not add compile flags, such as -Wconversion with ADD_DEFINITIONS · 11cebb4a
      Vladislav Vaintroub authored
      This broke clang-cl, apparently when compiling version resource file with
      RC tool, because RC would not aceept -Wxxx at all.
      11cebb4a
  12. 09 Apr, 2020 2 commits
  13. 08 Apr, 2020 14 commits