Skip to content

Route B, step 3: literal corpus × entry point against PostgreSQL #123

Closed

Description

@CaffeinatedCoder

Problem

test/oracles/axes.md lists, under "Literals and JSON" → "Pairs no test varies", literal corpus × entry point against PostgreSQL on the same text. LiteralGrammarParityTests asks the server about three corpus families (quoted, escaped and whitespace bounds) through TryParse only. The rest of the corpus — inverted bounds, equal bounds per bracket pair, infinity spellings and case, 24:00:00, more than 28 significant digits, leading + and zeros, exponents, NaN, PostgreSQL's special inputs (epoch, now, today, …), trailing junk, nested quotes, backslash escapes, Unicode whitespace, "", empty in every case, multirange text — and every other entry point (Parse(string), Parse(span), JSON, TypeConverter, the EF SQL constant and JSON document) were never compared with the server. #114 and #115 are single cells of this product, found once and not kept.

Change

Route B, step 3 (#105): a probe class in test/CodoMetis.ValueRanges.EFCore.PostgreSQL.IntegrationTests over literal corpus × entry point × type. For each row the authority is SELECT $1::<type>::text on the server with the literal as a text parameter: both accept and read the same value, or both refuse. Every entry point must give the same answer. Round trips are batched so the sweep stays well under two minutes; without Docker it is Inconclusive, under CI=true a failure.

Activity

  1. added
    testsAdds or changes tests only (oracles, harnesses); no library code
    package/nodatimeAffects CodoMetis.ValueRanges.NodaTime
    package/efcoreAffects CodoMetis.ValueRanges.EFCore.PostgreSQL
    area/literalsParse, TryParse and formatting
    package/coreAffects CodoMetis.ValueRanges
    on Oct 17, 2026
  2. CaffeinatedCoder commented on Oct 17, 2026

    @CaffeinatedCoder
    OwnerAuthor

    Implemented in #135: 48 types × 4,531 literals × 7 entry points + EF write-back, ~6 s. Findings filed as #126–#133; known cells registered against #114, #115, #78. Seed empty-keyword-matched-as-prefix.patch is caught only by this class.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    area/literalsParse, TryParse and formattingpackage/coreAffects CodoMetis.ValueRangespackage/efcoreAffects CodoMetis.ValueRanges.EFCore.PostgreSQLpackage/nodatimeAffects CodoMetis.ValueRanges.NodaTimetestsAdds or changes tests only (oracles, harnesses); no library code

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions