Avoiding linking problems when std.datetime.Interval invariant isn't generated by dmd. See at: std.datetime.Interval:18404
Wrapper around SysTime to handle libpq abstime. * Note: abstime is stored in UTC timezone.
Wrapper around std.datetime.Interval to handle deserializing acceptable for JSON-RPC and still conform with libpq format. * Note: libpq representation of abstime slightly different from std.datetime, thats why time converted to string could differ a lot for PostgreSQL and SysTime (about 9000-15000 seconds nonconstant offset).
Wrapper around Duration to handle libpq reltime. * Note: reltime can be negative.
Wrapper around TimeOfDay to allow serializing to bson.
Wrapper around std.datetime.SysTime to handle deserializing of libpq timestamps (without time zone). * Note: libpq has two compile configuration with HAS_INT64_TIMESTAMP and without (double timestamp format). The pgator should be compiled with conform flag to operate properly.
Wrapper around std.datetime.SysTime to handle deserializing of libpq time stamps with time zone. * Timezone is acquired from PQparameterStatus call for TimeZone parameter. Database server doesn't send any info about time zone to client, the time zone is important only while showing time to an user. * Note: libpq has two compile configuration with HAS_INT64_TIMESTAMP and without (double time stamp format). The pgator should be compiled with conform flag to operate properly.
Represents PostgreSQL Time with TimeZone. Time zone is stored as UTC offset in seconds without DST.
PostgreSQL time interval isn't same with D std.datetime one. It is simple Duration. * Consists of: microseconds time, day count and month count. Libpq uses different represantation for time, but i store only in usecs format.
PostgreSQL time types binary format.
There are following supported libpq formats: <ul> <li>date - handles year, month, day. Corresponding D type - std.datetime.Date.</li> <li>abstime - unix time in seconds without timezone. Corresponding D type - PGAbsTime wrapper around std.datetime.SysTime.</li> <li>reltime - seconds count positive or negative for representation of time durations. Corresponding D type - PGRelTime wrapper around core.time.Duration. Note that D's duration holds hnsecs count, but reltime precise at least seconds.</li> <li>time - day time without time zone. Corresponding D type - PGTime wrapper around std.datetime.TimeOfDay.</li> <li>time with zone - day time with time zone. Corresponding D type - PGTimeWithZone structure that can be casted to std.datetime.TimeOfDay and std.datetime.SimpleTimeZone.</li> <li>interval - time duration (modern replacement for reltime). Corresponding D time - TimeInterval that handles microsecond, day and month counts.</li> <li>tinterval - interval between two points in time. Consists of two abstime values: begin and end. Correponding D type - PGInterval wrapper around std.datetime.Interval.</li> </ul> *