Add Microsoft SQL Server support
What do you want to change?
I am one of the developers of the C# plugin. We published our plugin in the community and received a lot of feedback - mainly around the lack of support in SQL Server. I took a look at the engines implementations and saw that in SQLite you use antlr to parse the SQL, and that antlr has the same kind of support for tsql (SQL Server's SQL dialect).
I want to propose that I will start working on an SQL Server iplementation, in the same manner as the SQLite one. @doron050
What database engines need to be changed?
No response
What programming language backends need to be changed?
No response
I updated the title and added the tag we use for all new engine requests. This one is unlikely to happen soon, mainly because I have larger plans for refactoring how we add new engines. That said it's most certainly on the roadmap.
What would be necessary to get some traction here? I'm doing a hard push on my org to move to more modern tooling and sqlc not being in sql server is one of the biggest detractors for a mainly microsoft shop.
If it's possible, @SockworkOrange and I are willing to give it a try 🙏
@kyleconroy given that there's 2 people willing to commit their time to this, can anything about the refactor be sped up? Maybe outlining the interfaces that will be used, or have them just go ahead with it right now and deal with the refactor later?
@kyleconroy any inputs here?
I posted a 2026 roadmap a few days ago. While this didn't make it, the Go API should make it much easier to support SQL Server.
@twolfvb the help I need is on the research side. For SQL server support, I need to find a Go parser for T-SQL (that doesn't depend on cgo) and to document the process for extracting column and parameter information from a query using a running SQL Server.
@kyleconroy Confirming the first part regarding a GO parser for T-SQL, does using the same antlr4-grammers codegen tool done for SQLite work? Because as far as we can tell, there is no CGO dependency in that tool.
Regarding the documentation - I am famiiar with how to do that, ex-DBA and all. That part we can definitely take