fsprojects / fsprojects/FSharp.Data.SqlClient
Generated types for performance
Nobody has claimed this yet.
- Dominant language
- F#
- Stars
- 206
- Forks
- 66
- PR merge metrics
- No merged PRs in 30d
Description
We should consider making a generated type provider. There are previous closed threads (https://github.com/fsprojects/FSharp.Data.SqlClient/issues/61, ) that have focused on C# friendliness, which is a very good goal, but this is about performance at design-time.
The performance advantage of genreated types is that it can use the build system and therefore run at predictable times and manually. A very small project can use the FSharp.Data.SqlClient with a reference to a database connection, and then be built. Any referencing project will get usable intellisense performance without the performance issues that plague this library. https://github.com/fsprojects/FSharp.Data.SqlClient/issues/343 . It would also address cases where the type provider does not know when to update types, since there is no way to control this manually at present https://github.com/fsprojects/FSharp.Data.SqlClient/issues/329 .
This workflow would operate similarly to SQL+ .NET, i.e. providing a way to get dotnet code from an sql project.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by reading the linked issues 61, 343, and 329, then compare the proposed workflow with SQL+ .NET. Done would require an agreed design for generated types, their build-time execution, and how the resulting .NET code is consumed.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- fsharp, sql
- Domain
- build-system, databases, developer-experience, performance
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 25/100