github graphile/crystal postgraphile@5.1.5

4 hours ago

Patch Changes

  • #3145
    f026f03
    Thanks @benjie! - Fix bug in
    loadOneWithPgClient and loadManyWithPgClient where the PG client might be
    released early if the loader returns a list of promises (or promise to the
    same). Solution is simple: wrap the list with Promise.all(...).

  • #3143
    321ea65
    Thanks @nick-kang! - Apply
    pgSettingsForIntrospection when reading enum table values.

  • #3137
    637408c
    Thanks @benjie! - Fixes a planning bug where
    adding a non-unary dependency A to a unary step B correctly converts B to be
    non-unary... but didn't cascade that change to unary steps that depend on B.
    The result was runtime (rather than plantime) exceptions:
    GrafastInternalError<58bc38e2-8722-4c19-ba38-fd01a020654b>: unary step SomeStep[17] cannot be made dependent on non-unary step SomeOtherStep[29]!
    This is now resolved by cascading the change.

  • #3116
    19af784
    Thanks @benjie! - Address a slow memory leak in
    GraphQL subscriptions that can cause OOM errors when a single subscription
    hits many hundreds of thousands of events. The cause was racing an
    abortPromise with each event, causing the abort promise to build up a large
    list of callbacks in its internal Promise mechanics when the event always won
    the race. The fix was to move from using a promise for abort to an
    AbortController, where the abort task can be released after each event
    successfully resolves, avoiding memory buildup. Also applied this fix to
    similar patterns elsewhere in the codebase, albeit places much less sensitive
    to this issue.

  • #3128
    56e8708
    Thanks @benjie! - Fix a bug where trap() would
    prevent connection-capable list steps from resolving correctly (often
    replacing them with null).

  • Updated dependencies
    [f026f03,
    321ea65,
    637408c,
    8717725,
    19af784,
    4d113fa,
    56e8708,
    ddf58fa]:

    • @dataplan/pg@1.1.2
    • graphile-build-pg@5.1.4
    • grafast@1.1.3
    • grafserv@1.0.2
    • graphile-config@1.1.1

Don't miss a new crystal release

NewReleases is sending notifications on new releases.