> module Language.SQL.SimpleSQL.Odbc (odbcTests) where > import Language.SQL.SimpleSQL.TestTypes > import Language.SQL.SimpleSQL.Syntax > odbcTests :: TestItem > odbcTests = Group "odbc" [ > Group "datetime" [ > e "{d '2000-01-01'}" (OdbcLiteral OLDate "2000-01-01") > ,e "{t '12:00:01.1'}" (OdbcLiteral OLTime "12:00:01.1") > ,e "{ts '2000-01-01 12:00:01.1'}" > (OdbcLiteral OLTimestamp "2000-01-01 12:00:01.1") > ] > ,Group "functions" [ > e "{fn CHARACTER_LENGTH(string_exp)}" > $ OdbcFunc (ap "CHARACTER_LENGTH" [iden "string_exp"]) > ,e "{fn EXTRACT(day from t)}" > $ OdbcFunc (SpecialOpK [Name Nothing "extract"] (Just $ Iden [Name Nothing "day"]) [("from", Iden [Name Nothing "t"])]) > ,e "{fn now()}" > $ OdbcFunc (ap "now" []) > ,e "{fn CONVERT('2000-01-01', SQL_DATE)}" > $ OdbcFunc (ap "CONVERT" > [StringLit "'" "'" "2000-01-01" > ,iden "SQL_DATE"]) > ,e "{fn CONVERT({fn CURDATE()}, SQL_DATE)}" > $ OdbcFunc (ap "CONVERT" > [OdbcFunc (ap "CURDATE" []) > ,iden "SQL_DATE"]) > ] > {-,Group "outer join" [ > ParseQueryExpr defaultParseFlags > "select * from {oj t1 left outer join t2 on true}" > $ makeSelect > {selSelectList = sl [si $ Star ea] > ,selTref = [OdbcTableRef ea (JoinTref ea (tref "t1") Unnatural LeftOuter Nothing > (tref "t2") (Just $ JoinOn ea (BooleanLit ea True)))]}] > ,Group "check parsing bugs" [ > ParseQueryExpr defaultParseFlags > "select {fn CONVERT(cint,SQL_BIGINT)} from t;" > $ makeSelect > {selSelectList = sl [si $ OdbcFunc ea (App ea (name "CONVERT") > [ei "cint" > ,ei "SQL_BIGINT"])] > ,selTref = [tref "t"]}]-} > ] > where > e = TestValueExpr ansi2011 {allowOdbc = True} > --tsql = ParseProcSql defaultParseFlags {pfDialect=sqlServerDialect} > ap n = App [Name Nothing n] > iden n = Iden [Name Nothing n]