From 4a656ca296cf4d6a96a377bed2be47bec216809b Mon Sep 17 00:00:00 2001 From: Dipesh Dhameliya Date: Thu, 14 Nov 2024 05:27:55 +0000 Subject: [PATCH 1/5] Fixed flakiness of the test BABEL-3592 by analysing appropriate tables --- test/JDBC/expected/BABEL-3592.out | 95 ++++---- .../expected/parallel_query/BABEL-3592.out | 101 ++++---- test/JDBC/input/pg_hint_plan/BABEL-3592.sql | 215 ------------------ 3 files changed, 102 insertions(+), 309 deletions(-) delete mode 100644 test/JDBC/input/pg_hint_plan/BABEL-3592.sql diff --git a/test/JDBC/expected/BABEL-3592.out b/test/JDBC/expected/BABEL-3592.out index 0058bc59803..dacd889e707 100644 --- a/test/JDBC/expected/BABEL-3592.out +++ b/test/JDBC/expected/BABEL-3592.out @@ -1,3 +1,4 @@ +-- tsql drop procedure if exists babel_3592_insert_multiline go @@ -25,6 +26,21 @@ go create table babel_3592_t3(a3 int PRIMARY KEY, b3 int) go + +-- psql +ANALYZE master_dbo.babel_3592_t1 +GO + + +-- psql +ANALYZE master_dbo.babel_3592_t2 +GO + +-- psql +ANALYZE master_dbo.babel_3592_t3 +GO + +-- tsql select set_config('babelfishpg_tsql.explain_costs', 'off', false) go ~~START~~ @@ -78,10 +94,8 @@ text Query Text: EXEC babel_3592_insert_multiline Query Text: insert into babel_3592_t2 select * from babel_3592_t1 where b1 = 1 -> Insert on babel_3592_t2 - -> Bitmap Heap Scan on babel_3592_t1 - Recheck Cond: (b1 = 1) - -> Bitmap Index Scan on index_babel_3592_t1_b1babel_35976c64b612d1f74e2768783beca3bf836 - Index Cond: (b1 = 1) + -> Seq Scan on babel_3592_t1 + Filter: (b1 = 1) Query Text: insert/*+ indexscan(babel_3592_t1 index_babel_3592_t1_b1babel_35976c64b612d1f74e2768783beca3bf836) */ into babel_3592_t2 select * from babel_3592_t1 @@ -97,7 +111,7 @@ Query Text: EXEC babel_3592_insert_multiline ~~START~~ text -Babelfish T-SQL Batch Parsing Time: 0.089 ms +Babelfish T-SQL Batch Parsing Time: 0.094 ms ~~END~~ @@ -114,7 +128,7 @@ Query Text: EXEC babel_3592_insert_singleline ~~START~~ text -Babelfish T-SQL Batch Parsing Time: 0.117 ms +Babelfish T-SQL Batch Parsing Time: 0.107 ms ~~END~~ @@ -166,10 +180,8 @@ text Query Text: EXEC babel_3592_insert_multiline Query Text: insert into babel_3592_t2 select * from babel_3592_t1 where b1 = 1 -> Insert on babel_3592_t2 - -> Bitmap Heap Scan on babel_3592_t1 - Recheck Cond: (b1 = 1) - -> Bitmap Index Scan on index_babel_3592_t1_b1babel_35976c64b612d1f74e2768783beca3bf836 - Index Cond: (b1 = 1) + -> Seq Scan on babel_3592_t1 + Filter: (b1 = 1) Query Text: insert/*+ indexscan(babel_3592_t1 index_babel_3592_t1_b1babel_35976c64b612d1f74e2768783beca3bf836) */ into babel_3592_t2 select * from babel_3592_t1 @@ -185,7 +197,7 @@ Query Text: EXEC babel_3592_insert_multiline ~~START~~ text -Babelfish T-SQL Batch Parsing Time: 0.083 ms +Babelfish T-SQL Batch Parsing Time: 0.056 ms ~~END~~ @@ -202,7 +214,7 @@ Query Text: EXEC babel_3592_updates_singleline ~~START~~ text -Babelfish T-SQL Batch Parsing Time: 0.083 ms +Babelfish T-SQL Batch Parsing Time: 0.063 ms ~~END~~ @@ -255,10 +267,8 @@ text Query Text: EXEC babel_3592_insert_multiline Query Text: insert into babel_3592_t2 select * from babel_3592_t1 where b1 = 1 -> Insert on babel_3592_t2 - -> Bitmap Heap Scan on babel_3592_t1 - Recheck Cond: (b1 = 1) - -> Bitmap Index Scan on index_babel_3592_t1_b1babel_35976c64b612d1f74e2768783beca3bf836 - Index Cond: (b1 = 1) + -> Seq Scan on babel_3592_t1 + Filter: (b1 = 1) Query Text: insert/*+ indexscan(babel_3592_t1 index_babel_3592_t1_b1babel_35976c64b612d1f74e2768783beca3bf836) */ into babel_3592_t2 select * from babel_3592_t1 @@ -274,7 +284,7 @@ Query Text: EXEC babel_3592_insert_multiline ~~START~~ text -Babelfish T-SQL Batch Parsing Time: 0.078 ms +Babelfish T-SQL Batch Parsing Time: 0.090 ms ~~END~~ @@ -291,7 +301,7 @@ Query Text: EXEC babel_3592_delete_singleline ~~START~~ text -Babelfish T-SQL Batch Parsing Time: 0.079 ms +Babelfish T-SQL Batch Parsing Time: 0.099 ms ~~END~~ @@ -362,16 +372,20 @@ Query Text: EXEC babel_3592_proc_mixed_statements Index Cond: (b1 = 1) Query Text: select/*+ nestloop(babel_3592_t1 babel_3592_t2) leading(babel_3592_t1 babel_3592_t2)*/ * from babel_3592_t1 inner join babel_3592_t2 on babel_3592_t1.a1 = babel_3592_t2.a2 -> Nested Loop + Join Filter: (babel_3592_t1.a1 = babel_3592_t2.a2) -> Seq Scan on babel_3592_t1 - -> Index Scan using babel_3592_t2_pkey on babel_3592_t2 - Index Cond: (a2 = babel_3592_t1.a1) + -> Seq Scan on babel_3592_t2 Query Text: select/*+ mergejoin(babel_3592_t1 babel_3592_t2) leading(babel_3592_t1 babel_3592_t2)*/ * from babel_3592_t1 inner join babel_3592_t2 on babel_3592_t1.a1 = babel_3592_t2.a2 -> Merge Join Merge Cond: (babel_3592_t1.a1 = babel_3592_t2.a2) - -> Index Scan using babel_3592_t1_pkey on babel_3592_t1 - -> Index Scan using babel_3592_t2_pkey on babel_3592_t2 + -> Sort + Sort Key: babel_3592_t1.a1 + -> Seq Scan on babel_3592_t1 + -> Sort + Sort Key: babel_3592_t2.a2 + -> Seq Scan on babel_3592_t2 Query Text: update/*+ indexscan(babel_3592_t1 index_babel_3592_t1_b1babel_35976c64b612d1f74e2768783beca3bf836) */ babel_3592_t1 set a1 = 1 where b1 = 1 -> Update on babel_3592_t1 -> Index Scan using index_babel_3592_t1_b1babel_35976c64b612d1f74e2768783beca3bf836 on babel_3592_t1 @@ -382,16 +396,12 @@ Query Text: EXEC babel_3592_proc_mixed_statements Merge Cond: (babel_3592_t1.a1 = babel_3592_t2.a2) -> Sort Sort Key: babel_3592_t1.a1 - -> Bitmap Heap Scan on babel_3592_t1 - Recheck Cond: (b1 = 1) - -> Bitmap Index Scan on index_babel_3592_t1_b1babel_35976c64b612d1f74e2768783beca3bf836 - Index Cond: (b1 = 1) + -> Seq Scan on babel_3592_t1 + Filter: (b1 = 1) -> Sort Sort Key: babel_3592_t2.a2 - -> Bitmap Heap Scan on babel_3592_t2 - Recheck Cond: (b2 = 1) - -> Bitmap Index Scan on index_babel_3592_t2_b2babel_359155b730148d8fcf0167f32edb84e3f7d - Index Cond: (b2 = 1) + -> Seq Scan on babel_3592_t2 + Filter: (b2 = 1) Query Text: delete/*+ indexscan(babel_3592_t1 index_babel_3592_t1_b1babel_35976c64b612d1f74e2768783beca3bf836) mergejoin(babel_3592_t1 babel_3592_t2) leading(babel_3592_t1 babel_3592_t2)*/ babel_3592_t1 from babel_3592_t1 left outer join babel_3592_t2 on babel_3592_t1.a1 = babel_3592_t2.a2 where b1 = 1 and b2 = 1 -> Delete on babel_3592_t1 -> Merge Join @@ -402,18 +412,14 @@ Query Text: EXEC babel_3592_proc_mixed_statements Index Cond: (b1 = 1) -> Sort Sort Key: babel_3592_t2.a2 - -> Bitmap Heap Scan on babel_3592_t2 - Recheck Cond: (b2 = 1) - -> Bitmap Index Scan on index_babel_3592_t2_b2babel_359155b730148d8fcf0167f32edb84e3f7d - Index Cond: (b2 = 1) + -> Seq Scan on babel_3592_t2 + Filter: (b2 = 1) Query Text: insert into babel_3592_t2 select * from babel_3592_t1 where b1 = 1 -> Insert on babel_3592_t2 - -> Bitmap Heap Scan on babel_3592_t1 - Recheck Cond: (b1 = 1) - -> Bitmap Index Scan on index_babel_3592_t1_b1babel_35976c64b612d1f74e2768783beca3bf836 - Index Cond: (b1 = 1) + -> Index Scan using index_babel_3592_t1_b1babel_35976c64b612d1f74e2768783beca3bf836 on babel_3592_t1 + Index Cond: (b1 = 1) Query Text: insert/*+ indexscan(babel_3592_t1 index_babel_3592_t1_b1babel_35976c64b612d1f74e2768783beca3bf836) */ into babel_3592_t2 select * from babel_3592_t1 where b1 = 1 -> Insert on babel_3592_t2 -> Index Scan using index_babel_3592_t1_b1babel_35976c64b612d1f74e2768783beca3bf836 on babel_3592_t1 @@ -424,22 +430,19 @@ babel_3592_t2 select * from babel_3592_t1 where b1 = 1 Index Cond: (b1 = 1) Query Text: update babel_3592_t1 set a1 = 1 where b1 = 1 -> Update on babel_3592_t1 - -> Bitmap Heap Scan on babel_3592_t1 - Recheck Cond: (b1 = 1) - -> Bitmap Index Scan on index_babel_3592_t1_b1babel_35976c64b612d1f74e2768783beca3bf836 - Index Cond: (b1 = 1) + -> Index Scan using index_babel_3592_t1_b1babel_35976c64b612d1f74e2768783beca3bf836 on babel_3592_t1 + Index Cond: (b1 = 1) Query Text: select/*+ indexscan(babel_3592_t1 index_babel_3592_t1_b1babel_35976c64b612d1f74e2768783beca3bf836) indexscan(babel_3592_t2 index_babel_3592_t2_b2babel_359155b730148d8fcf0167f32edb84e3f7d) */ * from babel_3592_t1 , babel_3592_t2 where b1 = 1 and b2 = 1 -> Nested Loop -> Index Scan using index_babel_3592_t1_b1babel_35976c64b612d1f74e2768783beca3bf836 on babel_3592_t1 Index Cond: (b1 = 1) - -> Materialize - -> Index Scan using index_babel_3592_t2_b2babel_359155b730148d8fcf0167f32edb84e3f7d on babel_3592_t2 - Index Cond: (b2 = 1) + -> Index Scan using index_babel_3592_t2_b2babel_359155b730148d8fcf0167f32edb84e3f7d on babel_3592_t2 + Index Cond: (b2 = 1) ~~END~~ ~~START~~ text -Babelfish T-SQL Batch Parsing Time: 0.080 ms +Babelfish T-SQL Batch Parsing Time: 0.097 ms ~~END~~ diff --git a/test/JDBC/expected/parallel_query/BABEL-3592.out b/test/JDBC/expected/parallel_query/BABEL-3592.out index d9dbc23eea1..014d035e038 100644 --- a/test/JDBC/expected/parallel_query/BABEL-3592.out +++ b/test/JDBC/expected/parallel_query/BABEL-3592.out @@ -1,3 +1,4 @@ +-- tsql drop procedure if exists babel_3592_insert_multiline go @@ -25,6 +26,21 @@ go create table babel_3592_t3(a3 int PRIMARY KEY, b3 int) go + +-- psql +ANALYZE master_dbo.babel_3592_t1 +GO + + +-- psql +ANALYZE master_dbo.babel_3592_t2 +GO + +-- psql +ANALYZE master_dbo.babel_3592_t3 +GO + +-- tsql select set_config('babelfishpg_tsql.explain_costs', 'off', false) go ~~START~~ @@ -78,10 +94,8 @@ text Query Text: EXEC babel_3592_insert_multiline Query Text: insert into babel_3592_t2 select * from babel_3592_t1 where b1 = 1 -> Insert on babel_3592_t2 - -> Bitmap Heap Scan on babel_3592_t1 - Recheck Cond: (b1 = 1) - -> Bitmap Index Scan on index_babel_3592_t1_b1babel_35976c64b612d1f74e2768783beca3bf836 - Index Cond: (b1 = 1) + -> Seq Scan on babel_3592_t1 + Filter: (b1 = 1) Query Text: insert/*+ indexscan(babel_3592_t1 index_babel_3592_t1_b1babel_35976c64b612d1f74e2768783beca3bf836) */ into babel_3592_t2 select * from babel_3592_t1 @@ -97,7 +111,7 @@ Query Text: EXEC babel_3592_insert_multiline ~~START~~ text -Babelfish T-SQL Batch Parsing Time: 0.050 ms +Babelfish T-SQL Batch Parsing Time: 0.077 ms ~~END~~ @@ -114,7 +128,7 @@ Query Text: EXEC babel_3592_insert_singleline ~~START~~ text -Babelfish T-SQL Batch Parsing Time: 0.073 ms +Babelfish T-SQL Batch Parsing Time: 0.083 ms ~~END~~ @@ -166,10 +180,8 @@ text Query Text: EXEC babel_3592_insert_multiline Query Text: insert into babel_3592_t2 select * from babel_3592_t1 where b1 = 1 -> Insert on babel_3592_t2 - -> Bitmap Heap Scan on babel_3592_t1 - Recheck Cond: (b1 = 1) - -> Bitmap Index Scan on index_babel_3592_t1_b1babel_35976c64b612d1f74e2768783beca3bf836 - Index Cond: (b1 = 1) + -> Seq Scan on babel_3592_t1 + Filter: (b1 = 1) Query Text: insert/*+ indexscan(babel_3592_t1 index_babel_3592_t1_b1babel_35976c64b612d1f74e2768783beca3bf836) */ into babel_3592_t2 select * from babel_3592_t1 @@ -185,7 +197,7 @@ Query Text: EXEC babel_3592_insert_multiline ~~START~~ text -Babelfish T-SQL Batch Parsing Time: 0.048 ms +Babelfish T-SQL Batch Parsing Time: 0.065 ms ~~END~~ @@ -202,7 +214,7 @@ Query Text: EXEC babel_3592_updates_singleline ~~START~~ text -Babelfish T-SQL Batch Parsing Time: 0.073 ms +Babelfish T-SQL Batch Parsing Time: 0.094 ms ~~END~~ @@ -255,10 +267,8 @@ text Query Text: EXEC babel_3592_insert_multiline Query Text: insert into babel_3592_t2 select * from babel_3592_t1 where b1 = 1 -> Insert on babel_3592_t2 - -> Bitmap Heap Scan on babel_3592_t1 - Recheck Cond: (b1 = 1) - -> Bitmap Index Scan on index_babel_3592_t1_b1babel_35976c64b612d1f74e2768783beca3bf836 - Index Cond: (b1 = 1) + -> Seq Scan on babel_3592_t1 + Filter: (b1 = 1) Query Text: insert/*+ indexscan(babel_3592_t1 index_babel_3592_t1_b1babel_35976c64b612d1f74e2768783beca3bf836) */ into babel_3592_t2 select * from babel_3592_t1 @@ -274,7 +284,7 @@ Query Text: EXEC babel_3592_insert_multiline ~~START~~ text -Babelfish T-SQL Batch Parsing Time: 0.064 ms +Babelfish T-SQL Batch Parsing Time: 0.075 ms ~~END~~ @@ -291,7 +301,7 @@ Query Text: EXEC babel_3592_delete_singleline ~~START~~ text -Babelfish T-SQL Batch Parsing Time: 0.055 ms +Babelfish T-SQL Batch Parsing Time: 0.095 ms ~~END~~ @@ -362,20 +372,26 @@ Query Text: EXEC babel_3592_proc_mixed_statements Index Cond: (b1 = 1) Query Text: select/*+ nestloop(babel_3592_t1 babel_3592_t2) leading(babel_3592_t1 babel_3592_t2)*/ * from babel_3592_t1 inner join babel_3592_t2 on babel_3592_t1.a1 = babel_3592_t2.a2 -> Gather - Workers Planned: 3 + Workers Planned: 1 + Single Copy: true -> Nested Loop - -> Parallel Seq Scan on babel_3592_t1 - -> Index Scan using babel_3592_t2_pkey on babel_3592_t2 - Index Cond: (a2 = babel_3592_t1.a1) + Join Filter: (babel_3592_t1.a1 = babel_3592_t2.a2) + -> Seq Scan on babel_3592_t1 + -> Seq Scan on babel_3592_t2 Query Text: select/*+ mergejoin(babel_3592_t1 babel_3592_t2) leading(babel_3592_t1 babel_3592_t2)*/ * from babel_3592_t1 inner join babel_3592_t2 on babel_3592_t1.a1 = babel_3592_t2.a2 -> Gather Workers Planned: 1 + Single Copy: true -> Merge Join Merge Cond: (babel_3592_t1.a1 = babel_3592_t2.a2) - -> Parallel Index Scan using babel_3592_t1_pkey on babel_3592_t1 - -> Index Scan using babel_3592_t2_pkey on babel_3592_t2 + -> Sort + Sort Key: babel_3592_t1.a1 + -> Seq Scan on babel_3592_t1 + -> Sort + Sort Key: babel_3592_t2.a2 + -> Seq Scan on babel_3592_t2 Query Text: update/*+ indexscan(babel_3592_t1 index_babel_3592_t1_b1babel_35976c64b612d1f74e2768783beca3bf836) */ babel_3592_t1 set a1 = 1 where b1 = 1 -> Update on babel_3592_t1 -> Index Scan using index_babel_3592_t1_b1babel_35976c64b612d1f74e2768783beca3bf836 on babel_3592_t1 @@ -386,16 +402,12 @@ Query Text: EXEC babel_3592_proc_mixed_statements Merge Cond: (babel_3592_t1.a1 = babel_3592_t2.a2) -> Sort Sort Key: babel_3592_t1.a1 - -> Bitmap Heap Scan on babel_3592_t1 - Recheck Cond: (b1 = 1) - -> Bitmap Index Scan on index_babel_3592_t1_b1babel_35976c64b612d1f74e2768783beca3bf836 - Index Cond: (b1 = 1) + -> Seq Scan on babel_3592_t1 + Filter: (b1 = 1) -> Sort Sort Key: babel_3592_t2.a2 - -> Bitmap Heap Scan on babel_3592_t2 - Recheck Cond: (b2 = 1) - -> Bitmap Index Scan on index_babel_3592_t2_b2babel_359155b730148d8fcf0167f32edb84e3f7d - Index Cond: (b2 = 1) + -> Seq Scan on babel_3592_t2 + Filter: (b2 = 1) Query Text: delete/*+ indexscan(babel_3592_t1 index_babel_3592_t1_b1babel_35976c64b612d1f74e2768783beca3bf836) mergejoin(babel_3592_t1 babel_3592_t2) leading(babel_3592_t1 babel_3592_t2)*/ babel_3592_t1 from babel_3592_t1 left outer join babel_3592_t2 on babel_3592_t1.a1 = babel_3592_t2.a2 where b1 = 1 and b2 = 1 -> Delete on babel_3592_t1 -> Merge Join @@ -406,18 +418,14 @@ Query Text: EXEC babel_3592_proc_mixed_statements Index Cond: (b1 = 1) -> Sort Sort Key: babel_3592_t2.a2 - -> Bitmap Heap Scan on babel_3592_t2 - Recheck Cond: (b2 = 1) - -> Bitmap Index Scan on index_babel_3592_t2_b2babel_359155b730148d8fcf0167f32edb84e3f7d - Index Cond: (b2 = 1) + -> Seq Scan on babel_3592_t2 + Filter: (b2 = 1) Query Text: insert into babel_3592_t2 select * from babel_3592_t1 where b1 = 1 -> Insert on babel_3592_t2 - -> Bitmap Heap Scan on babel_3592_t1 - Recheck Cond: (b1 = 1) - -> Bitmap Index Scan on index_babel_3592_t1_b1babel_35976c64b612d1f74e2768783beca3bf836 - Index Cond: (b1 = 1) + -> Index Scan using index_babel_3592_t1_b1babel_35976c64b612d1f74e2768783beca3bf836 on babel_3592_t1 + Index Cond: (b1 = 1) Query Text: insert/*+ indexscan(babel_3592_t1 index_babel_3592_t1_b1babel_35976c64b612d1f74e2768783beca3bf836) */ into babel_3592_t2 select * from babel_3592_t1 where b1 = 1 -> Insert on babel_3592_t2 -> Index Scan using index_babel_3592_t1_b1babel_35976c64b612d1f74e2768783beca3bf836 on babel_3592_t1 @@ -428,10 +436,8 @@ babel_3592_t2 select * from babel_3592_t1 where b1 = 1 Index Cond: (b1 = 1) Query Text: update babel_3592_t1 set a1 = 1 where b1 = 1 -> Update on babel_3592_t1 - -> Bitmap Heap Scan on babel_3592_t1 - Recheck Cond: (b1 = 1) - -> Bitmap Index Scan on index_babel_3592_t1_b1babel_35976c64b612d1f74e2768783beca3bf836 - Index Cond: (b1 = 1) + -> Index Scan using index_babel_3592_t1_b1babel_35976c64b612d1f74e2768783beca3bf836 on babel_3592_t1 + Index Cond: (b1 = 1) Query Text: select/*+ indexscan(babel_3592_t1 index_babel_3592_t1_b1babel_35976c64b612d1f74e2768783beca3bf836) indexscan(babel_3592_t2 index_babel_3592_t2_b2babel_359155b730148d8fcf0167f32edb84e3f7d) */ * from babel_3592_t1 , babel_3592_t2 where b1 = 1 and b2 = 1 -> Gather Workers Planned: 1 @@ -439,14 +445,13 @@ babel_3592_t2 select * from babel_3592_t1 where b1 = 1 -> Nested Loop -> Index Scan using index_babel_3592_t1_b1babel_35976c64b612d1f74e2768783beca3bf836 on babel_3592_t1 Index Cond: (b1 = 1) - -> Materialize - -> Index Scan using index_babel_3592_t2_b2babel_359155b730148d8fcf0167f32edb84e3f7d on babel_3592_t2 - Index Cond: (b2 = 1) + -> Index Scan using index_babel_3592_t2_b2babel_359155b730148d8fcf0167f32edb84e3f7d on babel_3592_t2 + Index Cond: (b2 = 1) ~~END~~ ~~START~~ text -Babelfish T-SQL Batch Parsing Time: 0.078 ms +Babelfish T-SQL Batch Parsing Time: 0.097 ms ~~END~~ diff --git a/test/JDBC/input/pg_hint_plan/BABEL-3592.sql b/test/JDBC/input/pg_hint_plan/BABEL-3592.sql deleted file mode 100644 index 29b74cac1a2..00000000000 --- a/test/JDBC/input/pg_hint_plan/BABEL-3592.sql +++ /dev/null @@ -1,215 +0,0 @@ --- parallel_query_expected -drop procedure if exists babel_3592_insert_multiline -go - -drop table if exists babel_3592_t1 -go - -drop table if exists babel_3592_t2 -go - -drop table if exists babel_3592_t3 -go - -create table babel_3592_t1(a1 int PRIMARY KEY, b1 int) -go - -create index index_babel_3592_t1_b1 on babel_3592_t1(b1) -go - -create table babel_3592_t2(a2 int PRIMARY KEY, b2 int) -go - -create index index_babel_3592_t2_b2 on babel_3592_t2(b2) -go - -create table babel_3592_t3(a3 int PRIMARY KEY, b3 int) -go - -select set_config('babelfishpg_tsql.explain_costs', 'off', false) -go - -select set_config('babelfishpg_tsql.enable_pg_hint', 'on', false); -go - --- TEST INSERT queries -CREATE PROCEDURE babel_3592_insert_multiline AS -insert into babel_3592_t2 select * from babel_3592_t1 where b1 = 1 -insert into babel_3592_t2 - select * - from babel_3592_t1 with(index(index_babel_3592_t1_b1)) - where b1 = 1 -insert into babel_3592_t2 select * from babel_3592_t1 where b1 = 1 option(table hint(babel_3592_t1, index(index_babel_3592_t1_b1))) -GO - -SELECT prosrc FROM pg_proc WHERE proname = 'babel_3592_insert_multiline'; -GO - -CREATE PROCEDURE babel_3592_insert_singleline AS insert into babel_3592_t2 select * from babel_3592_t1 where b1 = 1 option(table hint(babel_3592_t1, index(index_babel_3592_t1_b1))) -GO - -EXEC babel_3592_insert_multiline -GO - -EXEC babel_3592_insert_singleline -GO - -set babelfish_showplan_all on -go - -EXEC babel_3592_insert_multiline -GO - -EXEC babel_3592_insert_singleline -GO - -set babelfish_showplan_all off -go - --- Test UPDATE queries -CREATE PROCEDURE babel_3592_updates_multiline AS -update babel_3592_t1 - set a1 = 1 where b1 = 1 -update babel_3592_t1 - with(index(index_babel_3592_t1_b1)) - set a1 = 1 where b1 = 1 -update babel_3592_t1 set a1 = 1 where b1 = 1 option(table hint(babel_3592_t1, index(index_babel_3592_t1_b1))) -GO - -CREATE PROCEDURE babel_3592_updates_singleline AS update babel_3592_t1 set a1 = 1 where b1 = 1 option(table hint(babel_3592_t1, index(index_babel_3592_t1_b1))) -GO - -SELECT prosrc FROM pg_proc WHERE proname = 'babel_3592_updates_multiline'; -GO - -SELECT prosrc FROM pg_proc WHERE proname = 'babel_3592_updates_singleline'; -GO - -EXEC babel_3592_insert_multiline -GO - -EXEC babel_3592_updates_singleline -GO - -set babelfish_showplan_all on -go - -EXEC babel_3592_insert_multiline -GO - -EXEC babel_3592_updates_singleline -GO - -set babelfish_showplan_all off -go - --- Test DELETE queries with and without hints -CREATE PROCEDURE babel_3592_delete_multiline AS -delete from babel_3592_t1 where b1 = 1 -delete from babel_3592_t1 with - (index - (index_babel_3592_t1_b1) - ) - where b1 = 1 -delete from babel_3592_t1 where b1 = 1 option(table hint(babel_3592_t1, index(index_babel_3592_t1_b1))) -GO - -CREATE PROCEDURE babel_3592_delete_singleline AS delete from babel_3592_t1 where b1 = 1 option(table hint(babel_3592_t1, index(index_babel_3592_t1_b1))) -GO - -SELECT prosrc FROM pg_proc WHERE proname = 'babel_3592_delete_multiline'; -GO - -SELECT prosrc FROM pg_proc WHERE proname = 'babel_3592_delete_singleline'; -GO - -EXEC babel_3592_insert_multiline -GO - -EXEC babel_3592_delete_singleline -GO - -set babelfish_showplan_all on -go - -EXEC babel_3592_insert_multiline -GO - -EXEC babel_3592_delete_singleline -GO - -set babelfish_showplan_all off -go - --- Test mixed statements -create procedure babel_3592_proc_mixed_statements AS - update babel_3592_t1 with(index(index_babel_3592_t1_b1)) set a1 = 1 where b1 = 1 - select * from babel_3592_t1 inner loop join babel_3592_t2 on babel_3592_t1.a1 = babel_3592_t2.a2 - select * from babel_3592_t1 inner merge - join babel_3592_t2 - on babel_3592_t1.a1 = babel_3592_t2.a2 - - update babel_3592_t1 set a1 = 1 where b1 = 1 option(table hint(babel_3592_t1, index(index_babel_3592_t1_b1))) - delete babel_3592_t1 from babel_3592_t1 inner merge join babel_3592_t2 on babel_3592_t1.a1 = babel_3592_t2.a2 where b1 = 1 and b2 = 1 -delete babel_3592_t1 from babel_3592_t1 with(index(index_babel_3592_t1_b1)) left outer merge join babel_3592_t2 on babel_3592_t1.a1 = babel_3592_t2.a2 where b1 = 1 and b2 = 1 -insert -into -babel_3592_t2 select * from babel_3592_t1 where b1 = 1 - -insert into babel_3592_t2 select * from babel_3592_t1 with(index(index_babel_3592_t1_b1)) where b1 = 1 - -insert into babel_3592_t2 select * from babel_3592_t1 where b1 = 1 option(table hint(babel_3592_t1, index(index_babel_3592_t1_b1))) - --- comments inside the stored proc -update babel_3592_t1 set a1 = 1 where b1 = 1 -/* - *multiline comment - */ - select * from babel_3592_t1 with(index(index_babel_3592_t1_b1)), babel_3592_t2 with(index(index_babel_3592_t2_b2)) where b1 = 1 and b2 = 1 -GO - -SELECT prosrc FROM pg_proc WHERE proname = 'babel_3592_proc_mixed_statements'; -GO - -EXEC babel_3592_proc_mixed_statements -GO - -set babelfish_showplan_all on -go - -EXEC babel_3592_proc_mixed_statements -GO - --- clean up -set babelfish_showplan_all off -go - -DROP PROCEDURE babel_3592_insert_multiline -GO - -DROP PROCEDURE babel_3592_insert_singleline -GO - -DROP PROCEDURE babel_3592_updates_multiline -GO - -DROP PROCEDURE babel_3592_updates_singleline -GO - -DROP PROCEDURE babel_3592_delete_multiline -GO - -DROP PROCEDURE babel_3592_delete_singleline -GO - -DROP PROCEDURE babel_3592_proc_mixed_statements -GO - -DROP TABLE babel_3592_t1 -GO - -DROP TABLE babel_3592_t2 -GO - -DROP TABLE babel_3592_t3 -GO From 31eb453ea80a183b8a16445f7a5a5f8b974b0c19 Mon Sep 17 00:00:00 2001 From: Dipesh Dhameliya Date: Thu, 14 Nov 2024 05:39:26 +0000 Subject: [PATCH 2/5] New file --- test/JDBC/input/pg_hint_plan/BABEL-3592.mix | 231 ++++++++++++++++++++ 1 file changed, 231 insertions(+) create mode 100644 test/JDBC/input/pg_hint_plan/BABEL-3592.mix diff --git a/test/JDBC/input/pg_hint_plan/BABEL-3592.mix b/test/JDBC/input/pg_hint_plan/BABEL-3592.mix new file mode 100644 index 00000000000..829c3c4880c --- /dev/null +++ b/test/JDBC/input/pg_hint_plan/BABEL-3592.mix @@ -0,0 +1,231 @@ +-- parallel_query_expected +-- tsql +drop procedure if exists babel_3592_insert_multiline +go + +drop table if exists babel_3592_t1 +go + +drop table if exists babel_3592_t2 +go + +drop table if exists babel_3592_t3 +go + +create table babel_3592_t1(a1 int PRIMARY KEY, b1 int) +go + +create index index_babel_3592_t1_b1 on babel_3592_t1(b1) +go + +create table babel_3592_t2(a2 int PRIMARY KEY, b2 int) +go + +create index index_babel_3592_t2_b2 on babel_3592_t2(b2) +go + +create table babel_3592_t3(a3 int PRIMARY KEY, b3 int) +go + + +-- psql +ANALYZE master_dbo.babel_3592_t1 +GO + + +-- psql +ANALYZE master_dbo.babel_3592_t2 +GO + +-- psql +ANALYZE master_dbo.babel_3592_t3 +GO + +-- tsql +select set_config('babelfishpg_tsql.explain_costs', 'off', false) +go + +select set_config('babelfishpg_tsql.enable_pg_hint', 'on', false); +go + +-- TEST INSERT queries +CREATE PROCEDURE babel_3592_insert_multiline AS +insert into babel_3592_t2 select * from babel_3592_t1 where b1 = 1 +insert into babel_3592_t2 + select * + from babel_3592_t1 with(index(index_babel_3592_t1_b1)) + where b1 = 1 +insert into babel_3592_t2 select * from babel_3592_t1 where b1 = 1 option(table hint(babel_3592_t1, index(index_babel_3592_t1_b1))) +GO + +SELECT prosrc FROM pg_proc WHERE proname = 'babel_3592_insert_multiline'; +GO + +CREATE PROCEDURE babel_3592_insert_singleline AS insert into babel_3592_t2 select * from babel_3592_t1 where b1 = 1 option(table hint(babel_3592_t1, index(index_babel_3592_t1_b1))) +GO + +EXEC babel_3592_insert_multiline +GO + +EXEC babel_3592_insert_singleline +GO + +set babelfish_showplan_all on +go + +EXEC babel_3592_insert_multiline +GO + +EXEC babel_3592_insert_singleline +GO + +set babelfish_showplan_all off +go + +-- Test UPDATE queries +CREATE PROCEDURE babel_3592_updates_multiline AS +update babel_3592_t1 + set a1 = 1 where b1 = 1 +update babel_3592_t1 + with(index(index_babel_3592_t1_b1)) + set a1 = 1 where b1 = 1 +update babel_3592_t1 set a1 = 1 where b1 = 1 option(table hint(babel_3592_t1, index(index_babel_3592_t1_b1))) +GO + +CREATE PROCEDURE babel_3592_updates_singleline AS update babel_3592_t1 set a1 = 1 where b1 = 1 option(table hint(babel_3592_t1, index(index_babel_3592_t1_b1))) +GO + +SELECT prosrc FROM pg_proc WHERE proname = 'babel_3592_updates_multiline'; +GO + +SELECT prosrc FROM pg_proc WHERE proname = 'babel_3592_updates_singleline'; +GO + +EXEC babel_3592_insert_multiline +GO + +EXEC babel_3592_updates_singleline +GO + +set babelfish_showplan_all on +go + +EXEC babel_3592_insert_multiline +GO + +EXEC babel_3592_updates_singleline +GO + +set babelfish_showplan_all off +go + +-- Test DELETE queries with and without hints +CREATE PROCEDURE babel_3592_delete_multiline AS +delete from babel_3592_t1 where b1 = 1 +delete from babel_3592_t1 with + (index + (index_babel_3592_t1_b1) + ) + where b1 = 1 +delete from babel_3592_t1 where b1 = 1 option(table hint(babel_3592_t1, index(index_babel_3592_t1_b1))) +GO + +CREATE PROCEDURE babel_3592_delete_singleline AS delete from babel_3592_t1 where b1 = 1 option(table hint(babel_3592_t1, index(index_babel_3592_t1_b1))) +GO + +SELECT prosrc FROM pg_proc WHERE proname = 'babel_3592_delete_multiline'; +GO + +SELECT prosrc FROM pg_proc WHERE proname = 'babel_3592_delete_singleline'; +GO + +EXEC babel_3592_insert_multiline +GO + +EXEC babel_3592_delete_singleline +GO + +set babelfish_showplan_all on +go + +EXEC babel_3592_insert_multiline +GO + +EXEC babel_3592_delete_singleline +GO + +set babelfish_showplan_all off +go + +-- Test mixed statements +create procedure babel_3592_proc_mixed_statements AS + update babel_3592_t1 with(index(index_babel_3592_t1_b1)) set a1 = 1 where b1 = 1 + select * from babel_3592_t1 inner loop join babel_3592_t2 on babel_3592_t1.a1 = babel_3592_t2.a2 + select * from babel_3592_t1 inner merge + join babel_3592_t2 + on babel_3592_t1.a1 = babel_3592_t2.a2 + + update babel_3592_t1 set a1 = 1 where b1 = 1 option(table hint(babel_3592_t1, index(index_babel_3592_t1_b1))) + delete babel_3592_t1 from babel_3592_t1 inner merge join babel_3592_t2 on babel_3592_t1.a1 = babel_3592_t2.a2 where b1 = 1 and b2 = 1 +delete babel_3592_t1 from babel_3592_t1 with(index(index_babel_3592_t1_b1)) left outer merge join babel_3592_t2 on babel_3592_t1.a1 = babel_3592_t2.a2 where b1 = 1 and b2 = 1 +insert +into +babel_3592_t2 select * from babel_3592_t1 where b1 = 1 + +insert into babel_3592_t2 select * from babel_3592_t1 with(index(index_babel_3592_t1_b1)) where b1 = 1 + +insert into babel_3592_t2 select * from babel_3592_t1 where b1 = 1 option(table hint(babel_3592_t1, index(index_babel_3592_t1_b1))) + +-- comments inside the stored proc +update babel_3592_t1 set a1 = 1 where b1 = 1 +/* + *multiline comment + */ + select * from babel_3592_t1 with(index(index_babel_3592_t1_b1)), babel_3592_t2 with(index(index_babel_3592_t2_b2)) where b1 = 1 and b2 = 1 +GO + +SELECT prosrc FROM pg_proc WHERE proname = 'babel_3592_proc_mixed_statements'; +GO + +EXEC babel_3592_proc_mixed_statements +GO + +set babelfish_showplan_all on +go + +EXEC babel_3592_proc_mixed_statements +GO + +-- clean up +set babelfish_showplan_all off +go + +DROP PROCEDURE babel_3592_insert_multiline +GO + +DROP PROCEDURE babel_3592_insert_singleline +GO + +DROP PROCEDURE babel_3592_updates_multiline +GO + +DROP PROCEDURE babel_3592_updates_singleline +GO + +DROP PROCEDURE babel_3592_delete_multiline +GO + +DROP PROCEDURE babel_3592_delete_singleline +GO + +DROP PROCEDURE babel_3592_proc_mixed_statements +GO + +DROP TABLE babel_3592_t1 +GO + +DROP TABLE babel_3592_t2 +GO + +DROP TABLE babel_3592_t3 +GO From 80cd2f8879be01a21b60252c6e2c8f77d9f3373f Mon Sep 17 00:00:00 2001 From: Dipesh Dhameliya Date: Thu, 14 Nov 2024 14:58:39 +0000 Subject: [PATCH 3/5] test changes --- test/JDBC/input/pg_hint_plan/BABEL-3592.mix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/test/JDBC/input/pg_hint_plan/BABEL-3592.mix b/test/JDBC/input/pg_hint_plan/BABEL-3592.mix index 829c3c4880c..bc8f466ec2f 100644 --- a/test/JDBC/input/pg_hint_plan/BABEL-3592.mix +++ b/test/JDBC/input/pg_hint_plan/BABEL-3592.mix @@ -42,8 +42,8 @@ ANALYZE master_dbo.babel_3592_t3 GO -- tsql -select set_config('babelfishpg_tsql.explain_costs', 'off', false) -go +-- select set_config('babelfishpg_tsql.explain_costs', 'off', false) +-- go select set_config('babelfishpg_tsql.enable_pg_hint', 'on', false); go From 8873e71de5ea6cbfd95695a82ffab7fb9428fb2b Mon Sep 17 00:00:00 2001 From: Dipesh Dhameliya Date: Thu, 14 Nov 2024 15:02:56 +0000 Subject: [PATCH 4/5] Temp changes --- test/JDBC/expected/BABEL-3592.out | 162 +++++++++++++++--------------- test/JDBC/jdbc_schedule | 3 +- 2 files changed, 85 insertions(+), 80 deletions(-) diff --git a/test/JDBC/expected/BABEL-3592.out b/test/JDBC/expected/BABEL-3592.out index dacd889e707..943026c341a 100644 --- a/test/JDBC/expected/BABEL-3592.out +++ b/test/JDBC/expected/BABEL-3592.out @@ -41,14 +41,9 @@ ANALYZE master_dbo.babel_3592_t3 GO -- tsql -select set_config('babelfishpg_tsql.explain_costs', 'off', false) -go -~~START~~ -text -off -~~END~~ - +-- select set_config('babelfishpg_tsql.explain_costs', 'off', false) +-- go select set_config('babelfishpg_tsql.enable_pg_hint', 'on', false); go ~~START~~ @@ -93,25 +88,25 @@ GO text Query Text: EXEC babel_3592_insert_multiline Query Text: insert into babel_3592_t2 select * from babel_3592_t1 where b1 = 1 - -> Insert on babel_3592_t2 - -> Seq Scan on babel_3592_t1 + -> Insert on babel_3592_t2 (cost=0.00..0.00 rows=0 width=0) + -> Seq Scan on babel_3592_t1 (cost=0.00..0.00 rows=1 width=8) Filter: (b1 = 1) Query Text: insert/*+ indexscan(babel_3592_t1 index_babel_3592_t1_b1babel_35976c64b612d1f74e2768783beca3bf836) */ into babel_3592_t2 select * from babel_3592_t1 where b1 = 1 - -> Insert on babel_3592_t2 - -> Index Scan using index_babel_3592_t1_b1babel_35976c64b612d1f74e2768783beca3bf836 on babel_3592_t1 + -> Insert on babel_3592_t2 (cost=0.12..8.14 rows=0 width=0) + -> Index Scan using index_babel_3592_t1_b1babel_35976c64b612d1f74e2768783beca3bf836 on babel_3592_t1 (cost=0.12..8.14 rows=1 width=8) Index Cond: (b1 = 1) Query Text: insert/*+ indexscan(babel_3592_t1 index_babel_3592_t1_b1babel_35976c64b612d1f74e2768783beca3bf836) */ into babel_3592_t2 select * from babel_3592_t1 where b1 = 1 - -> Insert on babel_3592_t2 - -> Index Scan using index_babel_3592_t1_b1babel_35976c64b612d1f74e2768783beca3bf836 on babel_3592_t1 + -> Insert on babel_3592_t2 (cost=0.12..8.14 rows=0 width=0) + -> Index Scan using index_babel_3592_t1_b1babel_35976c64b612d1f74e2768783beca3bf836 on babel_3592_t1 (cost=0.12..8.14 rows=1 width=8) Index Cond: (b1 = 1) ~~END~~ ~~START~~ text -Babelfish T-SQL Batch Parsing Time: 0.094 ms +Babelfish T-SQL Batch Parsing Time: 0.083 ms ~~END~~ @@ -121,14 +116,14 @@ GO text Query Text: EXEC babel_3592_insert_singleline Query Text: insert/*+ indexscan(babel_3592_t1 index_babel_3592_t1_b1babel_35976c64b612d1f74e2768783beca3bf836) */ into babel_3592_t2 select * from babel_3592_t1 where b1 = 1 - -> Insert on babel_3592_t2 - -> Index Scan using index_babel_3592_t1_b1babel_35976c64b612d1f74e2768783beca3bf836 on babel_3592_t1 + -> Insert on babel_3592_t2 (cost=0.12..8.14 rows=0 width=0) + -> Index Scan using index_babel_3592_t1_b1babel_35976c64b612d1f74e2768783beca3bf836 on babel_3592_t1 (cost=0.12..8.14 rows=1 width=8) Index Cond: (b1 = 1) ~~END~~ ~~START~~ text -Babelfish T-SQL Batch Parsing Time: 0.107 ms +Babelfish T-SQL Batch Parsing Time: 0.109 ms ~~END~~ @@ -179,25 +174,25 @@ GO text Query Text: EXEC babel_3592_insert_multiline Query Text: insert into babel_3592_t2 select * from babel_3592_t1 where b1 = 1 - -> Insert on babel_3592_t2 - -> Seq Scan on babel_3592_t1 + -> Insert on babel_3592_t2 (cost=0.00..0.00 rows=0 width=0) + -> Seq Scan on babel_3592_t1 (cost=0.00..0.00 rows=1 width=8) Filter: (b1 = 1) Query Text: insert/*+ indexscan(babel_3592_t1 index_babel_3592_t1_b1babel_35976c64b612d1f74e2768783beca3bf836) */ into babel_3592_t2 select * from babel_3592_t1 where b1 = 1 - -> Insert on babel_3592_t2 - -> Index Scan using index_babel_3592_t1_b1babel_35976c64b612d1f74e2768783beca3bf836 on babel_3592_t1 + -> Insert on babel_3592_t2 (cost=0.12..8.14 rows=0 width=0) + -> Index Scan using index_babel_3592_t1_b1babel_35976c64b612d1f74e2768783beca3bf836 on babel_3592_t1 (cost=0.12..8.14 rows=1 width=8) Index Cond: (b1 = 1) Query Text: insert/*+ indexscan(babel_3592_t1 index_babel_3592_t1_b1babel_35976c64b612d1f74e2768783beca3bf836) */ into babel_3592_t2 select * from babel_3592_t1 where b1 = 1 - -> Insert on babel_3592_t2 - -> Index Scan using index_babel_3592_t1_b1babel_35976c64b612d1f74e2768783beca3bf836 on babel_3592_t1 + -> Insert on babel_3592_t2 (cost=0.12..8.14 rows=0 width=0) + -> Index Scan using index_babel_3592_t1_b1babel_35976c64b612d1f74e2768783beca3bf836 on babel_3592_t1 (cost=0.12..8.14 rows=1 width=8) Index Cond: (b1 = 1) ~~END~~ ~~START~~ text -Babelfish T-SQL Batch Parsing Time: 0.056 ms +Babelfish T-SQL Batch Parsing Time: 0.057 ms ~~END~~ @@ -207,14 +202,14 @@ GO text Query Text: EXEC babel_3592_updates_singleline Query Text: update/*+ indexscan(babel_3592_t1 index_babel_3592_t1_b1babel_35976c64b612d1f74e2768783beca3bf836) */ babel_3592_t1 set a1 = 1 where b1 = 1 - -> Update on babel_3592_t1 - -> Index Scan using index_babel_3592_t1_b1babel_35976c64b612d1f74e2768783beca3bf836 on babel_3592_t1 + -> Update on babel_3592_t1 (cost=0.12..8.14 rows=0 width=0) + -> Index Scan using index_babel_3592_t1_b1babel_35976c64b612d1f74e2768783beca3bf836 on babel_3592_t1 (cost=0.12..8.14 rows=1 width=10) Index Cond: (b1 = 1) ~~END~~ ~~START~~ text -Babelfish T-SQL Batch Parsing Time: 0.063 ms +Babelfish T-SQL Batch Parsing Time: 0.064 ms ~~END~~ @@ -266,25 +261,25 @@ GO text Query Text: EXEC babel_3592_insert_multiline Query Text: insert into babel_3592_t2 select * from babel_3592_t1 where b1 = 1 - -> Insert on babel_3592_t2 - -> Seq Scan on babel_3592_t1 + -> Insert on babel_3592_t2 (cost=0.00..0.00 rows=0 width=0) + -> Seq Scan on babel_3592_t1 (cost=0.00..0.00 rows=1 width=8) Filter: (b1 = 1) Query Text: insert/*+ indexscan(babel_3592_t1 index_babel_3592_t1_b1babel_35976c64b612d1f74e2768783beca3bf836) */ into babel_3592_t2 select * from babel_3592_t1 where b1 = 1 - -> Insert on babel_3592_t2 - -> Index Scan using index_babel_3592_t1_b1babel_35976c64b612d1f74e2768783beca3bf836 on babel_3592_t1 + -> Insert on babel_3592_t2 (cost=0.12..8.14 rows=0 width=0) + -> Index Scan using index_babel_3592_t1_b1babel_35976c64b612d1f74e2768783beca3bf836 on babel_3592_t1 (cost=0.12..8.14 rows=1 width=8) Index Cond: (b1 = 1) Query Text: insert/*+ indexscan(babel_3592_t1 index_babel_3592_t1_b1babel_35976c64b612d1f74e2768783beca3bf836) */ into babel_3592_t2 select * from babel_3592_t1 where b1 = 1 - -> Insert on babel_3592_t2 - -> Index Scan using index_babel_3592_t1_b1babel_35976c64b612d1f74e2768783beca3bf836 on babel_3592_t1 + -> Insert on babel_3592_t2 (cost=0.12..8.14 rows=0 width=0) + -> Index Scan using index_babel_3592_t1_b1babel_35976c64b612d1f74e2768783beca3bf836 on babel_3592_t1 (cost=0.12..8.14 rows=1 width=8) Index Cond: (b1 = 1) ~~END~~ ~~START~~ text -Babelfish T-SQL Batch Parsing Time: 0.090 ms +Babelfish T-SQL Batch Parsing Time: 0.059 ms ~~END~~ @@ -294,14 +289,14 @@ GO text Query Text: EXEC babel_3592_delete_singleline Query Text: delete/*+ indexscan(babel_3592_t1 index_babel_3592_t1_b1babel_35976c64b612d1f74e2768783beca3bf836) */ from babel_3592_t1 where b1 = 1 - -> Delete on babel_3592_t1 - -> Index Scan using index_babel_3592_t1_b1babel_35976c64b612d1f74e2768783beca3bf836 on babel_3592_t1 + -> Delete on babel_3592_t1 (cost=0.12..8.14 rows=0 width=0) + -> Index Scan using index_babel_3592_t1_b1babel_35976c64b612d1f74e2768783beca3bf836 on babel_3592_t1 (cost=0.12..8.14 rows=1 width=6) Index Cond: (b1 = 1) ~~END~~ ~~START~~ text -Babelfish T-SQL Batch Parsing Time: 0.099 ms +Babelfish T-SQL Batch Parsing Time: 0.064 ms ~~END~~ @@ -367,82 +362,91 @@ GO text Query Text: EXEC babel_3592_proc_mixed_statements Query Text: update/*+ indexscan(babel_3592_t1 index_babel_3592_t1_b1babel_35976c64b612d1f74e2768783beca3bf836) */ babel_3592_t1 set a1 = 1 where b1 = 1 - -> Update on babel_3592_t1 - -> Index Scan using index_babel_3592_t1_b1babel_35976c64b612d1f74e2768783beca3bf836 on babel_3592_t1 + -> Update on babel_3592_t1 (cost=0.12..8.14 rows=0 width=0) + -> Index Scan using index_babel_3592_t1_b1babel_35976c64b612d1f74e2768783beca3bf836 on babel_3592_t1 (cost=0.12..8.14 rows=1 width=10) Index Cond: (b1 = 1) Query Text: select/*+ nestloop(babel_3592_t1 babel_3592_t2) leading(babel_3592_t1 babel_3592_t2)*/ * from babel_3592_t1 inner join babel_3592_t2 on babel_3592_t1.a1 = babel_3592_t2.a2 - -> Nested Loop - Join Filter: (babel_3592_t1.a1 = babel_3592_t2.a2) - -> Seq Scan on babel_3592_t1 - -> Seq Scan on babel_3592_t2 + -> Gather (cost=0.00..0.01 rows=1 width=16) + Workers Planned: 1 + Single Copy: true + -> Nested Loop (cost=0.00..0.01 rows=1 width=16) + Join Filter: (babel_3592_t1.a1 = babel_3592_t2.a2) + -> Seq Scan on babel_3592_t1 (cost=0.00..0.00 rows=1 width=8) + -> Seq Scan on babel_3592_t2 (cost=0.00..0.00 rows=1 width=8) Query Text: select/*+ mergejoin(babel_3592_t1 babel_3592_t2) leading(babel_3592_t1 babel_3592_t2)*/ * from babel_3592_t1 inner join babel_3592_t2 on babel_3592_t1.a1 = babel_3592_t2.a2 - -> Merge Join - Merge Cond: (babel_3592_t1.a1 = babel_3592_t2.a2) - -> Sort - Sort Key: babel_3592_t1.a1 - -> Seq Scan on babel_3592_t1 - -> Sort - Sort Key: babel_3592_t2.a2 - -> Seq Scan on babel_3592_t2 + -> Gather (cost=0.02..0.05 rows=1 width=16) + Workers Planned: 1 + Single Copy: true + -> Merge Join (cost=0.02..0.05 rows=1 width=16) + Merge Cond: (babel_3592_t1.a1 = babel_3592_t2.a2) + -> Sort (cost=0.01..0.02 rows=1 width=8) + Sort Key: babel_3592_t1.a1 + -> Seq Scan on babel_3592_t1 (cost=0.00..0.00 rows=1 width=8) + -> Sort (cost=0.01..0.02 rows=1 width=8) + Sort Key: babel_3592_t2.a2 + -> Seq Scan on babel_3592_t2 (cost=0.00..0.00 rows=1 width=8) Query Text: update/*+ indexscan(babel_3592_t1 index_babel_3592_t1_b1babel_35976c64b612d1f74e2768783beca3bf836) */ babel_3592_t1 set a1 = 1 where b1 = 1 - -> Update on babel_3592_t1 - -> Index Scan using index_babel_3592_t1_b1babel_35976c64b612d1f74e2768783beca3bf836 on babel_3592_t1 + -> Update on babel_3592_t1 (cost=0.12..8.14 rows=0 width=0) + -> Index Scan using index_babel_3592_t1_b1babel_35976c64b612d1f74e2768783beca3bf836 on babel_3592_t1 (cost=0.12..8.14 rows=1 width=10) Index Cond: (b1 = 1) Query Text: delete/*+ mergejoin(babel_3592_t1 babel_3592_t2) leading(babel_3592_t1 babel_3592_t2)*/ babel_3592_t1 from babel_3592_t1 inner join babel_3592_t2 on babel_3592_t1.a1 = babel_3592_t2.a2 where b1 = 1 and b2 = 1 - -> Delete on babel_3592_t1 - -> Merge Join + -> Delete on babel_3592_t1 (cost=0.02..0.05 rows=0 width=0) + -> Merge Join (cost=0.02..0.05 rows=1 width=12) Merge Cond: (babel_3592_t1.a1 = babel_3592_t2.a2) - -> Sort + -> Sort (cost=0.01..0.02 rows=1 width=10) Sort Key: babel_3592_t1.a1 - -> Seq Scan on babel_3592_t1 + -> Seq Scan on babel_3592_t1 (cost=0.00..0.00 rows=1 width=10) Filter: (b1 = 1) - -> Sort + -> Sort (cost=0.01..0.02 rows=1 width=10) Sort Key: babel_3592_t2.a2 - -> Seq Scan on babel_3592_t2 + -> Seq Scan on babel_3592_t2 (cost=0.00..0.00 rows=1 width=10) Filter: (b2 = 1) Query Text: delete/*+ indexscan(babel_3592_t1 index_babel_3592_t1_b1babel_35976c64b612d1f74e2768783beca3bf836) mergejoin(babel_3592_t1 babel_3592_t2) leading(babel_3592_t1 babel_3592_t2)*/ babel_3592_t1 from babel_3592_t1 left outer join babel_3592_t2 on babel_3592_t1.a1 = babel_3592_t2.a2 where b1 = 1 and b2 = 1 - -> Delete on babel_3592_t1 - -> Merge Join + -> Delete on babel_3592_t1 (cost=8.16..8.19 rows=0 width=0) + -> Merge Join (cost=8.16..8.19 rows=1 width=12) Merge Cond: (babel_3592_t1.a1 = babel_3592_t2.a2) - -> Sort + -> Sort (cost=8.15..8.16 rows=1 width=10) Sort Key: babel_3592_t1.a1 - -> Index Scan using index_babel_3592_t1_b1babel_35976c64b612d1f74e2768783beca3bf836 on babel_3592_t1 + -> Index Scan using index_babel_3592_t1_b1babel_35976c64b612d1f74e2768783beca3bf836 on babel_3592_t1 (cost=0.12..8.14 rows=1 width=10) Index Cond: (b1 = 1) - -> Sort + -> Sort (cost=0.01..0.02 rows=1 width=10) Sort Key: babel_3592_t2.a2 - -> Seq Scan on babel_3592_t2 + -> Seq Scan on babel_3592_t2 (cost=0.00..0.00 rows=1 width=10) Filter: (b2 = 1) Query Text: insert into babel_3592_t2 select * from babel_3592_t1 where b1 = 1 - -> Insert on babel_3592_t2 - -> Index Scan using index_babel_3592_t1_b1babel_35976c64b612d1f74e2768783beca3bf836 on babel_3592_t1 + -> Insert on babel_3592_t2 (cost=0.12..8.14 rows=0 width=0) + -> Index Scan using index_babel_3592_t1_b1babel_35976c64b612d1f74e2768783beca3bf836 on babel_3592_t1 (cost=0.12..8.14 rows=1 width=8) Index Cond: (b1 = 1) Query Text: insert/*+ indexscan(babel_3592_t1 index_babel_3592_t1_b1babel_35976c64b612d1f74e2768783beca3bf836) */ into babel_3592_t2 select * from babel_3592_t1 where b1 = 1 - -> Insert on babel_3592_t2 - -> Index Scan using index_babel_3592_t1_b1babel_35976c64b612d1f74e2768783beca3bf836 on babel_3592_t1 + -> Insert on babel_3592_t2 (cost=0.12..8.14 rows=0 width=0) + -> Index Scan using index_babel_3592_t1_b1babel_35976c64b612d1f74e2768783beca3bf836 on babel_3592_t1 (cost=0.12..8.14 rows=1 width=8) Index Cond: (b1 = 1) Query Text: insert/*+ indexscan(babel_3592_t1 index_babel_3592_t1_b1babel_35976c64b612d1f74e2768783beca3bf836) */ into babel_3592_t2 select * from babel_3592_t1 where b1 = 1 - -> Insert on babel_3592_t2 - -> Index Scan using index_babel_3592_t1_b1babel_35976c64b612d1f74e2768783beca3bf836 on babel_3592_t1 + -> Insert on babel_3592_t2 (cost=0.12..8.14 rows=0 width=0) + -> Index Scan using index_babel_3592_t1_b1babel_35976c64b612d1f74e2768783beca3bf836 on babel_3592_t1 (cost=0.12..8.14 rows=1 width=8) Index Cond: (b1 = 1) Query Text: update babel_3592_t1 set a1 = 1 where b1 = 1 - -> Update on babel_3592_t1 - -> Index Scan using index_babel_3592_t1_b1babel_35976c64b612d1f74e2768783beca3bf836 on babel_3592_t1 + -> Update on babel_3592_t1 (cost=0.12..8.14 rows=0 width=0) + -> Index Scan using index_babel_3592_t1_b1babel_35976c64b612d1f74e2768783beca3bf836 on babel_3592_t1 (cost=0.12..8.14 rows=1 width=10) Index Cond: (b1 = 1) Query Text: select/*+ indexscan(babel_3592_t1 index_babel_3592_t1_b1babel_35976c64b612d1f74e2768783beca3bf836) indexscan(babel_3592_t2 index_babel_3592_t2_b2babel_359155b730148d8fcf0167f32edb84e3f7d) */ * from babel_3592_t1 , babel_3592_t2 where b1 = 1 and b2 = 1 - -> Nested Loop - -> Index Scan using index_babel_3592_t1_b1babel_35976c64b612d1f74e2768783beca3bf836 on babel_3592_t1 - Index Cond: (b1 = 1) - -> Index Scan using index_babel_3592_t2_b2babel_359155b730148d8fcf0167f32edb84e3f7d on babel_3592_t2 - Index Cond: (b2 = 1) + -> Gather (cost=0.25..16.30 rows=1 width=16) + Workers Planned: 1 + Single Copy: true + -> Nested Loop (cost=0.25..16.30 rows=1 width=16) + -> Index Scan using index_babel_3592_t1_b1babel_35976c64b612d1f74e2768783beca3bf836 on babel_3592_t1 (cost=0.12..8.14 rows=1 width=8) + Index Cond: (b1 = 1) + -> Index Scan using index_babel_3592_t2_b2babel_359155b730148d8fcf0167f32edb84e3f7d on babel_3592_t2 (cost=0.12..8.14 rows=1 width=8) + Index Cond: (b2 = 1) ~~END~~ ~~START~~ text -Babelfish T-SQL Batch Parsing Time: 0.097 ms +Babelfish T-SQL Batch Parsing Time: 0.093 ms ~~END~~ diff --git a/test/JDBC/jdbc_schedule b/test/JDBC/jdbc_schedule index 6630488bd15..1d1936fe844 100644 --- a/test/JDBC/jdbc_schedule +++ b/test/JDBC/jdbc_schedule @@ -8,7 +8,8 @@ # new line # 6. If you want the framework to not run certain files, use: ignore#!# -all +# all +BABEL-3592 # BABEL-SP_FKEYS test is very slow and causing github action timeout. From 1583c958a9740e8aad8dfc7b0e7be3e982924b6a Mon Sep 17 00:00:00 2001 From: Dipesh Dhameliya Date: Thu, 14 Nov 2024 15:26:03 +0000 Subject: [PATCH 5/5] Fixed variables --- test/JDBC/expected/BABEL-3592.out | 57 +++++++++++++------------------ 1 file changed, 24 insertions(+), 33 deletions(-) diff --git a/test/JDBC/expected/BABEL-3592.out b/test/JDBC/expected/BABEL-3592.out index 943026c341a..90866cb78c4 100644 --- a/test/JDBC/expected/BABEL-3592.out +++ b/test/JDBC/expected/BABEL-3592.out @@ -106,7 +106,7 @@ Query Text: EXEC babel_3592_insert_multiline ~~START~~ text -Babelfish T-SQL Batch Parsing Time: 0.083 ms +Babelfish T-SQL Batch Parsing Time: 0.068 ms ~~END~~ @@ -123,7 +123,7 @@ Query Text: EXEC babel_3592_insert_singleline ~~START~~ text -Babelfish T-SQL Batch Parsing Time: 0.109 ms +Babelfish T-SQL Batch Parsing Time: 0.071 ms ~~END~~ @@ -192,7 +192,7 @@ Query Text: EXEC babel_3592_insert_multiline ~~START~~ text -Babelfish T-SQL Batch Parsing Time: 0.057 ms +Babelfish T-SQL Batch Parsing Time: 0.091 ms ~~END~~ @@ -209,7 +209,7 @@ Query Text: EXEC babel_3592_updates_singleline ~~START~~ text -Babelfish T-SQL Batch Parsing Time: 0.064 ms +Babelfish T-SQL Batch Parsing Time: 0.095 ms ~~END~~ @@ -279,7 +279,7 @@ Query Text: EXEC babel_3592_insert_multiline ~~START~~ text -Babelfish T-SQL Batch Parsing Time: 0.059 ms +Babelfish T-SQL Batch Parsing Time: 0.056 ms ~~END~~ @@ -296,7 +296,7 @@ Query Text: EXEC babel_3592_delete_singleline ~~START~~ text -Babelfish T-SQL Batch Parsing Time: 0.064 ms +Babelfish T-SQL Batch Parsing Time: 0.063 ms ~~END~~ @@ -366,27 +366,21 @@ Query Text: EXEC babel_3592_proc_mixed_statements -> Index Scan using index_babel_3592_t1_b1babel_35976c64b612d1f74e2768783beca3bf836 on babel_3592_t1 (cost=0.12..8.14 rows=1 width=10) Index Cond: (b1 = 1) Query Text: select/*+ nestloop(babel_3592_t1 babel_3592_t2) leading(babel_3592_t1 babel_3592_t2)*/ * from babel_3592_t1 inner join babel_3592_t2 on babel_3592_t1.a1 = babel_3592_t2.a2 - -> Gather (cost=0.00..0.01 rows=1 width=16) - Workers Planned: 1 - Single Copy: true - -> Nested Loop (cost=0.00..0.01 rows=1 width=16) - Join Filter: (babel_3592_t1.a1 = babel_3592_t2.a2) - -> Seq Scan on babel_3592_t1 (cost=0.00..0.00 rows=1 width=8) - -> Seq Scan on babel_3592_t2 (cost=0.00..0.00 rows=1 width=8) + -> Nested Loop (cost=0.00..0.01 rows=1 width=16) + Join Filter: (babel_3592_t1.a1 = babel_3592_t2.a2) + -> Seq Scan on babel_3592_t1 (cost=0.00..0.00 rows=1 width=8) + -> Seq Scan on babel_3592_t2 (cost=0.00..0.00 rows=1 width=8) Query Text: select/*+ mergejoin(babel_3592_t1 babel_3592_t2) leading(babel_3592_t1 babel_3592_t2)*/ * from babel_3592_t1 inner join babel_3592_t2 on babel_3592_t1.a1 = babel_3592_t2.a2 - -> Gather (cost=0.02..0.05 rows=1 width=16) - Workers Planned: 1 - Single Copy: true - -> Merge Join (cost=0.02..0.05 rows=1 width=16) - Merge Cond: (babel_3592_t1.a1 = babel_3592_t2.a2) - -> Sort (cost=0.01..0.02 rows=1 width=8) - Sort Key: babel_3592_t1.a1 - -> Seq Scan on babel_3592_t1 (cost=0.00..0.00 rows=1 width=8) - -> Sort (cost=0.01..0.02 rows=1 width=8) - Sort Key: babel_3592_t2.a2 - -> Seq Scan on babel_3592_t2 (cost=0.00..0.00 rows=1 width=8) + -> Merge Join (cost=0.02..0.05 rows=1 width=16) + Merge Cond: (babel_3592_t1.a1 = babel_3592_t2.a2) + -> Sort (cost=0.01..0.02 rows=1 width=8) + Sort Key: babel_3592_t1.a1 + -> Seq Scan on babel_3592_t1 (cost=0.00..0.00 rows=1 width=8) + -> Sort (cost=0.01..0.02 rows=1 width=8) + Sort Key: babel_3592_t2.a2 + -> Seq Scan on babel_3592_t2 (cost=0.00..0.00 rows=1 width=8) Query Text: update/*+ indexscan(babel_3592_t1 index_babel_3592_t1_b1babel_35976c64b612d1f74e2768783beca3bf836) */ babel_3592_t1 set a1 = 1 where b1 = 1 -> Update on babel_3592_t1 (cost=0.12..8.14 rows=0 width=0) -> Index Scan using index_babel_3592_t1_b1babel_35976c64b612d1f74e2768783beca3bf836 on babel_3592_t1 (cost=0.12..8.14 rows=1 width=10) @@ -434,19 +428,16 @@ babel_3592_t2 select * from babel_3592_t1 where b1 = 1 -> Index Scan using index_babel_3592_t1_b1babel_35976c64b612d1f74e2768783beca3bf836 on babel_3592_t1 (cost=0.12..8.14 rows=1 width=10) Index Cond: (b1 = 1) Query Text: select/*+ indexscan(babel_3592_t1 index_babel_3592_t1_b1babel_35976c64b612d1f74e2768783beca3bf836) indexscan(babel_3592_t2 index_babel_3592_t2_b2babel_359155b730148d8fcf0167f32edb84e3f7d) */ * from babel_3592_t1 , babel_3592_t2 where b1 = 1 and b2 = 1 - -> Gather (cost=0.25..16.30 rows=1 width=16) - Workers Planned: 1 - Single Copy: true - -> Nested Loop (cost=0.25..16.30 rows=1 width=16) - -> Index Scan using index_babel_3592_t1_b1babel_35976c64b612d1f74e2768783beca3bf836 on babel_3592_t1 (cost=0.12..8.14 rows=1 width=8) - Index Cond: (b1 = 1) - -> Index Scan using index_babel_3592_t2_b2babel_359155b730148d8fcf0167f32edb84e3f7d on babel_3592_t2 (cost=0.12..8.14 rows=1 width=8) - Index Cond: (b2 = 1) + -> Nested Loop (cost=0.25..16.30 rows=1 width=16) + -> Index Scan using index_babel_3592_t1_b1babel_35976c64b612d1f74e2768783beca3bf836 on babel_3592_t1 (cost=0.12..8.14 rows=1 width=8) + Index Cond: (b1 = 1) + -> Index Scan using index_babel_3592_t2_b2babel_359155b730148d8fcf0167f32edb84e3f7d on babel_3592_t2 (cost=0.12..8.14 rows=1 width=8) + Index Cond: (b2 = 1) ~~END~~ ~~START~~ text -Babelfish T-SQL Batch Parsing Time: 0.093 ms +Babelfish T-SQL Batch Parsing Time: 0.068 ms ~~END~~