diff src/monoize.sml @ 1266:459a334345ae

-moduleOf command-line option; compatibility fixes and better error messages for SQLite
author Adam Chlipala <adamc@hcoop.net>
date Thu, 27 May 2010 16:36:17 -0400
parents beb67ff4c8a0
children 56bd4a4f6e66
line wrap: on
line diff
--- a/src/monoize.sml	Thu May 27 15:10:52 2010 -0400
+++ b/src/monoize.sml	Thu May 27 16:36:17 2010 -0400
@@ -1900,7 +1900,8 @@
                                                       {disc = s,
                                                        result = s}), loc),
                                            (L'.ECase (gf "Where",
-                                                      [((L'.PPrim (Prim.String "TRUE"), loc),
+                                                      [((L'.PPrim (Prim.String (#trueString (Settings.currentDbms ()))),
+                                                         loc),
                                                         sc ""),
                                                        ((L'.PWild, loc),
                                                         strcat [sc " WHERE ", gf "Where"])],
@@ -2114,13 +2115,21 @@
                                                            ((L'.PRecord [("2", (L'.PPrim (Prim.String ""), loc), s)], loc),
                                                             (L'.ERel 2, loc)),
                                                            ((L'.PWild, loc),
-                                                            strcat [(L'.EPrim (Prim.String "("), loc),
-                                                                    (L'.ERel 2, loc),
-                                                                    (L'.EPrim (Prim.String " JOIN "), loc),
-                                                                    (L'.ERel 1, loc),
-                                                                    (L'.EPrim (Prim.String " ON "), loc),
-                                                                    (L'.ERel 0, loc),
-                                                                    (L'.EPrim (Prim.String ")"), loc)])],
+                                                            strcat ((if #nestedRelops
+                                                                                      (Settings.currentDbms ()) then
+                                                                                   [(L'.EPrim (Prim.String "("), loc)]
+                                                                               else
+                                                                                   [])
+                                                                    @ [(L'.ERel 2, loc),
+                                                                       (L'.EPrim (Prim.String " JOIN "), loc),
+                                                                       (L'.ERel 1, loc),
+                                                                       (L'.EPrim (Prim.String " ON "), loc),
+                                                                       (L'.ERel 0, loc)]
+                                                                    @ (if #nestedRelops
+                                                                              (Settings.currentDbms ()) then
+                                                                           [(L'.EPrim (Prim.String ")"), loc)]
+                                                                       else
+                                                                           [])))],
                                                           {disc = (L'.TRecord [("1", s), ("2", s)], loc),
                                                            result = s}), loc)), loc)), loc)), loc),
                  fm)
@@ -2144,13 +2153,22 @@
                                                                                           loc), s)], loc),
                                                                       (L'.ERel 2, loc)),
                                                                      ((L'.PWild, loc),
-                                                                      strcat [(L'.EPrim (Prim.String "("), loc),
-                                                                              (L'.ERel 2, loc),
-                                                                              (L'.EPrim (Prim.String " LEFT JOIN "), loc),
-                                                                              (L'.ERel 1, loc),
-                                                                              (L'.EPrim (Prim.String " ON "), loc),
-                                                                              (L'.ERel 0, loc),
-                                                                              (L'.EPrim (Prim.String ")"), loc)])],
+                                                                      strcat ((if #nestedRelops
+                                                                                      (Settings.currentDbms ()) then
+                                                                                   [(L'.EPrim (Prim.String "("), loc)]
+                                                                               else
+                                                                                   [])
+                                                                              @ [(L'.ERel 2, loc),
+                                                                                 (L'.EPrim (Prim.String " LEFT JOIN "),
+                                                                                  loc),
+                                                                                 (L'.ERel 1, loc),
+                                                                                 (L'.EPrim (Prim.String " ON "), loc),
+                                                                                 (L'.ERel 0, loc)]
+                                                                              @ (if #nestedRelops
+                                                                                        (Settings.currentDbms ()) then
+                                                                                     [(L'.EPrim (Prim.String ")"), loc)]
+                                                                                 else
+                                                                                     [])))],
                                                                     {disc = (L'.TRecord [("1", s), ("2", s)], loc),
                                                                      result = s}), loc)), loc)), loc)), loc)), loc),
                  fm)
@@ -2174,13 +2192,22 @@
                                                                                           loc), s)], loc),
                                                                       (L'.ERel 2, loc)),
                                                                      ((L'.PWild, loc),
-                                                                      strcat [(L'.EPrim (Prim.String "("), loc),
-                                                                              (L'.ERel 2, loc),
-                                                                              (L'.EPrim (Prim.String " RIGHT JOIN "), loc),
-                                                                              (L'.ERel 1, loc),
-                                                                              (L'.EPrim (Prim.String " ON "), loc),
-                                                                              (L'.ERel 0, loc),
-                                                                              (L'.EPrim (Prim.String ")"), loc)])],
+                                                                      strcat ((if #nestedRelops
+                                                                                      (Settings.currentDbms ()) then
+                                                                                   [(L'.EPrim (Prim.String "("), loc)]
+                                                                               else
+                                                                                   [])
+                                                                              @ [(L'.ERel 2, loc),
+                                                                                 (L'.EPrim (Prim.String " RIGHT JOIN "),
+                                                                                  loc),
+                                                                                 (L'.ERel 1, loc),
+                                                                                 (L'.EPrim (Prim.String " ON "), loc),
+                                                                                 (L'.ERel 0, loc)]
+                                                                              @ (if #nestedRelops
+                                                                                        (Settings.currentDbms ()) then
+                                                                                     [(L'.EPrim (Prim.String ")"), loc)]
+                                                                                 else
+                                                                                     [])))],
                                                                     {disc = (L'.TRecord [("1", s), ("2", s)], loc),
                                                                      result = s}), loc)), loc)), loc)), loc)), loc),
                  fm)
@@ -2204,13 +2231,22 @@
                                                                                           loc), s)], loc),
                                                                       (L'.ERel 2, loc)),
                                                                      ((L'.PWild, loc),
-                                                                      strcat [(L'.EPrim (Prim.String "("), loc),
-                                                                              (L'.ERel 2, loc),
-                                                                              (L'.EPrim (Prim.String " FULL JOIN "), loc),
-                                                                              (L'.ERel 1, loc),
-                                                                              (L'.EPrim (Prim.String " ON "), loc),
-                                                                              (L'.ERel 0, loc),
-                                                                              (L'.EPrim (Prim.String ")"), loc)])],
+                                                                      strcat ((if #nestedRelops
+                                                                                      (Settings.currentDbms ()) then
+                                                                                   [(L'.EPrim (Prim.String "("), loc)]
+                                                                               else
+                                                                                   [])
+                                                                              @ [(L'.ERel 2, loc),
+                                                                                 (L'.EPrim (Prim.String " FULL JOIN "),
+                                                                                  loc),
+                                                                                 (L'.ERel 1, loc),
+                                                                                 (L'.EPrim (Prim.String " ON "), loc),
+                                                                                 (L'.ERel 0, loc)]
+                                                                              @ (if #nestedRelops
+                                                                                        (Settings.currentDbms ()) then
+                                                                                     [(L'.EPrim (Prim.String ")"), loc)]
+                                                                                 else
+                                                                                     [])))],
                                                                     {disc = (L'.TRecord [("1", s), ("2", s)], loc),
                                                                      result = s}), loc)), loc)), loc)), loc)), loc),
                  fm)