mirror of
https://github.com/hasura/graphql-engine.git
synced 2024-12-16 18:42:30 +03:00
d86a3d9501
This changes TableCoreCacheT to internally record dependencies at a per-table level. In practice, this dramatically improves the performance of building permissions: it makes it far, far less likely for permissions to be needlessly rebuilt because some unrelated table changed.
28 lines
646 B
Haskell
28 lines
646 B
Haskell
-- | A simple implementation of /incremental build rules/, which can be used to avoid unnecessary
|
|
-- recomputation on incrementally-changing input. See 'Rule' for more details.
|
|
module Hasura.Incremental
|
|
( Rule
|
|
, Result
|
|
, build
|
|
, rebuild
|
|
, rebuildRule
|
|
, result
|
|
|
|
, ArrowDistribute(..)
|
|
, ArrowCache(..)
|
|
, MonadDepend(..)
|
|
, DependT
|
|
|
|
, Dependency
|
|
, Selector
|
|
, selectD
|
|
, selectKeyD
|
|
, Cacheable(..)
|
|
, Accesses
|
|
) where
|
|
|
|
import Hasura.Incremental.Internal.Cache
|
|
import Hasura.Incremental.Internal.Dependency
|
|
import Hasura.Incremental.Internal.Rule
|
|
import Hasura.Incremental.Select
|