Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commitd83475b

Browse files
author
Maksim Milyutin
committed
Add test case for index scans for child nodes under enable_parent is set
1 parent2d224b6 commitd83475b

File tree

2 files changed

+78
-0
lines changed

2 files changed

+78
-0
lines changed

‎expected/pathman_basic.out

Lines changed: 65 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1478,6 +1478,71 @@ EXPLAIN (COSTS OFF) SELECT * FROM special_case_1_ind_o_s WHERE val < 75 AND comm
14781478
Index Cond: ((val < 75) AND (comment = 'a'::text))
14791479
(5 rows)
14801480

1481+
/* Test index scans on child relation under enable_parent is set */
1482+
CREATE TABLE test_index_on_childs(c1 integer not null, c2 integer);
1483+
CREATE INDEX ON test_index_on_childs(c2);
1484+
INSERT INTO test_index_on_childs SELECT i, (random()*10000)::integer FROM generate_series(1, 10000) i;
1485+
SELECT create_range_partitions('test_index_on_childs', 'c1', 1, 1000, 0, false);
1486+
NOTICE: sequence "test_index_on_childs_seq" does not exist, skipping
1487+
create_range_partitions
1488+
-------------------------
1489+
0
1490+
(1 row)
1491+
1492+
SELECT add_range_partition('test_index_on_childs', 1, 1000, 'test_index_on_childs_1_1K');
1493+
add_range_partition
1494+
---------------------------
1495+
test_index_on_childs_1_1K
1496+
(1 row)
1497+
1498+
SELECT append_range_partition('test_index_on_childs', 'test_index_on_childs_1K_2K');
1499+
append_range_partition
1500+
----------------------------
1501+
test_index_on_childs_1K_2K
1502+
(1 row)
1503+
1504+
SELECT append_range_partition('test_index_on_childs', 'test_index_on_childs_2K_3K');
1505+
append_range_partition
1506+
----------------------------
1507+
test_index_on_childs_2K_3K
1508+
(1 row)
1509+
1510+
SELECT append_range_partition('test_index_on_childs', 'test_index_on_childs_3K_4K');
1511+
append_range_partition
1512+
----------------------------
1513+
test_index_on_childs_3K_4K
1514+
(1 row)
1515+
1516+
SELECT append_range_partition('test_index_on_childs', 'test_index_on_childs_4K_5K');
1517+
append_range_partition
1518+
----------------------------
1519+
test_index_on_childs_4K_5K
1520+
(1 row)
1521+
1522+
SELECT set_enable_parent('test_index_on_childs', true);
1523+
set_enable_parent
1524+
-------------------
1525+
1526+
(1 row)
1527+
1528+
VACUUM ANALYZE test_index_on_childs;
1529+
EXPLAIN (COSTS OFF) SELECT * FROM test_index_on_childs WHERE c1 > 100 AND c1 < 2500 AND c2 = 500;
1530+
QUERY PLAN
1531+
----------------------------------------------------------------------------------------
1532+
Append
1533+
-> Index Scan using test_index_on_childs_c2_idx on test_index_on_childs
1534+
Index Cond: (c2 = 500)
1535+
Filter: ((c1 > 100) AND (c1 < 2500))
1536+
-> Index Scan using test_index_on_childs_1_1k_c2_idx on test_index_on_childs_1_1k
1537+
Index Cond: (c2 = 500)
1538+
Filter: (c1 > 100)
1539+
-> Index Scan using test_index_on_childs_1k_2k_c2_idx on test_index_on_childs_1k_2k
1540+
Index Cond: (c2 = 500)
1541+
-> Index Scan using test_index_on_childs_2k_3k_c2_idx on test_index_on_childs_2k_3k
1542+
Index Cond: (c2 = 500)
1543+
Filter: (c1 < 2500)
1544+
(12 rows)
1545+
14811546
DROP SCHEMA test CASCADE;
14821547
NOTICE: drop cascades to 13 other objects
14831548
DROP EXTENSION pg_pathman CASCADE;

‎sql/pathman_basic.sql

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -394,6 +394,19 @@ EXPLAIN (COSTS OFF) SELECT * FROM special_case_1_ind_o_s WHERE val < 75 AND comm
394394
SELECT set_enable_parent('special_case_1_ind_o_s', false);
395395
EXPLAIN (COSTS OFF)SELECT*FROM special_case_1_ind_o_sWHERE val<75AND comment='a';
396396

397+
/* Test index scans on child relation under enable_parent is set*/
398+
CREATETABLEtest_index_on_childs(c1integernot null, c2integer);
399+
CREATEINDEXON test_index_on_childs(c2);
400+
INSERT INTO test_index_on_childsSELECT i, (random()*10000)::integerFROM generate_series(1,10000) i;
401+
SELECT create_range_partitions('test_index_on_childs','c1',1,1000,0, false);
402+
SELECT add_range_partition('test_index_on_childs',1,1000,'test_index_on_childs_1_1K');
403+
SELECT append_range_partition('test_index_on_childs','test_index_on_childs_1K_2K');
404+
SELECT append_range_partition('test_index_on_childs','test_index_on_childs_2K_3K');
405+
SELECT append_range_partition('test_index_on_childs','test_index_on_childs_3K_4K');
406+
SELECT append_range_partition('test_index_on_childs','test_index_on_childs_4K_5K');
407+
SELECT set_enable_parent('test_index_on_childs', true);
408+
VACUUM ANALYZE test_index_on_childs;
409+
EXPLAIN (COSTS OFF)SELECT*FROM test_index_on_childsWHERE c1>100AND c1<2500AND c2=500;
397410

398411
DROPSCHEMA test CASCADE;
399412
DROP EXTENSION pg_pathman CASCADE;

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp