Build scripts & automatic generation of FFI files
[hcoop/smlsql.git] / libpq / pg.sml
index 723df54..63d2720 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)
@@ -202,7 +204,7 @@ struct
     fun offsetStr NONE = "+00"
       | offsetStr (SOME n) =
        let
-           val n = Int32.toInt (Time.toSeconds n) div 3600
+           val n = LargeInt.toInt (Time.toSeconds n) div 3600
        in
            if n < 0 then
                "-" ^ pad (~n, 2)
@@ -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))),
+                                       offset = SOME (Time.fromSeconds (LargeInt.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})