@@ -936,11 +936,18 @@ SELECT pathman.merge_range_partitions('test.num_range_rel_1', 'test.num_range_re
936
936
937
937
(1 row)
938
938
939
+ /* Table in next explain should have number from this query */
940
+ SELECT currval('test.num_range_rel_seq');
941
+ currval
942
+ ---------
943
+ 6
944
+ (1 row)
945
+
939
946
EXPLAIN (COSTS OFF) SELECT * FROM test.num_range_rel WHERE id BETWEEN 100 AND 700;
940
947
QUERY PLAN
941
948
----------------------------------------------------------------
942
949
Append
943
- -> Index Scan using num_range_rel_1_pkey on num_range_rel_1
950
+ -> Index Scan using num_range_rel_6_pkey on num_range_rel_6
944
951
Index Cond: ((id >= 100) AND (id <= 700))
945
952
(3 rows)
946
953
@@ -954,33 +961,33 @@ SELECT pathman.merge_range_partitions('test.range_rel_1', 'test.range_rel_' || c
954
961
SELECT pathman.append_range_partition('test.num_range_rel');
955
962
append_range_partition
956
963
------------------------
957
- test.num_range_rel_6
964
+ test.num_range_rel_7
958
965
(1 row)
959
966
960
967
EXPLAIN (COSTS OFF) SELECT * FROM test.num_range_rel WHERE id >= 4000;
961
968
QUERY PLAN
962
969
-----------------------------------
963
970
Append
964
- -> Seq Scan on num_range_rel_6
971
+ -> Seq Scan on num_range_rel_7
965
972
(2 rows)
966
973
967
974
SELECT pathman.prepend_range_partition('test.num_range_rel');
968
975
prepend_range_partition
969
976
-------------------------
970
- test.num_range_rel_7
977
+ test.num_range_rel_8
971
978
(1 row)
972
979
973
980
EXPLAIN (COSTS OFF) SELECT * FROM test.num_range_rel WHERE id < 0;
974
981
QUERY PLAN
975
982
-----------------------------------
976
983
Append
977
- -> Seq Scan on num_range_rel_7
984
+ -> Seq Scan on num_range_rel_8
978
985
(2 rows)
979
986
980
- SELECT pathman.drop_range_partition('test.num_range_rel_7 ');
987
+ SELECT pathman.drop_range_partition('test.num_range_rel_8 ');
981
988
drop_range_partition
982
989
----------------------
983
- test.num_range_rel_7
990
+ test.num_range_rel_8
984
991
(1 row)
985
992
986
993
SELECT pathman.drop_range_partition_expand_next('test.num_range_rel_4');
@@ -992,13 +999,13 @@ SELECT pathman.drop_range_partition_expand_next('test.num_range_rel_4');
992
999
SELECT * FROM pathman.pathman_partition_list WHERE parent = 'test.num_range_rel'::regclass;
993
1000
parent | partition | parttype | expr | range_min | range_max
994
1001
--------------------+----------------------+----------+------+-----------+-----------
995
- test.num_range_rel | test.num_range_rel_1 | 2 | id | 0 | 1000
1002
+ test.num_range_rel | test.num_range_rel_6 | 2 | id | 0 | 1000
996
1003
test.num_range_rel | test.num_range_rel_2 | 2 | id | 1000 | 2000
997
1004
test.num_range_rel | test.num_range_rel_3 | 2 | id | 2000 | 3000
998
- test.num_range_rel | test.num_range_rel_6 | 2 | id | 3000 | 5000
1005
+ test.num_range_rel | test.num_range_rel_7 | 2 | id | 3000 | 5000
999
1006
(4 rows)
1000
1007
1001
- SELECT pathman.drop_range_partition_expand_next('test.num_range_rel_6 ');
1008
+ SELECT pathman.drop_range_partition_expand_next('test.num_range_rel_7 ');
1002
1009
drop_range_partition_expand_next
1003
1010
----------------------------------
1004
1011
@@ -1007,44 +1014,44 @@ SELECT pathman.drop_range_partition_expand_next('test.num_range_rel_6');
1007
1014
SELECT * FROM pathman.pathman_partition_list WHERE parent = 'test.num_range_rel'::regclass;
1008
1015
parent | partition | parttype | expr | range_min | range_max
1009
1016
--------------------+----------------------+----------+------+-----------+-----------
1010
- test.num_range_rel | test.num_range_rel_1 | 2 | id | 0 | 1000
1017
+ test.num_range_rel | test.num_range_rel_6 | 2 | id | 0 | 1000
1011
1018
test.num_range_rel | test.num_range_rel_2 | 2 | id | 1000 | 2000
1012
1019
test.num_range_rel | test.num_range_rel_3 | 2 | id | 2000 | 3000
1013
1020
(3 rows)
1014
1021
1015
1022
SELECT pathman.append_range_partition('test.range_rel');
1016
1023
append_range_partition
1017
1024
------------------------
1018
- test.range_rel_6
1025
+ test.range_rel_7
1019
1026
(1 row)
1020
1027
1021
1028
SELECT pathman.prepend_range_partition('test.range_rel');
1022
1029
prepend_range_partition
1023
1030
-------------------------
1024
- test.range_rel_7
1031
+ test.range_rel_8
1025
1032
(1 row)
1026
1033
1027
1034
EXPLAIN (COSTS OFF) SELECT * FROM test.range_rel WHERE dt BETWEEN '2014-12-15' AND '2015-01-15';
1028
1035
QUERY PLAN
1029
1036
-------------------------------------------------------------------------------------
1030
1037
Append
1031
- -> Index Scan using range_rel_7_dt_idx on range_rel_7
1038
+ -> Index Scan using range_rel_8_dt_idx on range_rel_8
1032
1039
Index Cond: (dt >= 'Mon Dec 15 00:00:00 2014'::timestamp without time zone)
1033
- -> Index Scan using range_rel_1_dt_idx on range_rel_1
1040
+ -> Index Scan using range_rel_6_dt_idx on range_rel_6
1034
1041
Index Cond: (dt <= 'Thu Jan 15 00:00:00 2015'::timestamp without time zone)
1035
1042
(5 rows)
1036
1043
1037
- SELECT pathman.drop_range_partition('test.range_rel_7 ');
1044
+ SELECT pathman.drop_range_partition('test.range_rel_8 ');
1038
1045
drop_range_partition
1039
1046
----------------------
1040
- test.range_rel_7
1047
+ test.range_rel_8
1041
1048
(1 row)
1042
1049
1043
1050
EXPLAIN (COSTS OFF) SELECT * FROM test.range_rel WHERE dt BETWEEN '2014-12-15' AND '2015-01-15';
1044
1051
QUERY PLAN
1045
1052
-------------------------------------------------------------------------------------
1046
1053
Append
1047
- -> Index Scan using range_rel_1_dt_idx on range_rel_1
1054
+ -> Index Scan using range_rel_6_dt_idx on range_rel_6
1048
1055
Index Cond: (dt <= 'Thu Jan 15 00:00:00 2015'::timestamp without time zone)
1049
1056
(3 rows)
1050
1057
@@ -1053,16 +1060,16 @@ ERROR: specified range [12-01-2014, 01-02-2015) overlaps with existing partitio
1053
1060
SELECT pathman.add_range_partition('test.range_rel', '2014-12-01'::DATE, '2015-01-01'::DATE);
1054
1061
add_range_partition
1055
1062
---------------------
1056
- test.range_rel_8
1063
+ test.range_rel_9
1057
1064
(1 row)
1058
1065
1059
1066
EXPLAIN (COSTS OFF) SELECT * FROM test.range_rel WHERE dt BETWEEN '2014-12-15' AND '2015-01-15';
1060
1067
QUERY PLAN
1061
1068
-------------------------------------------------------------------------------------
1062
1069
Append
1063
- -> Index Scan using range_rel_8_dt_idx on range_rel_8
1070
+ -> Index Scan using range_rel_9_dt_idx on range_rel_9
1064
1071
Index Cond: (dt >= 'Mon Dec 15 00:00:00 2014'::timestamp without time zone)
1065
- -> Index Scan using range_rel_1_dt_idx on range_rel_1
1072
+ -> Index Scan using range_rel_6_dt_idx on range_rel_6
1066
1073
Index Cond: (dt <= 'Thu Jan 15 00:00:00 2015'::timestamp without time zone)
1067
1074
(5 rows)
1068
1075
@@ -1081,8 +1088,8 @@ EXPLAIN (COSTS OFF) SELECT * FROM test.range_rel WHERE dt BETWEEN '2014-11-15' A
1081
1088
Append
1082
1089
-> Index Scan using range_rel_archive_dt_idx on range_rel_archive
1083
1090
Index Cond: (dt >= 'Sat Nov 15 00:00:00 2014'::timestamp without time zone)
1084
- -> Seq Scan on range_rel_8
1085
- -> Index Scan using range_rel_1_dt_idx on range_rel_1
1091
+ -> Seq Scan on range_rel_9
1092
+ -> Index Scan using range_rel_6_dt_idx on range_rel_6
1086
1093
Index Cond: (dt <= 'Thu Jan 15 00:00:00 2015'::timestamp without time zone)
1087
1094
(6 rows)
1088
1095
@@ -1097,8 +1104,8 @@ EXPLAIN (COSTS OFF) SELECT * FROM test.range_rel WHERE dt BETWEEN '2014-11-15' A
1097
1104
QUERY PLAN
1098
1105
-------------------------------------------------------------------------------------
1099
1106
Append
1100
- -> Seq Scan on range_rel_8
1101
- -> Index Scan using range_rel_1_dt_idx on range_rel_1
1107
+ -> Seq Scan on range_rel_9
1108
+ -> Index Scan using range_rel_6_dt_idx on range_rel_6
1102
1109
Index Cond: (dt <= 'Thu Jan 15 00:00:00 2015'::timestamp without time zone)
1103
1110
(4 rows)
1104
1111
@@ -1143,12 +1150,12 @@ SELECT * FROM pathman.pathman_partition_list WHERE parent = 'test.range_rel'::RE
1143
1150
parent | partition | parttype | expr | range_min | range_max
1144
1151
----------------+-------------------------------+----------+------+--------------------------+--------------------------
1145
1152
test.range_rel | test.range_rel_minus_infinity | 2 | dt | | Mon Dec 01 00:00:00 2014
1146
- test.range_rel | test.range_rel_8 | 2 | dt | Mon Dec 01 00:00:00 2014 | Thu Jan 01 00:00:00 2015
1147
- test.range_rel | test.range_rel_1 | 2 | dt | Thu Jan 01 00:00:00 2015 | Sun Feb 01 00:00:00 2015
1153
+ test.range_rel | test.range_rel_9 | 2 | dt | Mon Dec 01 00:00:00 2014 | Thu Jan 01 00:00:00 2015
1154
+ test.range_rel | test.range_rel_6 | 2 | dt | Thu Jan 01 00:00:00 2015 | Sun Feb 01 00:00:00 2015
1148
1155
test.range_rel | test.range_rel_2 | 2 | dt | Sun Feb 01 00:00:00 2015 | Sun Mar 01 00:00:00 2015
1149
1156
test.range_rel | test.range_rel_3 | 2 | dt | Sun Mar 01 00:00:00 2015 | Wed Apr 01 00:00:00 2015
1150
1157
test.range_rel | test.range_rel_4 | 2 | dt | Wed Apr 01 00:00:00 2015 | Fri May 01 00:00:00 2015
1151
- test.range_rel | test.range_rel_6 | 2 | dt | Fri May 01 00:00:00 2015 | Mon Jun 01 00:00:00 2015
1158
+ test.range_rel | test.range_rel_7 | 2 | dt | Fri May 01 00:00:00 2015 | Mon Jun 01 00:00:00 2015
1152
1159
test.range_rel | test.range_rel_plus_infinity | 2 | dt | Mon Jun 01 00:00:00 2015 |
1153
1160
(8 rows)
1154
1161
@@ -1159,14 +1166,14 @@ EXPLAIN (COSTS OFF) SELECT * FROM test.range_rel WHERE dt < '2015-01-01';
1159
1166
--------------------------------------------
1160
1167
Append
1161
1168
-> Seq Scan on range_rel_minus_infinity
1162
- -> Seq Scan on range_rel_8
1169
+ -> Seq Scan on range_rel_9
1163
1170
(3 rows)
1164
1171
1165
1172
EXPLAIN (COSTS OFF) SELECT * FROM test.range_rel WHERE dt >= '2015-05-01';
1166
1173
QUERY PLAN
1167
1174
-------------------------------------------
1168
1175
Append
1169
- -> Seq Scan on range_rel_6
1176
+ -> Seq Scan on range_rel_7
1170
1177
-> Seq Scan on range_rel_plus_infinity
1171
1178
(3 rows)
1172
1179
@@ -1328,9 +1335,9 @@ SELECT COUNT(*) FROM ONLY test.hash_rel;
1328
1335
1329
1336
DROP TABLE test.hash_rel CASCADE;
1330
1337
SELECT pathman.drop_partitions('test.num_range_rel');
1331
- NOTICE: 999 rows copied from test.num_range_rel_1
1332
1338
NOTICE: 1000 rows copied from test.num_range_rel_2
1333
1339
NOTICE: 1000 rows copied from test.num_range_rel_3
1340
+ NOTICE: 999 rows copied from test.num_range_rel_6
1334
1341
drop_partitions
1335
1342
-----------------
1336
1343
3
@@ -1547,7 +1554,7 @@ SELECT pathman.merge_range_partitions('test."RangeRel_1"', 'test."RangeRel_' ||
1547
1554
1548
1555
(1 row)
1549
1556
1550
- SELECT pathman.split_range_partition('test."RangeRel_1 "', '2015-01-01'::DATE);
1557
+ SELECT pathman.split_range_partition('test."RangeRel_6 "', '2015-01-01'::DATE);
1551
1558
split_range_partition
1552
1559
-------------------------
1553
1560
{12-31-2014,01-02-2015}
@@ -1617,7 +1624,7 @@ SELECT merge_range_partitions('test.range_rel_1', 'test.range_rel_2');
1617
1624
1618
1625
(1 row)
1619
1626
1620
- SELECT split_range_partition('test.range_rel_1 ', '2010-02-15'::date);
1627
+ SELECT split_range_partition('test.range_rel_13 ', '2010-02-15'::date);
1621
1628
split_range_partition
1622
1629
-------------------------
1623
1630
{01-01-2010,03-01-2010}
@@ -1626,22 +1633,22 @@ SELECT split_range_partition('test.range_rel_1', '2010-02-15'::date);
1626
1633
SELECT append_range_partition('test.range_rel');
1627
1634
append_range_partition
1628
1635
------------------------
1629
- test.range_rel_14
1636
+ test.range_rel_15
1630
1637
(1 row)
1631
1638
1632
1639
SELECT prepend_range_partition('test.range_rel');
1633
1640
prepend_range_partition
1634
1641
-------------------------
1635
- test.range_rel_15
1642
+ test.range_rel_16
1636
1643
(1 row)
1637
1644
1638
1645
EXPLAIN (COSTS OFF) SELECT * FROM test.range_rel WHERE dt < '2010-03-01';
1639
1646
QUERY PLAN
1640
1647
--------------------------------
1641
1648
Append
1642
- -> Seq Scan on range_rel_15
1643
- -> Seq Scan on range_rel_1
1649
+ -> Seq Scan on range_rel_16
1644
1650
-> Seq Scan on range_rel_13
1651
+ -> Seq Scan on range_rel_14
1645
1652
(4 rows)
1646
1653
1647
1654
EXPLAIN (COSTS OFF) SELECT * FROM test.range_rel WHERE dt > '2010-12-15';
@@ -1650,7 +1657,7 @@ EXPLAIN (COSTS OFF) SELECT * FROM test.range_rel WHERE dt > '2010-12-15';
1650
1657
Append
1651
1658
-> Seq Scan on range_rel_12
1652
1659
Filter: (dt > 'Wed Dec 15 00:00:00 2010'::timestamp without time zone)
1653
- -> Seq Scan on range_rel_14
1660
+ -> Seq Scan on range_rel_15
1654
1661
(4 rows)
1655
1662
1656
1663
/* Temporary table for JOINs */
@@ -1689,32 +1696,31 @@ SELECT * FROM test.range_rel WHERE dt = '2010-06-15';
1689
1696
EXPLAIN (COSTS OFF) UPDATE test.range_rel r SET value = t.value FROM test.tmp t WHERE r.dt = '2010-01-01' AND r.id = t.id;
1690
1697
QUERY PLAN
1691
1698
--------------------------------------------------------------------------------------------
1692
- Update on range_rel_1 r
1699
+ Update on range_rel_13 r
1693
1700
-> Hash Join
1694
1701
Hash Cond: (t.id = r.id)
1695
1702
-> Seq Scan on tmp t
1696
1703
-> Hash
1697
- -> Index Scan using range_rel_1_pkey on range_rel_1 r
1704
+ -> Index Scan using range_rel_13_pkey on range_rel_13 r
1698
1705
Filter: (dt = 'Fri Jan 01 00:00:00 2010'::timestamp without time zone)
1699
1706
(7 rows)
1700
1707
1701
1708
UPDATE test.range_rel r SET value = t.value FROM test.tmp t WHERE r.dt = '2010-01-01' AND r.id = t.id;
1702
1709
EXPLAIN (COSTS OFF) DELETE FROM test.range_rel r USING test.tmp t WHERE r.dt = '2010-01-02' AND r.id = t.id;
1703
1710
QUERY PLAN
1704
1711
--------------------------------------------------------------------------------------------
1705
- Delete on range_rel_1 r
1712
+ Delete on range_rel_13 r
1706
1713
-> Hash Join
1707
1714
Hash Cond: (t.id = r.id)
1708
1715
-> Seq Scan on tmp t
1709
1716
-> Hash
1710
- -> Index Scan using range_rel_1_pkey on range_rel_1 r
1717
+ -> Index Scan using range_rel_13_pkey on range_rel_13 r
1711
1718
Filter: (dt = 'Sat Jan 02 00:00:00 2010'::timestamp without time zone)
1712
1719
(7 rows)
1713
1720
1714
1721
DELETE FROM test.range_rel r USING test.tmp t WHERE r.dt = '2010-01-02' AND r.id = t.id;
1715
1722
/* Create range partitions from whole range */
1716
1723
SELECT drop_partitions('test.range_rel');
1717
- NOTICE: 44 rows copied from test.range_rel_1
1718
1724
NOTICE: 31 rows copied from test.range_rel_3
1719
1725
NOTICE: 30 rows copied from test.range_rel_4
1720
1726
NOTICE: 31 rows copied from test.range_rel_5
@@ -1725,9 +1731,10 @@ NOTICE: 30 rows copied from test.range_rel_9
1725
1731
NOTICE: 31 rows copied from test.range_rel_10
1726
1732
NOTICE: 30 rows copied from test.range_rel_11
1727
1733
NOTICE: 31 rows copied from test.range_rel_12
1728
- NOTICE: 14 rows copied from test.range_rel_13
1729
- NOTICE: 0 rows copied from test.range_rel_14
1734
+ NOTICE: 44 rows copied from test.range_rel_13
1735
+ NOTICE: 14 rows copied from test.range_rel_14
1730
1736
NOTICE: 0 rows copied from test.range_rel_15
1737
+ NOTICE: 0 rows copied from test.range_rel_16
1731
1738
drop_partitions
1732
1739
-----------------
1733
1740
14
0 commit comments