41 lines
930 B
Haskell
41 lines
930 B
Haskell
{-# LANGUAGE DeriveAnyClass #-}
|
|
{-# LANGUAGE DeriveGeneric #-}
|
|
module PostgREST.Config.PgVersion
|
|
( PgVersion(..)
|
|
, minimumPgVersion
|
|
, pgVersion140
|
|
, pgVersion150
|
|
, pgVersion170
|
|
) where
|
|
|
|
import qualified Data.Aeson as JSON
|
|
|
|
import Protolude
|
|
|
|
|
|
data PgVersion = PgVersion
|
|
{ pgvNum :: Int32
|
|
, pgvName :: Text
|
|
, pgvFullName :: Text
|
|
}
|
|
deriving (Eq, Generic, JSON.ToJSON)
|
|
|
|
instance Ord PgVersion where
|
|
(PgVersion v1 _ _) `compare` (PgVersion v2 _ _) = v1 `compare` v2
|
|
|
|
-- | Tells the minimum PostgreSQL version required by this version of PostgREST
|
|
minimumPgVersion :: PgVersion
|
|
minimumPgVersion = pgVersion130
|
|
|
|
pgVersion130 :: PgVersion
|
|
pgVersion130 = PgVersion 130000 "13.0" "13.0"
|
|
|
|
pgVersion140 :: PgVersion
|
|
pgVersion140 = PgVersion 140000 "14.0" "14.0"
|
|
|
|
pgVersion150 :: PgVersion
|
|
pgVersion150 = PgVersion 150000 "15.0" "15.0"
|
|
|
|
pgVersion170 :: PgVersion
|
|
pgVersion170 = PgVersion 170000 "17.0" "17.0"
|