On this page 
  
  
CockroachDB v25.4 supports the following standard SQL features and common extensions.
- Component lists the components that are commonly considered part of SQL.
 - Supported shows CockroachDB's level of support for the component.
 - Type indicates whether the component is part of the SQL Standard or is an Extension created by Cockroach Labs or others.
 - Details provides greater context about the component.
 
Features
Row values
| Component | Supported | Type | Details | 
|---|---|---|---|
ARRAY | 
✓ | Standard | ARRAY documentation | 
AUTO INCREMENT(Automatic key generation)  | 
Alternative | Common Extension | Automatic key generation FAQ | 
BIT | 
✓ | Standard | BIT documentation | 
BOOLEAN | 
✓ | Standard | BOOL documentation | 
BYTES | 
✓ | CockroachDB Extension | BYTES documentation | 
COLLATE | 
✓ | Standard | COLLATE documentation | 
DATE | 
✓ | Standard | DATE documentation | 
DECIMAL, NUMERIC | 
✓ | Standard | DECIMAL documentation | 
ENUM | 
✓ | PostgreSQL Extension | ENUM documentation | 
FLOAT, REAL | 
✓ | Standard | FLOAT documentation | 
INET | 
✓ | PostgreSQL Extension | INET documentation | 
INT | 
✓ | Standard | INT documentation | 
INTERVAL | 
✓ | Standard | INTERVAL documentation | 
JSON/JSONB | 
✓ | Common Extension | JSONB documentation | 
NULL | 
✓ | Standard | NULL-handling documentation | 
OID | 
✓ | PostgreSQL Extension | OID documentation | 
SERIAL | 
✓ | PostgreSQL Extension | SERIAL documentation | 
SET | 
✗ | MySQL | Only allow rows to contain values from a defined set of terms. | 
STRING, CHARACTER | 
✓ | Standard | STRING documentation | 
TIME | 
✓ | Standard | TIME documentation | 
TIMESTAMP/TIMESTAMPTZ | 
✓ | Standard | TIMESTAMP documentation | 
TSQUERY | 
✓ | Standard | TSQUERY documentation | 
TSVECTOR | 
✓ | Standard | TSVECTOR documentation | 
UNSIGNED INT | 
✗ | Common Extension | UNSIGNED INT causes numerous casting issues, so we do not plan to support it. | 
UUID | 
✓ | PostgreSQL Extension | UUID documentation | 
| Identifiers | ✓ | Standard | Identifiers documentation. See also SQL Name Resolution. | 
| Key-value pairs | Alternative | Extension | Key-Value FAQ | 
| XML | ✗ | Standard | XML data can be stored as BYTES, but we do not offer XML parsing. | 
Constraints
| Component | Supported | Type | Details | 
|---|---|---|---|
| Not Null | ✓ | Standard | Not Null documentation | 
| Unique | ✓ | Standard | Unique documentation | 
| Primary Key | ✓ | Standard | Primary Key documentation | 
| Check | ✓ | Standard | Check documentation | 
| Foreign Key | ✓ | Standard | Foreign Key documentation | 
| Default Value | ✓ | Standard | Default Value documentation | 
Transactions
| Component | Supported | Type | Details | 
|---|---|---|---|
| Transactions (ACID semantics) | ✓ | Standard | Transactions documentation | 
BEGIN | 
✓ | Standard | BEGIN documentation | 
COMMIT | 
✓ | Standard | COMMIT documentation | 
ROLLBACK | 
✓ | Standard | ROLLBACK documentation | 
SAVEPOINT | 
✓ | Standard with CockroachDB extensions | CockroachDB supports nested transactions using SAVEPOINT | 
Indexes
| Component | Supported | Type | Details | 
|---|---|---|---|
| Indexes | ✓ | Common Extension | Indexes documentation | 
| Multi-column indexes | ✓ | Common Extension | We do not limit on the number of columns indexes can include | 
| Covering indexes | ✓ | Common Extension | Storing Columns documentation | 
| GIN indexes | ✓ | Common Extension | GIN indexes documentation | 
| Trigram indexes | ✓ | PostgreSQL Extension | Trigram indexes documentation | 
| Partial indexes | ✓ | Common Extension | Partial indexes documentation | 
| Spatial indexes | ✓ | Common Extension | Spatial indexes documentation | 
| Multiple indexes per query | Partial | Common Extension | Index selection | 
| Full-text indexes | ✓ | Common Extension | Full-text search documentation | 
| Expression indexes | ✓ | Common Extension | Expression indexes | 
| Prefix indexes | ✗ | Common Extension | Implement using Expression indexes | 
| Hash indexes | ✗ | Common Extension | Improves performance of queries looking for single, exact values | 
| Hash-sharded indexes | ✓ | CockroachDB Extension | Hash-sharded Indexes documentation | 
Schema changes
| Component | Supported | Type | Details | 
|---|---|---|---|
ALTER TABLE | 
✓ | Standard | ALTER TABLE documentation | 
| Database renames | ✓ | Standard | ALTER DATABASE ... RENAME TO documentation | 
| Table renames | ✓ | Standard | ALTER TABLE ... RENAME TO documentation | 
| Column renames | ✓ | Standard | RENAME COLUMN documentation | 
| Altering a column's data type | ✓ | Standard | ALTER COLUMN documentation | 
| Adding columns | ✓ | Standard | ADD COLUMN documentation | 
| Removing columns | ✓ | Standard | DROP COLUMN documentation | 
| Adding constraints | ✓ | Standard | ADD CONSTRAINT documentation | 
| Removing constraints | ✓ | Standard | DROP CONSTRAINT documentation | 
| Index renames | ✓ | Standard | ALTER INDEX ... RENAME TO documentation | 
| Adding indexes | ✓ | Standard | CREATE INDEX documentation | 
| Removing indexes | ✓ | Standard | DROP INDEX documentation | 
| Altering a primary key | ✓ | Standard | ALTER PRIMARY KEY documentation | 
| Adding user-defined schemas | ✓ | Standard | CREATE SCHEMA documentation | 
| Removing user-defined schemas | ✓ | Standard | DROP SCHEMA documentation | 
| Altering user-defined schemas | ✓ | Standard | ALTER SCHEMA documentation | 
Statements
| Component | Supported | Type | Details | 
|---|---|---|---|
| Common statements | ✓ | Standard, PostgreSQL/CockroachDB Extension | SQL Statements documentation | 
UPSERT | 
✓ | PostgreSQL, MSSQL Extension | UPSERT documentation | 
EXPLAIN | 
✓ | Common Extension | EXPLAIN documentation | 
SELECT ... INTO | 
✓ | Common Extension | PL/pgSQL documentation. | 
SELECT FOR UPDATE | 
✓ | Common Extension | SELECT FOR UPDATE documentation | 
Clauses
| Component | Supported | Type | Details | 
|---|---|---|---|
| Common clauses | ✓ | Standard | SQL Grammar documentation | 
LIMIT | 
✓ | Common Extension | Limit the number of rows a statement returns. For more information, see Limit Query Results. | 
LIMIT with OFFSET | 
✓ | Common Extension | Skip a number of rows, and then limit the size of the return set. For more information, see Limit Query Results. | 
RETURNING | 
✓ | Common Extension | Retrieve a table of rows statements affect. For examples, see the INSERT and DELETE documentation. | 
Table expressions
| Component | Supported | Type | Details | 
|---|---|---|---|
| Table and View references | ✓ | Standard | Table expressions documentation | 
AS in table expressions | 
✓ | Standard | Aliased table expressions documentation | 
JOIN (INNER, LEFT, RIGHT, FULL, CROSS) | 
✓ | Standard | JOIN expressions documentation | 
| Sub-queries as table expressions | Partial | Standard | Non-correlated subqueries are supported, as are most correlated subqueries. | 
| Table generator functions | Partial | PostgreSQL Extension | Table generator functions documentation | 
WITH ORDINALITY | 
✓ | CockroachDB Extension | Ordinality annotation documentation | 
Scalar expressions and Boolean formulas
| Component | Supported | Type | Details | 
|---|---|---|---|
| Common functions | ✓ | Standard | Functions calls and SQL special forms documentation | 
| Common operators | ✓ | Standard | Operators documentation | 
IF/CASE/NULLIF | 
✓ | Standard | Conditional expressions documentation | 
COALESCE/IFNULL | 
✓ | Standard | Conditional expressions documentation | 
AND/OR | 
✓ | Standard | Conditional expressions documentation | 
LIKE/ILIKE | 
✓ | Standard | String pattern matching documentation | 
SIMILAR TO | 
✓ | Standard | SQL regexp pattern matching documentation | 
| Matching using POSIX regular expressions | ✓ | Common Extension | POSIX regexp pattern matching documentation | 
EXISTS | 
Partial | Standard | Non-correlated subqueries are supported, as are most correlated subqueries. Works only with small data sets. | 
| Scalar subqueries | Partial | Standard | Non-correlated subqueries are supported, as are most correlated subqueries. Works only with small data sets. | 
| Bitwise arithmetic | ✓ | Common Extension | Operators documentation | 
| Array constructors and subscripting | Partial | PostgreSQL Extension | Array expression documentation: Constructor syntax and Subscripting | 
COLLATE | 
✓ | Standard | Collation expressions documentation | 
| Column ordinal references | ✓ | CockroachDB Extension | Column references documentation | 
| Type annotations | ✓ | CockroachDB Extension | Type annotations documentation | 
Permissions
| Component | Supported | Type | Details | 
|---|---|---|---|
| Users | ✓ | Standard | Users documentation | 
| Roles | ✓ | Standard | Roles documentation | 
| Object ownership | ✓ | Common Extension | Ownership documentation | 
| Privileges | ✓ | Standard | Privileges documentation | 
| Default privileges | ✓ | PostgreSQL Extension | Default privileges documentation | 
Miscellaneous
| Component | Supported | Type | Details | 
|---|---|---|---|
| Column families | ✓ | CockroachDB Extension | Column Families documentation | 
| Computed columns (stored and virtual) | ✓ | Common Extension | Computed Columns documentation | 
ON UPDATE expressions | 
✓ | MySQL Extension | ON UPDATE expressions documentation | 
| Multi-region capabilities | ✓ | CockroachDB Extension | Multi-region documentation | 
| System catalog schemas | ✓ | Standard, PostgreSQL/CockroachDB Extension | crdb_internal (CockroachDB Extension)information_schema (Standard)pg_catalog (PostgreSQL Extension)pg_extension (PostgreSQL Extension) | 
| Sequences | ✓ | Common Extension | CREATE SEQUENCE documentation | 
| Identity columns | ✓ | Common Extension | Identity columns documentation | 
| Views | ✓ | Standard | Views documentation | 
| Materialized views | ✓ | Common Extension | Materialized views documentation | 
| Window functions | ✓ | Standard | Window Functions documentation | 
| Common table expressions | Partial | Common Extension | Common Table Expressions documentation | 
| Stored procedures | Partial | Common Extension | Stored procedures documentation | 
| Cursors | Partial | Standard | Cursors documentation | 
| Triggers | Partial | Standard | Triggers documentation | 
| Row-level TTL | ✓ | Common Extension | Automatically delete expired rows. For more information, see Batch-delete expired data with Row-Level TTL. | 
| User-defined functions | Partial | Standard | User-Defined Functions documentation | 
CREATE EXTENSION "uuid-ossp" | 
✓ | Common Extension | Provides access to several additional UUID generation functions. Note that these UUID functions are available without typing CREATE EXTENSION "uuid-ossp". CockroachDB does not have full support for CREATE EXTENSION. GitHub issue tracking CREATE EXTENSION support. |