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

Hasura.RQL.Types.Backend

Synopsis

Documentation

type XEnable = () Source #

data SupportedNamingCase Source #

Used for keeping track of the extent of support of naming convention across different backends.

AllConventions implies a full support whereas OnlyHasuraCase implies a partial support of only HasuraCase

class (HasSourceConfiguration b, Representable (BasicOrderType b), Representable (Column b), Representable (ComputedFieldDefinition b), Representable (ComputedFieldImplicitArguments b), Representable (ComputedFieldReturn b), Representable (ConstraintName b), Representable (ExtraTableMetadata b), Representable (FunctionArgument b), Representable (FunctionName b), Representable (FunctionReturnType b), Representable (HealthCheckTest b), Representable (NullsOrderType b), Representable (SQLExpression b), Representable (ScalarSelectionArguments b), Representable (ScalarType b), Representable (XComputedField b), Representable (XGroupBy b), Representable (TableName b), Eq (RawFunctionInfo b), Show (RawFunctionInfo b), Representable (ResolvedConnectionTemplate b), Ord (TableName b), Ord (FunctionName b), Ord (ScalarType b), Ord (Column b), Ord (ComputedFieldReturn b), Ord (ComputedFieldImplicitArguments b), Ord (ConstraintName b), Ord (FunctionArgument b), Ord (XComputedField b), Data (TableName b), FromJSON (BackendConfig b), FromJSON (Column b), FromJSON (ComputedFieldDefinition b), FromJSON (ConnectionTemplateRequestContext b), FromJSON (ConstraintName b), FromJSON (ExtraTableMetadata b), FromJSON (FunctionName b), FromJSON (FunctionReturnType b), FromJSON (HealthCheckTest b), FromJSON (RawFunctionInfo b), FromJSON (ScalarType b), FromJSON (TableName b), FromJSONKey (Column b), FromJSONKey (ConstraintName b), HasCodec (BackendConfig b), HasCodec (BackendSourceKind b), HasCodec (Column b), HasCodec (ComputedFieldDefinition b), HasCodec (FunctionName b), HasCodec (FunctionReturnType b), HasCodec (ScalarType b), HasCodec (TableName b), ToJSON (BackendConfig b), ToJSON (Column b), ToJSON (ConstraintName b), ToJSON (ExecutionStatistics b), ToJSON (FunctionArgument b), ToJSON (FunctionName b), ToJSON (FunctionReturnType b), ToJSON (RawFunctionInfo b), ToJSON (ScalarType b), ToJSON (TableName b), ToJSON (ExtraTableMetadata b), ToJSON (SQLExpression b), ToJSON (ComputedFieldDefinition b), ToJSON (ComputedFieldImplicitArguments b), ToJSON (ComputedFieldReturn b), ToJSON (HealthCheckTest b), ToJSON (ResolvedConnectionTemplate b), ToJSONKey (Column b), ToJSONKey (ConstraintName b), ToJSONKey (ScalarType b), ToTxt (Column b), ToTxt (FunctionName b), ToTxt (ScalarType b), ToTxt (TableName b), ToTxt (ConstraintName b), ToErrorValue (Column b), ToErrorValue (TableName b), Typeable (Column b), Typeable b, HasTag b, Traversable (CountType b), Traversable (FunctionArgumentExp b), Eq (BackendConfig b), Show (BackendConfig b), Eq (BackendInfo b), Show (BackendInfo b), Monoid (BackendInfo b), Eq (ScalarValue b), Show (ScalarValue b), Eq (XNodesAgg b), Show (XNodesAgg b), Eq (XRelay b), Show (XRelay b), Eq (XStreamingSubscription b), Show (XStreamingSubscription b), Eq (XNestedObjects b), Ord (XNestedObjects b), Show (XNestedObjects b), NFData (XNestedObjects b), Hashable (XNestedObjects b), ToJSON (XNestedObjects b), FromJSON (XNestedObjects b), ToTxt (XNestedObjects b), Traversable (BooleanOperators b), Traversable (UpdateVariant b), Traversable (BackendInsert b), Traversable (AggregationPredicates b)) => Backend (b :: BackendType) where Source #

Mapping from abstract types to concrete backend representation

The RQL IR, used as the output of GraphQL parsers and of the RQL parsers, is backend-agnostic: it uses an abstract representation of the structure of a query, and delegates to the backends the task of choosing an appropriate concrete representation.

Additionally, grouping all those types under one typeclass rather than having dedicated type families allows to explicitly list all typeclass requirements, which simplifies the instance declarations of all IR types.

There are no injectivity requirements on those type families: it's okay for two different backends to use the same types. That means, however, that functions cannot identify to what backend b a given TableName b refers to; most generic functions will need either a type application or a Proxy parameter to disambiguate between different backends at the call site.

Associated Types

type BackendConfig b :: Type Source #

Backend configuration stored in metadata

type BackendInfo b :: Type Source #

Runtime backend info derived from (possibly enriched) BackendConfig and stored in SchemaCache

type TableName b :: Type Source #

type FunctionName b :: Type Source #

type FunctionReturnType b :: Type Source #

type RawFunctionInfo b :: Type Source #

type ConstraintName b :: Type Source #

type BasicOrderType b :: Type Source #

type NullsOrderType b :: Type Source #

type CountType b :: Type -> Type Source #

The type that captures how count aggregations are modelled

It is parameterised over the type of fields, which changes during the IR translation phases.

type Column b :: Type Source #

type ScalarValue b :: Type Source #

type ScalarType b :: Type Source #

type SQLExpression b :: Type Source #

type ComputedFieldDefinition b :: Type Source #

type ScalarSelectionArguments b :: Type Source #

Arguments of a scalar field's selection { query { some_table { # a scalar field column(ScalarSelectionArguments) } } }

type ExtraTableMetadata b :: Type Source #

type FunctionArgument b :: Type Source #

FunctionArgument

type FunctionArgumentExp b :: Type -> Type Source #

Function input argument expression

It is parameterised over the type of fields, which changes during the IR translation phases.

type ComputedFieldImplicitArguments b :: Type Source #

Computed field function argument values which are being implicitly inferred from table and/or session information

type ComputedFieldReturn b :: Type Source #

Computed field return information

type HealthCheckTest b :: Type Source #

A config type for health check tests

type BooleanOperators b :: Type -> Type Source #

Intermediate Representation of extensions to the shared set of boolean operators on table fields.

It is parameterised over the type of fields, which changes during the IR translation phases.

type AggregationPredicates b :: Type -> Type Source #

Intermediate Representation of aggregation predicates. The default implementation makes aggregation predicates uninstantiable.

It is parameterised over the type of fields, which changes during the IR translation phases.

type UpdateVariant b :: Type -> Type Source #

The different variants of update supported by a backend for their intermediate representation. For example, a backend could use a sum type encapsulating either a single batch update or multiple batch updates.

The default implementation makes update expressions uninstantiable.

It is parameterised over the type of fields, which changes during the IR translation phases.

type BackendInsert b :: Type -> Type Source #

Intermediate Representation of Insert Mutations. The default implementation makes insert expressions uninstantiable.

It is parameterised over the type of fields, which changes during the IR translation phases.

type XComputedField b :: Type Source #

type XRelay b :: Type Source #

type XNodesAgg b :: Type Source #

type XEventTriggers b :: Type Source #

Flag the availability of event triggers.

type XNestedInserts b :: Type Source #

Extension to flag the availability of object and array relationships in inserts (aka nested inserts).

type XStreamingSubscription b :: Type Source #

type XNestedObjects b :: Type Source #

type XGroupBy b :: Type Source #

type ResolvedConnectionTemplate b :: Type Source #

type ConnectionTemplateRequestContext b :: Type Source #

type ExecutionStatistics b :: Type Source #

Information about the query execution that may be useful for debugging or reporting.

Methods

healthCheckImplementation :: Maybe (HealthCheckImplementation (HealthCheckTest b)) Source #

A backend type can opt into supporting health checks by providing an implementation that includes a default health check test, and a health check test codec.

versionCheckImplementation :: Environment -> SourceConnConfiguration b -> IO (Either QErr ()) Source #

An Implementation for version checking when adding a source.

runPingSource :: Environment -> (String -> IO ()) -> SourceName -> SourceConnConfiguration b -> IO () Source #

A backend type can opt into providing an implementation for fingerprinted pings to the source, useful for attribution that the user is using Hasura

resolveConnectionTemplate :: SourceConfig b -> ConnectionTemplateRequestContext b -> Maybe ConnectionTemplate -> Either QErr EncJSON Source #

isComparableType :: ScalarType b -> Bool Source #

isNumType :: ScalarType b -> Bool Source #

getCustomAggregateOperators :: SourceConfig b -> HashMap Name (HashMap (ScalarType b) (ScalarType b)) Source #

Custom aggregate operators supported by the backend. Backends that support custom aggregate operators should return a HashMap from operator name to a scalar type mapping. In the scalar type mapping the key represents the input type for the operator and the value represents the result type. Backends that do not support custom aggregate operators can use the default implementation which returns an empty map.

textToScalarValue :: Maybe Text -> ScalarValue b Source #

parseScalarValue :: ScalarTypeParsingContext b -> ScalarType b -> Value -> Either QErr (ScalarValue b) Source #

scalarValueToJSON :: ScalarValue b -> Value Source #

functionToTable :: FunctionName b -> TableName b Source #

tableToFunction :: TableName b -> FunctionName b Source #

computedFieldFunction :: ComputedFieldDefinition b -> FunctionName b Source #

computedFieldReturnType :: ComputedFieldReturn b -> ComputedFieldReturnType b Source #

supportsAggregateComputedFields :: Bool Source #

Backends that don't support aggregate computed fields will never encounter an SelectionField. However, backends are expected to provide a total transformation from SelectionField to the backend's query language.

Rather than implement error handling for every backend that doesn't support aggregate computed fields, and then remove that error handling for each backend when we add support - honestly, adding error handling would probably take longer than adding aggregate computed field support - we instead have a flag.

If a backend declares this flag as False, computed fields will not be added to the GraphQL schema. This means that backends can safely handle SFComputedField with a runtime exception as long as this flag is False.

Once all backends support all aggregate computed field operations, this flag can be deleted.

fromComputedFieldImplicitArguments :: v -> ComputedFieldImplicitArguments b -> [FunctionArgumentExp b v] Source #

Build function arguments expression from computed field implicit arguments

tableGraphQLName :: TableName b -> Either QErr Name Source #

functionGraphQLName :: FunctionName b -> Either QErr Name Source #

getTableIdentifier :: TableName b -> Either QErr GQLNameIdentifier Source #

snakeCaseTableName :: TableName b -> Text Source #

namingConventionSupport :: SupportedNamingCase Source #

resizeSourcePools :: SourceConfig b -> ServerReplicas -> IO SourceResizePoolSummary Source #

defaultTriggerOnReplication :: Maybe (XEventTriggers b, TriggerOnReplication) Source #

Default behaviour of SQL triggers on logically replicated database. Setting this to Nothing will disable event trigger configuration in the metadata.

backendSupportsNestedObjects :: Either QErr (XNestedObjects b) Source #

sourceSupportsSchemalessTables :: SourceConfig b -> Bool Source #

Instances

Instances details
Backend 'BigQuery Source # 
Instance details

Defined in Hasura.Backends.BigQuery.Instances.Types

Associated Types

type BackendConfig 'BigQuery Source #

type BackendInfo 'BigQuery Source #

type TableName 'BigQuery Source #

type FunctionName 'BigQuery Source #

type FunctionReturnType 'BigQuery Source #

type RawFunctionInfo 'BigQuery Source #

type ConstraintName 'BigQuery Source #

type BasicOrderType 'BigQuery Source #

type NullsOrderType 'BigQuery Source #

type CountType 'BigQuery :: Type -> Type Source #

type Column 'BigQuery Source #

type ScalarValue 'BigQuery Source #

type ScalarType 'BigQuery Source #

type SQLExpression 'BigQuery Source #

type ComputedFieldDefinition 'BigQuery Source #

type ScalarSelectionArguments 'BigQuery Source #

type ExtraTableMetadata 'BigQuery Source #

type FunctionArgument 'BigQuery Source #

type FunctionArgumentExp 'BigQuery :: Type -> Type Source #

type ComputedFieldImplicitArguments 'BigQuery Source #

type ComputedFieldReturn 'BigQuery Source #

type HealthCheckTest 'BigQuery Source #

type BooleanOperators 'BigQuery :: Type -> Type Source #

type AggregationPredicates 'BigQuery :: Type -> Type Source #

type UpdateVariant 'BigQuery :: Type -> Type Source #

type BackendInsert 'BigQuery :: Type -> Type Source #

type XComputedField 'BigQuery Source #

type XRelay 'BigQuery Source #

type XNodesAgg 'BigQuery Source #

type XEventTriggers 'BigQuery Source #

type XNestedInserts 'BigQuery Source #

type XStreamingSubscription 'BigQuery Source #

type XNestedObjects 'BigQuery Source #

type XGroupBy 'BigQuery Source #

type ResolvedConnectionTemplate 'BigQuery Source #

type ConnectionTemplateRequestContext 'BigQuery Source #

type ExecutionStatistics 'BigQuery Source #

Methods

healthCheckImplementation :: Maybe (HealthCheckImplementation (HealthCheckTest 'BigQuery)) Source #

versionCheckImplementation :: Environment -> SourceConnConfiguration 'BigQuery -> IO (Either QErr ()) Source #

runPingSource :: Environment -> (String -> IO ()) -> SourceName -> SourceConnConfiguration 'BigQuery -> IO () Source #

resolveConnectionTemplate :: SourceConfig 'BigQuery -> ConnectionTemplateRequestContext 'BigQuery -> Maybe ConnectionTemplate -> Either QErr EncJSON Source #

isComparableType :: ScalarType 'BigQuery -> Bool Source #

isNumType :: ScalarType 'BigQuery -> Bool Source #

getCustomAggregateOperators :: SourceConfig 'BigQuery -> HashMap Name (HashMap (ScalarType 'BigQuery) (ScalarType 'BigQuery)) Source #

textToScalarValue :: Maybe Text -> ScalarValue 'BigQuery Source #

parseScalarValue :: ScalarTypeParsingContext 'BigQuery -> ScalarType 'BigQuery -> Value -> Either QErr (ScalarValue 'BigQuery) Source #

scalarValueToJSON :: ScalarValue 'BigQuery -> Value Source #

functionToTable :: FunctionName 'BigQuery -> TableName 'BigQuery Source #

tableToFunction :: TableName 'BigQuery -> FunctionName 'BigQuery Source #

computedFieldFunction :: ComputedFieldDefinition 'BigQuery -> FunctionName 'BigQuery Source #

computedFieldReturnType :: ComputedFieldReturn 'BigQuery -> ComputedFieldReturnType 'BigQuery Source #

supportsAggregateComputedFields :: Bool Source #

fromComputedFieldImplicitArguments :: v -> ComputedFieldImplicitArguments 'BigQuery -> [FunctionArgumentExp 'BigQuery v] Source #

tableGraphQLName :: TableName 'BigQuery -> Either QErr Name Source #

functionGraphQLName :: FunctionName 'BigQuery -> Either QErr Name Source #

getTableIdentifier :: TableName 'BigQuery -> Either QErr GQLNameIdentifier Source #

snakeCaseTableName :: TableName 'BigQuery -> Text Source #

namingConventionSupport :: SupportedNamingCase Source #

resizeSourcePools :: SourceConfig 'BigQuery -> ServerReplicas -> IO SourceResizePoolSummary Source #

defaultTriggerOnReplication :: Maybe (XEventTriggers 'BigQuery, TriggerOnReplication) Source #

backendSupportsNestedObjects :: Either QErr (XNestedObjects 'BigQuery) Source #

sourceSupportsSchemalessTables :: SourceConfig 'BigQuery -> Bool Source #

Backend 'DataConnector Source # 
Instance details

Defined in Hasura.Backends.DataConnector.Adapter.Backend

Associated Types

type BackendConfig 'DataConnector Source #

type BackendInfo 'DataConnector Source #

type TableName 'DataConnector Source #

type FunctionName 'DataConnector Source #

type FunctionReturnType 'DataConnector Source #

type RawFunctionInfo 'DataConnector Source #

type ConstraintName 'DataConnector Source #

type BasicOrderType 'DataConnector Source #

type NullsOrderType 'DataConnector Source #

type CountType 'DataConnector :: Type -> Type Source #

type Column 'DataConnector Source #

type ScalarValue 'DataConnector Source #

type ScalarType 'DataConnector Source #

type SQLExpression 'DataConnector Source #

type ComputedFieldDefinition 'DataConnector Source #

type ScalarSelectionArguments 'DataConnector Source #

type ExtraTableMetadata 'DataConnector Source #

type FunctionArgument 'DataConnector Source #

type FunctionArgumentExp 'DataConnector :: Type -> Type Source #

type ComputedFieldImplicitArguments 'DataConnector Source #

type ComputedFieldReturn 'DataConnector Source #

type HealthCheckTest 'DataConnector Source #

type BooleanOperators 'DataConnector :: Type -> Type Source #

type AggregationPredicates 'DataConnector :: Type -> Type Source #

type UpdateVariant 'DataConnector :: Type -> Type Source #

type BackendInsert 'DataConnector :: Type -> Type Source #

type XComputedField 'DataConnector Source #

type XRelay 'DataConnector Source #

type XNodesAgg 'DataConnector Source #

type XEventTriggers 'DataConnector Source #

type XNestedInserts 'DataConnector Source #

type XStreamingSubscription 'DataConnector Source #

type XNestedObjects 'DataConnector Source #

type XGroupBy 'DataConnector Source #

type ResolvedConnectionTemplate 'DataConnector Source #

type ConnectionTemplateRequestContext 'DataConnector Source #

type ExecutionStatistics 'DataConnector Source #

Methods

healthCheckImplementation :: Maybe (HealthCheckImplementation (HealthCheckTest 'DataConnector)) Source #

versionCheckImplementation :: Environment -> SourceConnConfiguration 'DataConnector -> IO (Either QErr ()) Source #

runPingSource :: Environment -> (String -> IO ()) -> SourceName -> SourceConnConfiguration 'DataConnector -> IO () Source #

resolveConnectionTemplate :: SourceConfig 'DataConnector -> ConnectionTemplateRequestContext 'DataConnector -> Maybe ConnectionTemplate -> Either QErr EncJSON Source #

isComparableType :: ScalarType 'DataConnector -> Bool Source #

isNumType :: ScalarType 'DataConnector -> Bool Source #

getCustomAggregateOperators :: SourceConfig 'DataConnector -> HashMap Name (HashMap (ScalarType 'DataConnector) (ScalarType 'DataConnector)) Source #

textToScalarValue :: Maybe Text -> ScalarValue 'DataConnector Source #

parseScalarValue :: ScalarTypeParsingContext 'DataConnector -> ScalarType 'DataConnector -> Value -> Either QErr (ScalarValue 'DataConnector) Source #

scalarValueToJSON :: ScalarValue 'DataConnector -> Value Source #

functionToTable :: FunctionName 'DataConnector -> TableName 'DataConnector Source #

tableToFunction :: TableName 'DataConnector -> FunctionName 'DataConnector Source #

computedFieldFunction :: ComputedFieldDefinition 'DataConnector -> FunctionName 'DataConnector Source #

computedFieldReturnType :: ComputedFieldReturn 'DataConnector -> ComputedFieldReturnType 'DataConnector Source #

supportsAggregateComputedFields :: Bool Source #

fromComputedFieldImplicitArguments :: v -> ComputedFieldImplicitArguments 'DataConnector -> [FunctionArgumentExp 'DataConnector v] Source #

tableGraphQLName :: TableName 'DataConnector -> Either QErr Name Source #

functionGraphQLName :: FunctionName 'DataConnector -> Either QErr Name Source #

getTableIdentifier :: TableName 'DataConnector -> Either QErr GQLNameIdentifier Source #

snakeCaseTableName :: TableName 'DataConnector -> Text Source #

namingConventionSupport :: SupportedNamingCase Source #

resizeSourcePools :: SourceConfig 'DataConnector -> ServerReplicas -> IO SourceResizePoolSummary Source #

defaultTriggerOnReplication :: Maybe (XEventTriggers 'DataConnector, TriggerOnReplication) Source #

backendSupportsNestedObjects :: Either QErr (XNestedObjects 'DataConnector) Source #

sourceSupportsSchemalessTables :: SourceConfig 'DataConnector -> Bool Source #

Backend 'MSSQL Source # 
Instance details

Defined in Hasura.Backends.MSSQL.Instances.Types

Methods

healthCheckImplementation :: Maybe (HealthCheckImplementation (HealthCheckTest 'MSSQL)) Source #

versionCheckImplementation :: Environment -> SourceConnConfiguration 'MSSQL -> IO (Either QErr ()) Source #

runPingSource :: Environment -> (String -> IO ()) -> SourceName -> SourceConnConfiguration 'MSSQL -> IO () Source #

resolveConnectionTemplate :: SourceConfig 'MSSQL -> ConnectionTemplateRequestContext 'MSSQL -> Maybe ConnectionTemplate -> Either QErr EncJSON Source #

isComparableType :: ScalarType 'MSSQL -> Bool Source #

isNumType :: ScalarType 'MSSQL -> Bool Source #

getCustomAggregateOperators :: SourceConfig 'MSSQL -> HashMap Name (HashMap (ScalarType 'MSSQL) (ScalarType 'MSSQL)) Source #

textToScalarValue :: Maybe Text -> ScalarValue 'MSSQL Source #

parseScalarValue :: ScalarTypeParsingContext 'MSSQL -> ScalarType 'MSSQL -> Value -> Either QErr (ScalarValue 'MSSQL) Source #

scalarValueToJSON :: ScalarValue 'MSSQL -> Value Source #

functionToTable :: FunctionName 'MSSQL -> TableName 'MSSQL Source #

tableToFunction :: TableName 'MSSQL -> FunctionName 'MSSQL Source #

computedFieldFunction :: ComputedFieldDefinition 'MSSQL -> FunctionName 'MSSQL Source #

computedFieldReturnType :: ComputedFieldReturn 'MSSQL -> ComputedFieldReturnType 'MSSQL Source #

supportsAggregateComputedFields :: Bool Source #

fromComputedFieldImplicitArguments :: v -> ComputedFieldImplicitArguments 'MSSQL -> [FunctionArgumentExp 'MSSQL v] Source #

tableGraphQLName :: TableName 'MSSQL -> Either QErr Name Source #

functionGraphQLName :: FunctionName 'MSSQL -> Either QErr Name Source #

getTableIdentifier :: TableName 'MSSQL -> Either QErr GQLNameIdentifier Source #

snakeCaseTableName :: TableName 'MSSQL -> Text Source #

namingConventionSupport :: SupportedNamingCase Source #

resizeSourcePools :: SourceConfig 'MSSQL -> ServerReplicas -> IO SourceResizePoolSummary Source #

defaultTriggerOnReplication :: Maybe (XEventTriggers 'MSSQL, TriggerOnReplication) Source #

backendSupportsNestedObjects :: Either QErr (XNestedObjects 'MSSQL) Source #

sourceSupportsSchemalessTables :: SourceConfig 'MSSQL -> Bool Source #

(HasTag ('Postgres pgKind), Typeable ('Postgres pgKind), PostgresBackend pgKind, FromJSON (BackendSourceKind ('Postgres pgKind)), HasCodec (BackendSourceKind ('Postgres pgKind))) => Backend ('Postgres pgKind) Source # 
Instance details

Defined in Hasura.Backends.Postgres.Instances.Types

Associated Types

type BackendConfig ('Postgres pgKind) Source #

type BackendInfo ('Postgres pgKind) Source #

type TableName ('Postgres pgKind) Source #

type FunctionName ('Postgres pgKind) Source #

type FunctionReturnType ('Postgres pgKind) Source #

type RawFunctionInfo ('Postgres pgKind) Source #

type ConstraintName ('Postgres pgKind) Source #

type BasicOrderType ('Postgres pgKind) Source #

type NullsOrderType ('Postgres pgKind) Source #

type CountType ('Postgres pgKind) :: Type -> Type Source #

type Column ('Postgres pgKind) Source #

type ScalarValue ('Postgres pgKind) Source #

type ScalarType ('Postgres pgKind) Source #

type SQLExpression ('Postgres pgKind) Source #

type ComputedFieldDefinition ('Postgres pgKind) Source #

type ScalarSelectionArguments ('Postgres pgKind) Source #

type ExtraTableMetadata ('Postgres pgKind) Source #

type FunctionArgument ('Postgres pgKind) Source #

type FunctionArgumentExp ('Postgres pgKind) :: Type -> Type Source #

type ComputedFieldImplicitArguments ('Postgres pgKind) Source #

type ComputedFieldReturn ('Postgres pgKind) Source #

type HealthCheckTest ('Postgres pgKind) Source #

type BooleanOperators ('Postgres pgKind) :: Type -> Type Source #

type AggregationPredicates ('Postgres pgKind) :: Type -> Type Source #

type UpdateVariant ('Postgres pgKind) :: Type -> Type Source #

type BackendInsert ('Postgres pgKind) :: Type -> Type Source #

type XComputedField ('Postgres pgKind) Source #

type XRelay ('Postgres pgKind) Source #

type XNodesAgg ('Postgres pgKind) Source #

type XEventTriggers ('Postgres pgKind) Source #

type XNestedInserts ('Postgres pgKind) Source #

type XStreamingSubscription ('Postgres pgKind) Source #

type XNestedObjects ('Postgres pgKind) Source #

type XGroupBy ('Postgres pgKind) Source #

type ResolvedConnectionTemplate ('Postgres pgKind) Source #

type ConnectionTemplateRequestContext ('Postgres pgKind) Source #

type ExecutionStatistics ('Postgres pgKind) Source #

Methods

healthCheckImplementation :: Maybe (HealthCheckImplementation (HealthCheckTest ('Postgres pgKind))) Source #

versionCheckImplementation :: Environment -> SourceConnConfiguration ('Postgres pgKind) -> IO (Either QErr ()) Source #

runPingSource :: Environment -> (String -> IO ()) -> SourceName -> SourceConnConfiguration ('Postgres pgKind) -> IO () Source #

resolveConnectionTemplate :: SourceConfig ('Postgres pgKind) -> ConnectionTemplateRequestContext ('Postgres pgKind) -> Maybe ConnectionTemplate -> Either QErr EncJSON Source #

isComparableType :: ScalarType ('Postgres pgKind) -> Bool Source #

isNumType :: ScalarType ('Postgres pgKind) -> Bool Source #

getCustomAggregateOperators :: SourceConfig ('Postgres pgKind) -> HashMap Name (HashMap (ScalarType ('Postgres pgKind)) (ScalarType ('Postgres pgKind))) Source #

textToScalarValue :: Maybe Text -> ScalarValue ('Postgres pgKind) Source #

parseScalarValue :: ScalarTypeParsingContext ('Postgres pgKind) -> ScalarType ('Postgres pgKind) -> Value -> Either QErr (ScalarValue ('Postgres pgKind)) Source #

scalarValueToJSON :: ScalarValue ('Postgres pgKind) -> Value Source #

functionToTable :: FunctionName ('Postgres pgKind) -> TableName ('Postgres pgKind) Source #

tableToFunction :: TableName ('Postgres pgKind) -> FunctionName ('Postgres pgKind) Source #

computedFieldFunction :: ComputedFieldDefinition ('Postgres pgKind) -> FunctionName ('Postgres pgKind) Source #

computedFieldReturnType :: ComputedFieldReturn ('Postgres pgKind) -> ComputedFieldReturnType ('Postgres pgKind) Source #

supportsAggregateComputedFields :: Bool Source #

fromComputedFieldImplicitArguments :: v -> ComputedFieldImplicitArguments ('Postgres pgKind) -> [FunctionArgumentExp ('Postgres pgKind) v] Source #

tableGraphQLName :: TableName ('Postgres pgKind) -> Either QErr Name Source #

functionGraphQLName :: FunctionName ('Postgres pgKind) -> Either QErr Name Source #

getTableIdentifier :: TableName ('Postgres pgKind) -> Either QErr GQLNameIdentifier Source #

snakeCaseTableName :: TableName ('Postgres pgKind) -> Text Source #

namingConventionSupport :: SupportedNamingCase Source #

resizeSourcePools :: SourceConfig ('Postgres pgKind) -> ServerReplicas -> IO SourceResizePoolSummary Source #

defaultTriggerOnReplication :: Maybe (XEventTriggers ('Postgres pgKind), TriggerOnReplication) Source #

backendSupportsNestedObjects :: Either QErr (XNestedObjects ('Postgres pgKind)) Source #

sourceSupportsSchemalessTables :: SourceConfig ('Postgres pgKind) -> Bool Source #