{-# LANGUAGE OverloadedStrings #-} module Language.SQL.SimpleSQL.CustomDialect (customDialectTests) where import Language.SQL.SimpleSQL.TestTypes customDialectTests :: TestItem customDialectTests = Group "custom dialect tests" (map (uncurry ParseQueryExpr) passTests ++ map (uncurry ParseScalarExprFails) failTests ) where failTests = [(ansi2011,"SELECT DATE('2000-01-01')") ,(ansi2011,"SELECT DATE") ,(dateApp,"SELECT DATE") ,(dateIden,"SELECT DATE('2000-01-01')") -- show this never being allowed as an alias ,(ansi2011,"SELECT a date") ,(dateApp,"SELECT a date") ,(dateIden,"SELECT a date") ] passTests = [(ansi2011,"SELECT a b") ,(noDateKeyword,"SELECT DATE('2000-01-01')") ,(noDateKeyword,"SELECT DATE") ,(dateApp,"SELECT DATE('2000-01-01')") ,(dateIden,"SELECT DATE") ] noDateKeyword = ansi2011 {diKeywords = filter (/="date") (diKeywords ansi2011)} dateIden = ansi2011 {diIdentifierKeywords = "date" : diIdentifierKeywords ansi2011} dateApp = ansi2011 {diAppKeywords = "date" : diAppKeywords ansi2011}