Open
Description
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:
- basic generalized SQL parser
- SQL syntax tests for postgresql peculiarities
- basic exploration of batch concept
- "real" batch concept (
UnifiedBatch
, should work with/withoutDbBatch
API) - codegen (including turn-off-and-onable)
- 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)