graphql-engine/server/src-lib/Hasura/Backends/DataWrapper/Schema/Table.hs
jkachmar dc73b7b7d5 server: Renames the experimental backend modules
No logic in this PR, just tidying things up (renaming the backend from `Experimental` to `DataWrapper`).

PR-URL: https://github.com/hasura/graphql-engine-mono/pull/3779
GitOrigin-RevId: f11acf563ccd8b9f16bc23c5e92da392aa4cfb2c
2022-02-25 16:09:17 +00:00

35 lines
1.2 KiB
Haskell

module Hasura.Backends.DataWrapper.Schema.Table
( Table (..),
)
where
--------------------------------------------------------------------------------
import Hasura.Backends.DataWrapper.IR.Table qualified as Table (Name)
import Hasura.Backends.DataWrapper.Schema.Column (Column)
import Hasura.Prelude
--------------------------------------------------------------------------------
-- | A schematic representation which captures a named collection of columns
--
-- TODO(cdparks): schematic in the sense of "relating to a schema" or symbolic?
-- This language is also used in the @Column@ documentation
--
-- An element of a table is known as a row, record, tuple, or object,
-- and conforms to the shape specified by the list of @Column@s below.
--
-- cf. https://en.wikipedia.org/wiki/Table_(database)
-- https://www.postgresql.org/docs/13/ddl-basics.html
--
-- NOTE(jkachmar): This type shouldn't _need_ ser/de instances, but they're
-- imposed by the 'Backend' class.
data Table = Table
{ name :: Table.Name,
columns :: [Column],
-- TODO(cdparks): Composite primary keys
primaryKey :: Maybe Text,
description :: Maybe Text
}
deriving stock (Data, Eq, Generic, Ord, Show)