comparison src/cjr_print.sml @ 1931:1a04b1edded2

Fix regression in http.c for long-polling connections; add lazy initialization of database connections, to avoid the overhead in handlers that don't use SQL
author Adam Chlipala <adam@chlipala.net>
date Wed, 11 Dec 2013 14:57:54 -0500
parents 0354df1b6849
children 98895243b5b6
comparison
equal deleted inserted replaced
1930:5a7ae5acdcea 1931:1a04b1edded2
2077 p_exp' false false env initial, 2077 p_exp' false false env initial,
2078 string ";", 2078 string ";",
2079 newline, 2079 newline,
2080 string "int dummy = (uw_begin_region(ctx), 0);", 2080 string "int dummy = (uw_begin_region(ctx), 0);",
2081 newline, 2081 newline,
2082 string "uw_ensure_transaction(ctx);",
2083 newline,
2082 2084
2083 case prepared of 2085 case prepared of
2084 NONE => 2086 NONE =>
2085 box [string "char *query = ", 2087 box [string "char *query = ",
2086 p_exp' false false env query, 2088 p_exp' false false env query,
2137 newline, 2139 newline,
2138 case prepared of 2140 case prepared of
2139 NONE => box [string "char *dml = ", 2141 NONE => box [string "char *dml = ",
2140 p_exp' false false env dml, 2142 p_exp' false false env dml,
2141 string ";", 2143 string ";",
2144 newline,
2145 string "uw_ensure_transaction(ctx);",
2142 newline, 2146 newline,
2143 newline, 2147 newline,
2144 #dml (Settings.currentDbms ()) (loc, mode)] 2148 #dml (Settings.currentDbms ()) (loc, mode)]
2145 | SOME {id, dml = dml'} => 2149 | SOME {id, dml = dml'} =>
2146 let 2150 let
2157 space, 2161 space,
2158 p_exp' false false env e, 2162 p_exp' false false env e,
2159 string ";"]) 2163 string ";"])
2160 inputs, 2164 inputs,
2161 newline, 2165 newline,
2166 string "uw_ensure_transaction(ctx);",
2162 newline, 2167 newline,
2163 2168 newline,
2169
2164 #dmlPrepared (Settings.currentDbms ()) {loc = loc, 2170 #dmlPrepared (Settings.currentDbms ()) {loc = loc,
2165 id = id, 2171 id = id,
2166 dml = dml', 2172 dml = dml',
2167 inputs = map #2 inputs, 2173 inputs = map #2 inputs,
2168 mode = mode}] 2174 mode = mode}]
2181 2187
2182 | ENextval {seq, prepared} => 2188 | ENextval {seq, prepared} =>
2183 box [string "({", 2189 box [string "({",
2184 newline, 2190 newline,
2185 string "uw_Basis_int n;", 2191 string "uw_Basis_int n;",
2192 newline,
2193 string "uw_ensure_transaction(ctx);",
2186 newline, 2194 newline,
2187 2195
2188 case prepared of 2196 case prepared of
2189 NONE => #nextval (Settings.currentDbms ()) {loc = loc, 2197 NONE => #nextval (Settings.currentDbms ()) {loc = loc,
2190 seqE = p_exp' false false env seq, 2198 seqE = p_exp' false false env seq,
2201 newline, 2209 newline,
2202 string "})"] 2210 string "})"]
2203 2211
2204 | ESetval {seq, count} => 2212 | ESetval {seq, count} =>
2205 box [string "({", 2213 box [string "({",
2214 newline,
2215 string "uw_ensure_transaction(ctx);",
2206 newline, 2216 newline,
2207 2217
2208 #setval (Settings.currentDbms ()) {loc = loc, 2218 #setval (Settings.currentDbms ()) {loc = loc,
2209 seqE = p_exp' false false env seq, 2219 seqE = p_exp' false false env seq,
2210 count = p_exp' false false env count}, 2220 count = p_exp' false false env count},