r9364: Various fixes from CommonSQL Tutorial.
[clsql.git] / tests / test-syntax.lisp
index 8d1a86382a668680e53dba26247753cb3941dbe9..8591817cf58cf58d68c53d50942fc3b26f8ed34c 100644 (file)
@@ -73,7 +73,7 @@
 
 (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)])
 
 (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 
  "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/sets/1 
     (clsql:sql [union [select [foo] :from [bar]] [select [baz] :from [bar]]])
  "SELECT FOO FROM BAR UNION SELECT BAZ FROM BAR")
     (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 EXCEPT SELECT BAZ FROM BAR")
+
 
 (deftest :syntax/function/1
     (clsql:sql [function "COS" [age]])