server: fetch and use stored introspection during Schema Cache (re)builds

PR-URL: https://github.com/hasura/graphql-engine-mono/pull/9272
GitOrigin-RevId: 08d7767489912ca1420453f5dda0e440352a19c0
This commit is contained in:
Puru Gupta 2023-05-24 02:33:12 +05:30 committed by hasura-bot
parent 87da15a596
commit 46451cf114
2 changed files with 6 additions and 2 deletions

View File

@ -232,6 +232,7 @@ instance (Monad m) => CacheRM (CacheRWT m) where
instance
( MonadIO m,
MonadError QErr m,
MonadMetadataStorage m,
ProvidesNetwork m,
MonadResolveSource m,
HasCacheStaticConfig m
@ -241,12 +242,14 @@ instance
tryBuildSchemaCacheWithOptions buildReason invalidations metadata validateNewSchemaCache = CacheRWT do
dynamicConfig <- ask
(RebuildableSchemaCache lastBuiltSC invalidationKeys rule, oldInvalidations) <- get
let metadataWithVersion = MetadataWithResourceVersion metadata $ scMetadataResourceVersion lastBuiltSC
let metadataVersion = scMetadataResourceVersion lastBuiltSC
metadataWithVersion = MetadataWithResourceVersion metadata metadataVersion
newInvalidationKeys = invalidateKeys invalidations invalidationKeys
storedIntrospection <- onLeftM (fetchSourceIntrospection metadataVersion) (\_ -> pure Nothing)
result <-
runCacheBuildM $
flip runReaderT buildReason $
Inc.build rule (metadataWithVersion, dynamicConfig, newInvalidationKeys, Nothing)
Inc.build rule (metadataWithVersion, dynamicConfig, newInvalidationKeys, storedIntrospection)
let schemaCache = Inc.result result
prunedInvalidationKeys = pruneInvalidationKeys schemaCache newInvalidationKeys
!newCache = RebuildableSchemaCache schemaCache prunedInvalidationKeys (Inc.rebuildRule result)

View File

@ -77,6 +77,7 @@ instance
( MonadIO m,
MonadBaseControl IO m,
MonadError QErr m,
MonadMetadataStorage m,
MonadResolveSource m,
ProvidesNetwork m,
HasCacheStaticConfig m