F# can do this, either as part of the compilation via type providers [1] or, in a more lightweight manner, via Roslyn analyzers embedded in the editor [2].

Unsurprisingly, Haskell can also do this via Template Haskell [3], but I haven't used it.

[1] https://github.com/demetrixbio/FSharp.Data.Npgsql

[2] https://github.com/Zaid-Ajaj/Npgsql.FSharp.Analyzer

[3] https://hackage.haskell.org/package/postgresql-typed

On a similar note, there's also sqlx for rust [1] - and I find it extra impressive that they manage to support not only postgres, but sqlite and and mysql too.

[1] https://github.com/launchbadge/sqlx