comparison src/postgres.sml @ 1682:ac141fbb313a

'ORDER BY RANDOM' (based on a patch from Ron de Bruijn)
author Adam Chlipala <adam@chlipala.net>
date Thu, 02 Feb 2012 11:40:10 -0500
parents 3e7c7e200713
children 59b07fdae1ff
comparison
equal deleted inserted replaced
1681:e8a84494d2c0 1682:ac141fbb313a
14 * 14 *
15 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 15 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
16 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 16 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
17 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 17 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
18 * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE 18 * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
19 * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR 19 * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
20 * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF 20 * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
21 * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 21 * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
22 * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN 22 * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
23 * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 23 * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
24 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 24 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
643 doCols p_getcol, 643 doCols p_getcol,
644 string "}", 644 string "}",
645 newline, 645 newline,
646 newline, 646 newline,
647 string "uw_pop_cleanup(ctx);", 647 string "uw_pop_cleanup(ctx);",
648 newline] 648 newline]
649 649
650 fun query {loc, cols, doCols} = 650 fun query {loc, cols, doCols} =
651 box [string "PGconn *conn = uw_get_db(ctx);", 651 box [string "PGconn *conn = uw_get_db(ctx);",
652 newline, 652 newline,
653 string "PGresult *res = PQexecParams(conn, query, 0, NULL, NULL, NULL, NULL, 0);", 653 string "PGresult *res = PQexecParams(conn, query, 0, NULL, NULL, NULL, NULL, 0);",
1035 fun p_cast (s, t) = s ^ "::" ^ p_sql_type t 1035 fun p_cast (s, t) = s ^ "::" ^ p_sql_type t
1036 1036
1037 fun p_blank (n, t) = p_cast ("$" ^ Int.toString n, t) 1037 fun p_blank (n, t) = p_cast ("$" ^ Int.toString n, t)
1038 1038
1039 val () = addDbms {name = "postgres", 1039 val () = addDbms {name = "postgres",
1040 randomFunction = "RANDOM",
1040 header = Config.pgheader, 1041 header = Config.pgheader,
1041 link = "-lpq", 1042 link = "-lpq",
1042 p_sql_type = p_sql_type, 1043 p_sql_type = p_sql_type,
1043 init = init, 1044 init = init,
1044 query = query, 1045 query = query,