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

Commit0c69df3

Browse files
committed
Fix hash join test on 10.5
1 parent94f621b commit0c69df3

9 files changed

+194
-50
lines changed

‎META.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@
2323
"pg_pathman": {
2424
"file":"pg_pathman--1.4.sql",
2525
"docfile":"README.md",
26-
"version":"1.4.13",
26+
"version":"1.4.14",
2727
"abstract":"Partitioning tool"
2828
}
2929
},

‎Makefile

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,7 @@ REGRESS = pathman_array_qual \
4545
pathman_interval\
4646
pathman_join_clause\
4747
pathman_lateral\
48+
pathman_hashjoin\
4849
pathman_mergejoin\
4950
pathman_multilevel\
5051
pathman_only\

‎expected/pathman_basic.out

Lines changed: 0 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -810,41 +810,6 @@ EXPLAIN (COSTS OFF) SELECT * FROM test.range_rel_1 UNION ALL SELECT * FROM test.
810810
-> Index Scan using range_rel_2_dt_idx on range_rel_2
811811
(4 rows)
812812

813-
/*
814-
* Join
815-
*/
816-
set enable_nestloop = OFF;
817-
SET enable_hashjoin = ON;
818-
SET enable_mergejoin = OFF;
819-
EXPLAIN (COSTS OFF)
820-
SELECT * FROM test.range_rel j1
821-
JOIN test.range_rel j2 on j2.id = j1.id
822-
JOIN test.num_range_rel j3 on j3.id = j1.id
823-
WHERE j1.dt < '2015-03-01' AND j2.dt >= '2015-02-01' ORDER BY j2.dt;
824-
QUERY PLAN
825-
-------------------------------------------------------------------------------------------
826-
Sort
827-
Sort Key: j2.dt
828-
-> Hash Join
829-
Hash Cond: (j3.id = j2.id)
830-
-> Append
831-
-> Index Scan using num_range_rel_1_pkey on num_range_rel_1 j3
832-
-> Index Scan using num_range_rel_2_pkey on num_range_rel_2 j3_1
833-
-> Index Scan using num_range_rel_3_pkey on num_range_rel_3 j3_2
834-
-> Index Scan using num_range_rel_4_pkey on num_range_rel_4 j3_3
835-
-> Hash
836-
-> Hash Join
837-
Hash Cond: (j2.id = j1.id)
838-
-> Append
839-
-> Index Scan using range_rel_2_dt_idx on range_rel_2 j2
840-
-> Index Scan using range_rel_3_dt_idx on range_rel_3 j2_1
841-
-> Index Scan using range_rel_4_dt_idx on range_rel_4 j2_2
842-
-> Hash
843-
-> Append
844-
-> Index Scan using range_rel_1_pkey on range_rel_1 j1
845-
-> Index Scan using range_rel_2_pkey on range_rel_2 j1_1
846-
(20 rows)
847-
848813
/*
849814
* Test inlined SQL functions
850815
*/

‎expected/pathman_calamity.out

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ SELECT debug_capture();
1313
SELECT get_pathman_lib_version();
1414
get_pathman_lib_version
1515
-------------------------
16-
1.4.13
16+
1.4.14
1717
(1 row)
1818

1919
set client_min_messages = NOTICE;

‎expected/pathman_hashjoin.out

Lines changed: 73 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,73 @@
1+
\set VERBOSITY terse
2+
SET search_path = 'public';
3+
CREATE SCHEMA pathman;
4+
CREATE EXTENSION pg_pathman SCHEMA pathman;
5+
CREATE SCHEMA test;
6+
CREATE TABLE test.range_rel (
7+
idSERIAL PRIMARY KEY,
8+
dtTIMESTAMP NOT NULL,
9+
txtTEXT);
10+
CREATE INDEX ON test.range_rel (dt);
11+
INSERT INTO test.range_rel (dt, txt)
12+
SELECT g, md5(g::TEXT) FROM generate_series('2015-01-01', '2015-04-30', '1 day'::interval) as g;
13+
SELECT pathman.create_range_partitions('test.range_rel', 'DT', '2015-01-01'::DATE, '1 month'::INTERVAL);
14+
create_range_partitions
15+
-------------------------
16+
4
17+
(1 row)
18+
19+
CREATE TABLE test.num_range_rel (
20+
idSERIAL PRIMARY KEY,
21+
txtTEXT);
22+
SELECT pathman.create_range_partitions('test.num_range_rel', 'id', 0, 1000, 4);
23+
create_range_partitions
24+
-------------------------
25+
4
26+
(1 row)
27+
28+
INSERT INTO test.num_range_rel
29+
SELECT g, md5(g::TEXT) FROM generate_series(1, 3000) as g;
30+
SET pg_pathman.enable_runtimeappend = OFF;
31+
SET pg_pathman.enable_runtimemergeappend = OFF;
32+
VACUUM;
33+
/*
34+
* Hash join
35+
*/
36+
SET enable_indexscan = ON;
37+
SET enable_seqscan = OFF;
38+
SET enable_nestloop = OFF;
39+
SET enable_hashjoin = ON;
40+
SET enable_mergejoin = OFF;
41+
EXPLAIN (COSTS OFF)
42+
SELECT * FROM test.range_rel j1
43+
JOIN test.range_rel j2 on j2.id = j1.id
44+
JOIN test.num_range_rel j3 on j3.id = j1.id
45+
WHERE j1.dt < '2015-03-01' AND j2.dt >= '2015-02-01' ORDER BY j2.dt;
46+
QUERY PLAN
47+
---------------------------------------------------------------------------------------
48+
Sort
49+
Sort Key: j2.dt
50+
-> Hash Join
51+
Hash Cond: (j1.id = j2.id)
52+
-> Hash Join
53+
Hash Cond: (j3.id = j1.id)
54+
-> Append
55+
-> Index Scan using num_range_rel_1_pkey on num_range_rel_1 j3
56+
-> Index Scan using num_range_rel_2_pkey on num_range_rel_2 j3_1
57+
-> Index Scan using num_range_rel_3_pkey on num_range_rel_3 j3_2
58+
-> Index Scan using num_range_rel_4_pkey on num_range_rel_4 j3_3
59+
-> Hash
60+
-> Append
61+
-> Index Scan using range_rel_1_pkey on range_rel_1 j1
62+
-> Index Scan using range_rel_2_pkey on range_rel_2 j1_1
63+
-> Hash
64+
-> Append
65+
-> Index Scan using range_rel_2_dt_idx on range_rel_2 j2
66+
-> Index Scan using range_rel_3_dt_idx on range_rel_3 j2_1
67+
-> Index Scan using range_rel_4_dt_idx on range_rel_4 j2_2
68+
(20 rows)
69+
70+
DROP SCHEMA test CASCADE;
71+
NOTICE: drop cascades to 12 other objects
72+
DROP EXTENSION pg_pathman CASCADE;
73+
DROP SCHEMA pathman CASCADE;

‎expected/pathman_hashjoin_1.out

Lines changed: 73 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,73 @@
1+
\set VERBOSITY terse
2+
SET search_path = 'public';
3+
CREATE SCHEMA pathman;
4+
CREATE EXTENSION pg_pathman SCHEMA pathman;
5+
CREATE SCHEMA test;
6+
CREATE TABLE test.range_rel (
7+
idSERIAL PRIMARY KEY,
8+
dtTIMESTAMP NOT NULL,
9+
txtTEXT);
10+
CREATE INDEX ON test.range_rel (dt);
11+
INSERT INTO test.range_rel (dt, txt)
12+
SELECT g, md5(g::TEXT) FROM generate_series('2015-01-01', '2015-04-30', '1 day'::interval) as g;
13+
SELECT pathman.create_range_partitions('test.range_rel', 'DT', '2015-01-01'::DATE, '1 month'::INTERVAL);
14+
create_range_partitions
15+
-------------------------
16+
4
17+
(1 row)
18+
19+
CREATE TABLE test.num_range_rel (
20+
idSERIAL PRIMARY KEY,
21+
txtTEXT);
22+
SELECT pathman.create_range_partitions('test.num_range_rel', 'id', 0, 1000, 4);
23+
create_range_partitions
24+
-------------------------
25+
4
26+
(1 row)
27+
28+
INSERT INTO test.num_range_rel
29+
SELECT g, md5(g::TEXT) FROM generate_series(1, 3000) as g;
30+
SET pg_pathman.enable_runtimeappend = OFF;
31+
SET pg_pathman.enable_runtimemergeappend = OFF;
32+
VACUUM;
33+
/*
34+
* Hash join
35+
*/
36+
SET enable_indexscan = ON;
37+
SET enable_seqscan = OFF;
38+
SET enable_nestloop = OFF;
39+
SET enable_hashjoin = ON;
40+
SET enable_mergejoin = OFF;
41+
EXPLAIN (COSTS OFF)
42+
SELECT * FROM test.range_rel j1
43+
JOIN test.range_rel j2 on j2.id = j1.id
44+
JOIN test.num_range_rel j3 on j3.id = j1.id
45+
WHERE j1.dt < '2015-03-01' AND j2.dt >= '2015-02-01' ORDER BY j2.dt;
46+
QUERY PLAN
47+
-------------------------------------------------------------------------------------------
48+
Sort
49+
Sort Key: j2.dt
50+
-> Hash Join
51+
Hash Cond: (j3.id = j2.id)
52+
-> Append
53+
-> Index Scan using num_range_rel_1_pkey on num_range_rel_1 j3
54+
-> Index Scan using num_range_rel_2_pkey on num_range_rel_2 j3_1
55+
-> Index Scan using num_range_rel_3_pkey on num_range_rel_3 j3_2
56+
-> Index Scan using num_range_rel_4_pkey on num_range_rel_4 j3_3
57+
-> Hash
58+
-> Hash Join
59+
Hash Cond: (j2.id = j1.id)
60+
-> Append
61+
-> Index Scan using range_rel_2_dt_idx on range_rel_2 j2
62+
-> Index Scan using range_rel_3_dt_idx on range_rel_3 j2_1
63+
-> Index Scan using range_rel_4_dt_idx on range_rel_4 j2_2
64+
-> Hash
65+
-> Append
66+
-> Index Scan using range_rel_1_pkey on range_rel_1 j1
67+
-> Index Scan using range_rel_2_pkey on range_rel_2 j1_1
68+
(20 rows)
69+
70+
DROP SCHEMA test CASCADE;
71+
NOTICE: drop cascades to 12 other objects
72+
DROP EXTENSION pg_pathman CASCADE;
73+
DROP SCHEMA pathman CASCADE;

‎sql/pathman_basic.sql

Lines changed: 0 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -215,18 +215,6 @@ SET enable_seqscan = OFF;
215215
EXPLAIN (COSTS OFF)SELECT*FROMtest.range_relWHERE dt<'2015-03-01'ORDER BY dt;
216216
EXPLAIN (COSTS OFF)SELECT*FROMtest.range_rel_1UNION ALLSELECT*FROMtest.range_rel_2ORDER BY dt;
217217

218-
/*
219-
* Join
220-
*/
221-
set enable_nestloop= OFF;
222-
SET enable_hashjoin=ON;
223-
SET enable_mergejoin= OFF;
224-
EXPLAIN (COSTS OFF)
225-
SELECT*FROMtest.range_rel j1
226-
JOINtest.range_rel j2onj2.id=j1.id
227-
JOINtest.num_range_rel j3onj3.id=j1.id
228-
WHEREj1.dt<'2015-03-01'ANDj2.dt>='2015-02-01'ORDER BYj2.dt;
229-
230218
/*
231219
* Test inlined SQL functions
232220
*/

‎sql/pathman_hashjoin.sql

Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
\set VERBOSITY terse
2+
3+
SET search_path='public';
4+
CREATESCHEMApathman;
5+
CREATE EXTENSION pg_pathman SCHEMA pathman;
6+
CREATESCHEMAtest;
7+
8+
CREATETABLEtest.range_rel (
9+
idSERIALPRIMARY KEY,
10+
dtTIMESTAMPNOT NULL,
11+
txtTEXT);
12+
CREATEINDEXONtest.range_rel (dt);
13+
INSERT INTOtest.range_rel (dt, txt)
14+
SELECT g, md5(g::TEXT)FROM generate_series('2015-01-01','2015-04-30','1 day'::interval)as g;
15+
SELECTpathman.create_range_partitions('test.range_rel','DT','2015-01-01'::DATE,'1 month'::INTERVAL);
16+
17+
CREATETABLEtest.num_range_rel (
18+
idSERIALPRIMARY KEY,
19+
txtTEXT);
20+
SELECTpathman.create_range_partitions('test.num_range_rel','id',0,1000,4);
21+
INSERT INTOtest.num_range_rel
22+
SELECT g, md5(g::TEXT)FROM generate_series(1,3000)as g;
23+
24+
SETpg_pathman.enable_runtimeappend= OFF;
25+
SETpg_pathman.enable_runtimemergeappend= OFF;
26+
VACUUM;
27+
28+
/*
29+
* Hash join
30+
*/
31+
SET enable_indexscan=ON;
32+
SET enable_seqscan= OFF;
33+
SET enable_nestloop= OFF;
34+
SET enable_hashjoin=ON;
35+
SET enable_mergejoin= OFF;
36+
EXPLAIN (COSTS OFF)
37+
SELECT*FROMtest.range_rel j1
38+
JOINtest.range_rel j2onj2.id=j1.id
39+
JOINtest.num_range_rel j3onj3.id=j1.id
40+
WHEREj1.dt<'2015-03-01'ANDj2.dt>='2015-02-01'ORDER BYj2.dt;
41+
42+
DROPSCHEMA test CASCADE;
43+
DROP EXTENSION pg_pathman CASCADE;
44+
DROPSCHEMA pathman CASCADE;

‎src/include/init.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -158,7 +158,7 @@ simpify_mcxt_name(MemoryContext mcxt)
158158
#defineLOWEST_COMPATIBLE_FRONT0x010400
159159

160160
/* Current version of native C library (0xAA_BB_CC) */
161-
#defineCURRENT_LIB_VERSION0x010413
161+
#defineCURRENT_LIB_VERSION0x010414
162162

163163

164164
void*pathman_cache_search_relid(HTAB*cache_table,

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp