On 2020-08-31 00:09, Eliezer Riani wrote:
Hi,

I have some systems developed in Delphi, PHP, and Java.
I used Firebird 2.5.9 until I've updated to the Firebird 3.0.6 without
any change in my SQL's.

I am now testing Firebird 4.0 from your daily builds and have a
problem. The feature implemented in the issue
http://tracker.firebirdsql.org/browse/CORE-694 introduced a change in
the CURRENT_TIME and CURRENT_TIMESTAMP functions that returns a new
SQL data type.
This new data type is necessary to use the new improvement, but the
enforced change of the return type in these two functions causes a
rupture in existing compiled and legacy systems that became impossible
to update them to FB 4.0.

I've listed some samples, like old Jaybird drivers, the current Delphi
Community Edition data access components (FireDAC), the current
implementation of IBObjects, and the PHP driver that I've looked at
the GitHub repository but don't found the new data types
implementation.

I'm changing the calls to CURRENT_TIMESTAMP to CAST(CURRENT_TIMESTAMP
AS TIMESTAMP) in the case of my systems and all is running fine for
now.

Don't add casts, use the newly introduced LOCALTIME or LOCALTIMESTAMP (supported in 2.5.9, 3.0.4+ and 4.0) to return a WITHOUT TIME ZONE equivalent.

My question, in this case, is not about my problem but about the
compatibility questions that can cause slow adoption of the new
version on behalf of a new feature that will not be used by all users.
I propose to add a configuration or a way to check that the client
implementation does not support the new data type and then return a
legacy TIMESTAMP data.
At this link are possible to see some tests screenshots:
https://drive.google.com/drive/folders/1U1Y0zcUwZjiY3HNBnABwN6XtMAyR8WYz

There already exist options for this:
Either switch to using LOCALTIME and LOCALTIMESTAMP (introduced in 3.0.4, 2.5.9 and 4.0), or use the SET BIND statement or the isc_dpb_set_bind parameter, or use the DataTypeCompatibility configuration option (which, if I'm not mistaken, can be set per-database).

Mark


Firebird-Devel mailing list, web interface at 
https://lists.sourceforge.net/lists/listinfo/firebird-devel

Reply via email to