# Supporting Multiple Dialects in SQLDelight

DevFeed: [Supporting Multiple Dialects in SQLDelight](<https://devfeed.tech/articles/supporting-multiple-dialects-in-sqldelight-25527.md>)

Original publisher: [Read original article](<https://aleckazakova.com/posts/multiple-dialects/>)

Author: Author

Published: 2020-02-13T18:15:17Z

Content type: article

Language: en

Sources: [Posts on AlecStrong](<https://devfeed.tech/sources/posts-on-alecstrong.md>)

Topics: [SQLite](<https://devfeed.tech/topics/sqlite.md>), [MySQL](<https://devfeed.tech/topics/mysql.md>), [Compiler](<https://devfeed.tech/topics/compiler.md>), [SQL](<https://devfeed.tech/topics/sql.md>), [Parsing](<https://devfeed.tech/topics/parsing.md>), [ANTLR](<https://devfeed.tech/topics/antlr.md>)

Tags: [compiler](<https://devfeed.tech/tags/compiler.md>), [compilers](<https://devfeed.tech/tags/compilers.md>), [gradle](<https://devfeed.tech/tags/gradle.md>), [intellij](<https://devfeed.tech/tags/intellij.md>), [lexer](<https://devfeed.tech/tags/lexer.md>), [mysql](<https://devfeed.tech/tags/mysql.md>), [open-source](<https://devfeed.tech/tags/open-source.md>), [parsing](<https://devfeed.tech/tags/parsing.md>), [plugin](<https://devfeed.tech/tags/plugin.md>), [python](<https://devfeed.tech/tags/python.md>), [sql](<https://devfeed.tech/tags/sql.md>), [sqldelight](<https://devfeed.tech/tags/sqldelight.md>), [sqlite](<https://devfeed.tech/tags/sqlite.md>)

## AI overview

This article explains how SQLDelight supports multiple SQL dialects, including SQLite 3.18, SQLite 3.24, and MySQL. It describes the compiler, lexer, parser, AST, and the use of JetBrains Grammar Kit to build composable parsing and incrementally extend dialect support.

## Source excerpt

With SQLDelight 1.3.0 and above we now support multiple dialects of SQL (at time of writing: SQLite 3.18, SQLite 3.24, and MySQL). They're not complete implementations of any of those dialects but they support necessary features and the real meat of the release is a straightforward framework for adding parts of the dialects incrementally. For example, SQLite 3.24 is just SQLite 3.18 with upsert on top (thank you Angus Holder!).