summaryrefslogtreecommitdiff
path: root/src/prepare.sml
diff options
context:
space:
mode:
authorGravatar Adam Chlipala <adamc@hcoop.net>2009-06-27 10:50:45 -0400
committerGravatar Adam Chlipala <adamc@hcoop.net>2009-06-27 10:50:45 -0400
commit1f9a8668b26293202f7d0511e160032a2f1c0634 (patch)
treece2e6f57c5abbacefb996b3bae88a1bf2802dc1e /src/prepare.sml
parent135664d0a1140f90afd8b67999efe42469fc35fe (diff)
Avoid using prepared statements for non-persistent protocols
Diffstat (limited to 'src/prepare.sml')
-rw-r--r--src/prepare.sml28
1 files changed, 20 insertions, 8 deletions
diff --git a/src/prepare.sml b/src/prepare.sml
index 592b00bc..89a974db 100644
--- a/src/prepare.sml
+++ b/src/prepare.sml
@@ -196,18 +196,26 @@ fun prepExp (e as (_, loc), sns) =
initial = initial, prepared = NONE}, loc),
sns)
| SOME (ss, n) =>
- ((EQuery {exps = exps, tables = tables, rnum = rnum,
- state = state, query = query, body = body,
- initial = initial, prepared = SOME (#2 sns)}, loc),
- ((String.concat (rev ss), n) :: #1 sns, #2 sns + 1))
+ let
+ val s = String.concat (rev ss)
+ in
+ ((EQuery {exps = exps, tables = tables, rnum = rnum,
+ state = state, query = query, body = body,
+ initial = initial, prepared = SOME (#2 sns, s)}, loc),
+ ((s, n) :: #1 sns, #2 sns + 1))
+ end
end
| EDml {dml, ...} =>
(case prepString (dml, [], 0) of
NONE => (e, sns)
| SOME (ss, n) =>
- ((EDml {dml = dml, prepared = SOME (#2 sns)}, loc),
- ((String.concat (rev ss), n) :: #1 sns, #2 sns + 1)))
+ let
+ val s = String.concat (rev ss)
+ in
+ ((EDml {dml = dml, prepared = SOME (#2 sns, s)}, loc),
+ ((s, n) :: #1 sns, #2 sns + 1))
+ end)
| ENextval {seq, ...} =>
let
@@ -224,8 +232,12 @@ fun prepExp (e as (_, loc), sns) =
case prepString (s, [], 0) of
NONE => (e, sns)
| SOME (ss, n) =>
- ((ENextval {seq = seq, prepared = SOME (#2 sns)}, loc),
- ((String.concat (rev ss), n) :: #1 sns, #2 sns + 1))
+ let
+ val s = String.concat (rev ss)
+ in
+ ((ENextval {seq = seq, prepared = SOME (#2 sns, s)}, loc),
+ ((s, n) :: #1 sns, #2 sns + 1))
+ end
end
| EUnurlify (e, t) =>