From c7a46c0fea236a84fbd7832acca626e7831b7450 Mon Sep 17 00:00:00 2001 From: Adam Chlipala Date: Sun, 14 Sep 2003 00:22:01 +0000 Subject: [PATCH] Various improvements made while working on relwiki --- libpq/pg.sml | 10 ++++++---- sql_client.sml | 2 +- sql_driver.sig | 1 + 3 files changed, 8 insertions(+), 5 deletions(-) diff --git a/libpq/pg.sml b/libpq/pg.sml index 723df54..d240dad 100644 --- a/libpq/pg.sml +++ b/libpq/pg.sml @@ -117,6 +117,8 @@ struct type timestamp = Time.time exception Format of string + fun isNull s = s = "" + fun intToSql n = if n < 0 then "-" ^ Int.toString(~n) @@ -226,17 +228,17 @@ struct in case tokens of [year, mon, day, hour, minute, second, _, offset] => - Date.toTime (Date.date {day = intFromSql day, hour = intFromSql mon, minute = intFromSql minute, + Date.toTime (Date.date {day = intFromSql day, hour = intFromSql hour, minute = intFromSql minute, month = toMonth (intFromSql mon), offset = SOME (Time.fromSeconds (Int32.fromInt (intFromSql offset * 3600))), second = intFromSql second div 1000, year = intFromSql year}) | [year, mon, day, hour, minute, second, _] => - Date.toTime (Date.date {day = intFromSql day, hour = intFromSql mon, minute = intFromSql minute, + Date.toTime (Date.date {day = intFromSql day, hour = intFromSql hour, minute = intFromSql minute, month = toMonth (intFromSql mon), offset = NONE, - second = intFromSql second div 1000, year = intFromSql year}) + second = intFromSql second, year = intFromSql year}) | [year, mon, day, hour, minute, second] => - Date.toTime (Date.date {day = intFromSql day, hour = intFromSql mon, minute = intFromSql minute, + Date.toTime (Date.date {day = intFromSql day, hour = intFromSql hour, minute = intFromSql minute, month = toMonth (intFromSql mon), offset = NONE, second = intFromSql second div 1000, year = intFromSql year}) diff --git a/sql_client.sml b/sql_client.sml index ed6ea42..8f492e7 100644 --- a/sql_client.sml +++ b/sql_client.sml @@ -26,7 +26,7 @@ struct fun oneOrNoRows conn query = fold conn (fn (row, NONE) => SOME row - | (_, SOME _) => raise Sql "Expected one or zero rows; got multiple") NONE query + | (_, SOME _) => raise Sql ("Expected one or zero rows; got multiple for:\n" ^ query)) NONE query fun oneRow conn query = (case oneOrNoRows conn query of diff --git a/sql_driver.sig b/sql_driver.sig index c96fbdb..350b47e 100644 --- a/sql_driver.sig +++ b/sql_driver.sig @@ -40,6 +40,7 @@ sig exception Format of string (* Conversions between SML values and their string representations from SQL queries *) + val isNull : string -> bool val intToSql : int -> string val intFromSql : string -> int val stringToSql : string -> string -- 2.20.1