{-# LANGUAGE OverloadedStrings #-} module Language.SQL.SimpleSQL.CustomDialect (customDialectTests) where import Language.SQL.SimpleSQL.TestTypes import Language.SQL.SimpleSQL.TestRunners import Data.Text (Text) customDialectTests :: TestItem customDialectTests = Group "custom dialect tests" $ [q ansi2011 "SELECT a b" ,q noDateKeyword "SELECT DATE('2000-01-01')" ,q noDateKeyword "SELECT DATE" ,q dateApp "SELECT DATE('2000-01-01')" ,q dateIden "SELECT DATE" ,f ansi2011 "SELECT DATE('2000-01-01')" ,f ansi2011 "SELECT DATE" ,f dateApp "SELECT DATE" ,f dateIden "SELECT DATE('2000-01-01')" -- show this never being allowed as an alias ,f ansi2011 "SELECT a date" ,f dateApp "SELECT a date" ,f dateIden "SELECT a date" ] where noDateKeyword = ansi2011 {diKeywords = filter (/="date") (diKeywords ansi2011)} dateIden = ansi2011 {diIdentifierKeywords = "date" : diIdentifierKeywords ansi2011} dateApp = ansi2011 {diAppKeywords = "date" : diAppKeywords ansi2011} q :: HasCallStack => Dialect -> Text -> TestItem q d src = testParseQueryExpr d src f :: HasCallStack => Dialect -> Text -> TestItem f d src = testParseQueryExprFails d src