module Orville.PostgreSQL.Schema.SequenceIdentifier
( SequenceIdentifier
, unqualifiedNameToSequenceId
, setSequenceIdSchema
, sequenceIdQualifiedName
, sequenceIdUnqualifiedName
, sequenceIdSchemaName
, sequenceIdToString
, sequenceIdUnqualifiedNameString
, sequenceIdSchemaNameString
)
where
import qualified Orville.PostgreSQL.Expr as Expr
data SequenceIdentifier = SequenceIdentifier
{ SequenceIdentifier -> String
i_sequenceIdName :: String
, SequenceIdentifier -> Maybe String
i_sequenceIdSchema :: Maybe String
}
deriving (SequenceIdentifier -> SequenceIdentifier -> Bool
(SequenceIdentifier -> SequenceIdentifier -> Bool)
-> (SequenceIdentifier -> SequenceIdentifier -> Bool)
-> Eq SequenceIdentifier
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: SequenceIdentifier -> SequenceIdentifier -> Bool
== :: SequenceIdentifier -> SequenceIdentifier -> Bool
$c/= :: SequenceIdentifier -> SequenceIdentifier -> Bool
/= :: SequenceIdentifier -> SequenceIdentifier -> Bool
Eq, Eq SequenceIdentifier
Eq SequenceIdentifier
-> (SequenceIdentifier -> SequenceIdentifier -> Ordering)
-> (SequenceIdentifier -> SequenceIdentifier -> Bool)
-> (SequenceIdentifier -> SequenceIdentifier -> Bool)
-> (SequenceIdentifier -> SequenceIdentifier -> Bool)
-> (SequenceIdentifier -> SequenceIdentifier -> Bool)
-> (SequenceIdentifier -> SequenceIdentifier -> SequenceIdentifier)
-> (SequenceIdentifier -> SequenceIdentifier -> SequenceIdentifier)
-> Ord SequenceIdentifier
SequenceIdentifier -> SequenceIdentifier -> Bool
SequenceIdentifier -> SequenceIdentifier -> Ordering
SequenceIdentifier -> SequenceIdentifier -> SequenceIdentifier
forall a.
Eq a
-> (a -> a -> Ordering)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> a)
-> (a -> a -> a)
-> Ord a
$ccompare :: SequenceIdentifier -> SequenceIdentifier -> Ordering
compare :: SequenceIdentifier -> SequenceIdentifier -> Ordering
$c< :: SequenceIdentifier -> SequenceIdentifier -> Bool
< :: SequenceIdentifier -> SequenceIdentifier -> Bool
$c<= :: SequenceIdentifier -> SequenceIdentifier -> Bool
<= :: SequenceIdentifier -> SequenceIdentifier -> Bool
$c> :: SequenceIdentifier -> SequenceIdentifier -> Bool
> :: SequenceIdentifier -> SequenceIdentifier -> Bool
$c>= :: SequenceIdentifier -> SequenceIdentifier -> Bool
>= :: SequenceIdentifier -> SequenceIdentifier -> Bool
$cmax :: SequenceIdentifier -> SequenceIdentifier -> SequenceIdentifier
max :: SequenceIdentifier -> SequenceIdentifier -> SequenceIdentifier
$cmin :: SequenceIdentifier -> SequenceIdentifier -> SequenceIdentifier
min :: SequenceIdentifier -> SequenceIdentifier -> SequenceIdentifier
Ord, Int -> SequenceIdentifier -> ShowS
[SequenceIdentifier] -> ShowS
SequenceIdentifier -> String
(Int -> SequenceIdentifier -> ShowS)
-> (SequenceIdentifier -> String)
-> ([SequenceIdentifier] -> ShowS)
-> Show SequenceIdentifier
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> SequenceIdentifier -> ShowS
showsPrec :: Int -> SequenceIdentifier -> ShowS
$cshow :: SequenceIdentifier -> String
show :: SequenceIdentifier -> String
$cshowList :: [SequenceIdentifier] -> ShowS
showList :: [SequenceIdentifier] -> ShowS
Show)
unqualifiedNameToSequenceId :: String -> SequenceIdentifier
unqualifiedNameToSequenceId :: String -> SequenceIdentifier
unqualifiedNameToSequenceId String
name =
SequenceIdentifier
{ i_sequenceIdName :: String
i_sequenceIdName = String
name
, i_sequenceIdSchema :: Maybe String
i_sequenceIdSchema = Maybe String
forall a. Maybe a
Nothing
}
setSequenceIdSchema :: String -> SequenceIdentifier -> SequenceIdentifier
setSequenceIdSchema :: String -> SequenceIdentifier -> SequenceIdentifier
setSequenceIdSchema String
schema SequenceIdentifier
sequenceId =
SequenceIdentifier
sequenceId
{ i_sequenceIdSchema :: Maybe String
i_sequenceIdSchema = String -> Maybe String
forall a. a -> Maybe a
Just String
schema
}
sequenceIdQualifiedName :: SequenceIdentifier -> Expr.Qualified Expr.SequenceName
sequenceIdQualifiedName :: SequenceIdentifier -> Qualified SequenceName
sequenceIdQualifiedName SequenceIdentifier
sequenceId =
Maybe SchemaName -> SequenceName -> Qualified SequenceName
Expr.qualifySequence
(SequenceIdentifier -> Maybe SchemaName
sequenceIdSchemaName SequenceIdentifier
sequenceId)
(SequenceIdentifier -> SequenceName
sequenceIdUnqualifiedName SequenceIdentifier
sequenceId)
sequenceIdUnqualifiedName :: SequenceIdentifier -> Expr.SequenceName
sequenceIdUnqualifiedName :: SequenceIdentifier -> SequenceName
sequenceIdUnqualifiedName =
String -> SequenceName
Expr.sequenceName (String -> SequenceName)
-> (SequenceIdentifier -> String)
-> SequenceIdentifier
-> SequenceName
forall b c a. (b -> c) -> (a -> b) -> a -> c
. SequenceIdentifier -> String
i_sequenceIdName
sequenceIdSchemaName :: SequenceIdentifier -> Maybe Expr.SchemaName
sequenceIdSchemaName :: SequenceIdentifier -> Maybe SchemaName
sequenceIdSchemaName =
(String -> SchemaName) -> Maybe String -> Maybe SchemaName
forall a b. (a -> b) -> Maybe a -> Maybe b
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
fmap String -> SchemaName
Expr.schemaName (Maybe String -> Maybe SchemaName)
-> (SequenceIdentifier -> Maybe String)
-> SequenceIdentifier
-> Maybe SchemaName
forall b c a. (b -> c) -> (a -> b) -> a -> c
. SequenceIdentifier -> Maybe String
i_sequenceIdSchema
sequenceIdUnqualifiedNameString :: SequenceIdentifier -> String
sequenceIdUnqualifiedNameString :: SequenceIdentifier -> String
sequenceIdUnqualifiedNameString =
SequenceIdentifier -> String
i_sequenceIdName
sequenceIdSchemaNameString :: SequenceIdentifier -> Maybe String
sequenceIdSchemaNameString :: SequenceIdentifier -> Maybe String
sequenceIdSchemaNameString =
SequenceIdentifier -> Maybe String
i_sequenceIdSchema
sequenceIdToString :: SequenceIdentifier -> String
sequenceIdToString :: SequenceIdentifier -> String
sequenceIdToString SequenceIdentifier
sequenceId =
case SequenceIdentifier -> Maybe String
i_sequenceIdSchema SequenceIdentifier
sequenceId of
Maybe String
Nothing ->
SequenceIdentifier -> String
i_sequenceIdName SequenceIdentifier
sequenceId
Just String
schema ->
String
schema String -> ShowS
forall a. Semigroup a => a -> a -> a
<> String
"." String -> ShowS
forall a. Semigroup a => a -> a -> a
<> SequenceIdentifier -> String
i_sequenceIdName SequenceIdentifier
sequenceId