What is MariaDB 10.3?

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

MariaDB 10.3 will be the next major development version. There are currently no releases. MariaDB 10.2 is the current major development version and, being a release candidate, is mostly feature-complete, so major new features will be going into 10.3.

The following lists the major new features in MariaDB 10.3:

Implemented Features

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

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 also

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.