30.08.2019 13:48, Alex Peshkoff via Firebird-devel wrote:
Suggested solution is use of flexible format letting each client to receive data from the
server in a best fit way. To tune that format three parameters will be used - together
they make it possible to have 6 different formats - 4 variants of native time with
timezone, legacy format and character string.
I like part about flexible format, but "parameters" I don't like.
Because we are talking about client-side representation of data, I see no need in SQL
subtypes that are storage format. Time can be stored in the best way for server, ignoring
client wishes.
During delivery to client data coercion is performed anyway so it is enough to let
application ask for it using more datatype constants for sqltype. This way we can let
every application to choose preferred data format itself.
3. This solution is for really old clients which anyway can not work with new
time formats - use of alternate binding to character string (like with decimal
float values). Syntax is more or less same:
SET TIME ZONE BIND {NATIVE | LEGACY | CHAR}
Which correspond to sqltype in client XSQLVAR set to SQL_TIME_TZ, SQL_TYPE_TIME and
SQL_VARYING respectively.
Which sqltype value is provided by isc_dsql_prepare/describe_bind is irrelevant as long
as application can override it.
--
WBR, SD.
Firebird-Devel mailing list, web interface at
https://lists.sourceforge.net/lists/listinfo/firebird-devel