diff options
author | Adam Chlipala <adamc@hcoop.net> | 2009-06-27 10:50:45 -0400 |
---|---|---|
committer | Adam Chlipala <adamc@hcoop.net> | 2009-06-27 10:50:45 -0400 |
commit | 756283988dd7d7235c228b3b99e6c7f6c73bf122 (patch) | |
tree | ce2e6f57c5abbacefb996b3bae88a1bf2802dc1e /src/prepare.sml | |
parent | 35cfed265b313d645c850f1ed24f6e8f937a410c (diff) |
Avoid using prepared statements for non-persistent protocols
Diffstat (limited to 'src/prepare.sml')
-rw-r--r-- | src/prepare.sml | 28 |
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) => |