MariaDB 10.3.0 Release Notes

You are viewing an old version of this article. View the current version here.

The most recent release of MariaDB 10.3 is:
MariaDB 10.3.39 Stable (GA) Download Now

Note: This page describes features in the source repository for MariaDB 10.3. There are currently no official packages or binaries available for download which contain the features. If you want to try out any of the new features described here you will need to get and compile the code yourself.

MariaDB 10.3 will be the next development series of MariaDB. It is an evolution of MariaDB 10.2 with several entirely new features not found anywhere else and with backported and reimplemented features from MySQL.

MariaDB 10.3.0 is an Alpha release.

Do not use alpha releases on production systems!

For an overview of MariaDB 10.3 see the What is MariaDB 10.3? page.

Thanks, and enjoy MariaDB!

Notable Changes

This is the first alpha release in the MariaDB 10.3 series. Alpha releases are useful for testing and planning, but should not be used in production.

Notable additions in this release include:

Syntax / general features

Compatibility

When running with sql_mode=ORACLE, the server now understands a subset of Oracle's PL/SQL language instead of the traditional MariaDB syntax for stored routines

  • sql_mode=ORACLE: Providing compatibility for basic PL/SQL constructs - MDEV-10411
  • sql_mode=ORACLE: %TYPE in variable declarations - MDEV-10577
  • sql_mode=ORACLE: cursor%ROWTYPE in variable declarations - MDEV-12011
  • sql_mode=ORACLE: table%ROWTYPE in variable declarations - MDEV-12133
  • sql_mode=ORACLE: FOR loop statement - MDEV-10580
  • sql_mode=ORACLE: Implicit cursor FOR loop - MDEV-12098
  • sql_mode=ORACLE: Explicit cursor FOR LOOP - MDEV-10581
  • sql_mode=ORACLE: Cursors with parameters - MDEV-10597
  • sql_mode=ORACLE: Implicit cursor FOR LOOP for cursors with parameters - MDEV-12314
  • sql_mode=ORACLE: Explicit cursor attributes %ISOPEN, %ROWCOUNT, %FOUND, %NOTFOUND - MDEV-10582
  • sql_mode=ORACLE: SQL%ROWCOUNT - MDEV-10583
  • sql_mode=ORACLE: Variable declarations can go after cursor declarations - MDEV-10598
  • sql_mode=ORACLE: Predefined exceptions: TOO_MANY_ROWS, NO_DATA_FOUND, DUP_VAL_ON_INDEX - MDEV-10839
  • sql_mode=ORACLE: RAISE statement for predefined exceptions - MDEV-10840
  • sql_mode=ORACLE: User defined exceptions - MDEV-10587
  • sql_mode=ORACLE: SP control functions SQLCODE, SQLERRM - MDEV-10578
  • sql_mode=ORACLE: Triggers: Understand :NEW.c1 and :OLD.c1 instead of NEW.c1 and OLD.c1 - MDEV-10579
  • sql_mode=ORACLE: Dynamic SQL placeholders - MDEV-10801
  • sql_mode=ORACLE: Allow VARCHAR and VARCHAR2 without length as a data type of routine parameters and in RETURN clause - MDEV-10596
  • sql_mode=ORACLE: CAST(..AS VARCHAR(N)) - MDEV-11275
  • sql_mode=ORACLE: Anonymous blocks - MDEV-10655
  • sql_mode=ORACLE: GOTO statement - MDEV-10697
  • sql_mode=ORACLE: Allow SELECT UNIQUE as a synonym for SELECT DISTINCT - MDEV-12086
  • sql_mode=ORACLE: Do not require BEGIN..END in multi-statement exception handlers in THEN clause - MDEV-12088
  • sql_mode=ORACLE: Understand optional routine name after the END keyword - MDEV-12089
  • sql_mode=ORACLE: Inside routines the CALL keywoard is optional - MDEV-12107
  • sql_mode=ORACLE: Make the concatenation operator ignore NULL arguments - MDEV-11880
  • sql_mode=ORACLE: make the CONCAT function ignore NULL arguments - MDEV-12143
  • sql_mode=ORACLE: TRUNCATE TABLE t1 [ {DROP|REUSE} STORAGE ] - MDEV-10588
  • sql_mode=ORACLE: Providing compatibility for basic SQL data types - MDEV-10343

Data type API

10.3 continues refactoring for the data type API started in 10.2, which will make it possible to have user data type plugins. This work is still in progress (see MDEV-4912 for the current status and subtasks). Most of the task in this category do not change the server behavior. Some tasks do have a visible effect:

  • The GEOMETRY data type is not allowed any more:
    • as an argument to functions ABS(), CEILING(), FLOOR(), ROUND(), SUM(), AVG(), VARIANCE(), CAST(AS..), as well as to the unary minus operator - MDEV-12303, MDEV-12239, MDEV-12199, MDEV-12001
    • as an argument to hybrid functions such as CASE, COALESCE, IF which have other arguments of the numeric or temporal data types - MDEV-11478
    • as an argument to comparison operators in combination with numeric and temporal data types - MDEV-11692
  • Wrong result for INSERT INTO t1 (datetime_field) VALUES (hybrid_function_of_TIME_data_type) - MDEV-11331
  • Expect "Impossible where condition" for WHERE timestamp_field>=DATE_ADD(TIMESTAMP'9999-01-01 00:00:00',INTERVAL 1000 YEAR) - MDEV-11333
  • SP variables of temporal data types do not replicate correctly - MDEV-11815
  • Incorrect result for (time_expr BETWEEN timestamp_exp1 AND timestamp_expr2) - MDEV-11482
  • Wrong result for CASE on a mixture of signed and unsigned expressions - MDEV-11554
  • Wrong result for (int_expr IN (mixture of signed and unsigned expressions)) - MDEV-11497
  • CASE with a mixture of TIME and DATETIME returns a wrong result - MDEV-11555
  • SP variables of the SET data type erroneously allow values with comma - MDEV-11146
  • mysql_list_field() returns wrong default values for VIEW - MDEV-11672

See the What is MariaDB 10.3? page for an overview of MariaDB 10.3.

Do not use alpha releases on production systems!

For a complete list of changes made in MariaDB 10.3.0, with links to detailed information on each push, see the changelog.


Be notified of new MariaDB Server releases automatically by subscribing to the MariaDB Foundation community announce 'at' lists.mariadb.org announcement list (this is a low traffic, announce-only list). MariaDB plc customers will be notified for all new releases, security issues and critical bug fixes for all MariaDB plc products thanks to the Notification Services.

MariaDB may already be included in your favorite OS distribution. More information can be found on the Distributions which Include MariaDB page.

Comments

Comments loading...
Content reproduced on this site is the property of its respective owners, and this content is not reviewed in advance by MariaDB. The views, information and opinions expressed by this content do not necessarily represent those of MariaDB or any other party.