From b448d31391ad58d04f7314232af0f0528180f21e Mon Sep 17 00:00:00 2001 From: Zhibai Song Date: Mon, 29 Jan 2024 11:03:16 -0800 Subject: [PATCH] Fix the issue datetime/datetime2 may not choose index scan (#2300) When comparing between datetime to date or datetime2 to date, it would not choose index scan because we wrongly defined the date2datetime and date2datetime2 cast function as VOLATILE. They should be defined as STABLE. Signed-off-by: Zhibai Song Task: BABEL-4517 --- contrib/babelfishpg_common/sql/datetime.sql | 2 +- contrib/babelfishpg_common/sql/datetime2.sql | 2 +- .../babelfishpg_common--2.5.0--2.6.0.sql | 10 + test/JDBC/expected/babel-4517-vu-cleanup.out | 11 + test/JDBC/expected/babel-4517-vu-prepare.out | 33 +++ test/JDBC/expected/babel-4517-vu-verify.out | 223 ++++++++++++++++++ test/JDBC/input/babel-4517-vu-cleanup.sql | 11 + test/JDBC/input/babel-4517-vu-prepare.sql | 33 +++ test/JDBC/input/babel-4517-vu-verify.sql | 67 ++++++ test/JDBC/upgrade/13_4/schedule | 1 + test/JDBC/upgrade/13_5/schedule | 1 + test/JDBC/upgrade/13_6/schedule | 1 + test/JDBC/upgrade/13_7/schedule | 1 + test/JDBC/upgrade/13_8/schedule | 1 + test/JDBC/upgrade/13_9/schedule | 1 + test/JDBC/upgrade/14_10/schedule | 1 + test/JDBC/upgrade/14_3/schedule | 1 + test/JDBC/upgrade/14_5/schedule | 1 + test/JDBC/upgrade/14_6/schedule | 1 + test/JDBC/upgrade/14_7/schedule | 1 + test/JDBC/upgrade/14_8/schedule | 1 + test/JDBC/upgrade/14_9/schedule | 1 + test/JDBC/upgrade/latest/schedule | 1 + .../expected_dependency.out | 5 - 24 files changed, 404 insertions(+), 7 deletions(-) create mode 100644 test/JDBC/expected/babel-4517-vu-cleanup.out create mode 100644 test/JDBC/expected/babel-4517-vu-prepare.out create mode 100644 test/JDBC/expected/babel-4517-vu-verify.out create mode 100644 test/JDBC/input/babel-4517-vu-cleanup.sql create mode 100644 test/JDBC/input/babel-4517-vu-prepare.sql create mode 100644 test/JDBC/input/babel-4517-vu-verify.sql diff --git a/contrib/babelfishpg_common/sql/datetime.sql b/contrib/babelfishpg_common/sql/datetime.sql index b8a74bf6e42..3cc51452e05 100644 --- a/contrib/babelfishpg_common/sql/datetime.sql +++ b/contrib/babelfishpg_common/sql/datetime.sql @@ -323,7 +323,7 @@ WITH FUNCTION sys.timestamptz2datetime (TIMESTAMPTZ) AS ASSIGNMENT; CREATE OR REPLACE FUNCTION sys.date2datetime(DATE) RETURNS DATETIME AS 'babelfishpg_common', 'date_datetime' -LANGUAGE C VOLATILE STRICT PARALLEL SAFE; +LANGUAGE C STABLE STRICT PARALLEL SAFE; CREATE CAST (DATE AS DATETIME) WITH FUNCTION sys.date2datetime (DATE) AS IMPLICIT; diff --git a/contrib/babelfishpg_common/sql/datetime2.sql b/contrib/babelfishpg_common/sql/datetime2.sql index 01e554d0b71..35d3dcad725 100644 --- a/contrib/babelfishpg_common/sql/datetime2.sql +++ b/contrib/babelfishpg_common/sql/datetime2.sql @@ -210,7 +210,7 @@ WITH FUNCTION sys.timestamptz2datetime2 (TIMESTAMPTZ) AS ASSIGNMENT; CREATE OR REPLACE FUNCTION sys.date2datetime2(DATE) RETURNS DATETIME2 AS 'babelfishpg_common', 'date_datetime2' -LANGUAGE C VOLATILE STRICT PARALLEL SAFE; +LANGUAGE C STABLE STRICT PARALLEL SAFE; CREATE CAST (DATE AS DATETIME2) WITH FUNCTION sys.date2datetime2 (DATE) AS IMPLICIT; diff --git a/contrib/babelfishpg_common/sql/upgrades/babelfishpg_common--2.5.0--2.6.0.sql b/contrib/babelfishpg_common/sql/upgrades/babelfishpg_common--2.5.0--2.6.0.sql index c2bbab11ced..872328cc844 100644 --- a/contrib/babelfishpg_common/sql/upgrades/babelfishpg_common--2.5.0--2.6.0.sql +++ b/contrib/babelfishpg_common/sql/upgrades/babelfishpg_common--2.5.0--2.6.0.sql @@ -143,5 +143,15 @@ CALL sys.babelfish_drop_deprecated_object('function', 'sys', 'rowversionvarchar_ -- Please have this be one of the last statements executed in this upgrade script. DROP PROCEDURE sys.babelfish_drop_deprecated_object(varchar, varchar, varchar); +CREATE OR REPLACE FUNCTION sys.date2datetime(DATE) +RETURNS DATETIME +AS 'babelfishpg_common', 'date_datetime' +LANGUAGE C STABLE STRICT PARALLEL SAFE; + +CREATE OR REPLACE FUNCTION sys.date2datetime2(DATE) +RETURNS DATETIME2 +AS 'babelfishpg_common', 'date_datetime2' +LANGUAGE C STABLE STRICT PARALLEL SAFE; + -- Reset search_path to not affect any subsequent scripts SELECT set_config('search_path', trim(leading 'sys, ' from current_setting('search_path')), false); diff --git a/test/JDBC/expected/babel-4517-vu-cleanup.out b/test/JDBC/expected/babel-4517-vu-cleanup.out new file mode 100644 index 00000000000..0fb9ac047a2 --- /dev/null +++ b/test/JDBC/expected/babel-4517-vu-cleanup.out @@ -0,0 +1,11 @@ +drop view view_4517_date +GO + +drop view view_4517_datetime +GO + +drop view view_4517_datetime2 +GO + +drop table babel_4517 +GO diff --git a/test/JDBC/expected/babel-4517-vu-prepare.out b/test/JDBC/expected/babel-4517-vu-prepare.out new file mode 100644 index 00000000000..1cb449962c5 --- /dev/null +++ b/test/JDBC/expected/babel-4517-vu-prepare.out @@ -0,0 +1,33 @@ +create table babel_4517 ( + date_col date NULL, + datetime_col datetime NULL, + datetime2_col datetime2 NULL +) +GO + +create NONCLUSTERED INDEX date_col_indx on babel_4517 +( + date_col ASC +) +GO + +create NONCLUSTERED INDEX datetime_col_indx on babel_4517 +( + datetime_col ASC +) +GO + +create NONCLUSTERED INDEX datetime2_col_indx on babel_4517 +( + datetime2_col ASC +) +GO + +create view view_4517_date as select * from babel_4517 where date_col <= cast('2023-08-31' as date) and date_col >= cast('2023-08-31' as date); +GO + +create view view_4517_datetime as select * from babel_4517 where datetime_col <= cast('2023-08-31' as date) and datetime_col >= cast('2023-08-31' as date); +GO + +create view view_4517_datetime2 as select * from babel_4517 where datetime2_col <= cast('2023-08-31' as date) and datetime2_col >= cast('2023-08-31' as date); +GO diff --git a/test/JDBC/expected/babel-4517-vu-verify.out b/test/JDBC/expected/babel-4517-vu-verify.out new file mode 100644 index 00000000000..266f3ed8375 --- /dev/null +++ b/test/JDBC/expected/babel-4517-vu-verify.out @@ -0,0 +1,223 @@ +BEGIN TRANSACTION babel_4517 +GO + +SELECT set_config('babelfishpg_tsql.explain_costs', 'off', true) +GO +~~START~~ +text +off +~~END~~ + + +SELECT set_config('force_parallel_mode', '0', true) +GO +~~START~~ +text +off +~~END~~ + + +SET BABELFISH_SHOWPLAN_ALL on +GO + +select * from view_4517_date; +GO +~~START~~ +text +Query Text: select * from view_4517_date +Bitmap Heap Scan on babel_4517 + Recheck Cond: ((date_col <= '2023-08-31'::date) AND (date_col >= '2023-08-31'::date)) + -> Bitmap Index Scan on date_col_indxbabel_4517ff7ff8b3790b9274b0932920e1e110d9 + Index Cond: ((date_col <= '2023-08-31'::date) AND (date_col >= '2023-08-31'::date)) +~~END~~ + + +select * from view_4517_datetime +GO +~~START~~ +text +Query Text: select * from view_4517_datetime +Bitmap Heap Scan on babel_4517 + Recheck Cond: ((datetime_col <= ('2023-08-31'::date)::datetime) AND (datetime_col >= ('2023-08-31'::date)::datetime)) + -> Bitmap Index Scan on datetime_col_indxbabel_4517f212471e91ba8fdbefe418ea0d8f877d + Index Cond: ((datetime_col <= ('2023-08-31'::date)::datetime) AND (datetime_col >= ('2023-08-31'::date)::datetime)) +~~END~~ + + +select * from view_4517_datetime2 +GO +~~START~~ +text +Query Text: select * from view_4517_datetime2 +Bitmap Heap Scan on babel_4517 + Recheck Cond: ((datetime2_col <= ('2023-08-31'::date)::datetime2) AND (datetime2_col >= ('2023-08-31'::date)::datetime2)) + -> Bitmap Index Scan on datetime2_col_indxbabel_451706006b35cf68c461b9e87edb9222fcdd + Index Cond: ((datetime2_col <= ('2023-08-31'::date)::datetime2) AND (datetime2_col >= ('2023-08-31'::date)::datetime2)) +~~END~~ + + +select * from babel_4517 where date_col <= cast('2023-08-31' as date) and date_col >= cast('2023-08-31' as date); +GO +~~START~~ +text +Query Text: select * from babel_4517 where date_col <= cast('2023-08-31' as date) and date_col >= cast('2023-08-31' as date) +Bitmap Heap Scan on babel_4517 + Recheck Cond: ((date_col <= '2023-08-31'::date) AND (date_col >= '2023-08-31'::date)) + -> Bitmap Index Scan on date_col_indxbabel_4517ff7ff8b3790b9274b0932920e1e110d9 + Index Cond: ((date_col <= '2023-08-31'::date) AND (date_col >= '2023-08-31'::date)) +~~END~~ + + +select * from babel_4517 where datetime_col <= cast('2023-08-31' as date) and datetime_col >= cast('2023-08-31' as date); +GO +~~START~~ +text +Query Text: select * from babel_4517 where datetime_col <= cast('2023-08-31' as date) and datetime_col >= cast('2023-08-31' as date) +Bitmap Heap Scan on babel_4517 + Recheck Cond: ((datetime_col <= ('2023-08-31'::date)::datetime) AND (datetime_col >= ('2023-08-31'::date)::datetime)) + -> Bitmap Index Scan on datetime_col_indxbabel_4517f212471e91ba8fdbefe418ea0d8f877d + Index Cond: ((datetime_col <= ('2023-08-31'::date)::datetime) AND (datetime_col >= ('2023-08-31'::date)::datetime)) +~~END~~ + + +select * from babel_4517 where datetime2_col <= cast('2023-08-31' as date) and datetime2_col >= cast('2023-08-31' as date); +GO +~~START~~ +text +Query Text: select * from babel_4517 where datetime2_col <= cast('2023-08-31' as date) and datetime2_col >= cast('2023-08-31' as date) +Bitmap Heap Scan on babel_4517 + Recheck Cond: ((datetime2_col <= ('2023-08-31'::date)::datetime2) AND (datetime2_col >= ('2023-08-31'::date)::datetime2)) + -> Bitmap Index Scan on datetime2_col_indxbabel_451706006b35cf68c461b9e87edb9222fcdd + Index Cond: ((datetime2_col <= ('2023-08-31'::date)::datetime2) AND (datetime2_col >= ('2023-08-31'::date)::datetime2)) +~~END~~ + + +SET BABELFISH_SHOWPLAN_ALL off +GO + +SELECT set_config('force_parallel_mode', '1', true) +SELECT set_config('parallel_setup_cost', '0', true) +SELECT set_config('parallel_tuple_cost', '0', true) +GO +~~START~~ +text +on +~~END~~ + +~~START~~ +text +0 +~~END~~ + +~~START~~ +text +0 +~~END~~ + + +SET BABELFISH_SHOWPLAN_ALL on +GO + +select * from view_4517_date; +GO +~~START~~ +text +Query Text: select * from view_4517_date +Gather + Workers Planned: 1 + Single Copy: true + -> Bitmap Heap Scan on babel_4517 + Recheck Cond: ((date_col <= '2023-08-31'::date) AND (date_col >= '2023-08-31'::date)) + -> Bitmap Index Scan on date_col_indxbabel_4517ff7ff8b3790b9274b0932920e1e110d9 + Index Cond: ((date_col <= '2023-08-31'::date) AND (date_col >= '2023-08-31'::date)) +~~END~~ + + +select * from view_4517_datetime +GO +~~START~~ +text +Query Text: select * from view_4517_datetime +Gather + Workers Planned: 1 + Single Copy: true + -> Bitmap Heap Scan on babel_4517 + Recheck Cond: ((datetime_col <= ('2023-08-31'::date)::datetime) AND (datetime_col >= ('2023-08-31'::date)::datetime)) + -> Bitmap Index Scan on datetime_col_indxbabel_4517f212471e91ba8fdbefe418ea0d8f877d + Index Cond: ((datetime_col <= ('2023-08-31'::date)::datetime) AND (datetime_col >= ('2023-08-31'::date)::datetime)) +~~END~~ + + +select * from view_4517_datetime2 +GO +~~START~~ +text +Query Text: select * from view_4517_datetime2 +Gather + Workers Planned: 1 + Single Copy: true + -> Bitmap Heap Scan on babel_4517 + Recheck Cond: ((datetime2_col <= ('2023-08-31'::date)::datetime2) AND (datetime2_col >= ('2023-08-31'::date)::datetime2)) + -> Bitmap Index Scan on datetime2_col_indxbabel_451706006b35cf68c461b9e87edb9222fcdd + Index Cond: ((datetime2_col <= ('2023-08-31'::date)::datetime2) AND (datetime2_col >= ('2023-08-31'::date)::datetime2)) +~~END~~ + + +select * from babel_4517 where date_col <= cast('2023-08-31' as date) and date_col >= cast('2023-08-31' as date); +GO +~~START~~ +text +Query Text: select * from babel_4517 where date_col <= cast('2023-08-31' as date) and date_col >= cast('2023-08-31' as date) +Gather + Workers Planned: 1 + Single Copy: true + -> Bitmap Heap Scan on babel_4517 + Recheck Cond: ((date_col <= '2023-08-31'::date) AND (date_col >= '2023-08-31'::date)) + -> Bitmap Index Scan on date_col_indxbabel_4517ff7ff8b3790b9274b0932920e1e110d9 + Index Cond: ((date_col <= '2023-08-31'::date) AND (date_col >= '2023-08-31'::date)) +~~END~~ + + +select * from babel_4517 where datetime_col <= cast('2023-08-31' as date) and datetime_col >= cast('2023-08-31' as date); +GO +~~START~~ +text +Query Text: select * from babel_4517 where datetime_col <= cast('2023-08-31' as date) and datetime_col >= cast('2023-08-31' as date) +Gather + Workers Planned: 1 + Single Copy: true + -> Bitmap Heap Scan on babel_4517 + Recheck Cond: ((datetime_col <= ('2023-08-31'::date)::datetime) AND (datetime_col >= ('2023-08-31'::date)::datetime)) + -> Bitmap Index Scan on datetime_col_indxbabel_4517f212471e91ba8fdbefe418ea0d8f877d + Index Cond: ((datetime_col <= ('2023-08-31'::date)::datetime) AND (datetime_col >= ('2023-08-31'::date)::datetime)) +~~END~~ + + +select * from babel_4517 where datetime2_col <= cast('2023-08-31' as date) and datetime2_col >= cast('2023-08-31' as date); +GO +~~START~~ +text +Query Text: select * from babel_4517 where datetime2_col <= cast('2023-08-31' as date) and datetime2_col >= cast('2023-08-31' as date) +Gather + Workers Planned: 1 + Single Copy: true + -> Bitmap Heap Scan on babel_4517 + Recheck Cond: ((datetime2_col <= ('2023-08-31'::date)::datetime2) AND (datetime2_col >= ('2023-08-31'::date)::datetime2)) + -> Bitmap Index Scan on datetime2_col_indxbabel_451706006b35cf68c461b9e87edb9222fcdd + Index Cond: ((datetime2_col <= ('2023-08-31'::date)::datetime2) AND (datetime2_col >= ('2023-08-31'::date)::datetime2)) +~~END~~ + + +SET BABELFISH_SHOWPLAN_ALL off +GO + +COMMIT TRANSACTION babel_4517 +GO + +SELECT set_config('babelfishpg_tsql.explain_costs', 'on', false) +GO +~~START~~ +text +on +~~END~~ + diff --git a/test/JDBC/input/babel-4517-vu-cleanup.sql b/test/JDBC/input/babel-4517-vu-cleanup.sql new file mode 100644 index 00000000000..b2ed9ddb2bd --- /dev/null +++ b/test/JDBC/input/babel-4517-vu-cleanup.sql @@ -0,0 +1,11 @@ +drop view view_4517_date +GO + +drop view view_4517_datetime +GO + +drop view view_4517_datetime2 +GO + +drop table babel_4517 +GO \ No newline at end of file diff --git a/test/JDBC/input/babel-4517-vu-prepare.sql b/test/JDBC/input/babel-4517-vu-prepare.sql new file mode 100644 index 00000000000..1cb449962c5 --- /dev/null +++ b/test/JDBC/input/babel-4517-vu-prepare.sql @@ -0,0 +1,33 @@ +create table babel_4517 ( + date_col date NULL, + datetime_col datetime NULL, + datetime2_col datetime2 NULL +) +GO + +create NONCLUSTERED INDEX date_col_indx on babel_4517 +( + date_col ASC +) +GO + +create NONCLUSTERED INDEX datetime_col_indx on babel_4517 +( + datetime_col ASC +) +GO + +create NONCLUSTERED INDEX datetime2_col_indx on babel_4517 +( + datetime2_col ASC +) +GO + +create view view_4517_date as select * from babel_4517 where date_col <= cast('2023-08-31' as date) and date_col >= cast('2023-08-31' as date); +GO + +create view view_4517_datetime as select * from babel_4517 where datetime_col <= cast('2023-08-31' as date) and datetime_col >= cast('2023-08-31' as date); +GO + +create view view_4517_datetime2 as select * from babel_4517 where datetime2_col <= cast('2023-08-31' as date) and datetime2_col >= cast('2023-08-31' as date); +GO diff --git a/test/JDBC/input/babel-4517-vu-verify.sql b/test/JDBC/input/babel-4517-vu-verify.sql new file mode 100644 index 00000000000..fa0403c5965 --- /dev/null +++ b/test/JDBC/input/babel-4517-vu-verify.sql @@ -0,0 +1,67 @@ +BEGIN TRANSACTION babel_4517 +GO + +SELECT set_config('babelfishpg_tsql.explain_costs', 'off', true) +GO + +SELECT set_config('force_parallel_mode', '0', true) +GO + +SET BABELFISH_SHOWPLAN_ALL on +GO + +select * from view_4517_date; +GO + +select * from view_4517_datetime +GO + +select * from view_4517_datetime2 +GO + +select * from babel_4517 where date_col <= cast('2023-08-31' as date) and date_col >= cast('2023-08-31' as date); +GO + +select * from babel_4517 where datetime_col <= cast('2023-08-31' as date) and datetime_col >= cast('2023-08-31' as date); +GO + +select * from babel_4517 where datetime2_col <= cast('2023-08-31' as date) and datetime2_col >= cast('2023-08-31' as date); +GO + +SET BABELFISH_SHOWPLAN_ALL off +GO + +SELECT set_config('force_parallel_mode', '1', true) +SELECT set_config('parallel_setup_cost', '0', true) +SELECT set_config('parallel_tuple_cost', '0', true) +GO + +SET BABELFISH_SHOWPLAN_ALL on +GO + +select * from view_4517_date; +GO + +select * from view_4517_datetime +GO + +select * from view_4517_datetime2 +GO + +select * from babel_4517 where date_col <= cast('2023-08-31' as date) and date_col >= cast('2023-08-31' as date); +GO + +select * from babel_4517 where datetime_col <= cast('2023-08-31' as date) and datetime_col >= cast('2023-08-31' as date); +GO + +select * from babel_4517 where datetime2_col <= cast('2023-08-31' as date) and datetime2_col >= cast('2023-08-31' as date); +GO + +SET BABELFISH_SHOWPLAN_ALL off +GO + +COMMIT TRANSACTION babel_4517 +GO + +SELECT set_config('babelfishpg_tsql.explain_costs', 'on', false) +GO \ No newline at end of file diff --git a/test/JDBC/upgrade/13_4/schedule b/test/JDBC/upgrade/13_4/schedule index 40457b081ab..5c4dbc63709 100644 --- a/test/JDBC/upgrade/13_4/schedule +++ b/test/JDBC/upgrade/13_4/schedule @@ -204,3 +204,4 @@ BABEL-3215 orderby-before-14_8-or-15_3 AUTO_ANALYZE-before-15-5-or-14-10 permission_restrictions_from_pg +babel-4517 diff --git a/test/JDBC/upgrade/13_5/schedule b/test/JDBC/upgrade/13_5/schedule index 908690dd58b..7d6a5b955ca 100644 --- a/test/JDBC/upgrade/13_5/schedule +++ b/test/JDBC/upgrade/13_5/schedule @@ -255,3 +255,4 @@ BABEL-3215 orderby-before-14_8-or-15_3 AUTO_ANALYZE-before-15-5-or-14-10 permission_restrictions_from_pg +babel-4517 diff --git a/test/JDBC/upgrade/13_6/schedule b/test/JDBC/upgrade/13_6/schedule index 90a8f7c9d84..9471799e720 100644 --- a/test/JDBC/upgrade/13_6/schedule +++ b/test/JDBC/upgrade/13_6/schedule @@ -315,3 +315,4 @@ orderby-before-14_8-or-15_3 BABEL-4410 AUTO_ANALYZE-before-15-5-or-14-10 permission_restrictions_from_pg +babel-4517 diff --git a/test/JDBC/upgrade/13_7/schedule b/test/JDBC/upgrade/13_7/schedule index 08d22fa2f71..25ed3cb090c 100644 --- a/test/JDBC/upgrade/13_7/schedule +++ b/test/JDBC/upgrade/13_7/schedule @@ -315,3 +315,4 @@ getdate BABEL-4410 AUTO_ANALYZE-before-15-5-or-14-10 permission_restrictions_from_pg +babel-4517 diff --git a/test/JDBC/upgrade/13_8/schedule b/test/JDBC/upgrade/13_8/schedule index 08d22fa2f71..25ed3cb090c 100644 --- a/test/JDBC/upgrade/13_8/schedule +++ b/test/JDBC/upgrade/13_8/schedule @@ -315,3 +315,4 @@ getdate BABEL-4410 AUTO_ANALYZE-before-15-5-or-14-10 permission_restrictions_from_pg +babel-4517 diff --git a/test/JDBC/upgrade/13_9/schedule b/test/JDBC/upgrade/13_9/schedule index 278e21fa651..4c392a4000b 100644 --- a/test/JDBC/upgrade/13_9/schedule +++ b/test/JDBC/upgrade/13_9/schedule @@ -315,3 +315,4 @@ getdate BABEL-4410 AUTO_ANALYZE-before-15-5-or-14-10 permission_restrictions_from_pg +babel-4517 diff --git a/test/JDBC/upgrade/14_10/schedule b/test/JDBC/upgrade/14_10/schedule index ca3c8e4bf8c..8ebc80b60e2 100644 --- a/test/JDBC/upgrade/14_10/schedule +++ b/test/JDBC/upgrade/14_10/schedule @@ -421,3 +421,4 @@ sys_certificates sys_database_permissions babel-4475 BABEL-4606 +babel-4517 diff --git a/test/JDBC/upgrade/14_3/schedule b/test/JDBC/upgrade/14_3/schedule index 5d781753c54..ab42c86276c 100644 --- a/test/JDBC/upgrade/14_3/schedule +++ b/test/JDBC/upgrade/14_3/schedule @@ -328,3 +328,4 @@ BABEL_4330 BABEL-4410 AUTO_ANALYZE-before-15-5-or-14-10 permission_restrictions_from_pg +babel-4517 diff --git a/test/JDBC/upgrade/14_5/schedule b/test/JDBC/upgrade/14_5/schedule index 392a1e54e4d..c1d3c9a6737 100644 --- a/test/JDBC/upgrade/14_5/schedule +++ b/test/JDBC/upgrade/14_5/schedule @@ -341,3 +341,4 @@ BABEL-4410 AUTO_ANALYZE-before-15-5-or-14-10 BABEL_4389 permission_restrictions_from_pg +babel-4517 diff --git a/test/JDBC/upgrade/14_6/schedule b/test/JDBC/upgrade/14_6/schedule index c3c7e15a6a9..95035dde80e 100644 --- a/test/JDBC/upgrade/14_6/schedule +++ b/test/JDBC/upgrade/14_6/schedule @@ -367,3 +367,4 @@ getdate BABEL_4330 AUTO_ANALYZE-before-15-5-or-14-10 BABEL_4389 +babel-4517 diff --git a/test/JDBC/upgrade/14_7/schedule b/test/JDBC/upgrade/14_7/schedule index bbad4b287f6..d3471483715 100644 --- a/test/JDBC/upgrade/14_7/schedule +++ b/test/JDBC/upgrade/14_7/schedule @@ -409,3 +409,4 @@ getdate BABEL_4330 AUTO_ANALYZE-before-15-5-or-14-10 BABEL_4389 +babel-4517 diff --git a/test/JDBC/upgrade/14_8/schedule b/test/JDBC/upgrade/14_8/schedule index f466c5b88c7..ec00411fca3 100644 --- a/test/JDBC/upgrade/14_8/schedule +++ b/test/JDBC/upgrade/14_8/schedule @@ -410,3 +410,4 @@ BABEL_4330 AUTO_ANALYZE-before-15-5-or-14-10 BABEL_4389 BABEL-4606 +babel-4517 diff --git a/test/JDBC/upgrade/14_9/schedule b/test/JDBC/upgrade/14_9/schedule index 9282f84176c..e37307f1a5a 100644 --- a/test/JDBC/upgrade/14_9/schedule +++ b/test/JDBC/upgrade/14_9/schedule @@ -414,3 +414,4 @@ BABEL-4410 AUTO_ANALYZE-before-15-5-or-14-10 babel-4475 BABEL-4606 +babel-4517 diff --git a/test/JDBC/upgrade/latest/schedule b/test/JDBC/upgrade/latest/schedule index 804e10f4e00..e35aff796ea 100644 --- a/test/JDBC/upgrade/latest/schedule +++ b/test/JDBC/upgrade/latest/schedule @@ -423,3 +423,4 @@ BABEL-4606 babel-4475 sys_availability_groups sys_availability_replicas +babel-4517 diff --git a/test/python/expected/upgrade_validation/expected_dependency.out b/test/python/expected/upgrade_validation/expected_dependency.out index b3d4af1a811..7537bc4a695 100644 --- a/test/python/expected/upgrade_validation/expected_dependency.out +++ b/test/python/expected/upgrade_validation/expected_dependency.out @@ -294,7 +294,6 @@ Function sys.datalength(anyelement) Function sys.datalength(character) Function sys.datalength(sys.sql_variant) Function sys.datalength(text) -Function sys.date2datetime2(date) Function sys.date2datetimeoffset(date) Function sys.date2smalldatetime(date) Function sys.date_sqlvariant(date) @@ -838,8 +837,6 @@ Operator sys.<=(sys."bit",integer) Operator sys.<=(sys."bit",sys."bit") Operator sys.<=(sys.bbf_binary,sys.bbf_binary) Operator sys.<=(sys.bbf_varbinary,sys.bbf_varbinary) -Operator sys.<=(sys.datetime,sys.datetime) -Operator sys.<=(sys.datetime2,sys.datetime2) Operator sys.<=(sys.datetimeoffset,sys.datetimeoffset) Operator sys.<=(sys.fixeddecimal,bigint) Operator sys.<=(sys.fixeddecimal,integer) @@ -925,8 +922,6 @@ Operator sys.>=(sys."bit",integer) Operator sys.>=(sys."bit",sys."bit") Operator sys.>=(sys.bbf_binary,sys.bbf_binary) Operator sys.>=(sys.bbf_varbinary,sys.bbf_varbinary) -Operator sys.>=(sys.datetime,sys.datetime) -Operator sys.>=(sys.datetime2,sys.datetime2) Operator sys.>=(sys.datetimeoffset,sys.datetimeoffset) Operator sys.>=(sys.fixeddecimal,bigint) Operator sys.>=(sys.fixeddecimal,integer)