packages feed

hssqlppp-0.4.2: src-extra/tests/Database/HsSqlPpp/Tests/Parsing/MiscDdl.lhs

> {-# LANGUAGE OverloadedStrings #-}
> module Database.HsSqlPpp.Tests.Parsing.MiscDdl (miscDdlParsingTestData) where
>
> import Database.HsSqlPpp.Ast

> import Database.HsSqlPpp.Tests.Parsing.Utils

> miscDdlParsingTestData:: Item
> miscDdlParsingTestData =
>   Group "misc ddl" [
>     Group "misc create" [
>       s "create view v1 as\n\
>         \select a,b from t;"
>       [CreateView ea
>        (dqi "v1") Nothing
>        (selectFrom [selI "a", selI "b"] (Tref ea (i "t") (NoAlias ea)))]
>      ,s "create view v1(c,d) as\n\
>         \select a,b from t;"
>       [CreateView ea
>        (dqi "v1") (Just [Nmc "c",Nmc "d"])
>        (selectFrom [selI "a", selI "b"] (Tref ea (i "t") (NoAlias ea)))]
>      ,s "create domain td as text check (value in ('t1', 't2'));"
>       [CreateDomain ea (dqi "td") (SimpleTypeName ea "text") ""
>        (Just (InPredicate ea (Identifier ea "value") True
>               (InList ea [stringQ "t1" ,stringQ "t2"])))]
>      ,s "create type tp1 as (\n\
>         \  f1 text,\n\
>         \  f2 text\n\
>         \);"
>       [CreateType ea (dqi "tp1") [TypeAttDef ea (Nmc "f1") (SimpleTypeName ea "text")
>                                  ,TypeAttDef ea (Nmc "f2") (SimpleTypeName ea "text")]]
>
>      ,s "create sequence s start with 5 increment by 4 no maxvalue no minvalue cache 1;"
>         [CreateSequence ea (dqi "s") 4 1 ((2::Integer) ^ (63::Integer) - 1) 5 1]
>
>      ,s "alter sequence s owned by a.b;"
>         [AlterSequence ea (dqi "s") $ qi "a" "b"]
>
>      ,s "create trigger tr\n\
>          \after insert or delete on tb\n\
>          \for each statement\n\
>          \execute procedure fb();"
>         [CreateTrigger ea (Nmc "tr") TriggerAfter [TInsert,TDelete] (dqi "tb") EachStatement (dqi "fb") []]
>      ]
>
>     ,Group "drops" [
>       s "drop domain t;"
>       [DropSomething ea Domain Require [dqi "t"] Restrict]
>      ,s "drop domain if exists t,u cascade;"
>       [DropSomething ea Domain IfExists [dqi "t", dqi "u"] Cascade]
>      ,s "drop domain t restrict;"
>       [DropSomething ea Domain Require [dqi "t"] Restrict]
>
>      ,s "drop type t;"
>       [DropSomething ea Type Require [dqi "t"] Restrict]
>      ,s "drop table t;"
>       [DropSomething ea Table Require [dqi "t"] Restrict]
>      ,s "drop view t;"
>       [DropSomething ea View Require [dqi "t"] Restrict]
>      ]]
>  where
>    s = Stmt