1. 15 Jul, 2020 6 commits
    • Daniel Black's avatar
      MDEV-23175: my_timer_milliseconds ftime deprecated - clock_gettime replacement · 20512a68
      Daniel Black authored
      Linux glibc has deprecated ftime resutlting in a compile error on Fedora-32.
      
      Per manual clock_gettime is the suggested replacement. Because my_timer_milliseconds
      is a relative time used by largely the perfomrance schema, CLOCK_MONOTONIC_COARSE
      is used. This has been available since Linux-2.6.32.
      
      The low overhead is shows in the unittest:
      
          $ unittest/mysys/my_rdtsc-t
          1..11
          # ----- Routine ---------------
          # myt.cycles.routine          :             5
          # myt.nanoseconds.routine     :            11
          # myt.microseconds.routine    :            13
          # myt.milliseconds.routine    :            18
          # myt.ticks.routine           :            17
          # ----- Frequency -------------
          # myt.cycles.frequency        :    3596597014
          # myt.nanoseconds.frequency   :    1000000000
          # myt.microseconds.frequency  :       1000000
          # myt.milliseconds.frequency  :          1039
          # myt.ticks.frequency         :           103
          # ----- Resolution ------------
          # myt.cycles.resolution       :             1
          # myt.nanoseconds.resolution  :             1
          # myt.microseconds.resolution :             1
          # myt.milliseconds.resolution :             1
          # myt.ticks.resolution        :             1
          # ----- Overhead --------------
          # myt.cycles.overhead         :           118
          # myt.nanoseconds.overhead    :           234
          # myt.microseconds.overhead   :           222
          # myt.milliseconds.overhead   :            30
          # myt.ticks.overhead          :          4946
          ok 1 - my_timer_init() did not crash
          ok 2 - The cycle timer is strictly increasing
          ok 3 - The cycle timer is implemented
          ok 4 - The nanosecond timer is increasing
          ok 5 - The nanosecond timer is implemented
          ok 6 - The microsecond timer is increasing
          ok 7 - The microsecond timer is implemented
          ok 8 - The millisecond timer is increasing
          ok 9 - The millisecond timer is implemented
          ok 10 - The tick timer is increasing
          ok 11 - The tick timer is implemented
      20512a68
    • Marko Mäkelä's avatar
      Merge 10.4 into 10.5 · e67daa56
      Marko Mäkelä authored
      e67daa56
    • Marko Mäkelä's avatar
      Revert MDEV-20453 (string_view) · ced3ec4c
      Marko Mäkelä authored
      In fsp_path_to_space_name(), we would access a byte right before
      the start of the string, tripping AddressSanitizer.
      
      This reverts commit d87006a1
      and commit a7634281.
      ced3ec4c
    • Marko Mäkelä's avatar
      Merge 10.3 into 10.4 · 9936cfd5
      Marko Mäkelä authored
      9936cfd5
    • Alexander Barkov's avatar
      MDEV-23162 Improve Protocol performance for numeric data · eb2eaba7
      Alexander Barkov authored
      Avoid character set conversion for numeric data in this scenario:
      
      SET NAMES utf8;
      CREATE OR REPLACE TABLE t1 (a INT);
      INSERT INTO t1 VALUES (1);
      SELECT a FROM t1;
      eb2eaba7
    • Alexander Barkov's avatar
      Preparatory changes for MDEV-23162 Improve Protocol performance for numeric data · be98036f
      Alexander Barkov authored
      - Renaming this virtual method store() to store_str():
          store(const char *str, size_t length, CHARSET_INFO *src_cs, CHARSET_INFO *dst_cs)
        We'll be adding more variants of store*() soon. This change will help to avoid
        ambiguities during overloading.
      
      - Adding a helper method store_ident().
      
      - Renaming store_str(const LEX_CSTRING &s...) to store_lex_cstring(),
        to avoid ambiguties during overloading.
      
      - Adding a helper method store() for backward compatibility, to avoid a lot of
        changes in the code now. But eventually we should replace store() to
        non-ambiguius methods store_str() or store_ident().
      
      - Adding a helper method Protocol::needs_conversion() and reusing it
        in two places.
      be98036f
  2. 14 Jul, 2020 15 commits
  3. 13 Jul, 2020 9 commits
  4. 12 Jul, 2020 1 commit
  5. 11 Jul, 2020 2 commits
  6. 10 Jul, 2020 3 commits
    • Otto Kekäläinen's avatar
      Deb: Misc ColumnStore Debian packaging improvements · 43937792
      Otto Kekäläinen authored
      - Add 'libboost-all-dev' and 'libreadline-gplv2-dev' as they were was found
        to be a compulsory build dependency for columnstore plugin.
      - Add 'expect' as run-time dependencey for columnstore plugin as scripts
        use it:
          usr/bin/mcs_module_installer.sh: #!/usr/bin/expect
          usr/bin/remote_command.sh: #!/usr/bin/expect
          usr/bin/remote_command_verify.sh: #!/usr/bin/expect
          usr/bin/remote_scp_get.sh: #!/usr/bin/expect
          usr/bin/remote_scp_put.sh: #!/usr/bin/expect
          usr/bin/rsync.sh: #!/usr/bin/expect
      - Properly define depends on Python. No Python 2 support needs to be
        considered, Python 3 has been around long enough. Fixes Lintian errors
          E: mariadb-plugin-columnstore: python-script-but-no-python-dep
          usr/bin/mcs-loadbrm.py #!python
          E: mariadb-plugin-columnstore: python-script-but-no-python-dep
          usr/bin/mcs-start-storagemanager.py #!python
      - Partially revert undocumented and thus unjustified changes in commits
        d69a79da63287089efdc5f90a11ecd66ce55b471 and
        c0565666cfe6528b76bc53ce50d3690d13c92cf6.
      - Trigger ldconfig, otherwise Lintian complains:
          E: mariadb-plugin-columnstore: package-must-activate-ldconfig-trigger
          usr/lib/x86_64-linux-gnu/libwriteengineredistribute.so
      - Update postinst to be compatible with new server binary mariadbd name.
      - Properly detect systemd or fallback to sysv init in postrm script.
      - Only attempt to build ColumnStore on amd64 and i386. Test builds on
        Launchpad.net showed the CMake plugin configure step will prevent even
        attempts to build on other platforms.
      - Clean up and unify cmake build command in debian/rules.
      - Explicitly list files not installed.
      - Run 'wrap-and-sort -a -v'.
      - Truncate build logs on Salsa-CI to keep under 4 MB. This is now needed
        as the ColumnStore build is so verbose.
        See https://jira.mariadb.org/browse/MCOL-4111.
      - Update Travis-CI dependencies to match new debian/control.
      43937792
    • Alexey Botchkov's avatar
      MDEV-21385 PAM v2 plugin produces lots of zombie processes. · 873eb4a3
      Alexey Botchkov authored
      The auth_pam_tool that is executed from pam_auth() can be still
      not finished by the time we do the waitpid() there.
      As we use WNOHANG option for the waitpid(), it didn't wait and
      left the zombie process. So let's do the loop of waitpid() with the
      limited number of sleeps.
      873eb4a3
    • Rucha Deodhar's avatar
      MDEV-19119: main.ssl_crl fails in buildbot with wrong error code · f81ff932
      Rucha Deodhar authored
      The client can only find out if the server has disconnected when it tries to
      read or send something. If the server gets disconnected before
      send_client_reply_packet(), the client will try sending authentication
      information but it will fail. But, if the client is fast enough to send
      autentication information before disconnecting, it will notice that when
      reading the ok packet. So the client can fail on read or on write.
      It is unpredictable because, the process are unsynchronized and this
      could happen in any order.
      f81ff932
  7. 09 Jul, 2020 3 commits
    • Varun Gupta's avatar
      MDEV-10120: Wrong result of UNION .. ORDER BY GROUP_CONCAT() · 737c3025
      Varun Gupta authored
      Reject queries that have aggregate functions with UNION as these
      are not allowed by standard.
      737c3025
    • Eugene Kosov's avatar
      fix compilation with gcc-10 · 24ed08c3
      Eugene Kosov authored
      ../sql/sql_class.cc: In constructor ‘start_new_trans::start_new_trans(THD*)’:
      ../include/m_string.h:61:49: error: ‘void* memset(void*, int, size_t)’ clearing an object of non-trivial type ‘struct Ha_data’; use assignment or value-initialization instead [-Werror=class-memaccess]
         61 | # define bzero(A,B)             memset((A),0,(B))
            |                                                 ^
      ../sql/sql_class.cc:5805:3: note: in expansion of macro ‘bzero’
       5805 |   bzero(thd->ha_data, sizeof(thd->ha_data));
            |   ^~~~~
      In file included from ../sql/sql_class.cc:33:
      ../sql/sql_class.h:2003:8: note: ‘struct Ha_data’ declared here
       2003 | struct Ha_data
            |        ^~~~~~~
      24ed08c3
    • Oleksandr Byelkin's avatar
      Fix typo in the comment (and old info) · a759f9af
      Oleksandr Byelkin authored
      a759f9af
  8. 08 Jul, 2020 1 commit