diff options
author | June McEnroe <june@causal.agency> | 2020-07-08 13:01:06 -0400 |
---|---|---|
committer | June McEnroe <june@causal.agency> | 2020-07-08 13:01:06 -0400 |
commit | e34558412ae4b45e99d5efc25e0d9a47a97e1669 (patch) | |
tree | 21b53548ef4adb603c95052dce226ab08775fdbe /scoop.c | |
parent | Allocate enough bind space for :open and :close (diff) | |
download | litterbox-e34558412ae4b45e99d5efc25e0d9a47a97e1669.tar.gz litterbox-e34558412ae4b45e99d5efc25e0d9a47a97e1669.zip |
Convert timestamps to unix epoch time
This saves 125 MB on my own database after VACUUM.
Diffstat (limited to '')
-rw-r--r-- | scoop.c | 18 |
1 files changed, 11 insertions, 7 deletions
diff --git a/scoop.c b/scoop.c index 078fc06..fed05ec 100644 --- a/scoop.c +++ b/scoop.c @@ -331,13 +331,12 @@ static char select[4096] = SQL( CASE WHEN :local THEN strftime( coalesce(:format, '%Y-%m-%dT%H:%M:%S'), - events.time, - 'localtime' + events.time, 'unixepoch', 'localtime' ) ELSE strftime( coalesce(:format, '%Y-%m-%dT%H:%M:%SZ'), - events.time + events.time, 'unixepoch' ) END AS time, events.type, @@ -402,8 +401,13 @@ int main(int argc, char *argv[]) { for (int opt; 0 < (opt = getopt(argc, argv, Opts));) { switch (opt) { break; case 'D': { - append(where, SQL(AND events.time >= date(:date))); - append(where, SQL(AND events.time < date(:date, '+1 day'))); + append( + where, + SQL( + AND events.time >= strftime('%s', :date) + AND events.time < strftime('%s', :date, '+1 day') + ) + ); binds[n++] = Bind(":date", optarg, 0); } break; case 'F': { @@ -424,11 +428,11 @@ int main(int argc, char *argv[]) { binds[n++] = Bind(":target", optarg, 0); } break; case 'a': { - append(where, SQL(AND events.time >= datetime(:after))); + append(where, SQL(AND events.time >= strftime('%s', :after))); binds[n++] = Bind(":after", optarg, 0); } break; case 'b': { - append(where, SQL(AND events.time < datetime(:before))); + append(where, SQL(AND events.time < strftime('%s', :before))); binds[n++] = Bind(":before", optarg, 0); } break; case 'c': { |