summaryrefslogtreecommitdiff
path: root/src/prepare.sml
diff options
context:
space:
mode:
authorGravatar Adam Chlipala <adamc@hcoop.net>2009-03-26 16:22:34 -0400
committerGravatar Adam Chlipala <adamc@hcoop.net>2009-03-26 16:22:34 -0400
commitc088dec7eff828276b3e9e8891b7cdc041e65430 (patch)
tree8ca09d90791aae6d8161cff1362f5c94480788f3 /src/prepare.sml
parentb80bc0fde66898326c077f7a3aa47151d7f9e755 (diff)
Preliminary work supporting channels in databases
Diffstat (limited to 'src/prepare.sml')
-rw-r--r--src/prepare.sml18
1 files changed, 8 insertions, 10 deletions
diff --git a/src/prepare.sml b/src/prepare.sml
index 110f6f9a..1f3f323a 100644
--- a/src/prepare.sml
+++ b/src/prepare.sml
@@ -47,17 +47,15 @@ fun prepString (e, ss, n) =
SOME ("$" ^ Int.toString (n + 1) ^ "::bool" :: ss, n + 1)
| EFfiApp ("Basis", "sqlifyTime", [e]) =>
SOME ("$" ^ Int.toString (n + 1) ^ "::timestamp" :: ss, n + 1)
+ | EFfiApp ("Basis", "sqlifyChannel", [e]) =>
+ SOME ("$" ^ Int.toString (n + 1) ^ "::int4" :: ss, n + 1)
- | EFfiApp ("Basis", "sqlifyIntN", [e]) =>
- SOME ("$" ^ Int.toString (n + 1) ^ "::int8" :: ss, n + 1)
- | EFfiApp ("Basis", "sqlifyFloatN", [e]) =>
- SOME ("$" ^ Int.toString (n + 1) ^ "::float8" :: ss, n + 1)
- | EFfiApp ("Basis", "sqlifyStringN", [e]) =>
- SOME ("$" ^ Int.toString (n + 1) ^ "::text" :: ss, n + 1)
- | EFfiApp ("Basis", "sqlifyBoolN", [e]) =>
- SOME ("$" ^ Int.toString (n + 1) ^ "::bool" :: ss, n + 1)
- | EFfiApp ("Basis", "sqlifyTimeN", [e]) =>
- SOME ("$" ^ Int.toString (n + 1) ^ "::timestamp" :: ss, n + 1)
+ | ECase (e,
+ [((PNone _, _),
+ (EPrim (Prim.String "NULL"), _)),
+ ((PSome (_, (PVar _, _)), _),
+ (EFfiApp (m, x, [(ERel 0, _)]), _))],
+ _) => prepString ((EFfiApp (m, x, [e]), #2 e), ss, n)
| ECase (e,
[((PCon (_, PConFfi {mod = "Basis", con = "True", ...}, _), _),