1. 30 Sep, 2023 9 commits
  2. 29 Sep, 2023 3 commits
  3. 27 Sep, 2023 1 commit
  4. 25 Sep, 2023 1 commit
  5. 24 Sep, 2023 4 commits
  6. 23 Sep, 2023 2 commits
  7. 21 Sep, 2023 4 commits
    • Nikita Malyavin's avatar
      fix rdb_i_s.cc build · e9573c05
      Nikita Malyavin authored
      e9573c05
    • Nikita Malyavin's avatar
      Merge branch '11.2' into 11.3 · 28b40372
      Nikita Malyavin authored
      28b40372
    • Alexander Barkov's avatar
      MDEV-32220 sql_yacc.yy: unify the drop_routine rule · d75ef02a
      Alexander Barkov authored
      - Removing two copies of the drop_routine.
        Adding a shared and much simplified version.
      
      - Removing LEX metods:
            bool stmt_drop_function(const DDL_options_st &options,
                                    const Lex_ident_sys_st &db,
                                    const Lex_ident_sys_st &name);
      
            bool stmt_drop_function(const DDL_options_st &options,
                                    const Lex_ident_sys_st &name);
      
            bool stmt_drop_procedure(const DDL_options_st &options,
                                     sp_name *name);
      
        The code inside the methods was very similar.
        Adding one method instead:
      
            bool stmt_drop_routine(const Sp_handler *sph,
                                const DDL_options_st &options,
                                const Lex_ident_sys_st &db,
                                const Lex_ident_sys_st &name);
      
      - Adding a new virtual method Sp_handler:sqlcom_drop().
        It helped to unify the code inside the new stmt_drop_routine().
      d75ef02a
    • Alexander Barkov's avatar
      MDEV-32219 Shift/reduce grammar conflict: GRANT .. ON FUNCTION · 19885128
      Alexander Barkov authored
      Resolving the shift/reduce conflict conflict in:
      
      GRANT ..  ON /*ambiguity*/ FUNCTION f1 TO foo@localhost;
      GRANT ... ON /*ambiguity*/ [TABLE] function TO foo@localhost;
      
      and in
      
      REVOKE ..  ON /*ambiguity*/ FUNCTION f1 TO foo@localhost;
      REVOKE ... ON /*ambiguity*/ [TABLE] function TO foo@localhost;
      
      using a new %prec directive.
      19885128
  8. 19 Sep, 2023 1 commit
    • Marko Mäkelä's avatar
      MDEV-32044 Mariadb crash after upgrading to 11.0.3 · 030ee267
      Marko Mäkelä authored
      ibuf_bitmap_buffered(): A new predicate, to check if the
      IBUF_BITMAP_BUFFERED bit for a particular page is set.
      
      ibuf_merge(): If ibuf_bitmap_buffered() does not hold,
      skip the records for the page. One reason why we might have
      this situation is the bug that was fixed in
      commit 34c283ba (MDEV-32132).
      030ee267
  9. 15 Sep, 2023 1 commit
  10. 14 Sep, 2023 2 commits
  11. 13 Sep, 2023 1 commit
    • Alexander Barkov's avatar
      MDEV-31606 Refactor check_db_name() to get a const argument · f5aae716
      Alexander Barkov authored
      Problem:
      Under terms of MDEV-27490, we'll update Unicode version used
      to compare identifiers to 14.0.0. Unlike in the old Unicode version,
      in the new version a string can grow during lower-case. We cannot
      perform check_db_name() inplace any more.
      
      Change summary:
      
      - Allocate memory to store lower-cased identifiers in memory root
      
      - Removing check_db_name() performing both in-place lower-casing and validation
        at the same time. Splitting it into two separate stages:
        * creating a memory-root lower-cased copy of an identifier
          (using new MEM_ROOT functions and Query_arena wrapper methods)
        * performing validation on a constant string
          (using Lex_ident_fs methods)
      
      Implementation details:
      
      - Adding a mysys helper function to allocate lower-cased strings on MEM_ROOT:
      
          lex_string_casedn_root()
      
        and a Query_arena wrappers for it:
      
          make_ident_casedn()
          make_ident_opt_casedn()
      
      - Adding a Query_arena method to perform both MEM_ROOT lower-casing and
        database name validation at the same time:
      
          to_ident_db_internal_with_error()
      
        This method is very close to the old (pre-11.3) check_db_name(),
        but performs lower-casing to a newly allocated MEM_ROOT
        memory (instead of performing lower-casing the original string in-place).
      
      - Adding a Table_ident method which additionally handles derived table names:
      
          to_ident_db_internal_with_error()
      
      - Removing the old check_db_name()
      f5aae716
  12. 12 Sep, 2023 1 commit
    • Sergei Petrunia's avatar
      MDEV-31496: Make optimizer handle UCASE(varchar_col)=... · e987b935
      Sergei Petrunia authored
      (Review input addressed)
      (Added handling of UPDATE/DELETE and partitioning w/o index)
      
      If the properties of the used collation allow, do the following
      equivalent rewrites:
      
      1. UPPER(key_col)=expr  ->  key_col=expr
         expr=UPPER(key_col)  ->  expr=key_col
         (also rewrite both sides of the equality at the same time)
      
      2. UPPER(key_col) IN (constant-list)  -> key_col IN (constant-list)
      
      - Mark utf8mb{3,4}_general_ci as collations that allow this.
      - Add optimizer_switch='sargable_casefold=ON' to control this.
        (ON by default in this patch)
      - Cover the rewrite in Optimizer Trace, rewrite name is
        "sargable_casefold_removal".
      e987b935
  13. 11 Sep, 2023 1 commit
  14. 09 Sep, 2023 2 commits
    • Monty's avatar
      Updated sql-bench to run with PostgreSQL 14.9 · e39ed5d7
      Monty authored
      - Updated capabilities for PostgreSQL in server.cfg
      - Updated test-ATIS & test-table-elimination to work with PostgreSQL
      - Updated test-transaction test to also work with non transactional tables
      
      Other things:
      - Added test of tables with many keys in test-insert
      - Added 2 new GROUP BY .. ORDER BY test
      e39ed5d7
    • Monty's avatar
      Added support for --skip-secure-file-priv · 69c420be
      Monty authored
      This works the same as secure-file-priv="", but is more obvious way to
      turn of secure-file-priv.
      69c420be
  15. 08 Sep, 2023 2 commits
  16. 04 Sep, 2023 2 commits
    • Alexander Barkov's avatar
      MDEV-32081 Remove my_casedn_str() from get_canonical_filename() · 8ad1e26b
      Alexander Barkov authored
      - Moving get_canonical_filename() from a public function to a method in handler.
      - Adding a helper method is_canonical_filename() to handler.
      - Adding helper methods left(), substr(), starts_with() to Lex_cstring.
      - Adding helper methods is_sane(), buffer_overlaps(),
        max_data_size() to CharBuffer.
      - Adding append_casedn() to CharBuffer. It implements the main functionality
        that replaces the being removed my_casedn_str() call.
      - Adding a class Table_path_buffer,
        a descendant of CharBuffer with size FN_REFLEN.
      - Changing get_canonical_filename() to get a pointer to Table_path_buffer
        instead just a pointer to char.
      - Changing the data type of the "path" parameter and the return type of
        get_canonical_filename() from char* to Lex_cstring.
      8ad1e26b
    • Alexander Barkov's avatar
      MDEV-31505 Deprecate mariabackup --innobackupex mode · 5de23b1d
      Alexander Barkov authored
      1. "mariabackup --innobackupex" now prints a new warning:
             '--innobackupex' is deprecated and will be removed in a future release
      
      2. "mariabackup --innobackupex" does not print this wrong warning any more:
              --innobackupex: Deprecated program name.
                It will be removed in a future release,
                use '/path/to/mariadb-backup' instead
      5de23b1d
  17. 30 Aug, 2023 2 commits
    • Federico Razzoli's avatar
      EXAMPLE storage engine: update comments · e666b865
      Federico Razzoli authored
      e666b865
    • Anel Husakovic's avatar
      MDEV-31231: Remove JavaWrappers.jar from mariadb-test-data and create new... · 7ba9c7fb
      Anel Husakovic authored
      MDEV-31231: Remove JavaWrappers.jar from mariadb-test-data and create new mariadb-plugin-connect-jdbc package
      
      - Jar file created
      ```bash
      $ find .|grep JdbcInterface
      ./storage/connect/connect_jars/JdbcInterface.jar
      ```
      - Debian package created
      ```bash
      $ dpkg -c mariadb-plugin-connect-jdbc_11.2.0+maria~ubu2004_amd64.deb
      drwxr-xr-x root/root         0 2023-05-16 09:50 ./
      drwxr-xr-x root/root         0 2023-05-16 09:50 ./usr/
      drwxr-xr-x root/root         0 2023-05-16 09:50 ./usr/share/
      drwxr-xr-x root/root         0 2023-05-16 09:50 ./usr/share/doc/
      drwxr-xr-x root/root         0 2023-05-16 09:50 ./usr/share/doc/mariadb-plugin-connect-jdbc/
      -rw-r--r-- root/root       253 2023-05-16 09:50 ./usr/share/doc/mariadb-plugin-connect-jdbc/changelog.gz
      -rw-r--r-- root/root      2502 2023-05-09 15:14 ./usr/share/doc/mariadb-plugin-connect-jdbc/copyright
      drwxr-xr-x root/root         0 2023-05-16 09:50 ./usr/share/mariadb/
      -rw-r--r-- root/root      7538 2023-05-16 09:50 ./usr/share/mariadb/JdbcInterface.jar
      ```
      
      - Tested on RPM
      ```
      $ ls -la|grep connect
      -rw-r--r--  1 root root  2633772 May 23 11:27 MariaDB-connect-engine-11.2.0-1.el7.x86_64.rpm
      -rw-r--r--  1 root root  3430040 May 23 11:27 MariaDB-connect-engine-debuginfo-11.2.0-1.el7.x86_64.rpm
      -rw-r--r--  1 root root     9872 May 23 11:27 MariaDB-connect-engine-jdbc-11.2.0-1.el7.x86_64.rpm
      -rw-r--r--  1 root root       36 May 23 11:21 install_manifest_connect-engine-jdbc.txt
      -rw-r--r--  1 root root      123 May 23 11:21 install_manifest_connect-engine.txt
      -rw-r--r--  1 root root        0 May 23 11:21 install_manifest_connect-engineSymlinks.txt
      
      $ rpm -qlp MariaDB-connect-engine-jdbc-11.2.0-1.el7.x86_64.rpm
      /usr/share/mariadb
      /usr/share/mariadb/JdbcInterface.jar
      
      $ for o in --conflicts --enhances --obsoletes --provides --recommends --requires --suggests --supplements ; do echo opt $o; rpm -q $o /home/dan/repos/build-mariadb-server-11.2/MariaDB-connect-engine-jdbc-11.2.0-1.fc38.x86_64.rpm; done
      opt --conflicts
      opt --enhances
      opt --obsoletes
      opt --provides
      MariaDB-connect-engine-jdbc = 11.2.0-1.fc38
      MariaDB-connect-engine-jdbc(x86-64) = 11.2.0-1.fc38
      opt --recommends
      MariaDB-connect-engine
      mariadb-java-client
      mysql-connector-java
      postgresql-jdbc
      opt --requires
      java-1.8.0-openjdk-headless
      rpmlib(CompressedFileNames) <= 3.0.4-1
      rpmlib(FileDigests) <= 4.6.0-1
      rpmlib(PayloadFilesHavePrefix) <= 4.0-1
      rpmlib(PayloadIsZstd) <= 5.4.18-1
      opt --suggests
      opt --supplements
      ```
      
      Closes PR #1890  (MDEV-26218)
      
      Reviewer: <daniel@mariadb.org>
      7ba9c7fb
  18. 29 Aug, 2023 1 commit
    • Alexander Barkov's avatar
      MDEV-32026 lowercase_table2.test failures in 11.3 · 9cb75f33
      Alexander Barkov authored
      Also fixes MDEV-32025 Crashes in MDL_key::mdl_key_init with lower-case-table-names=2
      
      Change overview:
      - In changes made in MDEV-31948, MDEV-31982 the code path
        which originaly worked only in case of lower-case-table-names==1
        also started to work in case of lower-case-table-names==2 in a mistake.
      
        Restoring the original check_db_name() compatible behavior
        (but without re-using check_db_name() itself).
      - MDEV-31978 erroneously added a wrong DBUG_ASSERT. Removing.
      
      Details:
      
      - In mysql_change_db() the database name should be lower-cased only
        in case of lower_case_table_names==1. It should not be lower-cased
        for lower_case_table_names==2. The problem was caused by MDEV-31948.
        The new code version restored the pre-MDEV-31948 behavior, which
        used check_db_name() behavior.
      
      - Passing lower_case_table_names==1 instead of just lower_case_table_names
        to the "casedn" parameter to DBNameBuffer constructor in sql_parse.cc
        The database name should not be lower-cased for lower_case_table_names==2.
        This restores pre-MDEV-31982 behavioir which used check_db_name() here.
      
      - Adding a new data type Lex_ident_db_normalized, it stores database
        names which are both checked and normalized to lower case
        in case lower_case_table_names==1 and lower_case_table_names==2.
      
      - Changing the data type for the "db" parameter to Lex_ident_db_normalized in
        lock_schema_name(), lock_db_routines(), find_db_tables_and_rm_known_files().
      
        This is to avoid incorrectly passing a non-normalized name in the future.
      
      - Restoring the database name normalization in mysql_create_db_internal()
        and mysql_rm_db_internal() before calling lock_schema_name().
        The problem was caused MDEV-31982.
      
      - Adding database name normalization in mysql_alter_db_internal()
        and mysql_upgrade_db(). This fixes MDEV-32026.
      
      - Removing a wrong assert in Create_sp_func::create_with_db() was incorrect:
      
          DBUG_ASSERT(Lex_ident_fs(*db).ok_for_lower_case_names());
      
        The database name comes to here checked, but not normalized
        to lower case with lower-case-table-names=2.
        The assert was erroneously added by MDEV-31978.
      
      - Recording lowercase_tables2.results and lowercase_tables4.results
        according to
          MDEV-29446 Change SHOW CREATE TABLE to display default collations
        These tests are skipped on buildbot on all platforms, so this change
        was forgotten in the patch for MDEV-29446.
      9cb75f33