graphql-engine-1.0.0: GraphQL API over Postgres
Safe HaskellSafe-Inferred
LanguageHaskell2010

Hasura.RQL.IR.Select

Description

This modules defines the tree of Select types: how we represent a query internally, from its top level QueryDB down to each individual field. Most of those types have three type arguments:

b: BackendType The backend that is targeted by that specific select (Postgres Vanilla, MSSQL...); we use the type families in the Backend class to decide how different parts of the IR are represented in different backends.

v: Type The type of the leaf values in our AST; used almost exclusively for column values, over which queries can be parameterized. The output of the parser phase will use UnpreparedValue b for the leaves, and most backends will then transform the AST to interpret those values and consequently change v to be SQLExpression b

r: BackendType -> Type Joins across backends mean that the aforementioned b parameter won't be the same throughout the entire tree; at some point we will have an AnyBackend used to encapsulate a branch that uses a different b. We still want, however, to be able to parameterize the values of the leaves in that separate branch, and that's what the r parameter is for. We also use UnpreparedValue here during the parsing phase, meaning all leaf values will be UnpreparedValue b for their respective backend b, and most backends will then transform their AST, cutting all such remote branches, and therefore using Const Void for r.

Synopsis

Documentation

data QueryDB (b :: BackendType) (r :: Type) v Source #

Instances

Instances details
Backend b => Bifoldable (QueryDB b) Source # 
Instance details

Defined in Hasura.RQL.IR.Select

Methods

bifold :: Monoid m => QueryDB b m m -> m #

bifoldMap :: Monoid m => (a -> m) -> (b0 -> m) -> QueryDB b a b0 -> m #

bifoldr :: (a -> c -> c) -> (b0 -> c -> c) -> c -> QueryDB b a b0 -> c #

bifoldl :: (c -> a -> c) -> (c -> b0 -> c) -> c -> QueryDB b a b0 -> c #

Backend b => Foldable (QueryDB b r) Source # 
Instance details

Defined in Hasura.RQL.IR.Select

Methods

fold :: Monoid m => QueryDB b r m -> m #

foldMap :: Monoid m => (a -> m) -> QueryDB b r a -> m #

foldMap' :: Monoid m => (a -> m) -> QueryDB b r a -> m #

foldr :: (a -> b0 -> b0) -> b0 -> QueryDB b r a -> b0 #

foldr' :: (a -> b0 -> b0) -> b0 -> QueryDB b r a -> b0 #

foldl :: (b0 -> a -> b0) -> b0 -> QueryDB b r a -> b0 #

foldl' :: (b0 -> a -> b0) -> b0 -> QueryDB b r a -> b0 #

foldr1 :: (a -> a -> a) -> QueryDB b r a -> a #

foldl1 :: (a -> a -> a) -> QueryDB b r a -> a #

toList :: QueryDB b r a -> [a] #

null :: QueryDB b r a -> Bool #

length :: QueryDB b r a -> Int #

elem :: Eq a => a -> QueryDB b r a -> Bool #

maximum :: Ord a => QueryDB b r a -> a #

minimum :: Ord a => QueryDB b r a -> a #

sum :: Num a => QueryDB b r a -> a #

product :: Num a => QueryDB b r a -> a #

Backend b => Traversable (QueryDB b r) Source # 
Instance details

Defined in Hasura.RQL.IR.Select

Methods

traverse :: Applicative f => (a -> f b0) -> QueryDB b r a -> f (QueryDB b r b0) #

sequenceA :: Applicative f => QueryDB b r (f a) -> f (QueryDB b r a) #

mapM :: Monad m => (a -> m b0) -> QueryDB b r a -> m (QueryDB b r b0) #

sequence :: Monad m => QueryDB b r (m a) -> m (QueryDB b r a) #

Backend b => Functor (QueryDB b r) Source # 
Instance details

Defined in Hasura.RQL.IR.Select

Methods

fmap :: (a -> b0) -> QueryDB b r a -> QueryDB b r b0 #

(<$) :: a -> QueryDB b r b0 -> QueryDB b r a #

Generic (QueryDB b r v) Source # 
Instance details

Defined in Hasura.RQL.IR.Select

Associated Types

type Rep (QueryDB b r v) :: Type -> Type #

Methods

from :: QueryDB b r v -> Rep (QueryDB b r v) x #

to :: Rep (QueryDB b r v) x -> QueryDB b r v #

type Rep (QueryDB b r v) Source # 
Instance details

Defined in Hasura.RQL.IR.Select

data ConnectionSelect (b :: BackendType) (r :: Type) v Source #

Instances

Instances details
Backend b => Bifoldable (ConnectionSelect b) Source # 
Instance details

Defined in Hasura.RQL.IR.Select

Methods

bifold :: Monoid m => ConnectionSelect b m m -> m #

bifoldMap :: Monoid m => (a -> m) -> (b0 -> m) -> ConnectionSelect b a b0 -> m #

bifoldr :: (a -> c -> c) -> (b0 -> c -> c) -> c -> ConnectionSelect b a b0 -> c #

bifoldl :: (c -> a -> c) -> (c -> b0 -> c) -> c -> ConnectionSelect b a b0 -> c #

Backend b => Foldable (ConnectionSelect b r) Source # 
Instance details

Defined in Hasura.RQL.IR.Select

Methods

fold :: Monoid m => ConnectionSelect b r m -> m #

foldMap :: Monoid m => (a -> m) -> ConnectionSelect b r a -> m #

foldMap' :: Monoid m => (a -> m) -> ConnectionSelect b r a -> m #

foldr :: (a -> b0 -> b0) -> b0 -> ConnectionSelect b r a -> b0 #

foldr' :: (a -> b0 -> b0) -> b0 -> ConnectionSelect b r a -> b0 #

foldl :: (b0 -> a -> b0) -> b0 -> ConnectionSelect b r a -> b0 #

foldl' :: (b0 -> a -> b0) -> b0 -> ConnectionSelect b r a -> b0 #

foldr1 :: (a -> a -> a) -> ConnectionSelect b r a -> a #

foldl1 :: (a -> a -> a) -> ConnectionSelect b r a -> a #

toList :: ConnectionSelect b r a -> [a] #

null :: ConnectionSelect b r a -> Bool #

length :: ConnectionSelect b r a -> Int #

elem :: Eq a => a -> ConnectionSelect b r a -> Bool #

maximum :: Ord a => ConnectionSelect b r a -> a #

minimum :: Ord a => ConnectionSelect b r a -> a #

sum :: Num a => ConnectionSelect b r a -> a #

product :: Num a => ConnectionSelect b r a -> a #

Backend b => Traversable (ConnectionSelect b r) Source # 
Instance details

Defined in Hasura.RQL.IR.Select

Methods

traverse :: Applicative f => (a -> f b0) -> ConnectionSelect b r a -> f (ConnectionSelect b r b0) #

sequenceA :: Applicative f => ConnectionSelect b r (f a) -> f (ConnectionSelect b r a) #

mapM :: Monad m => (a -> m b0) -> ConnectionSelect b r a -> m (ConnectionSelect b r b0) #

sequence :: Monad m => ConnectionSelect b r (m a) -> m (ConnectionSelect b r a) #

Backend b => Functor (ConnectionSelect b r) Source # 
Instance details

Defined in Hasura.RQL.IR.Select

Methods

fmap :: (a -> b0) -> ConnectionSelect b r a -> ConnectionSelect b r b0 #

(<$) :: a -> ConnectionSelect b r b0 -> ConnectionSelect b r a #

(Backend b, Show (AnnSelectG b (ConnectionField b r) v), Show ConnectionSlice, Show (ConnectionSplit b v), Show (PrimaryKeyColumns b)) => Show (ConnectionSelect b r v) Source # 
Instance details

Defined in Hasura.RQL.IR.Select

(Backend b, Eq (AnnSelectG b (ConnectionField b r) v), Eq ConnectionSlice, Eq (ConnectionSplit b v), Eq (PrimaryKeyColumns b)) => Eq (ConnectionSelect b r v) Source # 
Instance details

Defined in Hasura.RQL.IR.Select

Methods

(==) :: ConnectionSelect b r v -> ConnectionSelect b r v -> Bool #

(/=) :: ConnectionSelect b r v -> ConnectionSelect b r v -> Bool #

data ConnectionSplit (b :: BackendType) v Source #

Instances

Instances details
Backend b => Foldable (ConnectionSplit b) Source # 
Instance details

Defined in Hasura.RQL.IR.Select

Methods

fold :: Monoid m => ConnectionSplit b m -> m #

foldMap :: Monoid m => (a -> m) -> ConnectionSplit b a -> m #

foldMap' :: Monoid m => (a -> m) -> ConnectionSplit b a -> m #

foldr :: (a -> b0 -> b0) -> b0 -> ConnectionSplit b a -> b0 #

foldr' :: (a -> b0 -> b0) -> b0 -> ConnectionSplit b a -> b0 #

foldl :: (b0 -> a -> b0) -> b0 -> ConnectionSplit b a -> b0 #

foldl' :: (b0 -> a -> b0) -> b0 -> ConnectionSplit b a -> b0 #

foldr1 :: (a -> a -> a) -> ConnectionSplit b a -> a #

foldl1 :: (a -> a -> a) -> ConnectionSplit b a -> a #

toList :: ConnectionSplit b a -> [a] #

null :: ConnectionSplit b a -> Bool #

length :: ConnectionSplit b a -> Int #

elem :: Eq a => a -> ConnectionSplit b a -> Bool #

maximum :: Ord a => ConnectionSplit b a -> a #

minimum :: Ord a => ConnectionSplit b a -> a #

sum :: Num a => ConnectionSplit b a -> a #

product :: Num a => ConnectionSplit b a -> a #

Backend b => Traversable (ConnectionSplit b) Source # 
Instance details

Defined in Hasura.RQL.IR.Select

Methods

traverse :: Applicative f => (a -> f b0) -> ConnectionSplit b a -> f (ConnectionSplit b b0) #

sequenceA :: Applicative f => ConnectionSplit b (f a) -> f (ConnectionSplit b a) #

mapM :: Monad m => (a -> m b0) -> ConnectionSplit b a -> m (ConnectionSplit b b0) #

sequence :: Monad m => ConnectionSplit b (m a) -> m (ConnectionSplit b a) #

Backend b => Functor (ConnectionSplit b) Source # 
Instance details

Defined in Hasura.RQL.IR.Select

Methods

fmap :: (a -> b0) -> ConnectionSplit b a -> ConnectionSplit b b0 #

(<$) :: a -> ConnectionSplit b b0 -> ConnectionSplit b a #

Generic (ConnectionSplit b v) Source # 
Instance details

Defined in Hasura.RQL.IR.Select

Associated Types

type Rep (ConnectionSplit b v) :: Type -> Type #

Methods

from :: ConnectionSplit b v -> Rep (ConnectionSplit b v) x #

to :: Rep (ConnectionSplit b v) x -> ConnectionSplit b v #

(Backend b, Show v, Show (OrderByItemG b (AnnotatedOrderByElement b v))) => Show (ConnectionSplit b v) Source # 
Instance details

Defined in Hasura.RQL.IR.Select

(Backend b, Eq v, Eq (OrderByItemG b (AnnotatedOrderByElement b v))) => Eq (ConnectionSplit b v) Source # 
Instance details

Defined in Hasura.RQL.IR.Select

(Backend b, Hashable v, Hashable (OrderByItemG b (AnnotatedOrderByElement b v))) => Hashable (ConnectionSplit b v) Source # 
Instance details

Defined in Hasura.RQL.IR.Select

type Rep (ConnectionSplit b v) Source # 
Instance details

Defined in Hasura.RQL.IR.Select

type Rep (ConnectionSplit b v) = D1 ('MetaData "ConnectionSplit" "Hasura.RQL.IR.Select" "graphql-engine-1.0.0-inplace" 'False) (C1 ('MetaCons "ConnectionSplit" 'PrefixI 'True) (S1 ('MetaSel ('Just "_csKind") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedStrict) (Rec0 ConnectionSplitKind) :*: (S1 ('MetaSel ('Just "_csValue") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedStrict) (Rec0 v) :*: S1 ('MetaSel ('Just "_csOrderBy") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedStrict) (Rec0 (OrderByItemG b (AnnotatedOrderByElement b v))))))

data ConnectionSlice Source #

Constructors

SliceFirst Int 
SliceLast Int 

Instances

Instances details
Generic ConnectionSlice Source # 
Instance details

Defined in Hasura.RQL.IR.Select

Associated Types

type Rep ConnectionSlice :: Type -> Type #

Show ConnectionSlice Source # 
Instance details

Defined in Hasura.RQL.IR.Select

Eq ConnectionSlice Source # 
Instance details

Defined in Hasura.RQL.IR.Select

Hashable ConnectionSlice Source # 
Instance details

Defined in Hasura.RQL.IR.Select

type Rep ConnectionSlice Source # 
Instance details

Defined in Hasura.RQL.IR.Select

type Rep ConnectionSlice = D1 ('MetaData "ConnectionSlice" "Hasura.RQL.IR.Select" "graphql-engine-1.0.0-inplace" 'False) (C1 ('MetaCons "SliceFirst" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedStrict) (Rec0 Int)) :+: C1 ('MetaCons "SliceLast" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedStrict) (Rec0 Int)))

data ConnectionSplitKind Source #

Constructors

CSKBefore 
CSKAfter 

Instances

Instances details
Generic ConnectionSplitKind Source # 
Instance details

Defined in Hasura.RQL.IR.Select

Associated Types

type Rep ConnectionSplitKind :: Type -> Type #

Show ConnectionSplitKind Source # 
Instance details

Defined in Hasura.RQL.IR.Select

Eq ConnectionSplitKind Source # 
Instance details

Defined in Hasura.RQL.IR.Select

Hashable ConnectionSplitKind Source # 
Instance details

Defined in Hasura.RQL.IR.Select

type Rep ConnectionSplitKind Source # 
Instance details

Defined in Hasura.RQL.IR.Select

type Rep ConnectionSplitKind = D1 ('MetaData "ConnectionSplitKind" "Hasura.RQL.IR.Select" "graphql-engine-1.0.0-inplace" 'False) (C1 ('MetaCons "CSKBefore" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "CSKAfter" 'PrefixI 'False) (U1 :: Type -> Type))

data RemoteRelationshipSelect b r Source #

captures a remote relationship's selection and the necessary context

Constructors

RemoteRelationshipSelect 

Fields

  • _rrsLHSJoinFields :: HashMap FieldName (DBJoinField b)

    The fields on the table that are required for the join condition of the remote relationship

  • _rrsRelationship :: r

    The field that captures the relationship r ~ (RemoteRelationshipField UnpreparedValue) when the AST is emitted by the parser. r ~ Void when an execution tree is constructed so that a backend is absolved of dealing with remote relationships.

Instances

Instances details
Foldable (RemoteRelationshipSelect b) Source # 
Instance details

Defined in Hasura.RQL.IR.Select

Methods

fold :: Monoid m => RemoteRelationshipSelect b m -> m #

foldMap :: Monoid m => (a -> m) -> RemoteRelationshipSelect b a -> m #

foldMap' :: Monoid m => (a -> m) -> RemoteRelationshipSelect b a -> m #

foldr :: (a -> b0 -> b0) -> b0 -> RemoteRelationshipSelect b a -> b0 #

foldr' :: (a -> b0 -> b0) -> b0 -> RemoteRelationshipSelect b a -> b0 #

foldl :: (b0 -> a -> b0) -> b0 -> RemoteRelationshipSelect b a -> b0 #

foldl' :: (b0 -> a -> b0) -> b0 -> RemoteRelationshipSelect b a -> b0 #

foldr1 :: (a -> a -> a) -> RemoteRelationshipSelect b a -> a #

foldl1 :: (a -> a -> a) -> RemoteRelationshipSelect b a -> a #

toList :: RemoteRelationshipSelect b a -> [a] #

null :: RemoteRelationshipSelect b a -> Bool #

length :: RemoteRelationshipSelect b a -> Int #

elem :: Eq a => a -> RemoteRelationshipSelect b a -> Bool #

maximum :: Ord a => RemoteRelationshipSelect b a -> a #

minimum :: Ord a => RemoteRelationshipSelect b a -> a #

sum :: Num a => RemoteRelationshipSelect b a -> a #

product :: Num a => RemoteRelationshipSelect b a -> a #

Traversable (RemoteRelationshipSelect b) Source # 
Instance details

Defined in Hasura.RQL.IR.Select

Functor (RemoteRelationshipSelect b) Source # 
Instance details

Defined in Hasura.RQL.IR.Select

(Backend b, Show r) => Show (RemoteRelationshipSelect b r) Source # 
Instance details

Defined in Hasura.RQL.IR.Select

(Backend b, Eq r) => Eq (RemoteRelationshipSelect b r) Source # 
Instance details

Defined in Hasura.RQL.IR.Select

data AnnFieldG (b :: BackendType) (r :: Type) v Source #

Instances

Instances details
Backend b => Bifoldable (AnnFieldG b) Source # 
Instance details

Defined in Hasura.RQL.IR.Select

Methods

bifold :: Monoid m => AnnFieldG b m m -> m #

bifoldMap :: Monoid m => (a -> m) -> (b0 -> m) -> AnnFieldG b a b0 -> m #

bifoldr :: (a -> c -> c) -> (b0 -> c -> c) -> c -> AnnFieldG b a b0 -> c #

bifoldl :: (c -> a -> c) -> (c -> b0 -> c) -> c -> AnnFieldG b a b0 -> c #

Backend b => Foldable (AnnFieldG b r) Source # 
Instance details

Defined in Hasura.RQL.IR.Select

Methods

fold :: Monoid m => AnnFieldG b r m -> m #

foldMap :: Monoid m => (a -> m) -> AnnFieldG b r a -> m #

foldMap' :: Monoid m => (a -> m) -> AnnFieldG b r a -> m #

foldr :: (a -> b0 -> b0) -> b0 -> AnnFieldG b r a -> b0 #

foldr' :: (a -> b0 -> b0) -> b0 -> AnnFieldG b r a -> b0 #

foldl :: (b0 -> a -> b0) -> b0 -> AnnFieldG b r a -> b0 #

foldl' :: (b0 -> a -> b0) -> b0 -> AnnFieldG b r a -> b0 #

foldr1 :: (a -> a -> a) -> AnnFieldG b r a -> a #

foldl1 :: (a -> a -> a) -> AnnFieldG b r a -> a #

toList :: AnnFieldG b r a -> [a] #

null :: AnnFieldG b r a -> Bool #

length :: AnnFieldG b r a -> Int #

elem :: Eq a => a -> AnnFieldG b r a -> Bool #

maximum :: Ord a => AnnFieldG b r a -> a #

minimum :: Ord a => AnnFieldG b r a -> a #

sum :: Num a => AnnFieldG b r a -> a #

product :: Num a => AnnFieldG b r a -> a #

Backend b => Traversable (AnnFieldG b r) Source # 
Instance details

Defined in Hasura.RQL.IR.Select

Methods

traverse :: Applicative f => (a -> f b0) -> AnnFieldG b r a -> f (AnnFieldG b r b0) #

sequenceA :: Applicative f => AnnFieldG b r (f a) -> f (AnnFieldG b r a) #

mapM :: Monad m => (a -> m b0) -> AnnFieldG b r a -> m (AnnFieldG b r b0) #

sequence :: Monad m => AnnFieldG b r (m a) -> m (AnnFieldG b r a) #

Backend b => Functor (AnnFieldG b r) Source # 
Instance details

Defined in Hasura.RQL.IR.Select

Methods

fmap :: (a -> b0) -> AnnFieldG b r a -> AnnFieldG b r b0 #

(<$) :: a -> AnnFieldG b r b0 -> AnnFieldG b r a #

(Backend b, Show (AnnColumnField b v), Show (ArraySelectG b r v), Show (ComputedFieldSelect b r v), Show (ObjectRelationSelectG b r v), Show (RemoteRelationshipSelect b r), Show (AnnNestedObjectSelectG b r v), Show (AnnNestedArraySelectG b r v)) => Show (AnnFieldG b r v) Source # 
Instance details

Defined in Hasura.RQL.IR.Select

Methods

showsPrec :: Int -> AnnFieldG b r v -> ShowS #

show :: AnnFieldG b r v -> String #

showList :: [AnnFieldG b r v] -> ShowS #

(Backend b, Eq (AnnColumnField b v), Eq (ArraySelectG b r v), Eq (ComputedFieldSelect b r v), Eq (ObjectRelationSelectG b r v), Eq (RemoteRelationshipSelect b r), Eq (AnnNestedObjectSelectG b r v), Eq (AnnNestedArraySelectG b r v)) => Eq (AnnFieldG b r v) Source # 
Instance details

Defined in Hasura.RQL.IR.Select

Methods

(==) :: AnnFieldG b r v -> AnnFieldG b r v -> Bool #

(/=) :: AnnFieldG b r v -> AnnFieldG b r v -> Bool #

mkAnnColumnField :: Column backend -> ColumnType backend -> AnnRedactionExp backend v -> Maybe (ScalarSelectionArguments backend) -> AnnFieldG backend r v Source #

traverseSourceRelationshipSelection :: (Applicative f, Backend backend) => (vf backend -> f (vg backend)) -> SourceRelationshipSelection backend r vf -> f (SourceRelationshipSelection backend r vg) Source #

data TableAggregateFieldG (b :: BackendType) (r :: Type) v Source #

Constructors

TAFAgg (AggregateFields b v) 
TAFNodes (XNodesAgg b) (AnnFieldsG b r v) 
TAFGroupBy (XGroupBy b) (GroupByG b r v) 
TAFExp Text 

Instances

Instances details
Backend b => Bifoldable (TableAggregateFieldG b) Source # 
Instance details

Defined in Hasura.RQL.IR.Select

Methods

bifold :: Monoid m => TableAggregateFieldG b m m -> m #

bifoldMap :: Monoid m => (a -> m) -> (b0 -> m) -> TableAggregateFieldG b a b0 -> m #

bifoldr :: (a -> c -> c) -> (b0 -> c -> c) -> c -> TableAggregateFieldG b a b0 -> c #

bifoldl :: (c -> a -> c) -> (c -> b0 -> c) -> c -> TableAggregateFieldG b a b0 -> c #

Backend b => Foldable (TableAggregateFieldG b r) Source # 
Instance details

Defined in Hasura.RQL.IR.Select

Methods

fold :: Monoid m => TableAggregateFieldG b r m -> m #

foldMap :: Monoid m => (a -> m) -> TableAggregateFieldG b r a -> m #

foldMap' :: Monoid m => (a -> m) -> TableAggregateFieldG b r a -> m #

foldr :: (a -> b0 -> b0) -> b0 -> TableAggregateFieldG b r a -> b0 #

foldr' :: (a -> b0 -> b0) -> b0 -> TableAggregateFieldG b r a -> b0 #

foldl :: (b0 -> a -> b0) -> b0 -> TableAggregateFieldG b r a -> b0 #

foldl' :: (b0 -> a -> b0) -> b0 -> TableAggregateFieldG b r a -> b0 #

foldr1 :: (a -> a -> a) -> TableAggregateFieldG b r a -> a #

foldl1 :: (a -> a -> a) -> TableAggregateFieldG b r a -> a #

toList :: TableAggregateFieldG b r a -> [a] #

null :: TableAggregateFieldG b r a -> Bool #

length :: TableAggregateFieldG b r a -> Int #

elem :: Eq a => a -> TableAggregateFieldG b r a -> Bool #

maximum :: Ord a => TableAggregateFieldG b r a -> a #

minimum :: Ord a => TableAggregateFieldG b r a -> a #

sum :: Num a => TableAggregateFieldG b r a -> a #

product :: Num a => TableAggregateFieldG b r a -> a #

Backend b => Traversable (TableAggregateFieldG b r) Source # 
Instance details

Defined in Hasura.RQL.IR.Select

Methods

traverse :: Applicative f => (a -> f b0) -> TableAggregateFieldG b r a -> f (TableAggregateFieldG b r b0) #

sequenceA :: Applicative f => TableAggregateFieldG b r (f a) -> f (TableAggregateFieldG b r a) #

mapM :: Monad m => (a -> m b0) -> TableAggregateFieldG b r a -> m (TableAggregateFieldG b r b0) #

sequence :: Monad m => TableAggregateFieldG b r (m a) -> m (TableAggregateFieldG b r a) #

Backend b => Functor (TableAggregateFieldG b r) Source # 
Instance details

Defined in Hasura.RQL.IR.Select

Methods

fmap :: (a -> b0) -> TableAggregateFieldG b r a -> TableAggregateFieldG b r b0 #

(<$) :: a -> TableAggregateFieldG b r b0 -> TableAggregateFieldG b r a #

(Backend b, Show (AggregateFields b v), Show (AnnFieldsG b r v), Show (GroupByG b r v)) => Show (TableAggregateFieldG b r v) Source # 
Instance details

Defined in Hasura.RQL.IR.Select

(Backend b, Eq (AggregateFields b v), Eq (AnnFieldsG b r v), Eq (GroupByG b r v)) => Eq (TableAggregateFieldG b r v) Source # 
Instance details

Defined in Hasura.RQL.IR.Select

data AggregateField (b :: BackendType) v Source #

Constructors

AFCount (CountType b v) 
AFOp (AggregateOp b v) 
AFExp Text 

Instances

Instances details
Backend b => Foldable (AggregateField b) Source # 
Instance details

Defined in Hasura.RQL.IR.Select

Methods

fold :: Monoid m => AggregateField b m -> m #

foldMap :: Monoid m => (a -> m) -> AggregateField b a -> m #

foldMap' :: Monoid m => (a -> m) -> AggregateField b a -> m #

foldr :: (a -> b0 -> b0) -> b0 -> AggregateField b a -> b0 #

foldr' :: (a -> b0 -> b0) -> b0 -> AggregateField b a -> b0 #

foldl :: (b0 -> a -> b0) -> b0 -> AggregateField b a -> b0 #

foldl' :: (b0 -> a -> b0) -> b0 -> AggregateField b a -> b0 #

foldr1 :: (a -> a -> a) -> AggregateField b a -> a #

foldl1 :: (a -> a -> a) -> AggregateField b a -> a #

toList :: AggregateField b a -> [a] #

null :: AggregateField b a -> Bool #

length :: AggregateField b a -> Int #

elem :: Eq a => a -> AggregateField b a -> Bool #

maximum :: Ord a => AggregateField b a -> a #

minimum :: Ord a => AggregateField b a -> a #

sum :: Num a => AggregateField b a -> a #

product :: Num a => AggregateField b a -> a #

Backend b => Traversable (AggregateField b) Source # 
Instance details

Defined in Hasura.RQL.IR.Select

Methods

traverse :: Applicative f => (a -> f b0) -> AggregateField b a -> f (AggregateField b b0) #

sequenceA :: Applicative f => AggregateField b (f a) -> f (AggregateField b a) #

mapM :: Monad m => (a -> m b0) -> AggregateField b a -> m (AggregateField b b0) #

sequence :: Monad m => AggregateField b (m a) -> m (AggregateField b a) #

Backend b => Functor (AggregateField b) Source # 
Instance details

Defined in Hasura.RQL.IR.Select

Methods

fmap :: (a -> b0) -> AggregateField b a -> AggregateField b b0 #

(<$) :: a -> AggregateField b b0 -> AggregateField b a #

(Backend b, Show (CountType b v), Show (AggregateOp b v), Show v) => Show (AggregateField b v) Source # 
Instance details

Defined in Hasura.RQL.IR.Select

(Backend b, Eq (CountType b v), Eq (AggregateOp b v), Eq v) => Eq (AggregateField b v) Source # 
Instance details

Defined in Hasura.RQL.IR.Select

data AggregateOp (b :: BackendType) v Source #

Constructors

AggregateOp 

Fields

Instances

Instances details
Backend b => Foldable (AggregateOp b) Source # 
Instance details

Defined in Hasura.RQL.IR.Select

Methods

fold :: Monoid m => AggregateOp b m -> m #

foldMap :: Monoid m => (a -> m) -> AggregateOp b a -> m #

foldMap' :: Monoid m => (a -> m) -> AggregateOp b a -> m #

foldr :: (a -> b0 -> b0) -> b0 -> AggregateOp b a -> b0 #

foldr' :: (a -> b0 -> b0) -> b0 -> AggregateOp b a -> b0 #

foldl :: (b0 -> a -> b0) -> b0 -> AggregateOp b a -> b0 #

foldl' :: (b0 -> a -> b0) -> b0 -> AggregateOp b a -> b0 #

foldr1 :: (a -> a -> a) -> AggregateOp b a -> a #

foldl1 :: (a -> a -> a) -> AggregateOp b a -> a #

toList :: AggregateOp b a -> [a] #

null :: AggregateOp b a -> Bool #

length :: AggregateOp b a -> Int #

elem :: Eq a => a -> AggregateOp b a -> Bool #

maximum :: Ord a => AggregateOp b a -> a #

minimum :: Ord a => AggregateOp b a -> a #

sum :: Num a => AggregateOp b a -> a #

product :: Num a => AggregateOp b a -> a #

Backend b => Traversable (AggregateOp b) Source # 
Instance details

Defined in Hasura.RQL.IR.Select

Methods

traverse :: Applicative f => (a -> f b0) -> AggregateOp b a -> f (AggregateOp b b0) #

sequenceA :: Applicative f => AggregateOp b (f a) -> f (AggregateOp b a) #

mapM :: Monad m => (a -> m b0) -> AggregateOp b a -> m (AggregateOp b b0) #

sequence :: Monad m => AggregateOp b (m a) -> m (AggregateOp b a) #

Backend b => Functor (AggregateOp b) Source # 
Instance details

Defined in Hasura.RQL.IR.Select

Methods

fmap :: (a -> b0) -> AggregateOp b a -> AggregateOp b b0 #

(<$) :: a -> AggregateOp b b0 -> AggregateOp b a #

(Backend b, Show (SelectionFields b v), Show v) => Show (AggregateOp b v) Source # 
Instance details

Defined in Hasura.RQL.IR.Select

Methods

showsPrec :: Int -> AggregateOp b v -> ShowS #

show :: AggregateOp b v -> String #

showList :: [AggregateOp b v] -> ShowS #

(Backend b, Eq (SelectionFields b v), Eq v) => Eq (AggregateOp b v) Source # 
Instance details

Defined in Hasura.RQL.IR.Select

Methods

(==) :: AggregateOp b v -> AggregateOp b v -> Bool #

(/=) :: AggregateOp b v -> AggregateOp b v -> Bool #

data GroupByG (b :: BackendType) r v Source #

Constructors

GroupByG 

Instances

Instances details
Backend b => Bifoldable (GroupByG b) Source # 
Instance details

Defined in Hasura.RQL.IR.Select

Methods

bifold :: Monoid m => GroupByG b m m -> m #

bifoldMap :: Monoid m => (a -> m) -> (b0 -> m) -> GroupByG b a b0 -> m #

bifoldr :: (a -> c -> c) -> (b0 -> c -> c) -> c -> GroupByG b a b0 -> c #

bifoldl :: (c -> a -> c) -> (c -> b0 -> c) -> c -> GroupByG b a b0 -> c #

Backend b => Foldable (GroupByG b r) Source # 
Instance details

Defined in Hasura.RQL.IR.Select

Methods

fold :: Monoid m => GroupByG b r m -> m #

foldMap :: Monoid m => (a -> m) -> GroupByG b r a -> m #

foldMap' :: Monoid m => (a -> m) -> GroupByG b r a -> m #

foldr :: (a -> b0 -> b0) -> b0 -> GroupByG b r a -> b0 #

foldr' :: (a -> b0 -> b0) -> b0 -> GroupByG b r a -> b0 #

foldl :: (b0 -> a -> b0) -> b0 -> GroupByG b r a -> b0 #

foldl' :: (b0 -> a -> b0) -> b0 -> GroupByG b r a -> b0 #

foldr1 :: (a -> a -> a) -> GroupByG b r a -> a #

foldl1 :: (a -> a -> a) -> GroupByG b r a -> a #

toList :: GroupByG b r a -> [a] #

null :: GroupByG b r a -> Bool #

length :: GroupByG b r a -> Int #

elem :: Eq a => a -> GroupByG b r a -> Bool #

maximum :: Ord a => GroupByG b r a -> a #

minimum :: Ord a => GroupByG b r a -> a #

sum :: Num a => GroupByG b r a -> a #

product :: Num a => GroupByG b r a -> a #

Backend b => Traversable (GroupByG b r) Source # 
Instance details

Defined in Hasura.RQL.IR.Select

Methods

traverse :: Applicative f => (a -> f b0) -> GroupByG b r a -> f (GroupByG b r b0) #

sequenceA :: Applicative f => GroupByG b r (f a) -> f (GroupByG b r a) #

mapM :: Monad m => (a -> m b0) -> GroupByG b r a -> m (GroupByG b r b0) #

sequence :: Monad m => GroupByG b r (m a) -> m (GroupByG b r a) #

Backend b => Functor (GroupByG b r) Source # 
Instance details

Defined in Hasura.RQL.IR.Select

Methods

fmap :: (a -> b0) -> GroupByG b r a -> GroupByG b r b0 #

(<$) :: a -> GroupByG b r b0 -> GroupByG b r a #

(Backend b, Show (GroupByField b r v), Show (GroupKeyField b)) => Show (GroupByG b r v) Source # 
Instance details

Defined in Hasura.RQL.IR.Select

Methods

showsPrec :: Int -> GroupByG b r v -> ShowS #

show :: GroupByG b r v -> String #

showList :: [GroupByG b r v] -> ShowS #

(Backend b, Eq (GroupByField b r v), Eq (GroupKeyField b)) => Eq (GroupByG b r v) Source # 
Instance details

Defined in Hasura.RQL.IR.Select

Methods

(==) :: GroupByG b r v -> GroupByG b r v -> Bool #

(/=) :: GroupByG b r v -> GroupByG b r v -> Bool #

data GroupByField (b :: BackendType) r v Source #

Instances

Instances details
Backend b => Bifoldable (GroupByField b) Source # 
Instance details

Defined in Hasura.RQL.IR.Select

Methods

bifold :: Monoid m => GroupByField b m m -> m #

bifoldMap :: Monoid m => (a -> m) -> (b0 -> m) -> GroupByField b a b0 -> m #

bifoldr :: (a -> c -> c) -> (b0 -> c -> c) -> c -> GroupByField b a b0 -> c #

bifoldl :: (c -> a -> c) -> (c -> b0 -> c) -> c -> GroupByField b a b0 -> c #

Backend b => Foldable (GroupByField b r) Source # 
Instance details

Defined in Hasura.RQL.IR.Select

Methods

fold :: Monoid m => GroupByField b r m -> m #

foldMap :: Monoid m => (a -> m) -> GroupByField b r a -> m #

foldMap' :: Monoid m => (a -> m) -> GroupByField b r a -> m #

foldr :: (a -> b0 -> b0) -> b0 -> GroupByField b r a -> b0 #

foldr' :: (a -> b0 -> b0) -> b0 -> GroupByField b r a -> b0 #

foldl :: (b0 -> a -> b0) -> b0 -> GroupByField b r a -> b0 #

foldl' :: (b0 -> a -> b0) -> b0 -> GroupByField b r a -> b0 #

foldr1 :: (a -> a -> a) -> GroupByField b r a -> a #

foldl1 :: (a -> a -> a) -> GroupByField b r a -> a #

toList :: GroupByField b r a -> [a] #

null :: GroupByField b r a -> Bool #

length :: GroupByField b r a -> Int #

elem :: Eq a => a -> GroupByField b r a -> Bool #

maximum :: Ord a => GroupByField b r a -> a #

minimum :: Ord a => GroupByField b r a -> a #

sum :: Num a => GroupByField b r a -> a #

product :: Num a => GroupByField b r a -> a #

Backend b => Traversable (GroupByField b r) Source # 
Instance details

Defined in Hasura.RQL.IR.Select

Methods

traverse :: Applicative f => (a -> f b0) -> GroupByField b r a -> f (GroupByField b r b0) #

sequenceA :: Applicative f => GroupByField b r (f a) -> f (GroupByField b r a) #

mapM :: Monad m => (a -> m b0) -> GroupByField b r a -> m (GroupByField b r b0) #

sequence :: Monad m => GroupByField b r (m a) -> m (GroupByField b r a) #

Backend b => Functor (GroupByField b r) Source # 
Instance details

Defined in Hasura.RQL.IR.Select

Methods

fmap :: (a -> b0) -> GroupByField b r a -> GroupByField b r b0 #

(<$) :: a -> GroupByField b r b0 -> GroupByField b r a #

(Backend b, Show (GroupKeyField b), Show (AggregateField b v), Show (AnnFieldG b r v)) => Show (GroupByField b r v) Source # 
Instance details

Defined in Hasura.RQL.IR.Select

Methods

showsPrec :: Int -> GroupByField b r v -> ShowS #

show :: GroupByField b r v -> String #

showList :: [GroupByField b r v] -> ShowS #

(Backend b, Eq (GroupKeyField b), Eq (AggregateField b v), Eq (AnnFieldG b r v)) => Eq (GroupByField b r v) Source # 
Instance details

Defined in Hasura.RQL.IR.Select

Methods

(==) :: GroupByField b r v -> GroupByField b r v -> Bool #

(/=) :: GroupByField b r v -> GroupByField b r v -> Bool #

data GroupKeyField (b :: BackendType) Source #

Constructors

GKFColumn (Column b) 
GKFExp Text 

Instances

Instances details
Backend b => Show (GroupKeyField b) Source # 
Instance details

Defined in Hasura.RQL.IR.Select

Backend b => Eq (GroupKeyField b) Source # 
Instance details

Defined in Hasura.RQL.IR.Select

data SelectionField (b :: BackendType) v Source #

Types of fields that can be selected in a user query.

Constructors

SFCol 

Fields

SFComputedField ComputedFieldName (ComputedFieldScalarSelect b v) 
SFExp Text 

Instances

Instances details
Backend b => Foldable (SelectionField b) Source # 
Instance details

Defined in Hasura.RQL.IR.Select

Methods

fold :: Monoid m => SelectionField b m -> m #

foldMap :: Monoid m => (a -> m) -> SelectionField b a -> m #

foldMap' :: Monoid m => (a -> m) -> SelectionField b a -> m #

foldr :: (a -> b0 -> b0) -> b0 -> SelectionField b a -> b0 #

foldr' :: (a -> b0 -> b0) -> b0 -> SelectionField b a -> b0 #

foldl :: (b0 -> a -> b0) -> b0 -> SelectionField b a -> b0 #

foldl' :: (b0 -> a -> b0) -> b0 -> SelectionField b a -> b0 #

foldr1 :: (a -> a -> a) -> SelectionField b a -> a #

foldl1 :: (a -> a -> a) -> SelectionField b a -> a #

toList :: SelectionField b a -> [a] #

null :: SelectionField b a -> Bool #

length :: SelectionField b a -> Int #

elem :: Eq a => a -> SelectionField b a -> Bool #

maximum :: Ord a => SelectionField b a -> a #

minimum :: Ord a => SelectionField b a -> a #

sum :: Num a => SelectionField b a -> a #

product :: Num a => SelectionField b a -> a #

Backend b => Traversable (SelectionField b) Source # 
Instance details

Defined in Hasura.RQL.IR.Select

Methods

traverse :: Applicative f => (a -> f b0) -> SelectionField b a -> f (SelectionField b b0) #

sequenceA :: Applicative f => SelectionField b (f a) -> f (SelectionField b a) #

mapM :: Monad m => (a -> m b0) -> SelectionField b a -> m (SelectionField b b0) #

sequence :: Monad m => SelectionField b (m a) -> m (SelectionField b a) #

Backend b => Functor (SelectionField b) Source # 
Instance details

Defined in Hasura.RQL.IR.Select

Methods

fmap :: (a -> b0) -> SelectionField b a -> SelectionField b b0 #

(<$) :: a -> SelectionField b b0 -> SelectionField b a #

(Backend b, Show (FunctionArgumentExp b v), Show (AnnRedactionExp b v), Show v) => Show (SelectionField b v) Source # 
Instance details

Defined in Hasura.RQL.IR.Select

(Backend b, Eq (FunctionArgumentExp b v), Eq (AnnRedactionExp b v), Eq v) => Eq (SelectionField b v) Source # 
Instance details

Defined in Hasura.RQL.IR.Select

type AnnFieldsG b r v = Fields (AnnFieldG b r v) Source #

data ConnectionField (b :: BackendType) (r :: Type) v Source #

Instances

Instances details
Backend b => Bifoldable (ConnectionField b) Source # 
Instance details

Defined in Hasura.RQL.IR.Select

Methods

bifold :: Monoid m => ConnectionField b m m -> m #

bifoldMap :: Monoid m => (a -> m) -> (b0 -> m) -> ConnectionField b a b0 -> m #

bifoldr :: (a -> c -> c) -> (b0 -> c -> c) -> c -> ConnectionField b a b0 -> c #

bifoldl :: (c -> a -> c) -> (c -> b0 -> c) -> c -> ConnectionField b a b0 -> c #

Backend b => Foldable (ConnectionField b r) Source # 
Instance details

Defined in Hasura.RQL.IR.Select

Methods

fold :: Monoid m => ConnectionField b r m -> m #

foldMap :: Monoid m => (a -> m) -> ConnectionField b r a -> m #

foldMap' :: Monoid m => (a -> m) -> ConnectionField b r a -> m #

foldr :: (a -> b0 -> b0) -> b0 -> ConnectionField b r a -> b0 #

foldr' :: (a -> b0 -> b0) -> b0 -> ConnectionField b r a -> b0 #

foldl :: (b0 -> a -> b0) -> b0 -> ConnectionField b r a -> b0 #

foldl' :: (b0 -> a -> b0) -> b0 -> ConnectionField b r a -> b0 #

foldr1 :: (a -> a -> a) -> ConnectionField b r a -> a #

foldl1 :: (a -> a -> a) -> ConnectionField b r a -> a #

toList :: ConnectionField b r a -> [a] #

null :: ConnectionField b r a -> Bool #

length :: ConnectionField b r a -> Int #

elem :: Eq a => a -> ConnectionField b r a -> Bool #

maximum :: Ord a => ConnectionField b r a -> a #

minimum :: Ord a => ConnectionField b r a -> a #

sum :: Num a => ConnectionField b r a -> a #

product :: Num a => ConnectionField b r a -> a #

Backend b => Traversable (ConnectionField b r) Source # 
Instance details

Defined in Hasura.RQL.IR.Select

Methods

traverse :: Applicative f => (a -> f b0) -> ConnectionField b r a -> f (ConnectionField b r b0) #

sequenceA :: Applicative f => ConnectionField b r (f a) -> f (ConnectionField b r a) #

mapM :: Monad m => (a -> m b0) -> ConnectionField b r a -> m (ConnectionField b r b0) #

sequence :: Monad m => ConnectionField b r (m a) -> m (ConnectionField b r a) #

Backend b => Functor (ConnectionField b r) Source # 
Instance details

Defined in Hasura.RQL.IR.Select

Methods

fmap :: (a -> b0) -> ConnectionField b r a -> ConnectionField b r b0 #

(<$) :: a -> ConnectionField b r b0 -> ConnectionField b r a #

Show (EdgeFields b r v) => Show (ConnectionField b r v) Source # 
Instance details

Defined in Hasura.RQL.IR.Select

Eq (EdgeFields b r v) => Eq (ConnectionField b r v) Source # 
Instance details

Defined in Hasura.RQL.IR.Select

Methods

(==) :: ConnectionField b r v -> ConnectionField b r v -> Bool #

(/=) :: ConnectionField b r v -> ConnectionField b r v -> Bool #

data EdgeField (b :: BackendType) (r :: Type) v Source #

Instances

Instances details
Backend b => Bifoldable (EdgeField b) Source # 
Instance details

Defined in Hasura.RQL.IR.Select

Methods

bifold :: Monoid m => EdgeField b m m -> m #

bifoldMap :: Monoid m => (a -> m) -> (b0 -> m) -> EdgeField b a b0 -> m #

bifoldr :: (a -> c -> c) -> (b0 -> c -> c) -> c -> EdgeField b a b0 -> c #

bifoldl :: (c -> a -> c) -> (c -> b0 -> c) -> c -> EdgeField b a b0 -> c #

Backend b => Foldable (EdgeField b r) Source # 
Instance details

Defined in Hasura.RQL.IR.Select

Methods

fold :: Monoid m => EdgeField b r m -> m #

foldMap :: Monoid m => (a -> m) -> EdgeField b r a -> m #

foldMap' :: Monoid m => (a -> m) -> EdgeField b r a -> m #

foldr :: (a -> b0 -> b0) -> b0 -> EdgeField b r a -> b0 #

foldr' :: (a -> b0 -> b0) -> b0 -> EdgeField b r a -> b0 #

foldl :: (b0 -> a -> b0) -> b0 -> EdgeField b r a -> b0 #

foldl' :: (b0 -> a -> b0) -> b0 -> EdgeField b r a -> b0 #

foldr1 :: (a -> a -> a) -> EdgeField b r a -> a #

foldl1 :: (a -> a -> a) -> EdgeField b r a -> a #

toList :: EdgeField b r a -> [a] #

null :: EdgeField b r a -> Bool #

length :: EdgeField b r a -> Int #

elem :: Eq a => a -> EdgeField b r a -> Bool #

maximum :: Ord a => EdgeField b r a -> a #

minimum :: Ord a => EdgeField b r a -> a #

sum :: Num a => EdgeField b r a -> a #

product :: Num a => EdgeField b r a -> a #

Backend b => Traversable (EdgeField b r) Source # 
Instance details

Defined in Hasura.RQL.IR.Select

Methods

traverse :: Applicative f => (a -> f b0) -> EdgeField b r a -> f (EdgeField b r b0) #

sequenceA :: Applicative f => EdgeField b r (f a) -> f (EdgeField b r a) #

mapM :: Monad m => (a -> m b0) -> EdgeField b r a -> m (EdgeField b r b0) #

sequence :: Monad m => EdgeField b r (m a) -> m (EdgeField b r a) #

Backend b => Functor (EdgeField b r) Source # 
Instance details

Defined in Hasura.RQL.IR.Select

Methods

fmap :: (a -> b0) -> EdgeField b r a -> EdgeField b r b0 #

(<$) :: a -> EdgeField b r b0 -> EdgeField b r a #

Show (AnnFieldsG b r v) => Show (EdgeField b r v) Source # 
Instance details

Defined in Hasura.RQL.IR.Select

Methods

showsPrec :: Int -> EdgeField b r v -> ShowS #

show :: EdgeField b r v -> String #

showList :: [EdgeField b r v] -> ShowS #

Eq (AnnFieldsG b r v) => Eq (EdgeField b r v) Source # 
Instance details

Defined in Hasura.RQL.IR.Select

Methods

(==) :: EdgeField b r v -> EdgeField b r v -> Bool #

(/=) :: EdgeField b r v -> EdgeField b r v -> Bool #

type EdgeFields b r v = Fields (EdgeField b r v) Source #

data AnnColumnField (b :: BackendType) v Source #

Constructors

AnnColumnField 

Fields

Instances

Instances details
Backend b => Foldable (AnnColumnField b) Source # 
Instance details

Defined in Hasura.RQL.IR.Select

Methods

fold :: Monoid m => AnnColumnField b m -> m #

foldMap :: Monoid m => (a -> m) -> AnnColumnField b a -> m #

foldMap' :: Monoid m => (a -> m) -> AnnColumnField b a -> m #

foldr :: (a -> b0 -> b0) -> b0 -> AnnColumnField b a -> b0 #

foldr' :: (a -> b0 -> b0) -> b0 -> AnnColumnField b a -> b0 #

foldl :: (b0 -> a -> b0) -> b0 -> AnnColumnField b a -> b0 #

foldl' :: (b0 -> a -> b0) -> b0 -> AnnColumnField b a -> b0 #

foldr1 :: (a -> a -> a) -> AnnColumnField b a -> a #

foldl1 :: (a -> a -> a) -> AnnColumnField b a -> a #

toList :: AnnColumnField b a -> [a] #

null :: AnnColumnField b a -> Bool #

length :: AnnColumnField b a -> Int #

elem :: Eq a => a -> AnnColumnField b a -> Bool #

maximum :: Ord a => AnnColumnField b a -> a #

minimum :: Ord a => AnnColumnField b a -> a #

sum :: Num a => AnnColumnField b a -> a #

product :: Num a => AnnColumnField b a -> a #

Backend b => Traversable (AnnColumnField b) Source # 
Instance details

Defined in Hasura.RQL.IR.Select

Methods

traverse :: Applicative f => (a -> f b0) -> AnnColumnField b a -> f (AnnColumnField b b0) #

sequenceA :: Applicative f => AnnColumnField b (f a) -> f (AnnColumnField b a) #

mapM :: Monad m => (a -> m b0) -> AnnColumnField b a -> m (AnnColumnField b b0) #

sequence :: Monad m => AnnColumnField b (m a) -> m (AnnColumnField b a) #

Backend b => Functor (AnnColumnField b) Source # 
Instance details

Defined in Hasura.RQL.IR.Select

Methods

fmap :: (a -> b0) -> AnnColumnField b a -> AnnColumnField b b0 #

(<$) :: a -> AnnColumnField b b0 -> AnnColumnField b a #

(Backend b, Show (AnnRedactionExp b v)) => Show (AnnColumnField b v) Source # 
Instance details

Defined in Hasura.RQL.IR.Select

(Backend b, Eq (AnnRedactionExp b v)) => Eq (AnnColumnField b v) Source # 
Instance details

Defined in Hasura.RQL.IR.Select

data ComputedFieldScalarSelect (b :: BackendType) v Source #

Constructors

ComputedFieldScalarSelect 

Fields

Instances

Instances details
Backend b => Foldable (ComputedFieldScalarSelect b) Source # 
Instance details

Defined in Hasura.RQL.IR.Select

Methods

fold :: Monoid m => ComputedFieldScalarSelect b m -> m #

foldMap :: Monoid m => (a -> m) -> ComputedFieldScalarSelect b a -> m #

foldMap' :: Monoid m => (a -> m) -> ComputedFieldScalarSelect b a -> m #

foldr :: (a -> b0 -> b0) -> b0 -> ComputedFieldScalarSelect b a -> b0 #

foldr' :: (a -> b0 -> b0) -> b0 -> ComputedFieldScalarSelect b a -> b0 #

foldl :: (b0 -> a -> b0) -> b0 -> ComputedFieldScalarSelect b a -> b0 #

foldl' :: (b0 -> a -> b0) -> b0 -> ComputedFieldScalarSelect b a -> b0 #

foldr1 :: (a -> a -> a) -> ComputedFieldScalarSelect b a -> a #

foldl1 :: (a -> a -> a) -> ComputedFieldScalarSelect b a -> a #

toList :: ComputedFieldScalarSelect b a -> [a] #

null :: ComputedFieldScalarSelect b a -> Bool #

length :: ComputedFieldScalarSelect b a -> Int #

elem :: Eq a => a -> ComputedFieldScalarSelect b a -> Bool #

maximum :: Ord a => ComputedFieldScalarSelect b a -> a #

minimum :: Ord a => ComputedFieldScalarSelect b a -> a #

sum :: Num a => ComputedFieldScalarSelect b a -> a #

product :: Num a => ComputedFieldScalarSelect b a -> a #

Backend b => Traversable (ComputedFieldScalarSelect b) Source # 
Instance details

Defined in Hasura.RQL.IR.Select

Backend b => Functor (ComputedFieldScalarSelect b) Source # 
Instance details

Defined in Hasura.RQL.IR.Select

(Backend b, Show v, Show (FunctionArgumentExp b v), Show (AnnRedactionExp b v)) => Show (ComputedFieldScalarSelect b v) Source # 
Instance details

Defined in Hasura.RQL.IR.Select

(Backend b, Eq v, Eq (FunctionArgumentExp b v), Eq (AnnRedactionExp b v)) => Eq (ComputedFieldScalarSelect b v) Source # 
Instance details

Defined in Hasura.RQL.IR.Select

data ComputedFieldSelect (b :: BackendType) (r :: Type) v Source #

Constructors

CFSScalar 

Fields

CFSTable JsonAggSelect (AnnSimpleSelectG b r v) 

Instances

Instances details
Backend b => Bifoldable (ComputedFieldSelect b) Source # 
Instance details

Defined in Hasura.RQL.IR.Select

Methods

bifold :: Monoid m => ComputedFieldSelect b m m -> m #

bifoldMap :: Monoid m => (a -> m) -> (b0 -> m) -> ComputedFieldSelect b a b0 -> m #

bifoldr :: (a -> c -> c) -> (b0 -> c -> c) -> c -> ComputedFieldSelect b a b0 -> c #

bifoldl :: (c -> a -> c) -> (c -> b0 -> c) -> c -> ComputedFieldSelect b a b0 -> c #

Backend b => Foldable (ComputedFieldSelect b r) Source # 
Instance details

Defined in Hasura.RQL.IR.Select

Methods

fold :: Monoid m => ComputedFieldSelect b r m -> m #

foldMap :: Monoid m => (a -> m) -> ComputedFieldSelect b r a -> m #

foldMap' :: Monoid m => (a -> m) -> ComputedFieldSelect b r a -> m #

foldr :: (a -> b0 -> b0) -> b0 -> ComputedFieldSelect b r a -> b0 #

foldr' :: (a -> b0 -> b0) -> b0 -> ComputedFieldSelect b r a -> b0 #

foldl :: (b0 -> a -> b0) -> b0 -> ComputedFieldSelect b r a -> b0 #

foldl' :: (b0 -> a -> b0) -> b0 -> ComputedFieldSelect b r a -> b0 #

foldr1 :: (a -> a -> a) -> ComputedFieldSelect b r a -> a #

foldl1 :: (a -> a -> a) -> ComputedFieldSelect b r a -> a #

toList :: ComputedFieldSelect b r a -> [a] #

null :: ComputedFieldSelect b r a -> Bool #

length :: ComputedFieldSelect b r a -> Int #

elem :: Eq a => a -> ComputedFieldSelect b r a -> Bool #

maximum :: Ord a => ComputedFieldSelect b r a -> a #

minimum :: Ord a => ComputedFieldSelect b r a -> a #

sum :: Num a => ComputedFieldSelect b r a -> a #

product :: Num a => ComputedFieldSelect b r a -> a #

Backend b => Traversable (ComputedFieldSelect b r) Source # 
Instance details

Defined in Hasura.RQL.IR.Select

Methods

traverse :: Applicative f => (a -> f b0) -> ComputedFieldSelect b r a -> f (ComputedFieldSelect b r b0) #

sequenceA :: Applicative f => ComputedFieldSelect b r (f a) -> f (ComputedFieldSelect b r a) #

mapM :: Monad m => (a -> m b0) -> ComputedFieldSelect b r a -> m (ComputedFieldSelect b r b0) #

sequence :: Monad m => ComputedFieldSelect b r (m a) -> m (ComputedFieldSelect b r a) #

Backend b => Functor (ComputedFieldSelect b r) Source # 
Instance details

Defined in Hasura.RQL.IR.Select

Methods

fmap :: (a -> b0) -> ComputedFieldSelect b r a -> ComputedFieldSelect b r b0 #

(<$) :: a -> ComputedFieldSelect b r b0 -> ComputedFieldSelect b r a #

(Backend b, Show (AnnSimpleSelectG b r v), Show (ComputedFieldScalarSelect b v)) => Show (ComputedFieldSelect b r v) Source # 
Instance details

Defined in Hasura.RQL.IR.Select

(Backend b, Eq (AnnSimpleSelectG b r v), Eq (ComputedFieldScalarSelect b v)) => Eq (ComputedFieldSelect b r v) Source # 
Instance details

Defined in Hasura.RQL.IR.Select

data AnnObjectSelectG (b :: BackendType) (r :: Type) v Source #

Instances

Instances details
Backend b => Bifoldable (AnnObjectSelectG b) Source # 
Instance details

Defined in Hasura.RQL.IR.Select

Methods

bifold :: Monoid m => AnnObjectSelectG b m m -> m #

bifoldMap :: Monoid m => (a -> m) -> (b0 -> m) -> AnnObjectSelectG b a b0 -> m #

bifoldr :: (a -> c -> c) -> (b0 -> c -> c) -> c -> AnnObjectSelectG b a b0 -> c #

bifoldl :: (c -> a -> c) -> (c -> b0 -> c) -> c -> AnnObjectSelectG b a b0 -> c #

Backend b => Foldable (AnnObjectSelectG b r) Source # 
Instance details

Defined in Hasura.RQL.IR.Select

Methods

fold :: Monoid m => AnnObjectSelectG b r m -> m #

foldMap :: Monoid m => (a -> m) -> AnnObjectSelectG b r a -> m #

foldMap' :: Monoid m => (a -> m) -> AnnObjectSelectG b r a -> m #

foldr :: (a -> b0 -> b0) -> b0 -> AnnObjectSelectG b r a -> b0 #

foldr' :: (a -> b0 -> b0) -> b0 -> AnnObjectSelectG b r a -> b0 #

foldl :: (b0 -> a -> b0) -> b0 -> AnnObjectSelectG b r a -> b0 #

foldl' :: (b0 -> a -> b0) -> b0 -> AnnObjectSelectG b r a -> b0 #

foldr1 :: (a -> a -> a) -> AnnObjectSelectG b r a -> a #

foldl1 :: (a -> a -> a) -> AnnObjectSelectG b r a -> a #

toList :: AnnObjectSelectG b r a -> [a] #

null :: AnnObjectSelectG b r a -> Bool #

length :: AnnObjectSelectG b r a -> Int #

elem :: Eq a => a -> AnnObjectSelectG b r a -> Bool #

maximum :: Ord a => AnnObjectSelectG b r a -> a #

minimum :: Ord a => AnnObjectSelectG b r a -> a #

sum :: Num a => AnnObjectSelectG b r a -> a #

product :: Num a => AnnObjectSelectG b r a -> a #

Backend b => Traversable (AnnObjectSelectG b r) Source # 
Instance details

Defined in Hasura.RQL.IR.Select

Methods

traverse :: Applicative f => (a -> f b0) -> AnnObjectSelectG b r a -> f (AnnObjectSelectG b r b0) #

sequenceA :: Applicative f => AnnObjectSelectG b r (f a) -> f (AnnObjectSelectG b r a) #

mapM :: Monad m => (a -> m b0) -> AnnObjectSelectG b r a -> m (AnnObjectSelectG b r b0) #

sequence :: Monad m => AnnObjectSelectG b r (m a) -> m (AnnObjectSelectG b r a) #

Backend b => Functor (AnnObjectSelectG b r) Source # 
Instance details

Defined in Hasura.RQL.IR.Select

Methods

fmap :: (a -> b0) -> AnnObjectSelectG b r a -> AnnObjectSelectG b r b0 #

(<$) :: a -> AnnObjectSelectG b r b0 -> AnnObjectSelectG b r a #

(Backend b, Show (SelectFromG b v), Show (AnnBoolExp b v), Show (AnnFieldsG b r v)) => Show (AnnObjectSelectG b r v) Source # 
Instance details

Defined in Hasura.RQL.IR.Select

(Backend b, Eq (SelectFromG b v), Eq (AnnBoolExp b v), Eq (AnnFieldsG b r v)) => Eq (AnnObjectSelectG b r v) Source # 
Instance details

Defined in Hasura.RQL.IR.Select

Methods

(==) :: AnnObjectSelectG b r v -> AnnObjectSelectG b r v -> Bool #

(/=) :: AnnObjectSelectG b r v -> AnnObjectSelectG b r v -> Bool #

data ArraySelectG (b :: BackendType) (r :: Type) v Source #

Instances

Instances details
Backend b => Bifoldable (ArraySelectG b) Source # 
Instance details

Defined in Hasura.RQL.IR.Select

Methods

bifold :: Monoid m => ArraySelectG b m m -> m #

bifoldMap :: Monoid m => (a -> m) -> (b0 -> m) -> ArraySelectG b a b0 -> m #

bifoldr :: (a -> c -> c) -> (b0 -> c -> c) -> c -> ArraySelectG b a b0 -> c #

bifoldl :: (c -> a -> c) -> (c -> b0 -> c) -> c -> ArraySelectG b a b0 -> c #

Backend b => Foldable (ArraySelectG b r) Source # 
Instance details

Defined in Hasura.RQL.IR.Select

Methods

fold :: Monoid m => ArraySelectG b r m -> m #

foldMap :: Monoid m => (a -> m) -> ArraySelectG b r a -> m #

foldMap' :: Monoid m => (a -> m) -> ArraySelectG b r a -> m #

foldr :: (a -> b0 -> b0) -> b0 -> ArraySelectG b r a -> b0 #

foldr' :: (a -> b0 -> b0) -> b0 -> ArraySelectG b r a -> b0 #

foldl :: (b0 -> a -> b0) -> b0 -> ArraySelectG b r a -> b0 #

foldl' :: (b0 -> a -> b0) -> b0 -> ArraySelectG b r a -> b0 #

foldr1 :: (a -> a -> a) -> ArraySelectG b r a -> a #

foldl1 :: (a -> a -> a) -> ArraySelectG b r a -> a #

toList :: ArraySelectG b r a -> [a] #

null :: ArraySelectG b r a -> Bool #

length :: ArraySelectG b r a -> Int #

elem :: Eq a => a -> ArraySelectG b r a -> Bool #

maximum :: Ord a => ArraySelectG b r a -> a #

minimum :: Ord a => ArraySelectG b r a -> a #

sum :: Num a => ArraySelectG b r a -> a #

product :: Num a => ArraySelectG b r a -> a #

Backend b => Traversable (ArraySelectG b r) Source # 
Instance details

Defined in Hasura.RQL.IR.Select

Methods

traverse :: Applicative f => (a -> f b0) -> ArraySelectG b r a -> f (ArraySelectG b r b0) #

sequenceA :: Applicative f => ArraySelectG b r (f a) -> f (ArraySelectG b r a) #

mapM :: Monad m => (a -> m b0) -> ArraySelectG b r a -> m (ArraySelectG b r b0) #

sequence :: Monad m => ArraySelectG b r (m a) -> m (ArraySelectG b r a) #

Backend b => Functor (ArraySelectG b r) Source # 
Instance details

Defined in Hasura.RQL.IR.Select

Methods

fmap :: (a -> b0) -> ArraySelectG b r a -> ArraySelectG b r b0 #

(<$) :: a -> ArraySelectG b r b0 -> ArraySelectG b r a #

(Show (ArrayRelationSelectG b r v), Show (ArrayAggregateSelectG b r v), Show (ArrayConnectionSelect b r v)) => Show (ArraySelectG b r v) Source # 
Instance details

Defined in Hasura.RQL.IR.Select

Methods

showsPrec :: Int -> ArraySelectG b r v -> ShowS #

show :: ArraySelectG b r v -> String #

showList :: [ArraySelectG b r v] -> ShowS #

(Eq (ArrayRelationSelectG b r v), Eq (ArrayAggregateSelectG b r v), Eq (ArrayConnectionSelect b r v)) => Eq (ArraySelectG b r v) Source # 
Instance details

Defined in Hasura.RQL.IR.Select

Methods

(==) :: ArraySelectG b r v -> ArraySelectG b r v -> Bool #

(/=) :: ArraySelectG b r v -> ArraySelectG b r v -> Bool #

data SourceRelationshipSelection (b :: BackendType) (r :: Type) (vf :: BackendType -> Type) Source #

Captures the selection set of a remote source relationship.

Instances

Instances details
(Backend b, Show (AnnAggregateSelectG b r (vf b)), Show (AnnObjectSelectG b r (vf b)), Show (AnnSimpleSelectG b r (vf b))) => Show (SourceRelationshipSelection b r vf) Source # 
Instance details

Defined in Hasura.RQL.IR.Select

(Backend b, Eq (AnnAggregateSelectG b r (vf b)), Eq (AnnObjectSelectG b r (vf b)), Eq (AnnSimpleSelectG b r (vf b))) => Eq (SourceRelationshipSelection b r vf) Source # 
Instance details

Defined in Hasura.RQL.IR.Select

data RemoteSourceSelect (r :: Type) (vf :: BackendType -> Type) (tgt :: BackendType) Source #

A relationship to a remote source. vf (could use a better name) is analogous to v in other IR types such as AnnFieldG. vf's kind is (BackendType -> Type) instead of v's Type so that v of AnnFieldG can be specific to the backend that it captures (b of an AnnFieldG changes as we walk down the IR branches which capture relationships to other databases)

Constructors

RemoteSourceSelect 

Fields

Instances

Instances details
(Backend tgt, Show (SourceRelationshipSelection tgt r vf), Show (SourceConfig tgt)) => Show (RemoteSourceSelect r vf tgt) Source # 
Instance details

Defined in Hasura.RQL.IR.Select

Methods

showsPrec :: Int -> RemoteSourceSelect r vf tgt -> ShowS #

show :: RemoteSourceSelect r vf tgt -> String #

showList :: [RemoteSourceSelect r vf tgt] -> ShowS #

(Backend tgt, Eq (SourceRelationshipSelection tgt r vf)) => Eq (RemoteSourceSelect r vf tgt) Source # 
Instance details

Defined in Hasura.RQL.IR.Select

Methods

(==) :: RemoteSourceSelect r vf tgt -> RemoteSourceSelect r vf tgt -> Bool #

(/=) :: RemoteSourceSelect r vf tgt -> RemoteSourceSelect r vf tgt -> Bool #

data AnnNestedObjectSelectG (b :: BackendType) (r :: Type) v Source #

Instances

Instances details
Backend b => Bifoldable (AnnNestedObjectSelectG b) Source # 
Instance details

Defined in Hasura.RQL.IR.Select

Methods

bifold :: Monoid m => AnnNestedObjectSelectG b m m -> m #

bifoldMap :: Monoid m => (a -> m) -> (b0 -> m) -> AnnNestedObjectSelectG b a b0 -> m #

bifoldr :: (a -> c -> c) -> (b0 -> c -> c) -> c -> AnnNestedObjectSelectG b a b0 -> c #

bifoldl :: (c -> a -> c) -> (c -> b0 -> c) -> c -> AnnNestedObjectSelectG b a b0 -> c #

Backend b => Foldable (AnnNestedObjectSelectG b r) Source # 
Instance details

Defined in Hasura.RQL.IR.Select

Methods

fold :: Monoid m => AnnNestedObjectSelectG b r m -> m #

foldMap :: Monoid m => (a -> m) -> AnnNestedObjectSelectG b r a -> m #

foldMap' :: Monoid m => (a -> m) -> AnnNestedObjectSelectG b r a -> m #

foldr :: (a -> b0 -> b0) -> b0 -> AnnNestedObjectSelectG b r a -> b0 #

foldr' :: (a -> b0 -> b0) -> b0 -> AnnNestedObjectSelectG b r a -> b0 #

foldl :: (b0 -> a -> b0) -> b0 -> AnnNestedObjectSelectG b r a -> b0 #

foldl' :: (b0 -> a -> b0) -> b0 -> AnnNestedObjectSelectG b r a -> b0 #

foldr1 :: (a -> a -> a) -> AnnNestedObjectSelectG b r a -> a #

foldl1 :: (a -> a -> a) -> AnnNestedObjectSelectG b r a -> a #

toList :: AnnNestedObjectSelectG b r a -> [a] #

null :: AnnNestedObjectSelectG b r a -> Bool #

length :: AnnNestedObjectSelectG b r a -> Int #

elem :: Eq a => a -> AnnNestedObjectSelectG b r a -> Bool #

maximum :: Ord a => AnnNestedObjectSelectG b r a -> a #

minimum :: Ord a => AnnNestedObjectSelectG b r a -> a #

sum :: Num a => AnnNestedObjectSelectG b r a -> a #

product :: Num a => AnnNestedObjectSelectG b r a -> a #

Backend b => Traversable (AnnNestedObjectSelectG b r) Source # 
Instance details

Defined in Hasura.RQL.IR.Select

Methods

traverse :: Applicative f => (a -> f b0) -> AnnNestedObjectSelectG b r a -> f (AnnNestedObjectSelectG b r b0) #

sequenceA :: Applicative f => AnnNestedObjectSelectG b r (f a) -> f (AnnNestedObjectSelectG b r a) #

mapM :: Monad m => (a -> m b0) -> AnnNestedObjectSelectG b r a -> m (AnnNestedObjectSelectG b r b0) #

sequence :: Monad m => AnnNestedObjectSelectG b r (m a) -> m (AnnNestedObjectSelectG b r a) #

Backend b => Functor (AnnNestedObjectSelectG b r) Source # 
Instance details

Defined in Hasura.RQL.IR.Select

Methods

fmap :: (a -> b0) -> AnnNestedObjectSelectG b r a -> AnnNestedObjectSelectG b r b0 #

(<$) :: a -> AnnNestedObjectSelectG b r b0 -> AnnNestedObjectSelectG b r a #

(Backend b, Show (AnnFieldsG b r v)) => Show (AnnNestedObjectSelectG b r v) Source # 
Instance details

Defined in Hasura.RQL.IR.Select

(Backend b, Eq (AnnFieldsG b r v)) => Eq (AnnNestedObjectSelectG b r v) Source # 
Instance details

Defined in Hasura.RQL.IR.Select

data AnnNestedArraySelectG (b :: BackendType) (r :: Type) v Source #

Constructors

ANASSimple (AnnFieldG b r v) 
ANASAggregate (AnnAggregateSelectG b r v) 

Instances

Instances details
Backend b => Bifoldable (AnnNestedArraySelectG b) Source # 
Instance details

Defined in Hasura.RQL.IR.Select

Methods

bifold :: Monoid m => AnnNestedArraySelectG b m m -> m #

bifoldMap :: Monoid m => (a -> m) -> (b0 -> m) -> AnnNestedArraySelectG b a b0 -> m #

bifoldr :: (a -> c -> c) -> (b0 -> c -> c) -> c -> AnnNestedArraySelectG b a b0 -> c #

bifoldl :: (c -> a -> c) -> (c -> b0 -> c) -> c -> AnnNestedArraySelectG b a b0 -> c #

Backend b => Foldable (AnnNestedArraySelectG b r) Source # 
Instance details

Defined in Hasura.RQL.IR.Select

Methods

fold :: Monoid m => AnnNestedArraySelectG b r m -> m #

foldMap :: Monoid m => (a -> m) -> AnnNestedArraySelectG b r a -> m #

foldMap' :: Monoid m => (a -> m) -> AnnNestedArraySelectG b r a -> m #

foldr :: (a -> b0 -> b0) -> b0 -> AnnNestedArraySelectG b r a -> b0 #

foldr' :: (a -> b0 -> b0) -> b0 -> AnnNestedArraySelectG b r a -> b0 #

foldl :: (b0 -> a -> b0) -> b0 -> AnnNestedArraySelectG b r a -> b0 #

foldl' :: (b0 -> a -> b0) -> b0 -> AnnNestedArraySelectG b r a -> b0 #

foldr1 :: (a -> a -> a) -> AnnNestedArraySelectG b r a -> a #

foldl1 :: (a -> a -> a) -> AnnNestedArraySelectG b r a -> a #

toList :: AnnNestedArraySelectG b r a -> [a] #

null :: AnnNestedArraySelectG b r a -> Bool #

length :: AnnNestedArraySelectG b r a -> Int #

elem :: Eq a => a -> AnnNestedArraySelectG b r a -> Bool #

maximum :: Ord a => AnnNestedArraySelectG b r a -> a #

minimum :: Ord a => AnnNestedArraySelectG b r a -> a #

sum :: Num a => AnnNestedArraySelectG b r a -> a #

product :: Num a => AnnNestedArraySelectG b r a -> a #

Backend b => Traversable (AnnNestedArraySelectG b r) Source # 
Instance details

Defined in Hasura.RQL.IR.Select

Methods

traverse :: Applicative f => (a -> f b0) -> AnnNestedArraySelectG b r a -> f (AnnNestedArraySelectG b r b0) #

sequenceA :: Applicative f => AnnNestedArraySelectG b r (f a) -> f (AnnNestedArraySelectG b r a) #

mapM :: Monad m => (a -> m b0) -> AnnNestedArraySelectG b r a -> m (AnnNestedArraySelectG b r b0) #

sequence :: Monad m => AnnNestedArraySelectG b r (m a) -> m (AnnNestedArraySelectG b r a) #

Backend b => Functor (AnnNestedArraySelectG b r) Source # 
Instance details

Defined in Hasura.RQL.IR.Select

Methods

fmap :: (a -> b0) -> AnnNestedArraySelectG b r a -> AnnNestedArraySelectG b r b0 #

(<$) :: a -> AnnNestedArraySelectG b r b0 -> AnnNestedArraySelectG b r a #

(Backend b, Show (AnnFieldG b r v), Show (AnnAggregateSelectG b r v)) => Show (AnnNestedArraySelectG b r v) Source # 
Instance details

Defined in Hasura.RQL.IR.Select

(Backend b, Eq (AnnFieldG b r v), Eq (AnnAggregateSelectG b r v)) => Eq (AnnNestedArraySelectG b r v) Source # 
Instance details

Defined in Hasura.RQL.IR.Select

insertFunctionArg :: FunctionArgName -> Int -> a -> FunctionArgsExpG a -> FunctionArgsExpG a Source #

If argument positional index is less than or equal to length of positional arguments then insert the value in positional arguments else insert the value with argument name in named arguments

data CountDistinct Source #

The "distinct" input field inside "count" aggregate field

count ( distinct: Boolean ): Int