mirror of
https://github.com/hasura/graphql-engine.git
synced 2024-12-18 04:51:35 +03:00
b167120f96
We'll see if this improves compile times at all, but I think it's worth doing as at least the most minimal form of module documentation. This was accomplished by first compiling everything with -ddump-minimal-imports, and then a bunch of scripting (with help from ormolu) **EDIT** it doesn't seem to improve CI compile times but the noise floor is high as it looks like we're not caching library dependencies anymore PR-URL: https://github.com/hasura/graphql-engine-mono/pull/2730 GitOrigin-RevId: 667eb8de1e0f1af70420cbec90402922b8b84cb4
55 lines
1.6 KiB
Haskell
55 lines
1.6 KiB
Haskell
module Hasura.RQL.IR.Update
|
|
( AnnUpd,
|
|
AnnUpdG (..),
|
|
UpdOpExpG (..),
|
|
updateOperatorText,
|
|
)
|
|
where
|
|
|
|
import Data.Kind (Type)
|
|
import Hasura.Prelude
|
|
import Hasura.RQL.IR.BoolExp
|
|
import Hasura.RQL.IR.Returning
|
|
import Hasura.RQL.Types.Backend
|
|
import Hasura.RQL.Types.Column
|
|
import Hasura.SQL.Backend
|
|
|
|
data AnnUpdG (b :: BackendType) (r :: BackendType -> Type) v = AnnUpd
|
|
{ uqp1Table :: !(TableName b),
|
|
uqp1OpExps :: ![(Column b, UpdOpExpG v)],
|
|
uqp1Where :: !(AnnBoolExp b v, AnnBoolExp b v),
|
|
uqp1Check :: !(AnnBoolExp b v),
|
|
-- we don't prepare the arguments for returning
|
|
-- however the session variable can still be
|
|
-- converted as desired
|
|
uqp1Output :: !(MutationOutputG b r v),
|
|
uqp1AllCols :: ![ColumnInfo b]
|
|
}
|
|
deriving (Functor, Foldable, Traversable)
|
|
|
|
type AnnUpd b = AnnUpdG b (Const Void) (SQLExpression b)
|
|
|
|
data UpdOpExpG v
|
|
= UpdSet !v
|
|
| UpdInc !v
|
|
| UpdAppend !v
|
|
| UpdPrepend !v
|
|
| UpdDeleteKey !v
|
|
| UpdDeleteElem !v
|
|
| UpdDeleteAtPath ![v]
|
|
deriving (Functor, Foldable, Traversable, Generic, Data)
|
|
|
|
-- NOTE: This function can be improved, because we use
|
|
-- the literal values defined below in the 'updateOperators'
|
|
-- function in 'Hasura.GraphQL.Schema.Mutation'. It would
|
|
-- be nice if we could avoid duplicating the string literal
|
|
-- values
|
|
updateOperatorText :: UpdOpExpG a -> Text
|
|
updateOperatorText (UpdSet _) = "_set"
|
|
updateOperatorText (UpdInc _) = "_inc"
|
|
updateOperatorText (UpdAppend _) = "_append"
|
|
updateOperatorText (UpdPrepend _) = "_prepend"
|
|
updateOperatorText (UpdDeleteKey _) = "_delete_key"
|
|
updateOperatorText (UpdDeleteElem _) = "_delete_elem"
|
|
updateOperatorText (UpdDeleteAtPath _) = "_delete_at_path"
|