Skip to content

Commit 7f5b6db

Browse files
author
Rucha Kulkarni
committed
Added extra objects in prepare to have consistent plans between CI and local
Signed-off-by: Rucha Kulkarni <ruchask@amazon.com>
1 parent 7ad4964 commit 7f5b6db

7 files changed

Lines changed: 113 additions & 17 deletions

File tree

test/JDBC/expected/BABEL-6814-vu-cleanup.out

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,28 @@
11
DROP FUNCTION babel_6814_func1;
22
GO
33

4+
-- Drop extra tables created for consistent EXPLAIN plan behavior
5+
DECLARE @i INT = 1;
6+
DECLARE @sql NVARCHAR(200);
7+
WHILE @i <= 100
8+
BEGIN
9+
SET @sql = 'DROP TABLE babel_6814_extra_' + CONVERT(VARCHAR, @i);
10+
EXEC(@sql);
11+
SET @i = @i + 1;
12+
END
13+
GO
14+
15+
-- Drop extra schemas
16+
DECLARE @j INT = 1;
17+
DECLARE @sql2 NVARCHAR(200);
18+
WHILE @j <= 500
19+
BEGIN
20+
SET @sql2 = 'DROP SCHEMA babel_6814_schema_' + CONVERT(VARCHAR, @j);
21+
EXEC(@sql2);
22+
SET @j = @j + 1;
23+
END
24+
GO
25+
426
DROP VIEW babel_6814_view1;
527
GO
628

test/JDBC/expected/BABEL-6814-vu-prepare.out

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,3 +26,28 @@ BEGIN
2626
RETURN 1;
2727
END
2828
GO
29+
30+
-- Create extra tables and indexes to ensure pg_index/pg_class have enough rows
31+
-- for consistent planner behavior in EXPLAIN tests
32+
DECLARE @i INT = 1;
33+
DECLARE @sql NVARCHAR(200);
34+
WHILE @i <= 100
35+
BEGIN
36+
SET @sql = 'CREATE TABLE babel_6814_extra_' + CONVERT(VARCHAR, @i) + ' (id INT)';
37+
EXEC(@sql);
38+
SET @sql = 'CREATE INDEX babel_6814_extra_idx_' + CONVERT(VARCHAR, @i) + ' ON babel_6814_extra_' + CONVERT(VARCHAR, @i) + '(id)';
39+
EXEC(@sql);
40+
SET @i = @i + 1;
41+
END
42+
GO
43+
44+
-- Create extra schemas to ensure pg_namespace has enough rows for consistent plans
45+
DECLARE @j INT = 1;
46+
DECLARE @sql2 NVARCHAR(200);
47+
WHILE @j <= 500
48+
BEGIN
49+
SET @sql2 = 'CREATE SCHEMA babel_6814_schema_' + CONVERT(VARCHAR, @j);
50+
EXEC(@sql2);
51+
SET @j = @j + 1;
52+
END
53+
GO

test/JDBC/expected/BABEL-6814-vu-verify.out

Lines changed: 10 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -147,7 +147,7 @@ babel_6814_t2#!#USER_TABLE
147147

148148
-- Test 13: Different object types all resolve correctly
149149
SELECT name, type, type_desc FROM sys.objects
150-
WHERE name LIKE 'babel_6814%'
150+
WHERE name LIKE 'babel_6814%' AND name NOT LIKE 'babel_6814_extra%'
151151
ORDER BY name;
152152
GO
153153
~~START~~
@@ -225,11 +225,12 @@ EXPLAIN (COSTS OFF) SELECT c.relname, n.nspname FROM pg_class c JOIN pg_namespac
225225
GO
226226
~~START~~
227227
text
228-
Nested Loop
229-
Join Filter: ((c.relnamespace)::integer = (n.oid)::integer)
230-
-> Index Only Scan using pg_class_relname_nsp_index on pg_class c
231-
Index Cond: (relname = 'babel_6814_t1'::name)
228+
Hash Join
229+
Hash Cond: ((n.oid)::integer = (c.relnamespace)::integer)
232230
-> Seq Scan on pg_namespace n
231+
-> Hash
232+
-> Index Only Scan using pg_class_relname_nsp_index on pg_class c
233+
Index Cond: (relname = 'babel_6814_t1'::name)
233234
~~END~~
234235

235236

@@ -241,8 +242,8 @@ text
241242
Index Only Scan using pg_class_relname_nsp_index on pg_class c
242243
Index Cond: (relname = 'babel_6814_t1'::name)
243244
SubPlan 1
244-
-> Seq Scan on pg_namespace n
245-
Filter: ((oid)::integer = (c.relnamespace)::integer)
245+
-> Index Scan using pg_namespace_oid_index on pg_namespace n
246+
Index Cond: (oid = ((c.relnamespace)::integer)::oid)
246247
~~END~~
247248

248249

@@ -251,8 +252,8 @@ EXPLAIN (COSTS OFF) SELECT * FROM pg_index WHERE (indrelid)::int4 = 12345;
251252
GO
252253
~~START~~
253254
text
254-
Seq Scan on pg_index
255-
Filter: ((indrelid)::integer = 12345)
255+
Index Scan using pg_index_indrelid_index on pg_index
256+
Index Cond: (indrelid = (12345)::oid)
256257
~~END~~
257258

258259

test/JDBC/expected/parallel_query/BABEL-6814-vu-verify.out

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -147,7 +147,7 @@ babel_6814_t2#!#USER_TABLE
147147

148148
-- Test 13: Different object types all resolve correctly
149149
SELECT name, type, type_desc FROM sys.objects
150-
WHERE name LIKE 'babel_6814%'
150+
WHERE name LIKE 'babel_6814%' AND name NOT LIKE 'babel_6814_extra%'
151151
ORDER BY name;
152152
GO
153153
~~START~~
@@ -232,7 +232,7 @@ GO
232232
~~START~~
233233
text
234234
Gather
235-
Workers Planned: 1
235+
Workers Planned: 3
236236
-> Parallel Hash Join
237237
Hash Cond: ((n.oid)::integer = (c.relnamespace)::integer)
238238
-> Parallel Seq Scan on pg_namespace n
@@ -250,8 +250,8 @@ text
250250
Index Only Scan using pg_class_relname_nsp_index on pg_class c
251251
Index Cond: (relname = 'babel_6814_t1'::name)
252252
SubPlan 1
253-
-> Seq Scan on pg_namespace n
254-
Filter: ((oid)::integer = (c.relnamespace)::integer)
253+
-> Index Scan using pg_namespace_oid_index on pg_namespace n
254+
Index Cond: (oid = ((c.relnamespace)::integer)::oid)
255255
~~END~~
256256

257257

@@ -261,9 +261,10 @@ GO
261261
~~START~~
262262
text
263263
Gather
264-
Workers Planned: 2
265-
-> Parallel Seq Scan on pg_index
266-
Filter: ((indrelid)::integer = 12345)
264+
Workers Planned: 1
265+
Single Copy: true
266+
-> Index Scan using pg_index_indrelid_index on pg_index
267+
Index Cond: (indrelid = (12345)::oid)
267268
~~END~~
268269

269270

test/JDBC/input/BABEL-6814-vu-cleanup.sql

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,28 @@
11
DROP FUNCTION babel_6814_func1;
22
GO
33

4+
-- Drop extra tables created for consistent EXPLAIN plan behavior
5+
DECLARE @i INT = 1;
6+
DECLARE @sql NVARCHAR(200);
7+
WHILE @i <= 100
8+
BEGIN
9+
SET @sql = 'DROP TABLE babel_6814_extra_' + CONVERT(VARCHAR, @i);
10+
EXEC(@sql);
11+
SET @i = @i + 1;
12+
END
13+
GO
14+
15+
-- Drop extra schemas
16+
DECLARE @j INT = 1;
17+
DECLARE @sql2 NVARCHAR(200);
18+
WHILE @j <= 500
19+
BEGIN
20+
SET @sql2 = 'DROP SCHEMA babel_6814_schema_' + CONVERT(VARCHAR, @j);
21+
EXEC(@sql2);
22+
SET @j = @j + 1;
23+
END
24+
GO
25+
426
DROP VIEW babel_6814_view1;
527
GO
628

test/JDBC/input/BABEL-6814-vu-prepare.sql

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,3 +26,28 @@ BEGIN
2626
RETURN 1;
2727
END
2828
GO
29+
30+
-- Create extra tables and indexes to ensure pg_index/pg_class have enough rows
31+
-- for consistent planner behavior in EXPLAIN tests
32+
DECLARE @i INT = 1;
33+
DECLARE @sql NVARCHAR(200);
34+
WHILE @i <= 100
35+
BEGIN
36+
SET @sql = 'CREATE TABLE babel_6814_extra_' + CONVERT(VARCHAR, @i) + ' (id INT)';
37+
EXEC(@sql);
38+
SET @sql = 'CREATE INDEX babel_6814_extra_idx_' + CONVERT(VARCHAR, @i) + ' ON babel_6814_extra_' + CONVERT(VARCHAR, @i) + '(id)';
39+
EXEC(@sql);
40+
SET @i = @i + 1;
41+
END
42+
GO
43+
44+
-- Create extra schemas to ensure pg_namespace has enough rows for consistent plans
45+
DECLARE @j INT = 1;
46+
DECLARE @sql2 NVARCHAR(200);
47+
WHILE @j <= 500
48+
BEGIN
49+
SET @sql2 = 'CREATE SCHEMA babel_6814_schema_' + CONVERT(VARCHAR, @j);
50+
EXEC(@sql2);
51+
SET @j = @j + 1;
52+
END
53+
GO

test/JDBC/input/BABEL-6814-vu-verify.mix

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -78,7 +78,7 @@ GO
7878

7979
-- Test 13: Different object types all resolve correctly
8080
SELECT name, type, type_desc FROM sys.objects
81-
WHERE name LIKE 'babel_6814%'
81+
WHERE name LIKE 'babel_6814%' AND name NOT LIKE 'babel_6814_extra%'
8282
ORDER BY name;
8383
GO
8484

0 commit comments

Comments
 (0)