Skip to content

Commit 9e0591f

Browse files
committed
resolve conflicts
2 parents 9d9a855 + 55e6dfd commit 9e0591f

16 files changed

+977
-362
lines changed

META.json

+3-3
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
{
22
"name": "pg_pathman",
33
"abstract": "Partitioning tool",
4-
"description": "pg_pathman provides optimized partitioning mechanism and functions to manage partitions.",
5-
"version": "1.4.5",
4+
"description": "pg_pathman provides optimized partitioning mechanism and functions to manage partitions",
5+
"version": "1.5.0",
66
"maintainer": [
77
"Ildar Musin <i.musin@postgrespro.ru>",
88
"Dmitry Ivanov <d.ivanov@postgrespro.ru>",
@@ -24,7 +24,7 @@
2424
"pg_pathman": {
2525
"file": "pg_pathman--1.4.sql",
2626
"docfile": "README.md",
27-
"version": "1.4.5",
27+
"version": "1.5.0",
2828
"abstract": "Effective partitioning tool for PostgreSQL 9.5 and higher"
2929
}
3030
},

Makefile

+2-1
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,8 @@ REGRESS = pathman_array_qual \
5353
pathman_runtime_nodes \
5454
pathman_update_trigger \
5555
pathman_upd_del \
56-
pathman_utility_stmt
56+
pathman_utility_stmt \
57+
pathman_views
5758

5859
EXTRA_REGRESS_OPTS=--temp-config=$(top_srcdir)/$(subdir)/conf.add
5960

expected/pathman_rowmarks.out

+84-33
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ SELECT create_hash_partitions('rowmarks.first', 'id', 5);
1515
5
1616
(1 row)
1717

18+
VACUUM ANALYZE;
1819
/* Not partitioned */
1920
SELECT * FROM rowmarks.second ORDER BY id FOR UPDATE;
2021
id
@@ -173,34 +174,90 @@ FOR SHARE;
173174
6
174175
(1 row)
175176

177+
/* JOIN (plan) */
178+
EXPLAIN (COSTS OFF)
179+
SELECT * FROM rowmarks.first
180+
JOIN rowmarks.second USING(id)
181+
ORDER BY id
182+
FOR UPDATE;
183+
QUERY PLAN
184+
---------------------------------------------------
185+
LockRows
186+
-> Sort
187+
Sort Key: first_0.id
188+
-> Hash Join
189+
Hash Cond: (first_0.id = second.id)
190+
-> Append
191+
-> Seq Scan on first_0
192+
-> Seq Scan on first_1
193+
-> Seq Scan on first_2
194+
-> Seq Scan on first_3
195+
-> Seq Scan on first_4
196+
-> Hash
197+
-> Seq Scan on second
198+
(13 rows)
199+
200+
/* JOIN (execution) */
201+
SELECT * FROM rowmarks.first
202+
JOIN rowmarks.second USING(id)
203+
ORDER BY id
204+
FOR UPDATE;
205+
id
206+
----
207+
1
208+
2
209+
3
210+
4
211+
5
212+
6
213+
7
214+
8
215+
9
216+
10
217+
(10 rows)
218+
219+
/* ONLY (plan) */
220+
EXPLAIN (COSTS OFF)
221+
SELECT * FROM ONLY rowmarks.first FOR SHARE;
222+
QUERY PLAN
223+
-------------------------
224+
LockRows
225+
-> Seq Scan on first
226+
(2 rows)
227+
228+
/* ONLY (execution) */
229+
SELECT * FROM ONLY rowmarks.first FOR SHARE;
230+
id
231+
----
232+
(0 rows)
233+
176234
/* Check updates (plan) */
177235
SET enable_hashjoin = f; /* Hash Semi Join on 10 vs Hash Join on 9.6 */
178236
SET enable_mergejoin = f; /* Merge Semi Join on 10 vs Merge Join on 9.6 */
179237
EXPLAIN (COSTS OFF)
180238
UPDATE rowmarks.second SET id = 2
181239
WHERE rowmarks.second.id IN (SELECT id FROM rowmarks.first WHERE id = 1);
182-
QUERY PLAN
183-
---------------------------------------------
240+
QUERY PLAN
241+
---------------------------------------
184242
Update on second
185243
-> Nested Loop Semi Join
186244
-> Seq Scan on second
187245
Filter: (id = 1)
188-
-> Materialize
189-
-> Append
190-
-> Seq Scan on first_0
191-
Filter: (id = 1)
192-
(8 rows)
246+
-> Append
247+
-> Seq Scan on first_0
248+
Filter: (id = 1)
249+
(7 rows)
193250

194251
EXPLAIN (COSTS OFF)
195252
UPDATE rowmarks.second SET id = 2
196253
WHERE rowmarks.second.id IN (SELECT id FROM rowmarks.first WHERE id < 1);
197254
QUERY PLAN
198255
-----------------------------------------------
199256
Update on second
200-
-> Nested Loop
257+
-> Nested Loop Semi Join
201258
Join Filter: (second.id = first_0.id)
202-
-> HashAggregate
203-
Group Key: first_0.id
259+
-> Seq Scan on second
260+
-> Materialize
204261
-> Append
205262
-> Seq Scan on first_0
206263
Filter: (id < 1)
@@ -212,9 +269,7 @@ WHERE rowmarks.second.id IN (SELECT id FROM rowmarks.first WHERE id < 1);
212269
Filter: (id < 1)
213270
-> Seq Scan on first_4
214271
Filter: (id < 1)
215-
-> Materialize
216-
-> Seq Scan on second
217-
(18 rows)
272+
(16 rows)
218273

219274
EXPLAIN (COSTS OFF)
220275
UPDATE rowmarks.second SET id = 2
@@ -237,17 +292,16 @@ EXPLAIN (COSTS OFF)
237292
UPDATE rowmarks.second SET id = 2
238293
WHERE rowmarks.second.id IN (SELECT id FROM rowmarks.first WHERE id = 1)
239294
RETURNING *, tableoid::regclass;
240-
QUERY PLAN
241-
---------------------------------------------
295+
QUERY PLAN
296+
---------------------------------------
242297
Update on second
243298
-> Nested Loop Semi Join
244299
-> Seq Scan on second
245300
Filter: (id = 1)
246-
-> Materialize
247-
-> Append
248-
-> Seq Scan on first_0
249-
Filter: (id = 1)
250-
(8 rows)
301+
-> Append
302+
-> Seq Scan on first_0
303+
Filter: (id = 1)
304+
(7 rows)
251305

252306
SET enable_hashjoin = t;
253307
SET enable_mergejoin = t;
@@ -267,28 +321,27 @@ SET enable_mergejoin = f; /* Merge Semi Join on 10 vs Merge Join on 9.6 */
267321
EXPLAIN (COSTS OFF)
268322
DELETE FROM rowmarks.second
269323
WHERE rowmarks.second.id IN (SELECT id FROM rowmarks.first WHERE id = 1);
270-
QUERY PLAN
271-
---------------------------------------------
324+
QUERY PLAN
325+
---------------------------------------
272326
Delete on second
273327
-> Nested Loop Semi Join
274328
-> Seq Scan on second
275329
Filter: (id = 1)
276-
-> Materialize
277-
-> Append
278-
-> Seq Scan on first_0
279-
Filter: (id = 1)
280-
(8 rows)
330+
-> Append
331+
-> Seq Scan on first_0
332+
Filter: (id = 1)
333+
(7 rows)
281334

282335
EXPLAIN (COSTS OFF)
283336
DELETE FROM rowmarks.second
284337
WHERE rowmarks.second.id IN (SELECT id FROM rowmarks.first WHERE id < 1);
285338
QUERY PLAN
286339
-----------------------------------------------
287340
Delete on second
288-
-> Nested Loop
341+
-> Nested Loop Semi Join
289342
Join Filter: (second.id = first_0.id)
290-
-> HashAggregate
291-
Group Key: first_0.id
343+
-> Seq Scan on second
344+
-> Materialize
292345
-> Append
293346
-> Seq Scan on first_0
294347
Filter: (id < 1)
@@ -300,9 +353,7 @@ WHERE rowmarks.second.id IN (SELECT id FROM rowmarks.first WHERE id < 1);
300353
Filter: (id < 1)
301354
-> Seq Scan on first_4
302355
Filter: (id < 1)
303-
-> Materialize
304-
-> Seq Scan on second
305-
(18 rows)
356+
(16 rows)
306357

307358
EXPLAIN (COSTS OFF)
308359
DELETE FROM rowmarks.second

0 commit comments

Comments
 (0)