DapperAOT
DapperAOT copied to clipboard
Npgsql parameter rewrite
There are two parameter models in Npgsql - ordinal and nominal; we use nominal, but the ordinal API is much more efficient; we could ingest nominal const sql and rewrite it as ordinal
this should include splitting semi-colon multi-statements into DbBatch
when possible
tasks:
- [x] basic generalized SQL parser
- [x] SQL syntax tests for postgresql peculiarities
- [x] basic exploration of batch concept
- [x] "real" batch concept (
UnifiedBatch
, should work with/withoutDbBatch
API) - [ ] codegen (including turn-off-and-onable)
- [x] benchmark:
- [ ] vanilla Dapper, parameterized single batch (Npgsql param rewrite)
- [ ] vanilla Dapper, parameterized multi-batch (Npgsql param rewrite+split)
- [ ] AOT Dapper, rewrite enabled, parameterized single batch, DbBatch disabled
- [ ] AOT Dapper, rewrite enabled, parameterized multi batch, DbBatch disabled
- [ ] AOT Dapper, rewrite enabled, parameterized single batch, DbBatch enabled
- [ ] AOT Dapper, rewrite enabled, parameterized multi batch, DbBatch enabled
- [ ] use parser in place of the regex in the regular code path? as an option with fallback?
- [ ] docs
- [ ] performance tuning of parser (I have a plan, don't ask; kind of a rewrite of the parser) (note this is not critical path)