Provide same results for date arithmetics when date is changed by values near
+/-max(bigint)
--------------------------------------------------------------------------------------------
Key: CORE-6504
URL: http://tracker.firebirdsql.org/browse/CORE-6504
Project: Firebird Core
Issue Type: Bug
Components: Engine
Affects Versions: 4.0 RC 1, 3.0.7
Reporter: Pavel Zotov
Attachments:
date-arithmetic-with-changing-date-for-power_2_63-days_-_overall-results-for-FB-3.x-and-4.x.xlsx
Ticked was created after discuss results of test for CORE-624 with Alex and
Vlad.
Following statements show different results on FB 3.x and 4.x when date is
decremented by values = ~2^63.
See also attached .xlsx with overall results in one table.
Database and client dialect = 3.
### A. DECREMENT date ###
Linux
1) LI-V4.0.0.2379
echo "set heading off; select date '01.02.2020' + -9223372036854775807 from
rdb\$database;" | /var/tmp/fb40tmp/bin/isql employee
Statement failed, SQLSTATE = 22008
value exceeds the range for valid dates
echo "set heading off; select date '01.02.2020' + -9223372036854775808 from
rdb\$database;" | /var/tmp/fb40tmp/bin/isql employee
2020-02-01
--------------------------------------------
2) LI-V3.0.8.33415
echo "set heading off; select date '01.02.2020' + -9223372036854775807 from
rdb\$database;" | /var/tmp/fb30tmp/bin/isql employee -z
2020-02-02
echo "set heading off; select date '01.02.2020' + -9223372036854775808 from
rdb\$database;" | /var/tmp/fb30tmp/bin/isql employee -z
2020-02-01
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Windows
1) WI-V4.0.0.2377
C:\FB\40SS>echo set heading off; select date '01.02.2020' -
+9223372036854775807 from rdb$database; | isql employee
Statement failed, SQLSTATE = 22008
value exceeds the range for valid dates
C:\FB\40SS>echo set heading off; select date '01.02.2020' +
-9223372036854775808 from rdb$database; | isql /:employee
Statement failed, SQLSTATE = 22008
value exceeds the range for valid dates
--------------------------------------------
2) WI-V3.0.8.33423
C:\FB\30SS>echo set heading off; select date '01.02.2020' -
-9223372036854775807 from rdb$database; | isql employee -z
2020-01-31
SQL>
C:\FB\30SS>echo set heading off; select date '01.02.2020' -
-9223372036854775808 from rdb$database; | isql employee -z
2020-02-01
### B. INCREMENT date ###
Linux
1)build LI-V4.0.0.2379
echo "set heading off; select date '01.02.2020' + 9223372036854775807 from
rdb\$database;" | /var/tmp/fb40tmp/bin/isql employee -z
Statement failed, SQLSTATE = 22008
value exceeds the range for valid dates
echo "set heading off; select date '01.02.2020' - (-9223372036854775808) from
rdb\$database;" | /var/tmp/fb40tmp/bin/isql employee -z
2020-02-01
--------------------------------------------
2) LI-V3.0.8.33415
echo "set heading off; select date '01.02.2020' + 9223372036854775807 from
rdb\$database;" | /var/tmp/fb30tmp/bin/isql employee -z
2020-01-31
echo "set heading off; select date '01.02.2020' - (-9223372036854775808) from
rdb\$database;" | /var/tmp/fb30tmp/bin/isql employee -z
2020-02-01
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Windows
1) WI-V4.0.0.2377
C:\FB\40SS>echo set heading off; select date '01.02.2020' + 9223372036854775807
from rdb$database; | isql employee -z
Statement failed, SQLSTATE = 22008
value exceeds the range for valid dates
C:\FB\40SS>echo set heading off; select date '01.02.2020' -
(-9223372036854775808) from rdb$database; | isql employee -z
Statement failed, SQLSTATE = 22008
value exceeds the range for valid dates
2) WI-V3.0.8.33423
C:\FB\30SS>echo set heading off; select date '01.02.2020' + 9223372036854775807
from rdb$database; | isql employee -z
2020-01-31
SQL>
C:\FB\30SS>echo set heading off; select date '01.02.2020' -
(-9223372036854775808) from rdb$database; | isql employee -z
2020-02-01
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
http://tracker.firebirdsql.org/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira
Firebird-Devel mailing list, web interface at
https://lists.sourceforge.net/lists/listinfo/firebird-devel