X-Git-Url: http://git.kpe.io/?a=blobdiff_plain;f=tests%2Ftest-syntax.lisp;h=04ea99cbe1c3857383fe98d3b6face4079c285ad;hb=36509b8d390e94b2b0f8e681c09d5e89452978d8;hp=ac8247ef45d903e4aa90938d310d94ae1a21a0cf;hpb=71ac7a8d3e5bea99472b07fa2a089c7173abb1f7;p=clsql.git diff --git a/tests/test-syntax.lisp b/tests/test-syntax.lisp index ac8247e..04ea99c 100644 --- a/tests/test-syntax.lisp +++ b/tests/test-syntax.lisp @@ -40,6 +40,9 @@ (clsql:sql ["SELECT FOO,BAR FROM BAZ"]) "SELECT FOO,BAR FROM BAZ") +(deftest :syntax/generic/6 + (clsql:sql "What's up Doc?") + "'What''s up Doc?'") (deftest :syntax/ident/1 (clsql:sql [foo]) @@ -50,29 +53,30 @@ "FOO.BAR") (deftest :syntax/ident/3 - (clsql:sql ["foo" bar]) - "FOO.BAR") - -;(deftest :syntax/ident/4 -; (clsql:sql [foo "bar"]) -; "FOO \"bar\"") - -(deftest :syntax/ident/5 (clsql:sql [foo :integer]) "FOO") -(deftest :syntax/ident/6 +(deftest :syntax/ident/4 (clsql:sql [foo bar :integer]) "FOO.BAR") +(deftest :syntax/ident/5 + (clsql:sql [foo "bar"]) + "FOO \"bar\"") + +(deftest :syntax/ident/6 + (clsql:sql ["foo" bar]) + "\"foo\".BAR") + (deftest :syntax/ident/7 (clsql:sql ["foo" bar :integer]) - "FOO.BAR") + "\"foo\".BAR") + (deftest :syntax/subquery/1 (clsql:sql [any '(3 4)]) - "(ANY ((3,4)))") + "ANY((3,4))") (deftest :syntax/subquery/2 (clsql:sql [in [foo] '(foo bar baz)]) @@ -80,15 +84,15 @@ (deftest :syntax/subquery/3 (clsql:sql [all '(foo bar baz)]) - "(ALL ((FOO,BAR,BAZ)))") + "ALL((FOO,BAR,BAZ))") (deftest :syntax/subquery/4 (clsql:sql [exists '(foo bar baz)]) - "(EXISTS ((FOO,BAR,BAZ)))") + "EXISTS((FOO,BAR,BAZ))") (deftest :syntax/subquery/5 (clsql:sql [some '(foo bar baz)]) - "(SOME ((FOO,BAR,BAZ)))") + "SOME((FOO,BAR,BAZ))") (deftest :syntax/aggregate/1 @@ -205,13 +209,21 @@ (deftest :syntax/substr/1 (clsql:sql [substr [hello] 1 4]) + "SUBSTR(HELLO,1,4)") + +(deftest :syntax/substring/1 + (clsql:sql [substring [hello] 1 4]) "SUBSTRING(HELLO,1,4)") (deftest :syntax/concat/1 - (clsql:sql [\|\| [foo] [bar] [baz]]) + (clsql:sql [|| [foo] [bar] [baz]]) "(FOO || BAR || BAZ)") +(deftest :syntax/concat/2 + (clsql:sql [concat [foo] [bar]]) + "CONCAT(FOO,BAR)") + (deftest :syntax/pattern/1 (clsql:sql [like [foo] "%v"]) @@ -240,6 +252,20 @@ "GROUP BY FOO") +(deftest :syntax/coalesce/1 + (clsql:sql [coalesce [foo] [bar] "not specified"]) + "COALESCE(FOO,BAR,'not specified')") + +(deftest :syntax/coalesce/2 + (clsql:sql [nvl [foo] "not specified"]) + "COALESCE(FOO,'not specified')") + +(deftest :syntax/nvl/1 + (clsql:sql [nvl [foo] "not specified"]) + "COALESCE(FOO,'not specified')") + + + (deftest :syntax/sets/1 (clsql:sql [union [select [foo] :from [bar]] [select [baz] :from [bar]]]) "SELECT FOO FROM BAR UNION SELECT BAZ FROM BAR") @@ -252,6 +278,10 @@ (clsql:sql [except [select [foo] :from [bar]] [select [baz] :from [bar]]]) "SELECT FOO FROM BAR EXCEPT SELECT BAZ FROM BAR") +(deftest :syntax/sets/4 + (clsql:sql [minus [select [foo] :from [bar]] [select [baz] :from [bar]]]) + "SELECT FOO FROM BAR MINUS SELECT BAZ FROM BAR") + (deftest :syntax/function/1 (clsql:sql [function "COS" [age]])