Mercurial > urweb
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}, |