Skip to content

Npgsql parameter rewrite #78

Open
@mgravell

Description

@mgravell

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/without DbBatch 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)

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions