SQL feature support
YugabyteDB supports most standard SQL features.
To understand which standard SQL features we support, refer to the following tables:
Data types
Data type | Supported | Documentation |
---|---|---|
ARRAY |
✓ | Array data types |
BINARY |
✓ | Binary data types |
BIT ,BYTES |
✓ | |
BOOLEAN |
✓ | Boolean data types |
CHAR , VARCHAR , TEXT |
✓ | Character data types |
COLLATE |
✓ | Collations |
DATE , TIME , TIMESTAMP , INTERVAL |
✓ | Date and time data types |
DEC , DECIMAL , NUMERIC |
✓ | Fixed point numbers |
ENUM |
✓ | Enumerations |
FLOAT , REAL , DOUBLE PRECISION |
✓ | Floating-point numbers |
JSON , JSONB |
✓ | JSON data types |
MONEY |
✓ | Money data types |
SERIAL , SMALLSERIAL , BIGSERIAL |
✓ | Serial data types |
SMALLINT, INT, INTEGER, BIGINT |
✓ | Integers |
INT4RANGE , INT8RANGE , NUMRANGE , TSRANGE , TSTZRANGE , DATERANGE |
✓ | Range data types |
UUID |
✓ | UUID data type |
XML |
✗ | |
TSVECTOR |
✓ | |
UDT(Base, Enumerated, Range, Composite, Array, Domain types) | ✓ |
Schema operations
Operation | Supported | Documentation |
---|---|---|
Altering tables | ✓ (Partial) | ALTER TABLE |
Altering databases | ✓ | ALTER DATABASE |
Altering a column's name | ✓ | |
Altering a column's default value | ✓ | |
Altering a column's data type | ✓ (Partial) | |
Adding columns | ✓ | ADD COLUMN |
Removing columns | ✓ | DROP COLUMN |
Adding constraints | ✓ | ADD CONSTRAINT |
Removing constraints | ✓ | DROP CONSTRAINT |
Altering indexes | ✗ | |
Adding indexes | ✓ | CREATE INDEX |
Removing indexes | ✓ | |
Adding a primary key | ✓ | |
Dropping a primary key | ✓ | |
Altering a primary key | ✗ | |
Adding user-defined schemas | ✓ | CREATE SCHEMA |
Removing user-defined schemas | ✗ | |
Altering user-defined schemas | ✗ |
Constraints
Feature | Supported | Documentation |
---|---|---|
Check | ✓ | Check constraint |
Unique | ✓ | Unique constraint |
Not Null | ✓ | Not Null constraint |
Primary Key | ✓ | Primary keys |
Foreign Key | ✓ | Foreign keys |
Default Value | ✓ (Partial) | |
Deferrable Foreign Key constraints | ✓ (Partial) | |
Deferrable Primary Key and Unique constraints | ✗ | |
Exclusion constraints | ✗ |
Indexes
Component | Supported | Documentation |
---|---|---|
Indexes | ✓ | Indexes and constraints |
GIN indexes | ✓ | GIN indexes |
Partial indexes | ✓ | Partial indexes |
Expression indexes | ✓ | Expression indexes |
Multi-column indexes | ✓ | |
Covering indexes | ✓ | Covering indexes |
GiST indexes | ✗ | |
BRIN indexes | ✗ | |
B-tree indexes | ✓ | B-tree index is treated as an LSM index. |
Transactions
Feature | Supported | Documentation |
---|---|---|
Transactions | ✓ | Transactions |
BEGIN |
✓ | BEGIN |
COMMIT |
✓ | COMMIT |
ROLLBACK |
✓ | ROLLBACK |
SAVEPOINT |
✓ | SAVEPOINT |
ROLLBACK TO SAVEPOINT |
✓ | ROLLBACK TO SAVEPOINT |
PREPARE TRANSACTION (XA) |
✗ |
Roles and Permissions
Component | Supported | Details |
---|---|---|
Users | ✓ | Manage users and roles |
Roles | ✓ | Manage users and roles |
Object ownership | ✓ | |
Privileges | ✓ | Grant privileges |
Default privileges | ✓ | |
Row level security | ✓ | |
Column level security | ✓ |
Queries
Component | Supported | Details |
---|---|---|
FROM, WHERE, GROUP BY, HAVING, DISTINCT, LIMIT/OFFSET, WITH queries | ✓ | Group data |
EXPLAIN query plans | ✓ | Analyze queries with EXPLAIN |
JOINs (INNER/OUTER, LEFT/RIGHT) | ✓ | Join columns |
Expressions and Operators | ✓ | Expressions and operators |
Common Table Expressions (CTE) and Recursive Queries | ✓ | Recursive queries and CTEs |
Upserts (INSERT ... ON CONFLICT DO NOTHING/UPDATE) | ✓ | Upsert |
Advanced SQL
Component | Supported | Details |
---|---|---|
Stored procedures | ✓ | Stored procedures |
User-defined functions | ✓ | Functions |
Cursors | ✓ | Cursors |
Row-level triggers (BEFORE, AFTER, INSTEAD OF) | ✓ | |
Statement-level triggers (BEFORE, AFTER, INSTEAD OF) | ✓ | |
Deferrable triggers | ✗ | |
Transition tables (REFERENCING clause for triggers) | ✗ | |
Sequences | ✓ | Auto-Increment column values |
Identity columns | ✓ | |
Views | ✓ | Views |
Materialized views | ✓ | Materialized views |
Window functions | ✓ | Window functions |
Common table expressions | ✓ | |
Extensions | ✓ | PostgreSQL extensions |
Foreign data wrappers | ✓ | Foreign data wrappers |