[MDEV-18687] SQL_MODE="ORACLE" fails to catch keywords Created: 2019-02-21  Updated: 2023-04-27

Status: Open
Project: MariaDB Server
Component/s: Data Definition - Create Table
Affects Version/s: 10.3.12
Fix Version/s: 10.4

Type: Bug Priority: Major
Reporter: Adam Erickson (Inactive) Assignee: Alexander Barkov
Resolution: Unresolved Votes: 1
Labels: None
Environment:

CentOS 7, RHEL 7, MariaDB 10.3



 Description   

The following conditions should be handled by setting SQL_MODE to ORACLE:

  • CHAR and VARCHAR column definition can be written as "...CHAR( 20 BYTE )". In reading Oracle's SQL Reference it is not clear if the intended behavior should honor multi-byte character sets. Ours does not understand, if even to just ignore it, the "BYTE" keyword.

CREATE TABLE may be closed with the following parameters:
NOLOGGING
NOCOMPRESS
NOPARALLEL

  • Each of these has a positive counterpart, LOGGING, COMPRESS, PARALLEL to enable these features explicitly. It appears the SQLDeveloper tools explicitly disable them in DDL exports regardless of the default values. This prompted this bug to be filed as it relates to migration projects.

I do not see feature parity in MariaDB 10.3 except for COMPRESS. We could translate this to " ROW_FORMAT=COMPRESSED". At a minimum we should ignore these key words under the ORACLE sql_mode.

  • CREATE VIEW ( ... ) WITH READ ONLY; in Oracle defines the view as read-only. It does not seem like we have an explicit control for this when defining views.

Generated at Thu Feb 08 08:45:58 UTC 2024 using Jira 8.20.16#820016-sha1:9d11dbea5f4be3d4cc21f03a88dd11d8c8687422.