Cataloguing SQL Support in DoltgreSQL

REFERENCEDOLTGRES
4 min read

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.

SHARE

JOIN THE DATA EVOLUTION

Get started with Dolt

Or join our mailing list to get product updates.