Release Notes for MariaDB Shell 23.02.1

Overview

MariaDB Shell is a command-line tool that unifies troubleshooting and administration for MariaDB database products.

MariaDB Shell 23.02.1 was released on 2023-03-20. This release is a Technical Preview and should not be used in production environments.

Notable Changes

  • New backslash commands from MariaDB Client are supported by MariaDB Shell 23.02.1:

    Command

    Description

    \!

    Execute a command in your default OS shell. For additional information, see "run".

    \s

    Get status information from the server.

    \W

    Show warnings after every statement.

    \w

    Don't show warnings after every statement.

    \p

    Print current command.

    \n

    Disable pager and print to standard output (stdout).

Issues Fixed

Can result in a hang or crash

  • When MariaDB Shell is executed with the --generate-defaults command-line option is specified, but the user enters n to skip overwriting the current .msh.cnf file, MariaDB Shell aborts and throws an exception. (TENT-280)

    • In previous releases, the following exception is thrown:

      This will overwrite /home/USER/.msh.cnf with defaults. Continue? [y]|n: n
      Traceback (most recent call last):
        File "/root/.pyenv/versions/3.10.7/lib/python3.10/site-packages/cx_Freeze/initscripts/__startup__.py", line 131, in run
        File "/root/.pyenv/versions/3.10.7/lib/python3.10/site-packages/cx_Freeze/initscripts/console.py", line 16, in run
        File "/sealion/sealion/__main__.py", line 23, in <module>
        File "/sealion/sealion/app.py", line 157, in main
      NameError: name 'exit' is not defined. Did you mean: 'atexit'?
      
    • Starting with this release, MariaDB Shell does not abort or throw an exception.

Can result in unexpected behavior

  • When the --execute command-line option is used to execute a multi-statement command, each statement is executed in a different connection. (TENT-267)

    • In previous releases, the behavior of the --execute command-line option in MariaDB Shell was incompatible with the behavior of the same option in other clients, such as MariaDB Client.

    • Starting with this release, each statement from the multi-statement command is executed in the same connection, which matches the behavior of the --execute command-line option in other clients, such as MariaDB Client.

  • When MariaDB Shell parses a MariaDB Server configuration file (such as my.cnf, my.ini, or a custom configuration file), an error is raised if the same option is specified in the same configuration group multiple times. (TENT-262)

    • In previous releases, the following error is raised in this scenario:

      configparser.DuplicateOptionError: While reading from 'FILE_PATH\my.ini' [line LINE_NUMBER]: option 'OPTION_NAME' in section 'CONFIGURATION_GROUP' already exists
      
    • Starting with this release, MariaDB Shell allows the same option to be specified in the same configuration group multiple times.

  • When MariaDB Shell is used to execute a query, but no database connection is available, an unclear error message is raised. (TENT-218)

    • In previous releases, the following error message is raised:

      SLHE (0101) - 'NoneType' object has no attribute 'execute'
      
    • Starting with this release, the following error message is raised:

      MariaDB Shell is not connected to a database system. Please check your connection and run the query again.
      
  • When a profile is selected (either using the --profile command-line option or the profile command), MariaDB Shell does not select the database defined by the profile. (TENT-196)

    • In previous releases, no new database would be selected after selecting a profile.

    • Starting with this release, MariaDB Shell selects the database defined by the profile.

Known Issues

  • When a file is piped to MariaDB Shell, the output still contains headers and prompts, as if an interactive shell were being used. (TENT-132)

    • This issue can impact users who want to use MariaDB Shell for non-interactive use cases.

  • When a stored procedure is called and the database can't be determined, because no default database is currently selected and the procedure name is not fully qualified, MariaDB Shell raises an error with an unclear error message. (TENT-130)

    • In this release, the following error can be raised:

      MariaDB (No Database) » CALL example_sp();
      SLHE (21243) - Unknown prepared statement handler (4294967295) given to mysqld_stmt_execute
      For more information see: https://docs.mariadb.com/mariadb-shell/SLHE21243
      
  • When MariaDB Shell is executed on Windows and vcruntime140.dll can't be found, an error is raised. (TENT-306)

Platforms

MariaDB Shell 23.02.1 is provided for:

  • Apple macOS (x86_64, M1)

  • CentOS 7 (x86_64)

  • Debian 10 (x86_64)

  • Debian 11 (x86_64)

  • Microsoft Windows (x86_64)

  • Red Hat Enterprise Linux 7 (x86_64)

  • Red Hat Enterprise Linux 8 (x86_64)

  • Red Hat Enterprise Linux 9 (x86_64)

  • Rocky Linux 8 (x86_64)

  • Rocky Linux 9 (x86_64)

  • Ubuntu 18.04 (x86_64)

  • Ubuntu 20.04 (x86_64)

  • Ubuntu 22.04 (x86_64)

Installation