packages feed

hamsql-0.7.0.0: src/Database/YamSql/Internal/Sequence.hs

{-# LANGUAGE DeriveDataTypeable #-}
{-# LANGUAGE DeriveGeneric      #-}

module Database.YamSql.Internal.Sequence where

import Database.YamSql.Internal.Basic

data Sequence = Sequence
  { sequenceName          :: SqlName
  , sequenceIncrement     :: Maybe Int
  , sequenceMinValue      :: Maybe Int
  , sequenceMaxValue      :: Maybe Int
  , sequenceStartValue    :: Maybe Int
  , sequenceCache         :: Maybe Int
  , sequenceCycle         :: Maybe Bool
    -- PostgreSQL extension
  , sequenceOwnedByColumn :: Maybe SqlName
  } deriving (Generic, Show, Data)

instance FromJSON Sequence where
  parseJSON = parseYamSql

instance ToJSON Sequence where
  toJSON = toYamSqlJson

instance ToSqlIdPart Sequence where
  sqlIdPart = sequenceName
  sqlIdPartType = const "SEQUENCE"