module IHP.PGVersion (defaultUuidFunction) where
import IHP.Prelude
import qualified System.Environment as Env
import Text.Read (readMaybe)
defaultUuidFunction :: IO Text
defaultUuidFunction :: IO Text
defaultUuidFunction = do
pgVersion <- String -> Maybe String -> String
forall a. a -> Maybe a -> a
fromMaybe String
"17" (Maybe String -> String) -> IO (Maybe String) -> IO String
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> String -> IO (Maybe String)
Env.lookupEnv String
"IHP_POSTGRES_VERSION"
let version = Int -> Maybe Int -> Int
forall a. a -> Maybe a -> a
fromMaybe Int
17 (String -> Maybe Int
forall a. Read a => String -> Maybe a
readMaybe String
pgVersion :: Maybe Int)
pure if version >= 18 then "uuidv7" else "uuid_generate_v4"