diff options
author | 2013-12-12 17:42:48 -0500 | |
---|---|---|
committer | 2013-12-12 17:42:48 -0500 | |
commit | 3fbffffb0b03b980de3ae2e579fc41c3723a5b46 (patch) | |
tree | d3c882ae31c045044de6538db6dc9e13cf347f66 /src/postgres.sml | |
parent | 7b68961399bb9e1576e1355c084bb2a95853c03a (diff) |
Start SQL transactions as read-only when possible, based on conservative program analysis
Diffstat (limited to 'src/postgres.sml')
-rw-r--r-- | src/postgres.sml | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/src/postgres.sml b/src/postgres.sml index 41529173..272097e7 100644 --- a/src/postgres.sml +++ b/src/postgres.sml @@ -402,11 +402,11 @@ fun init {dbstring, prepared = ss, tables, views, sequences} = newline, newline, - string "static int uw_db_begin(uw_context ctx) {", + string "static int uw_db_begin(uw_context ctx, int could_write) {", newline, string "PGconn *conn = uw_get_db(ctx);", newline, - string "PGresult *res = PQexec(conn, \"BEGIN ISOLATION LEVEL SERIALIZABLE\");", + string "PGresult *res = PQexec(conn, could_write ? \"BEGIN ISOLATION LEVEL SERIALIZABLE\" : \"BEGIN ISOLATION LEVEL SERIALIZABLE, READ ONLY\");", newline, newline, string "if (res == NULL) return 1;", |