graphql-engine/server/src-lib/Hasura/RQL/IR/Delete.hs
Vamshi Surabhi 23e1cb218a simplification of generalized joins execution
This PR simplifies the types that represent a remote relationship in IR so that they can be reused in other parts (in remote schema types) which could have remote relationships.

The comments on the PR explain the main changes.

PR-URL: https://github.com/hasura/graphql-engine-mono/pull/2979
GitOrigin-RevId: 559c51d9d6ae79e2183ce4347018741b9096ac74
2021-12-07 13:12:57 +00:00

28 lines
743 B
Haskell

{-# LANGUAGE UndecidableInstances #-}
module Hasura.RQL.IR.Delete
( AnnDel,
AnnDelG (..),
)
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 AnnDelG (b :: BackendType) (r :: Type) v = AnnDel
{ dqp1Table :: !(TableName b),
dqp1Where :: !(AnnBoolExp b v, AnnBoolExp b v),
dqp1Output :: !(MutationOutputG b r v),
dqp1AllCols :: ![ColumnInfo b]
}
deriving (Functor, Foldable, Traversable)
type AnnDel b = AnnDelG b Void (SQLExpression b)
deriving instance (Show (MutationOutputG b r a), Backend b, Show (BooleanOperators b a), Show a) => Show (AnnDelG b r a)