diff src/postgres.sml @ 1094:db52c32dbe42

All three current protocols work with move to using uw_app
author Adam Chlipala <adamc@hcoop.net>
date Sun, 27 Dec 2009 10:37:24 -0500
parents b2311dfb3158
children bafb6a5a52a9
line wrap: on
line diff
--- a/src/postgres.sml	Sat Dec 26 11:56:40 2009 -0500
+++ b/src/postgres.sml	Sun Dec 27 10:37:24 2009 -0500
@@ -249,27 +249,7 @@
 
 fun init {dbstring, prepared = ss, tables, views, sequences} =
     box [if #persistent (currentProtocol ()) then
-             box [string "void uw_client_init(void) {",
-                  newline,
-                  box [string "uw_sqlfmtInt = \"%lld::int8%n\";",
-                       newline,
-                       string "uw_sqlfmtFloat = \"%g::float8%n\";",
-                       newline,
-                       string "uw_Estrings = 1;",
-                       newline,
-                       string "uw_sqlsuffixString = \"::text\";",
-                       newline,
-                       string "uw_sqlsuffixChar = \"::char\";",
-                       newline,
-                       string "uw_sqlsuffixBlob = \"::bytea\";",
-                       newline,
-                       string "uw_sqlfmtUint4 = \"%u::int4%n\";",
-                       newline],
-                  string "}",
-                  newline,
-                  newline,
-
-                  string "static void uw_db_validate(uw_context ctx) {",
+             box [string "static void uw_db_validate(uw_context ctx) {",
                   newline,
                   string "PGconn *conn = uw_get_db(ctx);",
                   newline,
@@ -380,93 +360,111 @@
 
                   string "}",
                   newline,
-                  newline,
-
-                  string "void uw_db_close(uw_context ctx) {",
-                  newline,
-                  string "PQfinish(uw_get_db(ctx));",
-                  newline,
-                  string "}",
-                  newline,
-                  newline,
-
-                  string "int uw_db_begin(uw_context ctx) {",
-                  newline,
-                  string "PGconn *conn = uw_get_db(ctx);",
-                  newline,
-                  string "PGresult *res = PQexec(conn, \"BEGIN ISOLATION LEVEL SERIALIZABLE\");",
-                  newline,
-                  newline,
-                  string "if (res == NULL) return 1;",
-                  newline,
-                  newline,
-                  string "if (PQresultStatus(res) != PGRES_COMMAND_OK) {",
-                  box [string "PQclear(res);",
-                       newline,
-                       string "return 1;",
-                       newline],
-                  string "}",
-                  newline,
-                  string "return 0;",
-                  newline,
-                  string "}",
-                  newline,
-                  newline,
-
-                  string "int uw_db_commit(uw_context ctx) {",
-                  newline,
-                  string "PGconn *conn = uw_get_db(ctx);",
-                  newline,
-                  string "PGresult *res = PQexec(conn, \"COMMIT\");",
-                  newline,
-                  newline,
-                  string "if (res == NULL) return 1;",
-                  newline,
-                  newline,
-                  string "if (PQresultStatus(res) != PGRES_COMMAND_OK) {",
-                  box [string "PQclear(res);",
-                       newline,
-                       string "return 1;",
-                       newline],
-                  string "}",
-                  newline,
-                  string "return 0;",
-                  newline,
-                  string "}",
-                  newline,
-                  newline,
-
-                  string "int uw_db_rollback(uw_context ctx) {",
-                  newline,
-                  string "PGconn *conn = uw_get_db(ctx);",
-                  newline,
-                  string "PGresult *res = PQexec(conn, \"ROLLBACK\");",
-                  newline,
-                  newline,
-                  string "if (res == NULL) return 1;",
-                  newline,
-                  newline,
-                  string "if (PQresultStatus(res) != PGRES_COMMAND_OK) {",
-                  box [string "PQclear(res);",
-                       newline,
-                       string "return 1;",
-                       newline],
-                  string "}",
-                  newline,
-                  string "return 0;",
-                  newline,
-                  string "}",
-                  newline,
                   newline]
          else
              box [string "static void uw_db_validate(uw_context ctx) { }",
                   newline,
                   string "static void uw_db_prepare(uw_context ctx) { }"],
 
+         string "static void uw_client_init(void) {",
+         newline,
+         box [string "uw_sqlfmtInt = \"%lld::int8%n\";",
+              newline,
+              string "uw_sqlfmtFloat = \"%g::float8%n\";",
+              newline,
+              string "uw_Estrings = 1;",
+              newline,
+              string "uw_sqlsuffixString = \"::text\";",
+              newline,
+              string "uw_sqlsuffixChar = \"::char\";",
+              newline,
+              string "uw_sqlsuffixBlob = \"::bytea\";",
+              newline,
+              string "uw_sqlfmtUint4 = \"%u::int4%n\";",
+              newline],
+         string "}",
          newline,
          newline,
 
-         string "void uw_db_init(uw_context ctx) {",
+         string "static void uw_db_close(uw_context ctx) {",
+         newline,
+         string "PQfinish(uw_get_db(ctx));",
+         newline,
+         string "}",
+         newline,
+         newline,
+
+         string "static int uw_db_begin(uw_context ctx) {",
+         newline,
+         string "PGconn *conn = uw_get_db(ctx);",
+         newline,
+         string "PGresult *res = PQexec(conn, \"BEGIN ISOLATION LEVEL SERIALIZABLE\");",
+         newline,
+         newline,
+         string "if (res == NULL) return 1;",
+         newline,
+         newline,
+         string "if (PQresultStatus(res) != PGRES_COMMAND_OK) {",
+         box [string "PQclear(res);",
+              newline,
+              string "return 1;",
+              newline],
+         string "}",
+         newline,
+         string "return 0;",
+         newline,
+         string "}",
+         newline,
+         newline,
+
+         string "static int uw_db_commit(uw_context ctx) {",
+         newline,
+         string "PGconn *conn = uw_get_db(ctx);",
+         newline,
+         string "PGresult *res = PQexec(conn, \"COMMIT\");",
+         newline,
+         newline,
+         string "if (res == NULL) return 1;",
+         newline,
+         newline,
+         string "if (PQresultStatus(res) != PGRES_COMMAND_OK) {",
+         box [string "PQclear(res);",
+              newline,
+              string "return 1;",
+              newline],
+         string "}",
+         newline,
+         string "return 0;",
+         newline,
+         string "}",
+         newline,
+         newline,
+
+         string "static int uw_db_rollback(uw_context ctx) {",
+         newline,
+         string "PGconn *conn = uw_get_db(ctx);",
+         newline,
+         string "PGresult *res = PQexec(conn, \"ROLLBACK\");",
+         newline,
+         newline,
+         string "if (res == NULL) return 1;",
+         newline,
+         newline,
+         string "if (PQresultStatus(res) != PGRES_COMMAND_OK) {",
+         box [string "PQclear(res);",
+              newline,
+              string "return 1;",
+              newline],
+         string "}",
+         newline,
+         string "return 0;",
+         newline,
+         string "}",
+
+         newline,
+         newline,
+
+         string "static void uw_db_init(uw_context ctx) {",
          newline,
          string "PGconn *conn = PQconnectdb(\"",
          string (String.toString dbstring),