graphql-engine/server/src-lib/Hasura/Incremental.hs
Alexis King d86a3d9501 Use fine(er)-grained dependency tracking when building permissions
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.
2020-01-08 16:45:54 -06:00

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