Skip to content

Commit 8046295

Browse files
committed
Fix query
1 parent 73ff441 commit 8046295

File tree

1 file changed

+13
-16
lines changed
  • share-api/src/Share/Postgres/Definitions

1 file changed

+13
-16
lines changed

share-api/src/Share/Postgres/Definitions/Queries.hs

Lines changed: 13 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -800,29 +800,26 @@ _localizeTermAndType tm typ = do
800800
-- variable names.
801801
saveCachedEvalResult :: forall m. (QueryM m) => CodebaseEnv -> Reference.Id -> V2.Term Symbol -> m ()
802802
saveCachedEvalResult (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

Comments
 (0)