summaryrefslogtreecommitdiff
path: root/src/monoize.sml
diff options
context:
space:
mode:
authorGravatar Ziv Scully <ziv@mit.edu>2015-07-19 19:05:16 -0700
committerGravatar Ziv Scully <ziv@mit.edu>2015-07-19 19:05:16 -0700
commita197d648e075a696f5ca86b23913b668f2baf940 (patch)
tree4c044e00c2df8ca6fd76d072f05bf1e3ff202140 /src/monoize.sml
parentbc38beafd07b7ae6106a2fffda82084a08af7f06 (diff)
parentc6e4d352f01eff2ddcdcc53c0f2a14666c2af8b2 (diff)
Merge.
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 8c1a4e3c..d8c4d276 100644
--- a/src/monoize.sml
+++ b/src/monoize.sml
@@ -2225,6 +2225,19 @@ fun monoExp (env, st, fm) (all as (e, loc)) =
let
val t = monoType env t
val s = (L'.TFfi ("Basis", "string"), loc)
+
+ fun toSqlType (t : L'.typ) =
+ case #1 t of
+ L'.TFfi ("Basis", "int") => Settings.Int
+ | L'.TFfi ("Basis", "float") => Settings.Float
+ | L'.TFfi ("Basis", "string") => Settings.String
+ | L'.TFfi ("Basis", "char") => Settings.Char
+ | L'.TFfi ("Basis", "bool") => Settings.Bool
+ | L'.TFfi ("Basis", "time") => Settings.Time
+ | L'.TFfi ("Basis", "blob") => Settings.Blob
+ | L'.TFfi ("Basis", "channel") => Settings.Channel
+ | L'.TFfi ("Basis", "client") => Settings.Client
+ | _ => raise Fail "Monoize/sql_option_prim: invalid SQL type"
in
((L'.EAbs ("f",
(L'.TFun (t, s), loc),
@@ -2234,7 +2247,7 @@ fun monoExp (env, st, fm) (all as (e, loc)) =
s,
(L'.ECase ((L'.ERel 0, loc),
[((L'.PNone t, loc),
- str "NULL"),
+ str (#p_cast (Settings.currentDbms ()) ("NULL", toSqlType t))),
((L'.PSome (t, (L'.PVar ("y", t), loc)), loc),
(L'.EApp ((L'.ERel 2, loc), (L'.ERel 0, loc)), loc))],
{disc = (L'.TOption t, loc),
@@ -3413,7 +3426,7 @@ fun monoExp (env, st, fm) (all as (e, loc)) =
strH s',
(L'.EStrcat (
(L'.EJavaScript (L'.Attribute, e), loc),
- strH ");return false'"), loc)),
+ strH ")'"), loc)),
loc)), loc),
fm)
end