--- layout: docu title: Unsupported Features --- This page describes what is supported in DuckDB and DuckLake in relation to DuckDB standalone (i.e., `:memory:` or DuckDB file modes). We can make a distinction between: - What is **currently** not supported by the DuckLake specification. These are features that are supported by DuckDB when using DuckDB's native database format but will not work with a DuckLake backend since the specification does not support them. - What is **currently** not supported by the `ducklake` DuckDB extension. These are features that are supported by the DuckLake specification but are not (yet) implemented in the DuckDB extension. ## Unsupported by the DuckLake Specification Within this group, we are going to make a distinction between what is not supported now but is likely to be supported in the future and what is not supported and is unlikely to be supported. ### Likely to Be Supported in the Future The following features are currently not supported in DuckLake but are likely to be supported in future versions: - [User defined types](https://duckdb.org/docs/current/sql/statements/create_type). - Fixed-size arrays, i.e., [`ARRAY` type](https://duckdb.org/docs/current/sql/data_types/array) - [`ENUM` type](https://duckdb.org/docs/current/sql/data_types/enum) - [`CHECK` constraints](https://duckdb.org/docs/current/sql/constraints#check-constraint) (not to be confused with Primary or Foreign Key constraints) - Default values that are not literals. See the following example: ```sql -- This is allowed CREATE TABLE t1 (id INTEGER, d DATE DEFAULT '2025-08-08'); -- This is not allowed CREATE TABLE t1 (id INTEGER, d DATE DEFAULT now()); ``` - Dropping dependencies, such as views, when calling `DROP ... CASCADE`. Note that this is also a [DuckDB limitation](https://duckdb.org/docs/current/sql/statements/drop#dependencies-on-views). - [Generated columns](https://duckdb.org/docs/current/sql/statements/create_table#generated-columns) ### Unlikely to Be Supported in the Future The following features are currently not supported in DuckLake and are unlikely to be supported in future versions: - [Indexes](https://duckdb.org/docs/current/sql/indexes) - [Primary key or enforced unique constraints](https://duckdb.org/docs/current/sql/constraints#primary-key-and-unique-constraint) and [foreign key constraints](https://duckdb.org/docs/current/sql/constraints#foreign-keys) are unlikely to be supported as these are prohibitively expensive to enforce in data lake setups. We may consider supporting unenforced primary keys, similar to [BigQuery's implementation](https://cloud.google.com/bigquery/docs/primary-foreign-keys). - Upserting is only supported via the [`MERGE INTO`]({% link docs/stable/duckdb/usage/upserting.md %}) syntax since primary keys are not supported in DuckLake. - [Sequences](https://duckdb.org/docs/current/sql/statements/create_sequence) - [`VARINT` type](https://duckdb.org/docs/current/sql/data_types/numeric#variable-integer) - [`BITSTRING` type](https://duckdb.org/docs/current/sql/data_types/bitstring) - [`UNION` type](https://duckdb.org/docs/current/sql/data_types/union)