{-# OPTIONS_GHC -fno-warn-orphans #-}

-- | Postgres Instances API
--
-- Defines a 'Hasura.Server.API.Backend.BackendAPI' type class instance for Postgres.
module Hasura.Backends.Postgres.Instances.API () where

import Hasura.Prelude
import Hasura.SQL.Backend
import Hasura.Server.API.Backend
import {-# SOURCE #-} Hasura.Server.API.Metadata

instance BackendAPI ('Postgres 'Vanilla) where
  metadataV1CommandParsers :: [CommandParser ('Postgres 'Vanilla)]
metadataV1CommandParsers =
    [[CommandParser ('Postgres 'Vanilla)]]
-> [CommandParser ('Postgres 'Vanilla)]
forall (t :: * -> *) a. Foldable t => t [a] -> [a]
concat
      [ Backend ('Postgres 'Vanilla) =>
[CommandParser ('Postgres 'Vanilla)]
forall (b :: BackendType). Backend b => [CommandParser b]
sourceCommands @('Postgres 'Vanilla),
        Backend ('Postgres 'Vanilla) =>
[CommandParser ('Postgres 'Vanilla)]
forall (b :: BackendType). Backend b => [CommandParser b]
tableCommands @('Postgres 'Vanilla),
        Backend ('Postgres 'Vanilla) =>
[CommandParser ('Postgres 'Vanilla)]
forall (b :: BackendType). Backend b => [CommandParser b]
tablePermissionsCommands @('Postgres 'Vanilla),
        Backend ('Postgres 'Vanilla) =>
[CommandParser ('Postgres 'Vanilla)]
forall (b :: BackendType). Backend b => [CommandParser b]
functionCommands @('Postgres 'Vanilla),
        Backend ('Postgres 'Vanilla) =>
[CommandParser ('Postgres 'Vanilla)]
forall (b :: BackendType). Backend b => [CommandParser b]
functionPermissionsCommands @('Postgres 'Vanilla),
        Backend ('Postgres 'Vanilla) =>
[CommandParser ('Postgres 'Vanilla)]
forall (b :: BackendType). Backend b => [CommandParser b]
relationshipCommands @('Postgres 'Vanilla),
        Backend ('Postgres 'Vanilla) =>
[CommandParser ('Postgres 'Vanilla)]
forall (b :: BackendType). Backend b => [CommandParser b]
remoteRelationshipCommands @('Postgres 'Vanilla),
        Backend ('Postgres 'Vanilla) =>
[CommandParser ('Postgres 'Vanilla)]
forall (b :: BackendType). Backend b => [CommandParser b]
eventTriggerCommands @('Postgres 'Vanilla),
        Backend ('Postgres 'Vanilla) =>
[CommandParser ('Postgres 'Vanilla)]
forall (b :: BackendType). Backend b => [CommandParser b]
computedFieldCommands @('Postgres 'Vanilla),
        -- postgres specific
        [ Text
-> (SetTableIsEnum -> RQLMetadataV1)
-> CommandParser ('Postgres 'Vanilla)
forall a (b :: BackendType).
FromJSON a =>
Text -> (a -> RQLMetadataV1) -> CommandParser b
commandParser Text
"set_table_is_enum" SetTableIsEnum -> RQLMetadataV1
RMPgSetTableIsEnum
        ]
      ]

instance BackendAPI ('Postgres 'Citus) where
  metadataV1CommandParsers :: [CommandParser ('Postgres 'Citus)]
metadataV1CommandParsers =
    [[CommandParser ('Postgres 'Citus)]]
-> [CommandParser ('Postgres 'Citus)]
forall (t :: * -> *) a. Foldable t => t [a] -> [a]
concat
      [ Backend ('Postgres 'Citus) => [CommandParser ('Postgres 'Citus)]
forall (b :: BackendType). Backend b => [CommandParser b]
sourceCommands @('Postgres 'Citus),
        Backend ('Postgres 'Citus) => [CommandParser ('Postgres 'Citus)]
forall (b :: BackendType). Backend b => [CommandParser b]
tableCommands @('Postgres 'Citus),
        Backend ('Postgres 'Citus) => [CommandParser ('Postgres 'Citus)]
forall (b :: BackendType). Backend b => [CommandParser b]
tablePermissionsCommands @('Postgres 'Citus),
        Backend ('Postgres 'Citus) => [CommandParser ('Postgres 'Citus)]
forall (b :: BackendType). Backend b => [CommandParser b]
functionCommands @('Postgres 'Citus),
        Backend ('Postgres 'Citus) => [CommandParser ('Postgres 'Citus)]
forall (b :: BackendType). Backend b => [CommandParser b]
functionPermissionsCommands @('Postgres 'Citus),
        Backend ('Postgres 'Citus) => [CommandParser ('Postgres 'Citus)]
forall (b :: BackendType). Backend b => [CommandParser b]
relationshipCommands @('Postgres 'Citus),
        Backend ('Postgres 'Citus) => [CommandParser ('Postgres 'Citus)]
forall (b :: BackendType). Backend b => [CommandParser b]
remoteRelationshipCommands @('Postgres 'Citus)
      ]

instance BackendAPI ('Postgres 'Cockroach) where
  metadataV1CommandParsers :: [CommandParser ('Postgres 'Cockroach)]
metadataV1CommandParsers =
    [[CommandParser ('Postgres 'Cockroach)]]
-> [CommandParser ('Postgres 'Cockroach)]
forall (t :: * -> *) a. Foldable t => t [a] -> [a]
concat
      [ Backend ('Postgres 'Cockroach) =>
[CommandParser ('Postgres 'Cockroach)]
forall (b :: BackendType). Backend b => [CommandParser b]
sourceCommands @('Postgres 'Cockroach),
        Backend ('Postgres 'Cockroach) =>
[CommandParser ('Postgres 'Cockroach)]
forall (b :: BackendType). Backend b => [CommandParser b]
tableCommands @('Postgres 'Cockroach),
        Backend ('Postgres 'Cockroach) =>
[CommandParser ('Postgres 'Cockroach)]
forall (b :: BackendType). Backend b => [CommandParser b]
tablePermissionsCommands @('Postgres 'Cockroach),
        Backend ('Postgres 'Cockroach) =>
[CommandParser ('Postgres 'Cockroach)]
forall (b :: BackendType). Backend b => [CommandParser b]
functionCommands @('Postgres 'Cockroach),
        Backend ('Postgres 'Cockroach) =>
[CommandParser ('Postgres 'Cockroach)]
forall (b :: BackendType). Backend b => [CommandParser b]
functionPermissionsCommands @('Postgres 'Cockroach),
        Backend ('Postgres 'Cockroach) =>
[CommandParser ('Postgres 'Cockroach)]
forall (b :: BackendType). Backend b => [CommandParser b]
relationshipCommands @('Postgres 'Cockroach),
        Backend ('Postgres 'Cockroach) =>
[CommandParser ('Postgres 'Cockroach)]
forall (b :: BackendType). Backend b => [CommandParser b]
remoteRelationshipCommands @('Postgres 'Cockroach)
      ]