packages feed

hssqlppp-0.3.1: src/Database/HsSqlPpp/Internals/AstAnti.hs

{-
This file is autogenerated, to generate: load this file (MakeAntiNodes.lhs)
into ghci and run:
nwriteAntiNodes
n\nThe path might need tweaking.
n-}
{-# LANGUAGE DeriveDataTypeable #-}
module Database.HsSqlPpp.Internals.AstAnti
       (convertStatements, convertScalarExpr, attributeDef, queryExpr,
        Statement(..), QueryExpr(..), WithQuery(..), FnBody(..),
        TableRef(..), TableAlias(..), JoinExpr(..), JoinType(..),
        SelectList(..), SelectItem(..), CopySource(..), AttributeDef(..),
        RowConstraint(..), AlterTableAction(..), Constraint(..),
        TypeAttributeDef(..), ParamDef(..), VarDef(..), RaiseType(..),
        CombineType(..), Volatility(..), Language(..), TypeName(..),
        DropType(..), Cascade(..), Direction(..), Distinct(..),
        Natural(..), IfExists(..), Replace(..), RestartIdentity(..),
        ScalarExpr(..), SQIdentifier(..), IntervalField(..),
        ExtractField(..), FrameClause(..), InList(..), LiftFlavour(..),
        TriggerWhen(..), TriggerEvent(..), TriggerFire(..), SetValue(..),
        WithQueryList, StatementList, ScalarExprListStatementListPairList,
        ScalarExprListStatementListPair, ScalarExprList, ParamDefList,
        AttributeDefList, ConstraintList, TypeAttributeDefList,
        TypeNameList, StringTypeNameListPair, StringTypeNameListPairList,
        ScalarExprStatementListPairList,
        CaseScalarExprListScalarExprPairList, MaybeScalarExpr,
        TableRefList, ScalarExprListList, SelectItemList, OnExpr,
        RowConstraintList, VarDefList, ScalarExprStatementListPair,
        CaseScalarExprListScalarExprPair, ScalarExprDirectionPair,
        ScalarExprDirectionPairList, MaybeBoolExpr, MaybeSelectList,
        AlterTableActionList)
       where
import Data.Data
import Database.HsSqlPpp.Internals.AstAnnotation
import qualified Database.HsSqlPpp.Internals.AstInternal as A
 
convertStatements :: [Statement] -> [A.Statement]
convertStatements = statementList
 
convertScalarExpr :: ScalarExpr -> A.ScalarExpr
convertScalarExpr = scalarExpr
 
data JoinType = Inner
              | LeftOuter
              | RightOuter
              | FullOuter
              | Cross
              deriving (Show, Eq, Typeable, Data)
 
data CopySource = CopyFilename String
                | Stdin
                deriving (Show, Eq, Typeable, Data)
 
data SetValue = SetStr Annotation String
              | SetId Annotation String
              | SetNum Annotation Double
              deriving (Show, Eq, Typeable, Data)
 
data TriggerWhen = TriggerBefore
                 | TriggerAfter
                 deriving (Show, Eq, Typeable, Data)
 
data TriggerEvent = TInsert
                  | TUpdate
                  | TDelete
                  | AntiTriggerEvent String
                  deriving (Show, Eq, Typeable, Data)
 
data TriggerFire = EachRow
                 | EachStatement
                 deriving (Show, Eq, Typeable, Data)
 
data RaiseType = RNotice
               | RException
               | RError
               deriving (Show, Eq, Typeable, Data)
 
data CombineType = Except
                 | Union
                 | Intersect
                 | UnionAll
                 deriving (Show, Eq, Typeable, Data)
 
data Volatility = Volatile
                | Stable
                | Immutable
                deriving (Show, Eq, Typeable, Data)
 
data Language = Sql
              | Plpgsql
              deriving (Show, Eq, Typeable, Data)
 
data DropType = Table
              | Domain
              | View
              | Type
              deriving (Show, Eq, Typeable, Data)
 
data Cascade = Cascade
             | Restrict
             deriving (Show, Eq, Typeable, Data)
 
data Direction = Asc
               | Desc
               deriving (Show, Eq, Typeable, Data)
 
data Distinct = Distinct
              | Dupes
              deriving (Show, Eq, Typeable, Data)
 
data Natural = Natural
             | Unnatural
             deriving (Show, Eq, Typeable, Data)
 
data IfExists = Require
              | IfExists
              deriving (Show, Eq, Typeable, Data)
 
data Replace = Replace
             | NoReplace
             deriving (Show, Eq, Typeable, Data)
 
data RestartIdentity = RestartIdentity
                     | ContinueIdentity
                     deriving (Show, Eq, Typeable, Data)
 
data LiftFlavour = LiftAny
                 | LiftAll
                 deriving (Show, Eq, Typeable, Data)
 
data IntervalField = IntervalYear
                   | IntervalMonth
                   | IntervalDay
                   | IntervalHour
                   | IntervalMinute
                   | IntervalSecond
                   | IntervalYearToMonth
                   | IntervalDayToHour
                   | IntervalDayToMinute
                   | IntervalDayToSecond
                   | IntervalHourToMinute
                   | IntervalHourToSecond
                   | IntervalMinuteToSecond
                   deriving (Show, Eq, Typeable, Data)
 
data ExtractField = ExtractCentury
                  | ExtractDay
                  | ExtractDecade
                  | ExtractDow
                  | ExtractDoy
                  | ExtractEpoch
                  | ExtractHour
                  | ExtractIsodow
                  | ExtractIsoyear
                  | ExtractMicroseconds
                  | ExtractMillennium
                  | ExtractMilliseconds
                  | ExtractMinute
                  | ExtractMonth
                  | ExtractQuarter
                  | ExtractSecond
                  | ExtractTimezone
                  | ExtractTimezoneHour
                  | ExtractTimezoneMinute
                  | ExtractWeek
                  | ExtractYear
                  deriving (Show, Eq, Typeable, Data)
 
data FrameClause = FrameUnboundedPreceding
                 | FrameUnboundedFull
                 | FrameRowsUnboundedPreceding
                 deriving (Show, Eq, Typeable, Data)
 
data AlterTableAction = AddConstraint Annotation Constraint
                      | AlterColumnDefault Annotation String ScalarExpr
                      deriving (Data, Eq, Show, Typeable)
 
data AttributeDef = AttributeDef Annotation String TypeName
                                 MaybeScalarExpr RowConstraintList
                  deriving (Data, Eq, Show, Typeable)
 
data Constraint = CheckConstraint Annotation String ScalarExpr
                | PrimaryKeyConstraint Annotation String [String]
                | ReferenceConstraint Annotation String [String] String [String]
                                      Cascade Cascade
                | UniqueConstraint Annotation String [String]
                deriving (Data, Eq, Show, Typeable)
 
data FnBody = PlpgsqlFnBody Annotation Statement
            | SqlFnBody Annotation StatementList
            deriving (Data, Eq, Show, Typeable)
 
data InList = InList Annotation ScalarExprList
            | InQueryExpr Annotation QueryExpr
            deriving (Data, Eq, Show, Typeable)
 
data JoinExpr = JoinOn Annotation ScalarExpr
              | JoinUsing Annotation [String]
              deriving (Data, Eq, Show, Typeable)
 
data ParamDef = ParamDef Annotation String TypeName
              | ParamDefTp Annotation TypeName
              deriving (Data, Eq, Show, Typeable)
 
data QueryExpr = CombineQueryExpr Annotation CombineType QueryExpr
                                  QueryExpr
               | Select Annotation Distinct SelectList TableRefList MaybeBoolExpr
                        ScalarExprList MaybeBoolExpr ScalarExprDirectionPairList
                        MaybeScalarExpr MaybeScalarExpr
               | Values Annotation ScalarExprListList
               | WithQueryExpr Annotation WithQueryList QueryExpr
               deriving (Data, Eq, Show, Typeable)
 
data RowConstraint = NotNullConstraint Annotation String
                   | NullConstraint Annotation String
                   | RowCheckConstraint Annotation String ScalarExpr
                   | RowPrimaryKeyConstraint Annotation String
                   | RowReferenceConstraint Annotation String String (Maybe String)
                                            Cascade Cascade
                   | RowUniqueConstraint Annotation String
                   deriving (Data, Eq, Show, Typeable)
 
data SQIdentifier = SQIdentifier Annotation [String]
                  deriving (Data, Eq, Show, Typeable)
 
data ScalarExpr = BooleanLit Annotation Bool
                | Case Annotation CaseScalarExprListScalarExprPairList
                       MaybeScalarExpr
                | CaseSimple Annotation ScalarExpr
                             CaseScalarExprListScalarExprPairList MaybeScalarExpr
                | Cast Annotation ScalarExpr TypeName
                | Exists Annotation QueryExpr
                | Extract Annotation ExtractField ScalarExpr
                | FunCall Annotation String ScalarExprList
                | Identifier Annotation String
                | InPredicate Annotation ScalarExpr Bool InList
                | Interval Annotation String IntervalField (Maybe Int)
                | LiftOperator Annotation String LiftFlavour ScalarExprList
                | NullLit Annotation
                | NumberLit Annotation String
                | Placeholder Annotation
                | PositionalArg Annotation Integer
                | QIdentifier Annotation ScalarExpr String
                | ScalarSubQuery Annotation QueryExpr
                | StringLit Annotation String
                | TypedStringLit Annotation TypeName String
                | WindowFn Annotation ScalarExpr ScalarExprList ScalarExprList
                           Direction FrameClause
                | AntiScalarExpr String
                deriving (Data, Eq, Show, Typeable)
 
data SelectItem = SelExp Annotation ScalarExpr
                | SelectItem Annotation ScalarExpr String
                deriving (Data, Eq, Show, Typeable)
 
data SelectList = SelectList Annotation SelectItemList
                deriving (Data, Eq, Show, Typeable)
 
data Statement = AlterSequence Annotation String SQIdentifier
               | AlterTable Annotation String AlterTableActionList
               | Assignment Annotation ScalarExpr ScalarExpr
               | Block Annotation (Maybe String) VarDefList StatementList
               | CaseStatement Annotation ScalarExprListStatementListPairList
                               StatementList
               | CaseStatementSimple Annotation ScalarExpr
                                     ScalarExprListStatementListPairList StatementList
               | ContinueStatement Annotation (Maybe String)
               | Copy Annotation String [String] CopySource
               | CopyData Annotation String
               | CreateDomain Annotation String TypeName String MaybeBoolExpr
               | CreateFunction Annotation String ParamDefList TypeName Replace
                                Language FnBody Volatility
               | CreateLanguage Annotation String
               | CreateSequence Annotation String Integer Integer Integer Integer
                                Integer
               | CreateTable Annotation String AttributeDefList ConstraintList
               | CreateTableAs Annotation String QueryExpr
               | CreateTrigger Annotation String TriggerWhen [TriggerEvent] String
                               TriggerFire String ScalarExprList
               | CreateType Annotation String TypeAttributeDefList
               | CreateView Annotation String (Maybe [String]) QueryExpr
               | Delete Annotation SQIdentifier TableRefList MaybeBoolExpr
                        MaybeSelectList
               | DropFunction Annotation IfExists StringTypeNameListPairList
                              Cascade
               | DropSomething Annotation DropType IfExists [String] Cascade
               | Execute Annotation ScalarExpr
               | ExitStatement Annotation (Maybe String)
               | ForIntegerStatement Annotation (Maybe String) ScalarExpr
                                     ScalarExpr ScalarExpr StatementList
               | ForQueryStatement Annotation (Maybe String) ScalarExpr QueryExpr
                                   StatementList
               | If Annotation ScalarExprStatementListPairList StatementList
               | Insert Annotation SQIdentifier [String] QueryExpr MaybeSelectList
               | Into Annotation Bool ScalarExprList Statement
               | LoopStatement Annotation (Maybe String) StatementList
               | Notify Annotation String
               | NullStatement Annotation
               | Perform Annotation ScalarExpr
               | QueryStatement Annotation QueryExpr
               | Raise Annotation RaiseType String ScalarExprList
               | Return Annotation MaybeScalarExpr
               | ReturnNext Annotation ScalarExpr
               | ReturnQuery Annotation QueryExpr
               | Set Annotation String [SetValue]
               | Truncate Annotation [String] RestartIdentity Cascade
               | Update Annotation SQIdentifier ScalarExprList TableRefList
                        MaybeBoolExpr MaybeSelectList
               | WhileStatement Annotation (Maybe String) ScalarExpr StatementList
               | AntiStatement String
               deriving (Data, Eq, Show, Typeable)
 
data TableAlias = FullAlias Annotation String [String]
                | NoAlias Annotation
                | TableAlias Annotation String
                deriving (Data, Eq, Show, Typeable)
 
data TableRef = FunTref Annotation ScalarExpr TableAlias
              | JoinTref Annotation TableRef Natural JoinType TableRef OnExpr
                         TableAlias
              | SubTref Annotation QueryExpr TableAlias
              | Tref Annotation SQIdentifier TableAlias
              deriving (Data, Eq, Show, Typeable)
 
data TypeAttributeDef = TypeAttDef Annotation String TypeName
                      deriving (Data, Eq, Show, Typeable)
 
data TypeName = ArrayTypeName Annotation TypeName
              | Prec2TypeName Annotation String Integer Integer
              | PrecTypeName Annotation String Integer
              | SetOfTypeName Annotation TypeName
              | SimpleTypeName Annotation String
              deriving (Data, Eq, Show, Typeable)
 
data VarDef = ParamAlias Annotation String Integer
            | VarAlias Annotation String String
            | VarDef Annotation String TypeName (Maybe ScalarExpr)
            deriving (Data, Eq, Show, Typeable)
 
data WithQuery = WithQuery Annotation String (Maybe [String])
                           QueryExpr
               deriving (Data, Eq, Show, Typeable)
 
type AlterTableActionList = [AlterTableAction]
 
type AttributeDefList = [AttributeDef]
 
type CaseScalarExprListScalarExprPair =
     (ScalarExprList, ScalarExpr)
 
type CaseScalarExprListScalarExprPairList =
     [CaseScalarExprListScalarExprPair]
 
type ConstraintList = [Constraint]
 
type MaybeBoolExpr = Maybe ScalarExpr
 
type MaybeScalarExpr = Maybe ScalarExpr
 
type MaybeSelectList = Maybe SelectList
 
type OnExpr = Maybe JoinExpr
 
type ParamDefList = [ParamDef]
 
type RowConstraintList = [RowConstraint]
 
type ScalarExprDirectionPair = (ScalarExpr, Direction)
 
type ScalarExprDirectionPairList = [ScalarExprDirectionPair]
 
type ScalarExprList = [ScalarExpr]
 
type ScalarExprListList = [ScalarExprList]
 
type ScalarExprListStatementListPair =
     (ScalarExprList, StatementList)
 
type ScalarExprListStatementListPairList =
     [ScalarExprListStatementListPair]
 
type ScalarExprStatementListPair = (ScalarExpr, StatementList)
 
type ScalarExprStatementListPairList =
     [ScalarExprStatementListPair]
 
type SelectItemList = [SelectItem]
 
type StatementList = [Statement]
 
type StringTypeNameListPair = (String, TypeNameList)
 
type StringTypeNameListPairList = [StringTypeNameListPair]
 
type TableRefList = [TableRef]
 
type TypeAttributeDefList = [TypeAttributeDef]
 
type TypeNameList = [TypeName]
 
type VarDefList = [VarDef]
 
type WithQueryList = [WithQuery]
 
joinType :: JoinType -> A.JoinType
joinType x
  = case x of
        Inner -> A.Inner
        LeftOuter -> A.LeftOuter
        RightOuter -> A.RightOuter
        FullOuter -> A.FullOuter
        Cross -> A.Cross
 
copySource :: CopySource -> A.CopySource
copySource x
  = case x of
        CopyFilename a1 -> A.CopyFilename a1
        Stdin -> A.Stdin
 
setValue :: SetValue -> A.SetValue
setValue x
  = case x of
        SetStr a1 a2 -> A.SetStr a1 a2
        SetId a1 a2 -> A.SetId a1 a2
        SetNum a1 a2 -> A.SetNum a1 a2
 
triggerWhen :: TriggerWhen -> A.TriggerWhen
triggerWhen x
  = case x of
        TriggerBefore -> A.TriggerBefore
        TriggerAfter -> A.TriggerAfter
 
triggerEvent :: TriggerEvent -> A.TriggerEvent
triggerEvent x
  = case x of
        TInsert -> A.TInsert
        TUpdate -> A.TUpdate
        TDelete -> A.TDelete
        AntiTriggerEvent _ -> error "can't convert anti triggerEvent"
 
triggerFire :: TriggerFire -> A.TriggerFire
triggerFire x
  = case x of
        EachRow -> A.EachRow
        EachStatement -> A.EachStatement
 
raiseType :: RaiseType -> A.RaiseType
raiseType x
  = case x of
        RNotice -> A.RNotice
        RException -> A.RException
        RError -> A.RError
 
combineType :: CombineType -> A.CombineType
combineType x
  = case x of
        Except -> A.Except
        Union -> A.Union
        Intersect -> A.Intersect
        UnionAll -> A.UnionAll
 
volatility :: Volatility -> A.Volatility
volatility x
  = case x of
        Volatile -> A.Volatile
        Stable -> A.Stable
        Immutable -> A.Immutable
 
language :: Language -> A.Language
language x
  = case x of
        Sql -> A.Sql
        Plpgsql -> A.Plpgsql
 
dropType :: DropType -> A.DropType
dropType x
  = case x of
        Table -> A.Table
        Domain -> A.Domain
        View -> A.View
        Type -> A.Type
 
cascade :: Cascade -> A.Cascade
cascade x
  = case x of
        Cascade -> A.Cascade
        Restrict -> A.Restrict
 
direction :: Direction -> A.Direction
direction x
  = case x of
        Asc -> A.Asc
        Desc -> A.Desc
 
distinct :: Distinct -> A.Distinct
distinct x
  = case x of
        Distinct -> A.Distinct
        Dupes -> A.Dupes
 
natural :: Natural -> A.Natural
natural x
  = case x of
        Natural -> A.Natural
        Unnatural -> A.Unnatural
 
ifExists :: IfExists -> A.IfExists
ifExists x
  = case x of
        Require -> A.Require
        IfExists -> A.IfExists
 
replace :: Replace -> A.Replace
replace x
  = case x of
        Replace -> A.Replace
        NoReplace -> A.NoReplace
 
restartIdentity :: RestartIdentity -> A.RestartIdentity
restartIdentity x
  = case x of
        RestartIdentity -> A.RestartIdentity
        ContinueIdentity -> A.ContinueIdentity
 
liftFlavour :: LiftFlavour -> A.LiftFlavour
liftFlavour x
  = case x of
        LiftAny -> A.LiftAny
        LiftAll -> A.LiftAll
 
intervalField :: IntervalField -> A.IntervalField
intervalField x
  = case x of
        IntervalYear -> A.IntervalYear
        IntervalMonth -> A.IntervalMonth
        IntervalDay -> A.IntervalDay
        IntervalHour -> A.IntervalHour
        IntervalMinute -> A.IntervalMinute
        IntervalSecond -> A.IntervalSecond
        IntervalYearToMonth -> A.IntervalYearToMonth
        IntervalDayToHour -> A.IntervalDayToHour
        IntervalDayToMinute -> A.IntervalDayToMinute
        IntervalDayToSecond -> A.IntervalDayToSecond
        IntervalHourToMinute -> A.IntervalHourToMinute
        IntervalHourToSecond -> A.IntervalHourToSecond
        IntervalMinuteToSecond -> A.IntervalMinuteToSecond
 
extractField :: ExtractField -> A.ExtractField
extractField x
  = case x of
        ExtractCentury -> A.ExtractCentury
        ExtractDay -> A.ExtractDay
        ExtractDecade -> A.ExtractDecade
        ExtractDow -> A.ExtractDow
        ExtractDoy -> A.ExtractDoy
        ExtractEpoch -> A.ExtractEpoch
        ExtractHour -> A.ExtractHour
        ExtractIsodow -> A.ExtractIsodow
        ExtractIsoyear -> A.ExtractIsoyear
        ExtractMicroseconds -> A.ExtractMicroseconds
        ExtractMillennium -> A.ExtractMillennium
        ExtractMilliseconds -> A.ExtractMilliseconds
        ExtractMinute -> A.ExtractMinute
        ExtractMonth -> A.ExtractMonth
        ExtractQuarter -> A.ExtractQuarter
        ExtractSecond -> A.ExtractSecond
        ExtractTimezone -> A.ExtractTimezone
        ExtractTimezoneHour -> A.ExtractTimezoneHour
        ExtractTimezoneMinute -> A.ExtractTimezoneMinute
        ExtractWeek -> A.ExtractWeek
        ExtractYear -> A.ExtractYear
 
frameClause :: FrameClause -> A.FrameClause
frameClause x
  = case x of
        FrameUnboundedPreceding -> A.FrameUnboundedPreceding
        FrameUnboundedFull -> A.FrameUnboundedFull
        FrameRowsUnboundedPreceding -> A.FrameRowsUnboundedPreceding
 
alterTableAction :: AlterTableAction -> A.AlterTableAction
alterTableAction x
  = case x of
        AddConstraint a1 a2 -> A.AddConstraint a1 (constraint a2)
        AlterColumnDefault a1 a2 a3 -> A.AlterColumnDefault a1 a2
                                         (scalarExpr a3)
 
attributeDef :: AttributeDef -> A.AttributeDef
attributeDef x
  = case x of
        AttributeDef a1 a2 a3 a4 a5 -> A.AttributeDef a1 a2 (typeName a3)
                                         (maybeScalarExpr a4)
                                         (rowConstraintList a5)
 
constraint :: Constraint -> A.Constraint
constraint x
  = case x of
        CheckConstraint a1 a2 a3 -> A.CheckConstraint a1 a2 (scalarExpr a3)
        PrimaryKeyConstraint a1 a2 a3 -> A.PrimaryKeyConstraint a1 a2 a3
        ReferenceConstraint a1 a2 a3 a4 a5 a6 a7 -> A.ReferenceConstraint
                                                      a1
                                                      a2
                                                      a3
                                                      a4
                                                      a5
                                                      (cascade a6)
                                                      (cascade a7)
        UniqueConstraint a1 a2 a3 -> A.UniqueConstraint a1 a2 a3
 
fnBody :: FnBody -> A.FnBody
fnBody x
  = case x of
        PlpgsqlFnBody a1 a2 -> A.PlpgsqlFnBody a1 (statement a2)
        SqlFnBody a1 a2 -> A.SqlFnBody a1 (statementList a2)
 
inList :: InList -> A.InList
inList x
  = case x of
        InList a1 a2 -> A.InList a1 (scalarExprList a2)
        InQueryExpr a1 a2 -> A.InQueryExpr a1 (queryExpr a2)
 
joinExpr :: JoinExpr -> A.JoinExpr
joinExpr x
  = case x of
        JoinOn a1 a2 -> A.JoinOn a1 (scalarExpr a2)
        JoinUsing a1 a2 -> A.JoinUsing a1 a2
 
paramDef :: ParamDef -> A.ParamDef
paramDef x
  = case x of
        ParamDef a1 a2 a3 -> A.ParamDef a1 a2 (typeName a3)
        ParamDefTp a1 a2 -> A.ParamDefTp a1 (typeName a2)
 
queryExpr :: QueryExpr -> A.QueryExpr
queryExpr x
  = case x of
        CombineQueryExpr a1 a2 a3 a4 -> A.CombineQueryExpr a1
                                          (combineType a2)
                                          (queryExpr a3)
                                          (queryExpr a4)
        Select a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 -> A.Select a1 (distinct a2)
                                                   (selectList a3)
                                                   (tableRefList a4)
                                                   (maybeBoolExpr a5)
                                                   (scalarExprList a6)
                                                   (maybeBoolExpr a7)
                                                   (scalarExprDirectionPairList a8)
                                                   (maybeScalarExpr a9)
                                                   (maybeScalarExpr a10)
        Values a1 a2 -> A.Values a1 (scalarExprListList a2)
        WithQueryExpr a1 a2 a3 -> A.WithQueryExpr a1 (withQueryList a2)
                                    (queryExpr a3)
 
rowConstraint :: RowConstraint -> A.RowConstraint
rowConstraint x
  = case x of
        NotNullConstraint a1 a2 -> A.NotNullConstraint a1 a2
        NullConstraint a1 a2 -> A.NullConstraint a1 a2
        RowCheckConstraint a1 a2 a3 -> A.RowCheckConstraint a1 a2
                                         (scalarExpr a3)
        RowPrimaryKeyConstraint a1 a2 -> A.RowPrimaryKeyConstraint a1 a2
        RowReferenceConstraint a1 a2 a3 a4 a5
          a6 -> A.RowReferenceConstraint a1 a2 a3 a4 (cascade a5)
                  (cascade a6)
        RowUniqueConstraint a1 a2 -> A.RowUniqueConstraint a1 a2
 
sQIdentifier :: SQIdentifier -> A.SQIdentifier
sQIdentifier x
  = case x of
        SQIdentifier a1 a2 -> A.SQIdentifier a1 a2
 
scalarExpr :: ScalarExpr -> A.ScalarExpr
scalarExpr x
  = case x of
        BooleanLit a1 a2 -> A.BooleanLit a1 a2
        Case a1 a2 a3 -> A.Case a1
                           (caseScalarExprListScalarExprPairList a2)
                           (maybeScalarExpr a3)
        CaseSimple a1 a2 a3 a4 -> A.CaseSimple a1 (scalarExpr a2)
                                    (caseScalarExprListScalarExprPairList a3)
                                    (maybeScalarExpr a4)
        Cast a1 a2 a3 -> A.Cast a1 (scalarExpr a2) (typeName a3)
        Exists a1 a2 -> A.Exists a1 (queryExpr a2)
        Extract a1 a2 a3 -> A.Extract a1 (extractField a2) (scalarExpr a3)
        FunCall a1 a2 a3 -> A.FunCall a1 a2 (scalarExprList a3)
        Identifier a1 a2 -> A.Identifier a1 a2
        InPredicate a1 a2 a3 a4 -> A.InPredicate a1 (scalarExpr a2) a3
                                     (inList a4)
        Interval a1 a2 a3 a4 -> A.Interval a1 a2 (intervalField a3) a4
        LiftOperator a1 a2 a3 a4 -> A.LiftOperator a1 a2 (liftFlavour a3)
                                      (scalarExprList a4)
        NullLit a1 -> A.NullLit a1
        NumberLit a1 a2 -> A.NumberLit a1 a2
        Placeholder a1 -> A.Placeholder a1
        PositionalArg a1 a2 -> A.PositionalArg a1 a2
        QIdentifier a1 a2 a3 -> A.QIdentifier a1 (scalarExpr a2) a3
        ScalarSubQuery a1 a2 -> A.ScalarSubQuery a1 (queryExpr a2)
        StringLit a1 a2 -> A.StringLit a1 a2
        TypedStringLit a1 a2 a3 -> A.TypedStringLit a1 (typeName a2) a3
        WindowFn a1 a2 a3 a4 a5 a6 -> A.WindowFn a1 (scalarExpr a2)
                                        (scalarExprList a3)
                                        (scalarExprList a4)
                                        (direction a5)
                                        (frameClause a6)
        AntiScalarExpr _ -> error "can't convert anti scalarExpr"
 
selectItem :: SelectItem -> A.SelectItem
selectItem x
  = case x of
        SelExp a1 a2 -> A.SelExp a1 (scalarExpr a2)
        SelectItem a1 a2 a3 -> A.SelectItem a1 (scalarExpr a2) a3
 
selectList :: SelectList -> A.SelectList
selectList x
  = case x of
        SelectList a1 a2 -> A.SelectList a1 (selectItemList a2)
 
statement :: Statement -> A.Statement
statement x
  = case x of
        AlterSequence a1 a2 a3 -> A.AlterSequence a1 a2 (sQIdentifier a3)
        AlterTable a1 a2 a3 -> A.AlterTable a1 a2 (alterTableActionList a3)
        Assignment a1 a2 a3 -> A.Assignment a1 (scalarExpr a2)
                                 (scalarExpr a3)
        Block a1 a2 a3 a4 -> A.Block a1 a2 (varDefList a3)
                               (statementList a4)
        CaseStatement a1 a2 a3 -> A.CaseStatement a1
                                    (scalarExprListStatementListPairList a2)
                                    (statementList a3)
        CaseStatementSimple a1 a2 a3 a4 -> A.CaseStatementSimple a1
                                             (scalarExpr a2)
                                             (scalarExprListStatementListPairList a3)
                                             (statementList a4)
        ContinueStatement a1 a2 -> A.ContinueStatement a1 a2
        Copy a1 a2 a3 a4 -> A.Copy a1 a2 a3 (copySource a4)
        CopyData a1 a2 -> A.CopyData a1 a2
        CreateDomain a1 a2 a3 a4 a5 -> A.CreateDomain a1 a2 (typeName a3)
                                         a4
                                         (maybeBoolExpr a5)
        CreateFunction a1 a2 a3 a4 a5 a6 a7 a8 -> A.CreateFunction a1 a2
                                                    (paramDefList a3)
                                                    (typeName a4)
                                                    (replace a5)
                                                    (language a6)
                                                    (fnBody a7)
                                                    (volatility a8)
        CreateLanguage a1 a2 -> A.CreateLanguage a1 a2
        CreateSequence a1 a2 a3 a4 a5 a6 a7 -> A.CreateSequence a1 a2 a3 a4
                                                 a5
                                                 a6
                                                 a7
        CreateTable a1 a2 a3 a4 -> A.CreateTable a1 a2
                                     (attributeDefList a3)
                                     (constraintList a4)
        CreateTableAs a1 a2 a3 -> A.CreateTableAs a1 a2 (queryExpr a3)
        CreateTrigger a1 a2 a3 a4 a5 a6 a7 a8 -> A.CreateTrigger a1 a2
                                                   (triggerWhen a3)
                                                   (fmap triggerEvent a4)
                                                   a5
                                                   (triggerFire a6)
                                                   a7
                                                   (scalarExprList a8)
        CreateType a1 a2 a3 -> A.CreateType a1 a2 (typeAttributeDefList a3)
        CreateView a1 a2 a3 a4 -> A.CreateView a1 a2 a3 (queryExpr a4)
        Delete a1 a2 a3 a4 a5 -> A.Delete a1 (sQIdentifier a2)
                                   (tableRefList a3)
                                   (maybeBoolExpr a4)
                                   (maybeSelectList a5)
        DropFunction a1 a2 a3 a4 -> A.DropFunction a1 (ifExists a2)
                                      (stringTypeNameListPairList a3)
                                      (cascade a4)
        DropSomething a1 a2 a3 a4 a5 -> A.DropSomething a1 (dropType a2)
                                          (ifExists a3)
                                          a4
                                          (cascade a5)
        Execute a1 a2 -> A.Execute a1 (scalarExpr a2)
        ExitStatement a1 a2 -> A.ExitStatement a1 a2
        ForIntegerStatement a1 a2 a3 a4 a5 a6 -> A.ForIntegerStatement a1
                                                   a2
                                                   (scalarExpr a3)
                                                   (scalarExpr a4)
                                                   (scalarExpr a5)
                                                   (statementList a6)
        ForQueryStatement a1 a2 a3 a4 a5 -> A.ForQueryStatement a1 a2
                                              (scalarExpr a3)
                                              (queryExpr a4)
                                              (statementList a5)
        If a1 a2 a3 -> A.If a1 (scalarExprStatementListPairList a2)
                         (statementList a3)
        Insert a1 a2 a3 a4 a5 -> A.Insert a1 (sQIdentifier a2) a3
                                   (queryExpr a4)
                                   (maybeSelectList a5)
        Into a1 a2 a3 a4 -> A.Into a1 a2 (scalarExprList a3) (statement a4)
        LoopStatement a1 a2 a3 -> A.LoopStatement a1 a2 (statementList a3)
        Notify a1 a2 -> A.Notify a1 a2
        NullStatement a1 -> A.NullStatement a1
        Perform a1 a2 -> A.Perform a1 (scalarExpr a2)
        QueryStatement a1 a2 -> A.QueryStatement a1 (queryExpr a2)
        Raise a1 a2 a3 a4 -> A.Raise a1 (raiseType a2) a3
                               (scalarExprList a4)
        Return a1 a2 -> A.Return a1 (maybeScalarExpr a2)
        ReturnNext a1 a2 -> A.ReturnNext a1 (scalarExpr a2)
        ReturnQuery a1 a2 -> A.ReturnQuery a1 (queryExpr a2)
        Set a1 a2 a3 -> A.Set a1 a2 (fmap setValue a3)
        Truncate a1 a2 a3 a4 -> A.Truncate a1 a2 (restartIdentity a3)
                                  (cascade a4)
        Update a1 a2 a3 a4 a5 a6 -> A.Update a1 (sQIdentifier a2)
                                      (scalarExprList a3)
                                      (tableRefList a4)
                                      (maybeBoolExpr a5)
                                      (maybeSelectList a6)
        WhileStatement a1 a2 a3 a4 -> A.WhileStatement a1 a2
                                        (scalarExpr a3)
                                        (statementList a4)
        AntiStatement _ -> error "can't convert anti statement"
 
tableAlias :: TableAlias -> A.TableAlias
tableAlias x
  = case x of
        FullAlias a1 a2 a3 -> A.FullAlias a1 a2 a3
        NoAlias a1 -> A.NoAlias a1
        TableAlias a1 a2 -> A.TableAlias a1 a2
 
tableRef :: TableRef -> A.TableRef
tableRef x
  = case x of
        FunTref a1 a2 a3 -> A.FunTref a1 (scalarExpr a2) (tableAlias a3)
        JoinTref a1 a2 a3 a4 a5 a6 a7 -> A.JoinTref a1 (tableRef a2)
                                           (natural a3)
                                           (joinType a4)
                                           (tableRef a5)
                                           (onExpr a6)
                                           (tableAlias a7)
        SubTref a1 a2 a3 -> A.SubTref a1 (queryExpr a2) (tableAlias a3)
        Tref a1 a2 a3 -> A.Tref a1 (sQIdentifier a2) (tableAlias a3)
 
typeAttributeDef :: TypeAttributeDef -> A.TypeAttributeDef
typeAttributeDef x
  = case x of
        TypeAttDef a1 a2 a3 -> A.TypeAttDef a1 a2 (typeName a3)
 
typeName :: TypeName -> A.TypeName
typeName x
  = case x of
        ArrayTypeName a1 a2 -> A.ArrayTypeName a1 (typeName a2)
        Prec2TypeName a1 a2 a3 a4 -> A.Prec2TypeName a1 a2 a3 a4
        PrecTypeName a1 a2 a3 -> A.PrecTypeName a1 a2 a3
        SetOfTypeName a1 a2 -> A.SetOfTypeName a1 (typeName a2)
        SimpleTypeName a1 a2 -> A.SimpleTypeName a1 a2
 
varDef :: VarDef -> A.VarDef
varDef x
  = case x of
        ParamAlias a1 a2 a3 -> A.ParamAlias a1 a2 a3
        VarAlias a1 a2 a3 -> A.VarAlias a1 a2 a3
        VarDef a1 a2 a3 a4 -> A.VarDef a1 a2 (typeName a3)
                                (maybeScalarExpr a4)
 
withQuery :: WithQuery -> A.WithQuery
withQuery x
  = case x of
        WithQuery a1 a2 a3 a4 -> A.WithQuery a1 a2 a3 (queryExpr a4)
 
alterTableActionList ::
                     AlterTableActionList -> A.AlterTableActionList
alterTableActionList = fmap alterTableAction
 
attributeDefList :: AttributeDefList -> A.AttributeDefList
attributeDefList = fmap attributeDef
 
caseScalarExprListScalarExprPair ::
                                 CaseScalarExprListScalarExprPair ->
                                   A.CaseScalarExprListScalarExprPair
caseScalarExprListScalarExprPair (a, b)
  = (scalarExprList a, scalarExpr b)
 
caseScalarExprListScalarExprPairList ::
                                     CaseScalarExprListScalarExprPairList ->
                                       A.CaseScalarExprListScalarExprPairList
caseScalarExprListScalarExprPairList
  = fmap caseScalarExprListScalarExprPair
 
constraintList :: ConstraintList -> A.ConstraintList
constraintList = fmap constraint
 
maybeBoolExpr :: MaybeBoolExpr -> A.MaybeBoolExpr
maybeBoolExpr = fmap scalarExpr
 
maybeScalarExpr :: MaybeScalarExpr -> A.MaybeScalarExpr
maybeScalarExpr = fmap scalarExpr
 
maybeSelectList :: MaybeSelectList -> A.MaybeSelectList
maybeSelectList = fmap selectList
 
onExpr :: OnExpr -> A.OnExpr
onExpr = fmap joinExpr
 
paramDefList :: ParamDefList -> A.ParamDefList
paramDefList = fmap paramDef
 
rowConstraintList :: RowConstraintList -> A.RowConstraintList
rowConstraintList = fmap rowConstraint
 
scalarExprDirectionPair ::
                        ScalarExprDirectionPair -> A.ScalarExprDirectionPair
scalarExprDirectionPair (a, b) = (scalarExpr a, direction b)
 
scalarExprDirectionPairList ::
                            ScalarExprDirectionPairList -> A.ScalarExprDirectionPairList
scalarExprDirectionPairList = fmap scalarExprDirectionPair
 
scalarExprList :: ScalarExprList -> A.ScalarExprList
scalarExprList = fmap scalarExpr
 
scalarExprListList :: ScalarExprListList -> A.ScalarExprListList
scalarExprListList = fmap scalarExprList
 
scalarExprListStatementListPair ::
                                ScalarExprListStatementListPair ->
                                  A.ScalarExprListStatementListPair
scalarExprListStatementListPair (a, b)
  = (scalarExprList a, statementList b)
 
scalarExprListStatementListPairList ::
                                    ScalarExprListStatementListPairList ->
                                      A.ScalarExprListStatementListPairList
scalarExprListStatementListPairList
  = fmap scalarExprListStatementListPair
 
scalarExprStatementListPair ::
                            ScalarExprStatementListPair -> A.ScalarExprStatementListPair
scalarExprStatementListPair (a, b)
  = (scalarExpr a, statementList b)
 
scalarExprStatementListPairList ::
                                ScalarExprStatementListPairList ->
                                  A.ScalarExprStatementListPairList
scalarExprStatementListPairList = fmap scalarExprStatementListPair
 
selectItemList :: SelectItemList -> A.SelectItemList
selectItemList = fmap selectItem
 
statementList :: StatementList -> A.StatementList
statementList = fmap statement
 
stringTypeNameListPair ::
                       StringTypeNameListPair -> A.StringTypeNameListPair
stringTypeNameListPair (a, b) = (a, typeNameList b)
 
stringTypeNameListPairList ::
                           StringTypeNameListPairList -> A.StringTypeNameListPairList
stringTypeNameListPairList = fmap stringTypeNameListPair
 
tableRefList :: TableRefList -> A.TableRefList
tableRefList = fmap tableRef
 
typeAttributeDefList ::
                     TypeAttributeDefList -> A.TypeAttributeDefList
typeAttributeDefList = fmap typeAttributeDef
 
typeNameList :: TypeNameList -> A.TypeNameList
typeNameList = fmap typeName
 
varDefList :: VarDefList -> A.VarDefList
varDefList = fmap varDef
 
withQueryList :: WithQueryList -> A.WithQueryList
withQueryList = fmap withQuery