{-# LANGUAGE GeneralizedNewtypeDeriving #-}
module Orville.PostgreSQL.Expr.SequenceDefinition
( CreateSequenceExpr
, createSequenceExpr
, AlterSequenceExpr
, alterSequenceExpr
, IncrementByExpr
, incrementBy
, MinValueExpr
, minValue
, noMinValue
, MaxValueExpr
, maxValue
, noMaxValue
, StartWithExpr
, startWith
, CacheExpr
, cache
, CycleExpr
, cycle
, noCycle
, cycleIfTrue
, DropSequenceExpr
, dropSequenceExpr
, nextVal
, nextValFunction
, currVal
, currValFunction
, setVal
, setValFunction
)
where
import Prelude (Bool, Maybe (Just), fmap, ($), (.), (<>))
import Data.Int (Int64)
import Data.Maybe (catMaybes)
import Orville.PostgreSQL.Expr.IfExists (IfExists)
import Orville.PostgreSQL.Expr.Name (FunctionName, Qualified, SequenceName, functionName)
import Orville.PostgreSQL.Expr.ValueExpression (ValueExpression, functionCall, valueExpression)
import qualified Orville.PostgreSQL.Raw.RawSql as RawSql
import qualified Orville.PostgreSQL.Raw.SqlValue as SqlValue
newtype CreateSequenceExpr
= CreateSequenceExpr RawSql.RawSql
deriving (RawSql -> CreateSequenceExpr
CreateSequenceExpr -> RawSql
(CreateSequenceExpr -> RawSql)
-> (RawSql -> CreateSequenceExpr)
-> SqlExpression CreateSequenceExpr
forall a. (a -> RawSql) -> (RawSql -> a) -> SqlExpression a
$ctoRawSql :: CreateSequenceExpr -> RawSql
toRawSql :: CreateSequenceExpr -> RawSql
$cunsafeFromRawSql :: RawSql -> CreateSequenceExpr
unsafeFromRawSql :: RawSql -> CreateSequenceExpr
RawSql.SqlExpression)
createSequenceExpr ::
Qualified SequenceName ->
Maybe IncrementByExpr ->
Maybe MinValueExpr ->
Maybe MaxValueExpr ->
Maybe StartWithExpr ->
Maybe CacheExpr ->
Maybe CycleExpr ->
CreateSequenceExpr
createSequenceExpr :: Qualified SequenceName
-> Maybe IncrementByExpr
-> Maybe MinValueExpr
-> Maybe MaxValueExpr
-> Maybe StartWithExpr
-> Maybe CacheExpr
-> Maybe CycleExpr
-> CreateSequenceExpr
createSequenceExpr Qualified SequenceName
sequenceName Maybe IncrementByExpr
mbIncrementBy Maybe MinValueExpr
mbMinValue Maybe MaxValueExpr
mbMaxValue Maybe StartWithExpr
mbStartWith Maybe CacheExpr
mbCache Maybe CycleExpr
mbCycle =
RawSql -> CreateSequenceExpr
CreateSequenceExpr
(RawSql -> CreateSequenceExpr)
-> ([Maybe RawSql] -> RawSql)
-> [Maybe RawSql]
-> CreateSequenceExpr
forall b c a. (b -> c) -> (a -> b) -> a -> c
. RawSql -> [RawSql] -> RawSql
forall sql (f :: * -> *).
(SqlExpression sql, Foldable f) =>
RawSql -> f sql -> RawSql
RawSql.intercalate RawSql
RawSql.space
([RawSql] -> RawSql)
-> ([Maybe RawSql] -> [RawSql]) -> [Maybe RawSql] -> RawSql
forall b c a. (b -> c) -> (a -> b) -> a -> c
. [Maybe RawSql] -> [RawSql]
forall a. [Maybe a] -> [a]
catMaybes
([Maybe RawSql] -> CreateSequenceExpr)
-> [Maybe RawSql] -> CreateSequenceExpr
forall a b. (a -> b) -> a -> b
$ [ RawSql -> Maybe RawSql
forall a. a -> Maybe a
Just (String -> RawSql
RawSql.fromString String
"CREATE SEQUENCE")
, RawSql -> Maybe RawSql
forall a. a -> Maybe a
Just (Qualified SequenceName -> RawSql
forall a. SqlExpression a => a -> RawSql
RawSql.toRawSql Qualified SequenceName
sequenceName)
, (IncrementByExpr -> RawSql)
-> Maybe IncrementByExpr -> Maybe RawSql
forall a b. (a -> b) -> Maybe a -> Maybe b
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
fmap IncrementByExpr -> RawSql
forall a. SqlExpression a => a -> RawSql
RawSql.toRawSql Maybe IncrementByExpr
mbIncrementBy
, (MinValueExpr -> RawSql) -> Maybe MinValueExpr -> Maybe RawSql
forall a b. (a -> b) -> Maybe a -> Maybe b
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
fmap MinValueExpr -> RawSql
forall a. SqlExpression a => a -> RawSql
RawSql.toRawSql Maybe MinValueExpr
mbMinValue
, (MaxValueExpr -> RawSql) -> Maybe MaxValueExpr -> Maybe RawSql
forall a b. (a -> b) -> Maybe a -> Maybe b
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
fmap MaxValueExpr -> RawSql
forall a. SqlExpression a => a -> RawSql
RawSql.toRawSql Maybe MaxValueExpr
mbMaxValue
, (StartWithExpr -> RawSql) -> Maybe StartWithExpr -> Maybe RawSql
forall a b. (a -> b) -> Maybe a -> Maybe b
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
fmap StartWithExpr -> RawSql
forall a. SqlExpression a => a -> RawSql
RawSql.toRawSql Maybe StartWithExpr
mbStartWith
, (CacheExpr -> RawSql) -> Maybe CacheExpr -> Maybe RawSql
forall a b. (a -> b) -> Maybe a -> Maybe b
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
fmap CacheExpr -> RawSql
forall a. SqlExpression a => a -> RawSql
RawSql.toRawSql Maybe CacheExpr
mbCache
, (CycleExpr -> RawSql) -> Maybe CycleExpr -> Maybe RawSql
forall a b. (a -> b) -> Maybe a -> Maybe b
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
fmap CycleExpr -> RawSql
forall a. SqlExpression a => a -> RawSql
RawSql.toRawSql Maybe CycleExpr
mbCycle
]
newtype AlterSequenceExpr
= AlterSequenceExpr RawSql.RawSql
deriving (RawSql -> AlterSequenceExpr
AlterSequenceExpr -> RawSql
(AlterSequenceExpr -> RawSql)
-> (RawSql -> AlterSequenceExpr) -> SqlExpression AlterSequenceExpr
forall a. (a -> RawSql) -> (RawSql -> a) -> SqlExpression a
$ctoRawSql :: AlterSequenceExpr -> RawSql
toRawSql :: AlterSequenceExpr -> RawSql
$cunsafeFromRawSql :: RawSql -> AlterSequenceExpr
unsafeFromRawSql :: RawSql -> AlterSequenceExpr
RawSql.SqlExpression)
alterSequenceExpr ::
Qualified SequenceName ->
Maybe IncrementByExpr ->
Maybe MinValueExpr ->
Maybe MaxValueExpr ->
Maybe StartWithExpr ->
Maybe CacheExpr ->
Maybe CycleExpr ->
AlterSequenceExpr
alterSequenceExpr :: Qualified SequenceName
-> Maybe IncrementByExpr
-> Maybe MinValueExpr
-> Maybe MaxValueExpr
-> Maybe StartWithExpr
-> Maybe CacheExpr
-> Maybe CycleExpr
-> AlterSequenceExpr
alterSequenceExpr Qualified SequenceName
sequenceName Maybe IncrementByExpr
mbIncrementBy Maybe MinValueExpr
mbMinValue Maybe MaxValueExpr
mbMaxValue Maybe StartWithExpr
mbStartWith Maybe CacheExpr
mbCache Maybe CycleExpr
mbCycle =
RawSql -> AlterSequenceExpr
AlterSequenceExpr
(RawSql -> AlterSequenceExpr)
-> ([Maybe RawSql] -> RawSql)
-> [Maybe RawSql]
-> AlterSequenceExpr
forall b c a. (b -> c) -> (a -> b) -> a -> c
. RawSql -> [RawSql] -> RawSql
forall sql (f :: * -> *).
(SqlExpression sql, Foldable f) =>
RawSql -> f sql -> RawSql
RawSql.intercalate RawSql
RawSql.space
([RawSql] -> RawSql)
-> ([Maybe RawSql] -> [RawSql]) -> [Maybe RawSql] -> RawSql
forall b c a. (b -> c) -> (a -> b) -> a -> c
. [Maybe RawSql] -> [RawSql]
forall a. [Maybe a] -> [a]
catMaybes
([Maybe RawSql] -> AlterSequenceExpr)
-> [Maybe RawSql] -> AlterSequenceExpr
forall a b. (a -> b) -> a -> b
$ [ RawSql -> Maybe RawSql
forall a. a -> Maybe a
Just (String -> RawSql
RawSql.fromString String
"ALTER SEQUENCE")
, RawSql -> Maybe RawSql
forall a. a -> Maybe a
Just (Qualified SequenceName -> RawSql
forall a. SqlExpression a => a -> RawSql
RawSql.toRawSql Qualified SequenceName
sequenceName)
, (IncrementByExpr -> RawSql)
-> Maybe IncrementByExpr -> Maybe RawSql
forall a b. (a -> b) -> Maybe a -> Maybe b
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
fmap IncrementByExpr -> RawSql
forall a. SqlExpression a => a -> RawSql
RawSql.toRawSql Maybe IncrementByExpr
mbIncrementBy
, (MinValueExpr -> RawSql) -> Maybe MinValueExpr -> Maybe RawSql
forall a b. (a -> b) -> Maybe a -> Maybe b
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
fmap MinValueExpr -> RawSql
forall a. SqlExpression a => a -> RawSql
RawSql.toRawSql Maybe MinValueExpr
mbMinValue
, (MaxValueExpr -> RawSql) -> Maybe MaxValueExpr -> Maybe RawSql
forall a b. (a -> b) -> Maybe a -> Maybe b
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
fmap MaxValueExpr -> RawSql
forall a. SqlExpression a => a -> RawSql
RawSql.toRawSql Maybe MaxValueExpr
mbMaxValue
, (StartWithExpr -> RawSql) -> Maybe StartWithExpr -> Maybe RawSql
forall a b. (a -> b) -> Maybe a -> Maybe b
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
fmap StartWithExpr -> RawSql
forall a. SqlExpression a => a -> RawSql
RawSql.toRawSql Maybe StartWithExpr
mbStartWith
, (CacheExpr -> RawSql) -> Maybe CacheExpr -> Maybe RawSql
forall a b. (a -> b) -> Maybe a -> Maybe b
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
fmap CacheExpr -> RawSql
forall a. SqlExpression a => a -> RawSql
RawSql.toRawSql Maybe CacheExpr
mbCache
, (CycleExpr -> RawSql) -> Maybe CycleExpr -> Maybe RawSql
forall a b. (a -> b) -> Maybe a -> Maybe b
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
fmap CycleExpr -> RawSql
forall a. SqlExpression a => a -> RawSql
RawSql.toRawSql Maybe CycleExpr
mbCycle
]
newtype IncrementByExpr
= IncrementByExpr RawSql.RawSql
deriving (RawSql -> IncrementByExpr
IncrementByExpr -> RawSql
(IncrementByExpr -> RawSql)
-> (RawSql -> IncrementByExpr) -> SqlExpression IncrementByExpr
forall a. (a -> RawSql) -> (RawSql -> a) -> SqlExpression a
$ctoRawSql :: IncrementByExpr -> RawSql
toRawSql :: IncrementByExpr -> RawSql
$cunsafeFromRawSql :: RawSql -> IncrementByExpr
unsafeFromRawSql :: RawSql -> IncrementByExpr
RawSql.SqlExpression)
incrementBy :: Int64 -> IncrementByExpr
incrementBy :: Int64 -> IncrementByExpr
incrementBy Int64
n =
RawSql -> IncrementByExpr
IncrementByExpr (RawSql -> IncrementByExpr) -> RawSql -> IncrementByExpr
forall a b. (a -> b) -> a -> b
$
String -> RawSql
RawSql.fromString String
"INCREMENT BY "
RawSql -> RawSql -> RawSql
forall a. Semigroup a => a -> a -> a
<> Int64 -> RawSql
RawSql.int64DecLiteral Int64
n
newtype MinValueExpr
= MinValueExpr RawSql.RawSql
deriving (RawSql -> MinValueExpr
MinValueExpr -> RawSql
(MinValueExpr -> RawSql)
-> (RawSql -> MinValueExpr) -> SqlExpression MinValueExpr
forall a. (a -> RawSql) -> (RawSql -> a) -> SqlExpression a
$ctoRawSql :: MinValueExpr -> RawSql
toRawSql :: MinValueExpr -> RawSql
$cunsafeFromRawSql :: RawSql -> MinValueExpr
unsafeFromRawSql :: RawSql -> MinValueExpr
RawSql.SqlExpression)
minValue :: Int64 -> MinValueExpr
minValue :: Int64 -> MinValueExpr
minValue Int64
n =
RawSql -> MinValueExpr
MinValueExpr (RawSql -> MinValueExpr) -> RawSql -> MinValueExpr
forall a b. (a -> b) -> a -> b
$
String -> RawSql
RawSql.fromString String
"MINVALUE "
RawSql -> RawSql -> RawSql
forall a. Semigroup a => a -> a -> a
<> Int64 -> RawSql
RawSql.int64DecLiteral Int64
n
noMinValue :: MinValueExpr
noMinValue :: MinValueExpr
noMinValue =
RawSql -> MinValueExpr
MinValueExpr (RawSql -> MinValueExpr)
-> (String -> RawSql) -> String -> MinValueExpr
forall b c a. (b -> c) -> (a -> b) -> a -> c
. String -> RawSql
RawSql.fromString (String -> MinValueExpr) -> String -> MinValueExpr
forall a b. (a -> b) -> a -> b
$ String
"NO MINVALUE"
newtype MaxValueExpr
= MaxValueExpr RawSql.RawSql
deriving (RawSql -> MaxValueExpr
MaxValueExpr -> RawSql
(MaxValueExpr -> RawSql)
-> (RawSql -> MaxValueExpr) -> SqlExpression MaxValueExpr
forall a. (a -> RawSql) -> (RawSql -> a) -> SqlExpression a
$ctoRawSql :: MaxValueExpr -> RawSql
toRawSql :: MaxValueExpr -> RawSql
$cunsafeFromRawSql :: RawSql -> MaxValueExpr
unsafeFromRawSql :: RawSql -> MaxValueExpr
RawSql.SqlExpression)
maxValue :: Int64 -> MaxValueExpr
maxValue :: Int64 -> MaxValueExpr
maxValue Int64
n =
RawSql -> MaxValueExpr
MaxValueExpr (RawSql -> MaxValueExpr) -> RawSql -> MaxValueExpr
forall a b. (a -> b) -> a -> b
$
String -> RawSql
RawSql.fromString String
"MAXVALUE "
RawSql -> RawSql -> RawSql
forall a. Semigroup a => a -> a -> a
<> Int64 -> RawSql
RawSql.int64DecLiteral Int64
n
noMaxValue :: MaxValueExpr
noMaxValue :: MaxValueExpr
noMaxValue =
RawSql -> MaxValueExpr
MaxValueExpr (RawSql -> MaxValueExpr)
-> (String -> RawSql) -> String -> MaxValueExpr
forall b c a. (b -> c) -> (a -> b) -> a -> c
. String -> RawSql
RawSql.fromString (String -> MaxValueExpr) -> String -> MaxValueExpr
forall a b. (a -> b) -> a -> b
$ String
"NO MAXVALUE"
newtype StartWithExpr
= StartWithExpr RawSql.RawSql
deriving (RawSql -> StartWithExpr
StartWithExpr -> RawSql
(StartWithExpr -> RawSql)
-> (RawSql -> StartWithExpr) -> SqlExpression StartWithExpr
forall a. (a -> RawSql) -> (RawSql -> a) -> SqlExpression a
$ctoRawSql :: StartWithExpr -> RawSql
toRawSql :: StartWithExpr -> RawSql
$cunsafeFromRawSql :: RawSql -> StartWithExpr
unsafeFromRawSql :: RawSql -> StartWithExpr
RawSql.SqlExpression)
startWith :: Int64 -> StartWithExpr
startWith :: Int64 -> StartWithExpr
startWith Int64
n =
RawSql -> StartWithExpr
StartWithExpr (RawSql -> StartWithExpr) -> RawSql -> StartWithExpr
forall a b. (a -> b) -> a -> b
$
String -> RawSql
RawSql.fromString String
"START WITH "
RawSql -> RawSql -> RawSql
forall a. Semigroup a => a -> a -> a
<> Int64 -> RawSql
RawSql.int64DecLiteral Int64
n
newtype CacheExpr
= CacheExpr RawSql.RawSql
deriving (RawSql -> CacheExpr
CacheExpr -> RawSql
(CacheExpr -> RawSql)
-> (RawSql -> CacheExpr) -> SqlExpression CacheExpr
forall a. (a -> RawSql) -> (RawSql -> a) -> SqlExpression a
$ctoRawSql :: CacheExpr -> RawSql
toRawSql :: CacheExpr -> RawSql
$cunsafeFromRawSql :: RawSql -> CacheExpr
unsafeFromRawSql :: RawSql -> CacheExpr
RawSql.SqlExpression)
cache :: Int64 -> CacheExpr
cache :: Int64 -> CacheExpr
cache Int64
n =
RawSql -> CacheExpr
CacheExpr (RawSql -> CacheExpr) -> RawSql -> CacheExpr
forall a b. (a -> b) -> a -> b
$
String -> RawSql
RawSql.fromString String
"CACHE "
RawSql -> RawSql -> RawSql
forall a. Semigroup a => a -> a -> a
<> Int64 -> RawSql
RawSql.int64DecLiteral Int64
n
newtype CycleExpr
= CycleExpr RawSql.RawSql
deriving (RawSql -> CycleExpr
CycleExpr -> RawSql
(CycleExpr -> RawSql)
-> (RawSql -> CycleExpr) -> SqlExpression CycleExpr
forall a. (a -> RawSql) -> (RawSql -> a) -> SqlExpression a
$ctoRawSql :: CycleExpr -> RawSql
toRawSql :: CycleExpr -> RawSql
$cunsafeFromRawSql :: RawSql -> CycleExpr
unsafeFromRawSql :: RawSql -> CycleExpr
RawSql.SqlExpression)
cycle :: CycleExpr
cycle :: CycleExpr
cycle = RawSql -> CycleExpr
CycleExpr (RawSql -> CycleExpr) -> RawSql -> CycleExpr
forall a b. (a -> b) -> a -> b
$ String -> RawSql
RawSql.fromString String
"CYCLE"
noCycle :: CycleExpr
noCycle :: CycleExpr
noCycle = RawSql -> CycleExpr
CycleExpr (RawSql -> CycleExpr) -> RawSql -> CycleExpr
forall a b. (a -> b) -> a -> b
$ String -> RawSql
RawSql.fromString String
"NO CYCLE"
cycleIfTrue :: Bool -> CycleExpr
cycleIfTrue :: Bool -> CycleExpr
cycleIfTrue Bool
cycleFlag =
if Bool
cycleFlag
then CycleExpr
cycle
else CycleExpr
noCycle
newtype DropSequenceExpr
= DropSequenceExpr RawSql.RawSql
deriving (RawSql -> DropSequenceExpr
DropSequenceExpr -> RawSql
(DropSequenceExpr -> RawSql)
-> (RawSql -> DropSequenceExpr) -> SqlExpression DropSequenceExpr
forall a. (a -> RawSql) -> (RawSql -> a) -> SqlExpression a
$ctoRawSql :: DropSequenceExpr -> RawSql
toRawSql :: DropSequenceExpr -> RawSql
$cunsafeFromRawSql :: RawSql -> DropSequenceExpr
unsafeFromRawSql :: RawSql -> DropSequenceExpr
RawSql.SqlExpression)
dropSequenceExpr :: Maybe IfExists -> Qualified SequenceName -> DropSequenceExpr
dropSequenceExpr :: Maybe IfExists -> Qualified SequenceName -> DropSequenceExpr
dropSequenceExpr Maybe IfExists
maybeIfExists Qualified SequenceName
sequenceName =
RawSql -> DropSequenceExpr
DropSequenceExpr (RawSql -> DropSequenceExpr) -> RawSql -> DropSequenceExpr
forall a b. (a -> b) -> a -> b
$
RawSql -> [RawSql] -> RawSql
forall sql (f :: * -> *).
(SqlExpression sql, Foldable f) =>
RawSql -> f sql -> RawSql
RawSql.intercalate
RawSql
RawSql.space
( [Maybe RawSql] -> [RawSql]
forall a. [Maybe a] -> [a]
catMaybes
[ RawSql -> Maybe RawSql
forall a. a -> Maybe a
Just (String -> RawSql
RawSql.fromString String
"DROP SEQUENCE")
, (IfExists -> RawSql) -> Maybe IfExists -> Maybe RawSql
forall a b. (a -> b) -> Maybe a -> Maybe b
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
fmap IfExists -> RawSql
forall a. SqlExpression a => a -> RawSql
RawSql.toRawSql Maybe IfExists
maybeIfExists
, RawSql -> Maybe RawSql
forall a. a -> Maybe a
Just (Qualified SequenceName -> RawSql
forall a. SqlExpression a => a -> RawSql
RawSql.toRawSql Qualified SequenceName
sequenceName)
]
)
nextVal :: Qualified SequenceName -> ValueExpression
nextVal :: Qualified SequenceName -> ValueExpression
nextVal Qualified SequenceName
sequenceName =
FunctionName -> [ValueExpression] -> ValueExpression
functionCall
FunctionName
nextValFunction
[SqlValue -> ValueExpression
valueExpression (SqlValue -> ValueExpression)
-> (Qualified SequenceName -> SqlValue)
-> Qualified SequenceName
-> ValueExpression
forall b c a. (b -> c) -> (a -> b) -> a -> c
. ByteString -> SqlValue
SqlValue.fromRawBytes (ByteString -> SqlValue)
-> (Qualified SequenceName -> ByteString)
-> Qualified SequenceName
-> SqlValue
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Qualified SequenceName -> ByteString
forall sql. SqlExpression sql => sql -> ByteString
RawSql.toExampleBytes (Qualified SequenceName -> ValueExpression)
-> Qualified SequenceName -> ValueExpression
forall a b. (a -> b) -> a -> b
$ Qualified SequenceName
sequenceName]
nextValFunction :: FunctionName
nextValFunction :: FunctionName
nextValFunction =
String -> FunctionName
functionName String
"nextval"
currVal :: Qualified SequenceName -> ValueExpression
currVal :: Qualified SequenceName -> ValueExpression
currVal Qualified SequenceName
sequenceName =
FunctionName -> [ValueExpression] -> ValueExpression
functionCall
FunctionName
currValFunction
[SqlValue -> ValueExpression
valueExpression (SqlValue -> ValueExpression)
-> (Qualified SequenceName -> SqlValue)
-> Qualified SequenceName
-> ValueExpression
forall b c a. (b -> c) -> (a -> b) -> a -> c
. ByteString -> SqlValue
SqlValue.fromRawBytes (ByteString -> SqlValue)
-> (Qualified SequenceName -> ByteString)
-> Qualified SequenceName
-> SqlValue
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Qualified SequenceName -> ByteString
forall sql. SqlExpression sql => sql -> ByteString
RawSql.toExampleBytes (Qualified SequenceName -> ValueExpression)
-> Qualified SequenceName -> ValueExpression
forall a b. (a -> b) -> a -> b
$ Qualified SequenceName
sequenceName]
currValFunction :: FunctionName
currValFunction :: FunctionName
currValFunction =
String -> FunctionName
functionName String
"currval"
setVal :: Qualified SequenceName -> Int64 -> ValueExpression
setVal :: Qualified SequenceName -> Int64 -> ValueExpression
setVal Qualified SequenceName
sequenceName Int64
newValue =
FunctionName -> [ValueExpression] -> ValueExpression
functionCall
FunctionName
setValFunction
[ SqlValue -> ValueExpression
valueExpression (SqlValue -> ValueExpression)
-> (Qualified SequenceName -> SqlValue)
-> Qualified SequenceName
-> ValueExpression
forall b c a. (b -> c) -> (a -> b) -> a -> c
. ByteString -> SqlValue
SqlValue.fromRawBytes (ByteString -> SqlValue)
-> (Qualified SequenceName -> ByteString)
-> Qualified SequenceName
-> SqlValue
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Qualified SequenceName -> ByteString
forall sql. SqlExpression sql => sql -> ByteString
RawSql.toExampleBytes (Qualified SequenceName -> ValueExpression)
-> Qualified SequenceName -> ValueExpression
forall a b. (a -> b) -> a -> b
$ Qualified SequenceName
sequenceName
, SqlValue -> ValueExpression
valueExpression (SqlValue -> ValueExpression)
-> (Int64 -> SqlValue) -> Int64 -> ValueExpression
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Int64 -> SqlValue
SqlValue.fromInt64 (Int64 -> ValueExpression) -> Int64 -> ValueExpression
forall a b. (a -> b) -> a -> b
$ Int64
newValue
]
setValFunction :: FunctionName
setValFunction :: FunctionName
setValFunction =
String -> FunctionName
functionName String
"setval"