summaryrefslogtreecommitdiff
path: root/src/monoize.sml
diff options
context:
space:
mode:
authorGravatar Adam Chlipala <adamc@hcoop.net>2010-03-25 16:06:04 -0400
committerGravatar Adam Chlipala <adamc@hcoop.net>2010-03-25 16:06:04 -0400
commit94703081971636db5bcdbb46ecebec234f4760e4 (patch)
tree692542b44d3c974920be5c1b7b9c8a708c336dff /src/monoize.sml
parent8956b5096cd268b6eb73040ede0688849084c5fe (diff)
Subquery FROM items
Diffstat (limited to 'src/monoize.sml')
-rw-r--r--src/monoize.sml17
1 files changed, 15 insertions, 2 deletions
diff --git a/src/monoize.sml b/src/monoize.sml
index 9e5e1b38..5aebad63 100644
--- a/src/monoize.sml
+++ b/src/monoize.sml
@@ -1882,7 +1882,7 @@ fun monoExp (env, st, fm) (all as (e, loc)) =
strcatComma (map (fn (x, t) =>
strcat [
(L'.EField (gf "SelectExps", x), loc),
- sc (" AS _" ^ x)
+ sc (" AS uw_" ^ x)
]) sexps
@ map (fn (x, xts) =>
strcatComma
@@ -2059,6 +2059,19 @@ fun monoExp (env, st, fm) (all as (e, loc)) =
(L'.EPrim (Prim.String (" AS T_" ^ name)), loc)]), loc),
fm)
end
+ | L.ECApp ((L.ECApp ((L.ECApp ((L.EFfi ("Basis", "sql_from_query"), _), _),
+ _), _), _),
+ (L.CName name, _)) =>
+ let
+ val s = (L'.TFfi ("Basis", "string"), loc)
+ fun sc s = (L'.EPrim (Prim.String s), loc)
+ in
+ ((L'.EAbs ("q", s, s,
+ strcat [sc "(",
+ (L'.ERel 0, loc),
+ sc (") AS T_" ^ name)]), loc),
+ fm)
+ end
| L.ECApp ((L.ECApp ((L.ECApp ((L.EFfi ("Basis", "sql_from_comma"), _), _), _), _), _), _) =>
let
val s = (L'.TFfi ("Basis", "string"), loc)
@@ -2317,7 +2330,7 @@ fun monoExp (env, st, fm) (all as (e, loc)) =
_), _),
_), _),
_), _),
- (L.CName nm, _)) => ((L'.EPrim (Prim.String ("_" ^ lowercaseFirst nm)), loc), fm)
+ (L.CName nm, _)) => ((L'.EPrim (Prim.String ("uw_" ^ lowercaseFirst nm)), loc), fm)
| L.ECApp (
(L.ECApp (