Unsupported PostgreSQL features in Aurora DSQL - Amazon Aurora DSQL

Amazon Aurora DSQL is provided as a Preview service. To learn more, see Betas and Previews in the AWS Service Terms.

Unsupported PostgreSQL features in Aurora DSQL

Aurora DSQL is PostgreSQL compatible. This means that Aurora DSQL supports core relational features like ACID transactions, secondary indexes, joins, insert, and updates. See Supported SQL expressions for an overview of supported SQL features.

The following tables highlight which PostgreSQL features are currently unsupported in Aurora DSQL.

Unsupported objects

  • Databases - Aurora DSQL supports only one database per cluster at this time.

  • Views

  • Temporary Tables

  • Triggers

  • Types

  • Tablespaces

  • UDFs / Functions other than functions using language = SQL

  • Sequences

Unsupported constraints

  • Foreign keys

  • Exclusion constraints

Unsupported operations

  • ALTER SYSTEM

  • TRUNCATE

  • VACUUM

  • SAVEPOINT

Unsupported extensions

Aurora DSQL doesn't support PostgreSQL extensions at this time. The following notable extensions are unsupported.

  • PL/pgSQL

  • PostGIS

  • PGVector

  • PGAudit

  • Postgres_FDW

  • PGCron

  • pg_stat_statements

Unsupported SQL expressions

Category Primary Clause Unsupported Clauses

CREATE

VIEW

CREATE

INDEX [ASYNC]

ASC DESC

CREATE

INDEX

if table has data

TRUNCATE

ALTER

SYSTEM

All alter system is blocked

CREATE

TABLE

COLLATE, AS SELECT, INHERITS, PARTITION

CREATE

FUNCTION

LANGUAGE plpgsql (any language besides sql)

CREATE

TEMPORARY

TABLES

CREATE

EXTENSION

CREATE

SEQUENCE

CREATE

MATERIALIZED

VIEW

CREATE

TABLESPACE

CREATE

TRIGGER

CREATE

TYPE

CREATE

DATABASE

Limitations

  • CREATE DATABASE: Aurora DSQL supports a single database postgres which is UTF-8 and collation = C only. You can't modify the system timezone and it's set to UTC

  • SET TRANSACTION [ISOLATION LEVEL]: Aurora DSQL isolation level is equivalent to PostgreSQL Repeatable Read. You can't change this isolation level.

  • A transaction can't contain mixed DDL and DML operations

  • A transaction can contain at most 1 DDL statement

  • A transaction cannot modify more than 10,000 rows, and this limit is modified by secondary index entries. For example, consider a table with five columns, where the primary key is the first column, and the fifth column has a secondary index. Given an UPDATE that will change a single row targeting all five columns, the number of rows modified would be two. One for the Primary Key and one for the row in secondary index object. If this same UPDATE affected only the columns without a secondary index, the number of rows modified would be one. This limit applies to all DML statements (INSERT, UPDATE, DELETE).

  • A connection cannot exceed 1 hour.

  • AutoVacuuming to keep statistics up to date. Vacuum is not required in Aurora DSQL.