Various improvements made while working on relwiki
authorAdam Chlipala <adamc@hcoop.net>
Sun, 14 Sep 2003 00:22:01 +0000 (00:22 +0000)
committerAdam Chlipala <adamc@hcoop.net>
Sun, 14 Sep 2003 00:22:01 +0000 (00:22 +0000)
libpq/pg.sml
sql_client.sml
sql_driver.sig

index 723df54..d240dad 100644 (file)
@@ -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})
index ed6ea42..8f492e7 100644 (file)
@@ -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
index c96fbdb..350b47e 100644 (file)
@@ -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