@@ -800,29 +800,26 @@ _localizeTermAndType tm typ = do
800800-- variable names.
801801saveCachedEvalResult :: forall m . (QueryM m ) => CodebaseEnv -> Reference. Id -> V2. Term Symbol -> m ()
802802saveCachedEvalResult (CodebaseEnv {codebaseOwner}) (Reference. Id resultHash compI) term = do
803- (mayEvalResultId, sandboxedAlreadySaved) <-
804- queryExpect1Row @ (Maybe EvalResultId , Bool )
803+ mayResult <-
804+ query1Row @ (EvalResultId , Bool )
805805 [sql |
806- SELECT er.id, ser.id IS NOT NULL AS already_saved
806+ SELECT er.id, ser.result_bytes_id IS NOT NULL AS already_saved
807807 FROM component_hashes ch
808808 JOIN eval_results er ON er.component_hash_id = ch.id
809809 AND er.component_index = #{pgComponentIndex compI}
810810 LEFT JOIN sandboxed_eval_result ser
811- ON ser.eval_result_id = er.id
811+ ON ser.eval_result_id = er.id AND ser.user_id = #{codebaseOwner}
812812 WHERE ch.base32 = #{ComponentHash resultHash}
813- AND ser.user_id = #{codebaseOwner}
814- )
815813 |]
816- if sandboxedAlreadySaved
817- then pure ()
818- else do
814+ case mayResult of
815+ Just (_, True ) -> pure ()
816+ Nothing -> do
819817 (localIds, dbTerm) <- localizeTerm term
820- case (mayEvalResultId) of
821- Just existingId -> do
822- saveSandboxed dbTerm existingId
823- Nothing -> do
824- evalResultId <- ensureEvalResult localIds
825- saveSandboxed dbTerm evalResultId
818+ evalResultId <- ensureEvalResult localIds
819+ saveSandboxed dbTerm evalResultId
820+ Just (existingId, _) -> do
821+ (_localIds, dbTerm) <- localizeTerm term
822+ saveSandboxed dbTerm existingId
826823 where
827824 saveSandboxed :: TermFormat. Term -> EvalResultId -> m ()
828825 saveSandboxed dbTerm evalResultId = do
@@ -845,7 +842,7 @@ saveCachedEvalResult (CodebaseEnv {codebaseOwner}) (Reference.Id resultHash comp
845842 SELECT * FROM (VALUES (#{resultHashId}, #{compIndex})) AS t(component_hash_id, component_index)
846843 ) INSERT INTO eval_results (component_hash_id, component_index)
847844 VALUES (#{resultHashId}, #{compIndex})
848- RETURNING component_hash_id, component_index, id
845+ RETURNING id
849846 |]
850847
851848 let textLocals = zip [0 :: Int32 .. ] (Vector.toList textLookup )
0 commit comments