Dolt is version controlled relational database combining features from Git and MySQL.
Not a fan of MySQL? No problem. We are now developing DoltgreSQL, Doltgres for short,
which has features of PostgreSQL instead of MySQL. In this blog post, we want to share an update on where we are
at right now in terms of syntax support for DoltgreSQL. We made tracking tables that contain cataloged SQL commands.
One of the most used pieces of Dolt's documentation from the beginning was the SQL Support pages.
This blog is our first attempt to recreate those pages but for Doltgres. Be warned, there are a lot of red X's. Doltgres is new.
We look forward to turning these all into green checkmarks for you.
This page will be repurposed into a living document on the Doltgres documentation site, which is also coming soon.
These tables show:
✅ Full support for the SQL command.
🟠 Partial support for the SQL command.
❌ No support for the SQL command.
Access management statements
SQL Commands
Parses
Works
ALTER DEFAULT PRIVILEGES
✅
❌
ALTER GROUP
❌
❌
ALTER ROLE
❌
❌
ALTER USER
❌
❌
ALTER USER MAPPING
❌
❌
CREATE GROUP
🟠
❌
CREATE ROLE
🟠
❌
CREATE USER
🟠
❌
CREATE USER MAPPING
❌
❌
DROP GROUP
✅
❌
DROP ROLE
✅
❌
DROP USER
✅
❌
DROP USER MAPPING
❌
❌
GRANT
✅
❌
REASSIGN OWNED
❌
❌
REVOKE
✅
❌
Data definition statements
SQL Commands
Parses
Works
ALTER AGGREGATE
✅
❌
ALTER COLLATION
✅
❌
ALTER CONVERSION
✅
❌
ALTER DATABASE
✅
❌
ALTER DOMAIN
✅
❌
ALTER EVENT TRIGGER
❌
❌
ALTER EXTENSION
❌
❌
ALTER FOREIGN DATA WRAPPER
❌
❌
ALTER FOREIGN TABLE
❌
❌
ALTER FUNCTION
✅
❌
ALTER INDEX
✅
❌
ALTER LANGUAGE
✅
❌
ALTER LARGE OBJECT
❌
❌
ALTER MATERIALIZED VIEW
✅
❌
ALTER OPERATOR
❌
❌
ALTER OPERATOR CLASS
❌
❌
ALTER OPERATOR FAMILY
❌
❌
ALTER POLICY
❌
❌
ALTER PROCEDURE
✅
❌
ALTER PUBLICATION
❌
❌
ALTER ROUTINE
❌
❌
ALTER RULE
❌
❌
ALTER SCHEMA
✅
❌
ALTER SEQUENCE
✅
❌
ALTER SERVER
❌
❌
ALTER STATISTICS
❌
❌
ALTER SUBSCRIPTION
❌
❌
ALTER SYSTEM
❌
❌
ALTER TABLE
✅
❌
ALTER TABLESPACE
❌
❌
ALTER TEXT SEARCH CONFIGURATION
❌
❌
ALTER TEXT SEARCH DICTIONARY
❌
❌
ALTER TEXT SEARCH PARSER
❌
❌
ALTER TEXT SEARCH TEMPLATE
❌
❌
ALTER TRIGGER
✅
❌
ALTER TYPE
✅
❌
ALTER VIEW
✅
❌
COMMENT
✅
❌
CREATE ACCESS METHOD
❌
❌
CREATE AGGREGATE
✅
❌
CREATE CAST
❌
❌
CREATE COLLATION
❌
❌
CREATE CONVERSION
❌
❌
CREATE DATABASE
✅
🟠
CREATE DOMAIN
✅
❌
CREATE EVENT TRIGGER
❌
❌
CREATE EXTENSION
✅
❌
CREATE FOREIGN DATA WRAPPER
❌
❌
CREATE FOREIGN TABLE
❌
❌
CREATE FUNCTION
✅
❌
CREATE INDEX
✅
❌
CREATE LANGUAGE
✅
❌
CREATE MATERIALIZED VIEW
✅
❌
CREATE OPERATOR
❌
❌
CREATE OPERATOR CLASS
❌
❌
CREATE OPERATOR FAMILY
❌
❌
CREATE POLICY
❌
❌
CREATE PROCEDURE
✅
❌
CREATE PUBLICATION
❌
❌
CREATE RULE
❌
❌
CREATE SCHEMA
✅
❌
CREATE SEQUENCE
✅
❌
CREATE SERVER
❌
❌
CREATE STATISTICS
❌
❌
CREATE SUBSCRIPTION
❌
❌
CREATE TABLE
✅
🟠
CREATE TABLESPACE
❌
❌
CREATE TEXT SEARCH CONFIGURATION
❌
❌
CREATE TEXT SEARCH DICTIONARY
❌
❌
CREATE TEXT SEARCH PARSER
❌
❌
CREATE TEXT SEARCH TEMPLATE
❌
❌
CREATE TRANSFORM
❌
❌
CREATE TRIGGER
✅
❌
CREATE TYPE
✅
❌
CREATE VIEW
✅
❌
DROP ACCESS METHOD
❌
❌
DROP AGGREGATE
✅
❌
DROP CAST
❌
❌
DROP COLLATION
❌
❌
DROP CONVERSION
❌
❌
DROP DATABASE
✅
🟠
DROP DOMAIN
✅
❌
DROP EVENT TRIGGER
❌
❌
DROP EXTENSION
✅
❌
DROP FOREIGN DATA WRAPPER
❌
❌
DROP FOREIGN TABLE
❌
❌
DROP FUNCTION
✅
❌
DROP INDEX
✅
🟠
DROP LANGUAGE
✅
❌
DROP MATERIALIZED VIEW
✅
🟠
DROP OPERATOR
❌
❌
DROP OPERATOR CLASS
❌
❌
DROP OPERATOR FAMILY
❌
❌
DROP OWNED
❌
❌
DROP POLICY
❌
❌
DROP PROCEDURE
✅
❌
DROP PUBLICATION
❌
❌
DROP ROUTINE
❌
❌
DROP RULE
❌
❌
DROP SCHEMA
✅
❌
DROP SEQUENCE
✅
❌
DROP SERVER
❌
❌
DROP STATISTICS
❌
❌
DROP SUBSCRIPTION
❌
❌
DROP TABLE
✅
🟠
DROP TABLESPACE
❌
❌
DROP TEXT SEARCH CONFIGURATION
❌
❌
DROP TEXT SEARCH DICTIONARY
❌
❌
DROP TEXT SEARCH PARSER
❌
❌
DROP TEXT SEARCH TEMPLATE
❌
❌
DROP TRANSFORM
❌
❌
DROP TRIGGER
✅
🟠
DROP TYPE
✅
❌
DROP VIEW
✅
🟠
SECURITY LABEL
❌
❌
Data manipulation statements
SQL Commands
Parses
Works
CALL
✅
✅
CLOSE
❌
❌
CREATE TABLE AS
✅
❌
CLUSTER
❌
❌
COPY
❌
❌
DECLARE
❌
❌
DELETE
🟠
🟠
DO
❌
❌
FETCH
❌
❌
IMPORT FOREIGN SCHEMA
❌
❌
INSERT
🟠
🟠
LOAD
❌
❌
MERGE
❌
❌
MOVE
❌
❌
REFRESH MATERIALIZED VIEW
✅
❌
REINDEX
❌
❌
SELECT
🟠
🟠
SELECT INTO
❌
❌
TRUNCATE
🟠
🟠
UPDATE
🟠
🟠
VACUUM
❌
❌
VALUES
🟠
🟠
Prepared statements
SQL Commands
Parses
Works
DEALLOCATE
✅
❌
PREPARE
✅
❌
EXECUTE
✅
❌
Session management statements
SQL Commands
Parses
Works
DISCARD
🟠
❌
RESET
✅
❌
SET
✅
🟠
SET CONSTRAINTS
✅
❌
SET ROLE
✅
❌
SET SESSION AUTHORIZATION
✅
❌
SET TRANSACTION
🟠
❌
SHOW
✅
🟠
Transactional statements
SQL Commands
Parses
Works
ABORT
✅
✅
BEGIN
🟠
🟠
CHECKPOINT
❌
❌
COMMIT
✅
✅
COMMIT PREPARED
❌
❌
END
✅
✅
LISTEN
❌
❌
LOCK
❌
❌
NOTIFY
❌
❌
PREPARE TRANSACTION
❌
❌
RELEASE SAVEPOINT
✅
✅
ROLLBACK
✅
✅
ROLLBACK PREPARED
❌
❌
ROLLBACK TO SAVEPOINT
✅
✅
SAVEPOINT
✅
✅
START TRANSACTION
🟠
🟠
UNLISTEN
❌
❌
Utility statements
SQL Commands
Parses
Works
ANALYZE
❌
❌
EXPLAIN
❌
❌
Conclusion
Wow, there are so many red X's 😱... But it's okay. DoltgreSQL is like a baby 👶 growing up day by day,
just like how Dolt started. These red X's will turn into green checkmarks as it grows.
It has been fun working on syntax support for DoltgreSQL. Next on our list is to start on
getting parsed nodes to actually work. If you need a specific command to work, let us know on Discord
or file an issue on GitHub. We will get it working for you as soon as possible.
You can also contribute to DoltgreSQL using this guide.