mirror of
https://github.com/hasura/graphql-engine.git
synced 2024-12-17 20:41:49 +03:00
d91029ad51
### Description This PR removes all `fmapX` and `traverseX` functions from RQL.IR, favouring instead `Functor` and `Traversable` instances throughout the code. This was a relatively straightforward change, except for two small pain points: `AnnSelectG` and `AnnInsert`. Both were parametric over two types `a` and `v`, making it impossible to make them traversable functors... But it turns out that in every single use case, `a ~ f v`. By changing those types to take such an `f :: Type -> Type` as an argument instead of `a :: Type` makes it possible to make them functors. The only small difference is for `AnnIns`, I had to introduce one `Identity` transformation for one of the `f` parameters. This is relatively straightforward. ### Notes This PR fixes the most verbose BigQuery hint (`let` instead of `<- pure`). https://github.com/hasura/graphql-engine-mono/pull/1668 GitOrigin-RevId: e632263a8c559aa04aeae10dcaec915b4a81ad1a
23 lines
661 B
Haskell
23 lines
661 B
Haskell
module Hasura.RQL.IR.Delete where
|
|
|
|
import Hasura.Prelude
|
|
|
|
import Data.Kind (Type)
|
|
|
|
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 :: BackendType -> 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 (Const Void) (SQLExpression b)
|