Work to add UTC tracking to wall-times
[clsql.git] / ChangeLog
index 8827550d1b05b85e99473370d5d846622da0367f..69e1c2e8a398ff9aea1f596584490894d18b2ce5 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,32 @@
+2018-02-03 Russ Tyndall <russ@acceleration.net>
+       * sql/time.lisp, tests/time.lisp:
+       Better distinguishing between zoneless timestamps and UTC times,
+       particularly as relates to postgresql-socket(3) backends. Without this
+       change, timestamptzs are read as localtimes and saved as
+       localtimes, when they should be read and printed as UTC times, this
+       bug will lead to dates moving forward every save as they are being
+       reconverted to UTC again.
+
+       We followed a minimal approach (following postgresql' lead), we
+       simply add a is-utc? boolean.  Before this, zoned times were
+       converted to UTC, but since we never tracked that it was a UTC
+       time vs a zoneless time, there was conflation between the two.
+       Ultimately, adoption of a third party datetime library is my
+       strong preference (eg: local-time).
+
+       In order to preserver comparability between dates and times
+       that are local vs UTC.  I have started requiring the local-time
+       library (available from quicklisp and github). While this project
+       has, as a whole refrained from outside requirements, I think
+       that we should consider moving to local-time as our date / time
+       format.  Local-time is currently used to automatically convert
+       zoneless timestamps from localtime to UTC - allowing meaningful
+       comparisons of all timestamps.  There is definitely an overhead
+       to casting local times to UTC this way, but its the only way to
+       keep data as it is (zoneless timestamps stay zoneless - UTC stamps
+       stay UTC and still preserve)
+
+
 2016-01-26 Kevin Rosenberg <kevin@rosenberg.net>
        * Version 6.7.0 release
        * sql/utils.lisp: Apply patch from Martin Simmons for