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