Skip to content

Commit 581075a

Browse files
committed
Merge branch 'master' into hash
2 parents 21dd5c8 + d514103 commit 581075a

File tree

2 files changed

+37
-29
lines changed

2 files changed

+37
-29
lines changed

expected/pg_pathman.out

Lines changed: 20 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -621,6 +621,10 @@ begin
621621
perform test.pathman_equal((plan->0->'Plan'->'Plans'->1->'Relation Name')::text,
622622
'"runtime_test_1_1"',
623623
'wrong partition');
624+
625+
select count(*) from jsonb_array_elements_text(plan->0->'Plan'->'Plans') into num;
626+
perform test.pathman_equal(num::text, '2', 'expected 2 child plans for custom scan');
627+
624628
return 'ok';
625629
end;
626630
$$ language plpgsql;
@@ -629,7 +633,7 @@ declare
629633
plan jsonb;
630634
num int;
631635
begin
632-
plan = test.pathman_test('select * from test.runtime_test_1 where id = any (select * from test.run_values limit 6)');
636+
plan = test.pathman_test('select * from test.runtime_test_1 where id = any (select * from test.run_values limit 4)');
633637

634638
perform test.pathman_equal((plan->0->'Plan'->'Node Type')::text,
635639
'"Nested Loop"',
@@ -644,9 +648,9 @@ begin
644648
'wrong plan provider');
645649

646650
select count(*) from jsonb_array_elements_text(plan->0->'Plan'->'Plans'->1->'Plans') into num;
647-
perform test.pathman_equal(num::text, '6', 'expected 6 child plans for custom scan');
651+
perform test.pathman_equal(num::text, '4', 'expected 4 child plans for custom scan');
648652

649-
for i in 0..5 loop
653+
for i in 0..3 loop
650654
perform test.pathman_equal((plan->0->'Plan'->'Plans'->1->'Plans'->i->'Relation Name')::text,
651655
format('"runtime_test_1_%s"', i + 1),
652656
'wrong partition');
@@ -678,11 +682,11 @@ begin
678682
'wrong plan provider');
679683

680684
select count(*) from jsonb_array_elements_text(plan->0->'Plan'->'Plans'->1->'Plans') into num;
681-
perform test.pathman_equal(num::text, '128', 'expected 128 child plans for custom scan');
685+
perform test.pathman_equal(num::text, '6', 'expected 6 child plans for custom scan');
682686

683-
for i in 0..127 loop
687+
for i in 0..5 loop
684688
num = plan->0->'Plan'->'Plans'->1->'Plans'->i->'Actual Loops';
685-
perform test.pathman_assert(num <= 79, 'expected no more than 79 loops');
689+
perform test.pathman_assert(num > 0 and num <= 1667, 'expected no more than 1667 loops');
686690
end loop;
687691

688692
return 'ok';
@@ -694,7 +698,7 @@ declare
694698
num int;
695699
begin
696700
plan = test.pathman_test('select * from test.category c, lateral' ||
697-
'(select * from test.runtime_test_2 g where g.category_id = c.id order by rating limit 10) as tg');
701+
'(select * from test.runtime_test_2 g where g.category_id = c.id order by rating limit 4) as tg');
698702

699703
perform test.pathman_equal((plan->0->'Plan'->'Node Type')::text,
700704
'"Nested Loop"',
@@ -710,9 +714,9 @@ begin
710714
'wrong plan provider');
711715

712716
select count(*) from jsonb_array_elements_text(plan->0->'Plan'->'Plans'->1->'Plans'->0->'Plans') into num;
713-
perform test.pathman_equal(num::text, '10', 'expected 10 child plans for custom scan');
717+
perform test.pathman_equal(num::text, '4', 'expected 4 child plans for custom scan');
714718

715-
for i in 0..9 loop
719+
for i in 0..3 loop
716720
perform test.pathman_equal((plan->0->'Plan'->'Plans'->1->'Plans'->0->'Plans'->i->'Relation Name')::text,
717721
format('"runtime_test_2_%s"', i + 1),
718722
'wrong partition');
@@ -727,26 +731,26 @@ $$ language plpgsql;
727731
create table test.run_values as select generate_series(1, 10000) val;
728732
create table test.runtime_test_1(id serial primary key, val real);
729733
insert into test.runtime_test_1 select generate_series(1, 10000), random();
730-
select pathman.create_hash_partitions('test.runtime_test_1', 'id', 128);
734+
select pathman.create_hash_partitions('test.runtime_test_1', 'id', 6);
731735
NOTICE: function test.runtime_test_1_insert_trigger_func() does not exist, skipping
732736
NOTICE: function test.runtime_test_1_update_trigger_func() does not exist, skipping
733737
NOTICE: Copying data to partitions...
734738
create_hash_partitions
735739
------------------------
736-
128
740+
6
737741
(1 row)
738742

739-
create table test.category as (select id, 'cat' || id::text as name from generate_series(1, 10) id);
743+
create table test.category as (select id, 'cat' || id::text as name from generate_series(1, 4) id);
740744
create table test.runtime_test_2 (id serial, category_id int not null, name text, rating real);
741-
insert into test.runtime_test_2 (select id, (id % 10) + 1 as category_id, 'good' || id::text as name, random() as rating from generate_series(1, 1000000) id);
745+
insert into test.runtime_test_2 (select id, (id % 6) + 1 as category_id, 'good' || id::text as name, random() as rating from generate_series(1, 100000) id);
742746
create index on test.runtime_test_2 (category_id, rating);
743-
select pathman.create_hash_partitions('test.runtime_test_2', 'category_id', 128);
747+
select pathman.create_hash_partitions('test.runtime_test_2', 'category_id', 6);
744748
NOTICE: function test.runtime_test_2_insert_trigger_func() does not exist, skipping
745749
NOTICE: function test.runtime_test_2_update_trigger_func() does not exist, skipping
746750
NOTICE: Copying data to partitions...
747751
create_hash_partitions
748752
------------------------
749-
128
753+
6
750754
(1 row)
751755

752756
analyze test.run_values;
@@ -784,7 +788,7 @@ set pg_pathman.enable_runtimemergeappend = off;
784788
set enable_mergejoin = on;
785789
set enable_hashjoin = on;
786790
drop table test.run_values, test.runtime_test_1, test.runtime_test_2 cascade;
787-
NOTICE: drop cascades to 256 other objects
791+
NOTICE: drop cascades to 12 other objects
788792
/*
789793
* Test split and merge
790794
*/

sql/pg_pathman.sql

Lines changed: 17 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -205,6 +205,10 @@ begin
205205
perform test.pathman_equal((plan->0->'Plan'->'Plans'->1->'Relation Name')::text,
206206
'"runtime_test_1_1"',
207207
'wrong partition');
208+
209+
select count(*) from jsonb_array_elements_text(plan->0->'Plan'->'Plans') into num;
210+
perform test.pathman_equal(num::text, '2', 'expected 2 child plans for custom scan');
211+
208212
return 'ok';
209213
end;
210214
$$ language plpgsql;
@@ -214,7 +218,7 @@ declare
214218
plan jsonb;
215219
num int;
216220
begin
217-
plan = test.pathman_test('select * from test.runtime_test_1 where id = any (select * from test.run_values limit 6)');
221+
plan = test.pathman_test('select * from test.runtime_test_1 where id = any (select * from test.run_values limit 4)');
218222

219223
perform test.pathman_equal((plan->0->'Plan'->'Node Type')::text,
220224
'"Nested Loop"',
@@ -229,9 +233,9 @@ begin
229233
'wrong plan provider');
230234

231235
select count(*) from jsonb_array_elements_text(plan->0->'Plan'->'Plans'->1->'Plans') into num;
232-
perform test.pathman_equal(num::text, '6', 'expected 6 child plans for custom scan');
236+
perform test.pathman_equal(num::text, '4', 'expected 4 child plans for custom scan');
233237

234-
for i in 0..5 loop
238+
for i in 0..3 loop
235239
perform test.pathman_equal((plan->0->'Plan'->'Plans'->1->'Plans'->i->'Relation Name')::text,
236240
format('"runtime_test_1_%s"', i + 1),
237241
'wrong partition');
@@ -264,11 +268,11 @@ begin
264268
'wrong plan provider');
265269

266270
select count(*) from jsonb_array_elements_text(plan->0->'Plan'->'Plans'->1->'Plans') into num;
267-
perform test.pathman_equal(num::text, '128', 'expected 128 child plans for custom scan');
271+
perform test.pathman_equal(num::text, '6', 'expected 6 child plans for custom scan');
268272

269-
for i in 0..127 loop
273+
for i in 0..5 loop
270274
num = plan->0->'Plan'->'Plans'->1->'Plans'->i->'Actual Loops';
271-
perform test.pathman_assert(num <= 79, 'expected no more than 79 loops');
275+
perform test.pathman_assert(num > 0 and num <= 1667, 'expected no more than 1667 loops');
272276
end loop;
273277

274278
return 'ok';
@@ -281,7 +285,7 @@ declare
281285
num int;
282286
begin
283287
plan = test.pathman_test('select * from test.category c, lateral' ||
284-
'(select * from test.runtime_test_2 g where g.category_id = c.id order by rating limit 10) as tg');
288+
'(select * from test.runtime_test_2 g where g.category_id = c.id order by rating limit 4) as tg');
285289

286290
perform test.pathman_equal((plan->0->'Plan'->'Node Type')::text,
287291
'"Nested Loop"',
@@ -297,9 +301,9 @@ begin
297301
'wrong plan provider');
298302

299303
select count(*) from jsonb_array_elements_text(plan->0->'Plan'->'Plans'->1->'Plans'->0->'Plans') into num;
300-
perform test.pathman_equal(num::text, '10', 'expected 10 child plans for custom scan');
304+
perform test.pathman_equal(num::text, '4', 'expected 4 child plans for custom scan');
301305

302-
for i in 0..9 loop
306+
for i in 0..3 loop
303307
perform test.pathman_equal((plan->0->'Plan'->'Plans'->1->'Plans'->0->'Plans'->i->'Relation Name')::text,
304308
format('"runtime_test_2_%s"', i + 1),
305309
'wrong partition');
@@ -316,13 +320,13 @@ $$ language plpgsql;
316320
create table test.run_values as select generate_series(1, 10000) val;
317321
create table test.runtime_test_1(id serial primary key, val real);
318322
insert into test.runtime_test_1 select generate_series(1, 10000), random();
319-
select pathman.create_hash_partitions('test.runtime_test_1', 'id', 128);
323+
select pathman.create_hash_partitions('test.runtime_test_1', 'id', 6);
320324

321-
create table test.category as (select id, 'cat' || id::text as name from generate_series(1, 10) id);
325+
create table test.category as (select id, 'cat' || id::text as name from generate_series(1, 4) id);
322326
create table test.runtime_test_2 (id serial, category_id int not null, name text, rating real);
323-
insert into test.runtime_test_2 (select id, (id % 10) + 1 as category_id, 'good' || id::text as name, random() as rating from generate_series(1, 1000000) id);
327+
insert into test.runtime_test_2 (select id, (id % 6) + 1 as category_id, 'good' || id::text as name, random() as rating from generate_series(1, 100000) id);
324328
create index on test.runtime_test_2 (category_id, rating);
325-
select pathman.create_hash_partitions('test.runtime_test_2', 'category_id', 128);
329+
select pathman.create_hash_partitions('test.runtime_test_2', 'category_id', 6);
326330

327331
analyze test.run_values;
328332
analyze test.runtime_test_1;

0 commit comments

Comments
 (0)
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy