1. 26 Apr, 2022 1 commit
    • Tuukka Pasanen's avatar
      MDEV-27033: Remove version suffix from Debian packages · 375b8f40
      Tuukka Pasanen authored
      Remove version suffix from Debian packages (for example mariadb-server-10.9)
      because installing suffixed package removes older version
      of package even if it's suffixed (for example mariadb-server-10.7)
      
      This make also Debian package management easier in future MariaDB
      version iterations because there is no need for stacking
      Conlicts/Breaks/Replaces-parameters in every new major release
      375b8f40
  2. 20 Apr, 2022 1 commit
  3. 19 Apr, 2022 2 commits
    • Rucha Deodhar's avatar
      MDEV-24920: Merge "old" SQL variable to "old_mode" sql variable · 5945e420
      Rucha Deodhar authored
      Analysis: There are 2 server variables- "old_mode" and "old". "old" is no
      longer needed as "old_mode" has replaced it (however still used in some places
       in the code). "old_mode" and "old" has same purpose- emulate behavior from
      previous MariaDB versions. So they can be merged to avoid confusion.
      Fix: Deprecate "old" variable and create another mode for @@old_mode to mimic
      behavior of previous "old" variable. Create specific modes for specifix task
      that --old sql variable was doing earlier and use the new modes instead.
      5945e420
    • Brandon Nesterenko's avatar
      MDEV-20119: Implement the --do-domain-ids, --ignore-domain-ids, and... · c132bce1
      Brandon Nesterenko authored
      MDEV-20119: Implement the --do-domain-ids, --ignore-domain-ids, and --ignore-server-ids options for mysqlbinlog
      
      New Feature:
      ============
      Extend mariadb-binlog command-line tool to allow for filtering
      events using GTID domain and server ids. The functionality mimics
      that of a replica server’s DO_DOMAIN_IDS, IGNORE_DOMAIN_IDS, and
      IGNORE_SERVER_IDS from CHANGE MASTER TO. For completeness, this
      patch additionally adds the option --do-server-ids as an alias for
      --server-id, which now accepts a list of server ids instead of a
      single one.
      
      Example usage:
        mariadb-binlog --do-domain-ids=2,3,4 --do-server-ids=1,3
        master-bin.000001
      
      Functional Notes:
       1. --do-domain-ids cannot be combined with --ignore-domain-ids
       2. --do-server-ids cannot be combined with --ignore-server-ids
       3. A domain id filter can be combined with a server id filter
       4. When any new filter options are combined with the
      --gtid-strict-mode option, events from excluded domains/servers are
      not validated.
       5. Domain/server id filters can be combined with GTID ranges (i.e.
      specifications of --start-position and --stop-position). However,
      because the --stop-position option implicitly undertakes filtering
      to only output events within its range of domains, when combined
      with --do-domain-ids or --ignore-domain-ids, output will consist of
      the intersection between the filters. Specifically, with
      --do-domain-ids and --stop-position, only events with domain ids
      present in both argument lists will be output. Conversely, with
      --ignore-domain-ids and --stop-position, only events with domain ids
      present in the --stop-position and absent from the
      --ignore-domain-ids options will be output.
      
      Reviewed By
      ============
      Andrei Elkin <andrei.elkin@mariadb.com>
      c132bce1
  4. 15 Apr, 2022 1 commit
  5. 14 Apr, 2022 4 commits
    • Rucha Deodhar's avatar
      MDEV-28072: JSON_EXTRACT has inconsistent behavior with '0' value in json · c69d72c2
      Rucha Deodhar authored
      path (when range is used)
      
      Analysis: When 0 comes after space, then the json path parser changes the
      state to JE_SYN instead of PS_Z (meaning parse zero). Hence the warning.
      Fix: Make the state PS_Z instead of JE_SYN.
      c69d72c2
    • Rucha Deodhar's avatar
      MDEV-28071: JSON_EXISTS returns always 1 if it is used range notation for · 95a9078e
      Rucha Deodhar authored
      json path
      Analysis: When searching for the given path in json string, if the current
      step is of array range type, then path was considered reached which meant
      path exists. So output was always true. The end indexes of range were not
      evaluated.
      Fix: If the current step type for a path is array range, then check if the
      value array_counter[] is in range of n_item and n_item_end. If it is, then
      path exists. Only then return true. If the range criteria is never met
      then return false.
      95a9078e
    • Rucha Deodhar's avatar
      vcol.wrong_arena failing on buildbot when current date is '2022-03-17' · e6511a39
      Rucha Deodhar authored
      Analysis: When current date is '2022-03-17', dayname() gives 'Thursday'. The
      previous json state is PS_KEYX which means key started with quote.
      So now json parser for path is supposed to parse the key.
      The keyname starts with 'T'. But the path transition table has JE_SYN when
      previous state is PS_KEYX and next letter is 'T'. So it gives error.
      Fix: We want to continue parsing the quoted keyname. So JE_SYN is incorrect.
      Replaced it with PS_KNMX.
      e6511a39
    • Rucha Deodhar's avatar
      MDEV-27911: Implement range notation for json path · c781cefd
      Rucha Deodhar authored
      Range can be thought about in similar manner as wildcard (*) where
      more than one elements are processed. To implement range notation, extended
      json parser to parse the 'to' keyword and added JSON_PATH_ARRAY_RANGE for
      path type. If there is 'to' keyword then use JSON_PATH_ARRAY range for
      path type along with existing type.
      This new integer to store the end index of range is n_item_end.
      When there is 'to' keyword, store the integer in n_item_end else store in
      n_item.
      c781cefd
  6. 13 Apr, 2022 6 commits
    • Rucha Deodhar's avatar
      MDEV-27972: Unexpected behavior with negative zero (-0) in · abe97121
      Rucha Deodhar authored
      JSON Path
      
      Analysis: When we have '-' followed by 0, then the state is
      changed to JE_SYN, meaning syntax error.
      Fix: Change the state to PS_INT instead, because we are
      reading '0' next (integer) and it is not a syntax error.
      abe97121
    • Rucha Deodhar's avatar
      MDEV-22224: Support JSON Path negative index · dfcbb30a
      Rucha Deodhar authored
      This patch can be viewed as combination of two parts:
      1) Enabling '-' in the path so that the parser does not give out a warning.
      2) Setting the negative index to a correct value and returning the
         appropriate value.
      
      1) To enable using the negative index in the path:
      To make the parser not return warning when negative index is used in path
      '-' needs to be allowed in json path characters. P_NEG is added
      to enable this and is made recognizable by setting the 45th index of
      json_path_chr_map[] to P_NEG (instead of previous P_ETC)
      because 45 corresponds to '-' in unicode.
      When the path is being parsed and '-' is encountered, the parser should
      recognize it as parsing '-' sign, so a new json state PS_NEG is required.
      When the state is PS_NEG, it means that a negative integer is
      going to be parsed so set is_negative_index of current step to 1 and
      n_item is set accordingly when integer is encountered after '-'.
      Next proceed with parsing rest of the path and get the correct path.
      Next thing is parsing the json and returning correct value.
      
      2) Setting the negative index to a correct value and returning the value:
      While parsing json if we encounter array and the path step for the array
      is a negative index (n_item < 0), then we can count the number of elements
      in the array and set n_item to correct corresponding value. This is done in
      json_skip_array_and_count.
      dfcbb30a
    • Marko Mäkelä's avatar
      Merge 10.8 into 10.9 · e98013cb
      Marko Mäkelä authored
      e98013cb
    • Nayuta Yanagisawa's avatar
      Merge 10.7 into 10.8 · cbf9d8a8
      Nayuta Yanagisawa authored
      cbf9d8a8
    • KiyoshiTakeda's avatar
      MDEV-27981 Deprecate spider_internal_limit · e87c710d
      KiyoshiTakeda authored
      The variable spider_internal_limit is for specifying the number of
      records acquired by Spider from each remote server. 
      
      There seems not to be much use of the variable. Thus, we deprecate it
      and the corresponding table options. 
      Reviewed-by: default avatarNayuta Yanagisawa <nayuta.yanagisawa@hey.com>
      e87c710d
    • Daniel Black's avatar
      MDEV-27791: rocksdb_log_dir test postfix · bea47a6f
      Daniel Black authored
      We can only remove a subdirectory in mtr on an installed instance
      
      Example failure previously:
      
      CURRENT_TEST: rocksdb.rocksdb_log_dir
      mysqltest: At line 15: Path '/usr/local/mariadb-10.9.0-linux-systemd-x86_64/mysql-test/var/tmp/1' is not a subdirectory of MYSQLTEST_VARDIR '/usr/local/mariadb-10.9.0-linux-systemd-x86_64/mysql-test/var/1'or MYSQL_TMP_DIR '/usr/local/mariadb-10.9.0-linux-systemd-x86_64/mysql-test/var/tmp/1'
      bea47a6f
  7. 12 Apr, 2022 10 commits
  8. 11 Apr, 2022 5 commits
    • Tuukka Pasanen's avatar
      MDEV-27033: Clean lintian 'duplicate-override-context' warnings · e858fc89
      Tuukka Pasanen authored
      Fix Debian lintian warnings:
        W: mariadb-10.7 source: duplicate-override-context version-substvar-for-external-package (lines 12 13) [debian/source/lintian-overrides:13]
        W: mariadb-10.7 source: duplicate-override-context version-substvar-for-external-package (lines 14 15) [debian/source/lintian-overrides:15]
        W: mariadb-10.7 source: duplicate-override-context version-substvar-for-external-package (lines 16 17) [debian/source/lintian-overrides:17]
        W: mariadb-10.7 source: duplicate-override-context version-substvar-for-external-package (lines 18 19) [debian/source/lintian-overrides:19]
        W: mariadb-10.7 source: duplicate-override-context version-substvar-for-external-package (lines 20 21) [debian/source/lintian-overrides:21]
        W: mariadb-10.7 source: duplicate-override-context version-substvar-for-external-package (lines 4 5) [debian/source/lintian-overrides:5]
      by removing duplicate override lines
      e858fc89
    • Thirunarayanan Balathandayuthapani's avatar
      MDEV-26578 ERROR: AddressSanitizer: heap-use-after-free around dict_table_t::is_temporary_name · f61f58e7
      Thirunarayanan Balathandayuthapani authored
      - Purge thread is trying to access the table name when other thread
      does rename of the table name. It leads to heap use after free error
      by purge thread. purge thread should check whether the table name
      is temporary while holding dict_sys.mutex.
      f61f58e7
    • Marko Mäkelä's avatar
      MDEV-28289 fts_optimize_sync_table() is acquiring dict_sys.latch while holding it · 840bab85
      Marko Mäkelä authored
      dict_acquire_mdl_shared(): Invoke the correct variant
      dict_table_t::parse_name<true>() also when trylock=true,
      that is, we are being called from fts_optimize_sync_table().
      
      Ever since commit 82b7c561 (MDEV-24258)
      this code was prone to a hang. If another thread requested an
      exclusive dict_sys.latch between the time
      dict_acquire_mdl_shared<trylock=true>() acquired a shared dict_sys.latch
      and dict_table_t::parse_name<false>() was trying to acquire another
      shared dict_sys.latch, InnoDB would get into an infinite livelock
      of threads, because the futex-based srw-lock implementation prioritizes
      exclusive latch requests.
      
      dict_table_t::parse_name(): Rename the template parameter dict_locked
      into dict_frozen.
      840bab85
    • Marko Mäkelä's avatar
      MDEV-28274 Assertion s <= READ_FIX failed in buf_page_t::set_state · 7bccf3dd
      Marko Mäkelä authored
      buf_page_t::set_state(): Relax a debug assertion. It is fine to update
      a read-fixed block descriptor to be both read-fixed and buffer-fixed.
      
      buf_pool_t::watch_unset(): Fix some incorrect logic that was implemented
      in commit e9e6db93.
      
      Thanks to Elena Stepanova for the test case.
      7bccf3dd
    • Vladislav Vaintroub's avatar
      MDEV-10183 implement service_manager_extend_timeout on Windows · 5a4a3707
      Vladislav Vaintroub authored
      The implementation calls SetServiceStatus() with updated
      SERVICE_STATUS::dwHint and SERVICE_STATUS::dwCheckpoint
      5a4a3707
  9. 10 Apr, 2022 2 commits
  10. 09 Apr, 2022 2 commits
  11. 08 Apr, 2022 2 commits
  12. 07 Apr, 2022 4 commits