Amazon Aurora DSQL is provided as a Preview service.
To learn more, see Betas and Previews
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.