openGauss MOT SQL Coverage and Limitations

·

2 min read

MOT design enables almost complete coverage of SQL and future feature sets. For example, standard Postgres SQL is mostly supported, as well common database features, such as stored procedures and user defined functions.

The following describes the various types of SQL coverages and limitations –

Unsupported Features

The following features are not supported by MOT –

  • Isolation – SERIALIZABLE isolation is not supported.

  • Query Native Compilation (JIT) – Limited SQL coverage.

  • LOCAL memory is limited to 1 GB. A transaction can only change data of less than 1 GB.

  • Capacity (Data+Index) is limited to available memory.

  • No full-text search index.

  • Do not support Logical copy.

  • SAVEPOINT – not supported.

In addition, the following are detailed lists of various general limitations of MOT tables, MOT indexes, Query and DML syntax and the features and limitations of Query Native Compilation.

MOT Table Limitations

The following lists the functionality limitations of MOT tables –

  • Partitioning

  • AES encryption, row-level access control, dynamic data masking

  • Stream operations

  • User-defined types

  • Sub-transactions – supported only in the context of statement blocks inside stored procedures with the following limitation: MOT cannot recover from a Sub-Transaction containing operations other then SELECT, only read-only rollback is allowed. In such case, the parent transaction is aborted.

  • DML triggers

  • DDL triggers

  • Collations other than “C” or “POSIX”

Unsupported Table DDLs

  • CREATE FOREIGN table LIKE - Limited support, LIKE can any table (MOT and Heap tables), but without any options, data or indexes.

  • Create table as select

  • Partition by range

  • Create table with no-logging clause

  • DEFERRABLE primary key

  • Reindex

  • Tablespace

  • Create schema with subcommands

Unsupported Data Types

  • UUID

  • User-Defined Type (UDF)

  • Array data type

  • NVARCHAR2(n)

  • Clob

  • Name

  • Blob

  • Raw

  • Path

  • Circle

  • Reltime

  • Bit varying(10)

  • Tsvector

  • Tsquery

  • JSON

  • Box

  • Text

  • Line

  • Point

  • LSEG

  • POLYGON

  • INET

  • CIDR

  • MACADDR

  • Smalldatetime

  • BYTEA

  • Bit

  • Varbit

  • OID

  • Money

  • Any unlimited varchar/character varying

  • HSTORE

  • XML

  • Int16

  • Abstime

  • Tsrange

  • Tstzrange

  • Int8range

  • Int4range

  • Numrange

  • Daterange

  • HLL

UnsupportedIndex DDLs and Index

  • Create index on decimal/numeric

  • Create index on nullable columns

  • Create index, index per table > 9

  • Create index on key size > 256