MariaDB 10.3.0 Release Notes
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
- CREATE SEQUENCE - MDEV-10139
- DROP SEQUENCE
- INTERSECT and EXCEPT - MDEV-10141
- ROW data type for stored procedure variables - MDEV-10914, MDEV-12007, MDEV-12291
- TYPE OF and ROW TYPE OF anchored data types for stored routine variables - MDEV-12461
- Cursors with parameters - MDEV-12457
- SELECT FOR UPDATE WAIT - MDEV-11379
- DDL FAST FAIL - MDEV-11388
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.