@@ -21,7 +21,6 @@ CREATE TABLE calamity.part_test(val serial);
21
21
/* test pg_pathman's cache */
22
22
INSERT INTO calamity.part_test SELECT generate_series(1, 30);
23
23
SELECT create_range_partitions('calamity.part_test', 'val', 1, 10);
24
- NOTICE: sequence "part_test_seq" does not exist, skipping
25
24
create_range_partitions
26
25
-------------------------
27
26
3
@@ -270,19 +269,21 @@ SELECT build_range_condition('calamity.part_test', 'val', NULL, 10); /* OK */
270
269
(1 row)
271
270
272
271
/* check function validate_interval_value() */
273
- SELECT validate_interval_value(1::REGCLASS, 'expr', 2, '1 mon', 'cooked_expr'); /* not ok */
272
+ SELECT validate_interval_value(1::REGCLASS, 'expr', 2, '1 mon', 'cooked_expr'); /* not ok */
274
273
ERROR: relation "1" does not exist
275
- SELECT validate_interval_value(NULL, 'expr', 2, '1 mon', 'cooked_expr'); /* not ok */
274
+ SELECT validate_interval_value(NULL, 'expr', 2, '1 mon', 'cooked_expr'); /* not ok */
276
275
ERROR: 'partrel' should not be NULL
277
- SELECT validate_interval_value('pg_class', NULL, 2, '1 mon', 'cooked_expr'); /* not ok */
276
+ SELECT validate_interval_value('pg_class', NULL, 2, '1 mon', 'cooked_expr'); /* not ok */
278
277
ERROR: 'expression' should not be NULL
279
- SELECT validate_interval_value('pg_class', 'oid', 1, 'HASH', NULL); /* not ok */
278
+ SELECT validate_interval_value('pg_class', 'oid', NULL, '1 mon', 'cooked_expr'); /* not ok */
279
+ ERROR: 'parttype' should not be NULL
280
+ SELECT validate_interval_value('pg_class', 'oid', 1, 'HASH', NULL); /* not ok */
280
281
ERROR: interval should be NULL for HASH partitioned table
281
- SELECT validate_interval_value('pg_class', 'expr', 2, '1 mon', NULL); /* not ok */
282
+ SELECT validate_interval_value('pg_class', 'expr', 2, '1 mon', NULL); /* not ok */
282
283
ERROR: cannot find type name for attribute "expr" of relation "pg_class"
283
- SELECT validate_interval_value('pg_class', 'expr', 2, NULL, 'cooked_expr'); /* not ok */
284
+ SELECT validate_interval_value('pg_class', 'expr', 2, NULL, 'cooked_expr'); /* not ok */
284
285
ERROR: unrecognized token: "cooked_expr"
285
- SELECT validate_interval_value('pg_class', 'EXPR', 1, 'HASH', NULL); /* not ok */
286
+ SELECT validate_interval_value('pg_class', 'EXPR', 1, 'HASH', NULL); /* not ok */
286
287
ERROR: cannot find type name for attribute "expr" of relation "pg_class"
287
288
/* check function validate_relname() */
288
289
SELECT validate_relname('calamity.part_test');
@@ -471,7 +472,7 @@ SELECT generate_range_bounds('1-jan-2017'::DATE,
471
472
SELECT check_range_available(NULL, NULL::INT4, NULL); /* not ok */
472
473
ERROR: 'parent_relid' should not be NULL
473
474
SELECT check_range_available('pg_class', 1, 10); /* OK (not partitioned) */
474
- WARNING: relation "pg_class" is not partitioned
475
+ WARNING: table "pg_class" is not partitioned
475
476
check_range_available
476
477
-----------------------
477
478
@@ -702,7 +703,6 @@ SELECT count(*) FROM pathman_config_params WHERE partrel = 'calamity.to_be_disab
702
703
/* check function get_part_range_by_idx() */
703
704
CREATE TABLE calamity.test_range_idx(val INT4 NOT NULL);
704
705
SELECT create_range_partitions('calamity.test_range_idx', 'val', 1, 10, 1);
705
- NOTICE: sequence "test_range_idx_seq" does not exist, skipping
706
706
create_range_partitions
707
707
-------------------------
708
708
1
@@ -725,11 +725,10 @@ SELECT get_part_range('calamity.test_range_idx', 0, NULL::INT4); /* OK */
725
725
(1 row)
726
726
727
727
DROP TABLE calamity.test_range_idx CASCADE;
728
- NOTICE: drop cascades to table calamity.test_range_idx_1
728
+ NOTICE: drop cascades to 2 other objects
729
729
/* check function get_part_range_by_oid() */
730
730
CREATE TABLE calamity.test_range_oid(val INT4 NOT NULL);
731
731
SELECT create_range_partitions('calamity.test_range_oid', 'val', 1, 10, 1);
732
- NOTICE: sequence "test_range_oid_seq" does not exist, skipping
733
732
create_range_partitions
734
733
-------------------------
735
734
1
@@ -748,9 +747,79 @@ SELECT get_part_range('calamity.test_range_oid_1', NULL::INT4); /* OK */
748
747
(1 row)
749
748
750
749
DROP TABLE calamity.test_range_oid CASCADE;
751
- NOTICE: drop cascades to table calamity.test_range_oid_1
750
+ NOTICE: drop cascades to 2 other objects
751
+ /* check function merge_range_partitions() */
752
+ SELECT merge_range_partitions('{pg_class}'); /* not ok */
753
+ ERROR: cannot merge partitions
754
+ SELECT merge_range_partitions('{pg_class, pg_inherits}'); /* not ok */
755
+ ERROR: cannot merge partitions
756
+ CREATE TABLE calamity.merge_test_a(val INT4 NOT NULL);
757
+ CREATE TABLE calamity.merge_test_b(val INT4 NOT NULL);
758
+ SELECT create_range_partitions('calamity.merge_test_a', 'val', 1, 10, 2);
759
+ create_range_partitions
760
+ -------------------------
761
+ 2
762
+ (1 row)
763
+
764
+ SELECT create_range_partitions('calamity.merge_test_b', 'val', 1, 10, 2);
765
+ create_range_partitions
766
+ -------------------------
767
+ 2
768
+ (1 row)
769
+
770
+ SELECT merge_range_partitions('{calamity.merge_test_a_1,
771
+ calamity.merge_test_b_1}'); /* not ok */
772
+ ERROR: cannot merge partitions
773
+ DROP TABLE calamity.merge_test_a,calamity.merge_test_b CASCADE;
774
+ NOTICE: drop cascades to 6 other objects
775
+ /* check function drop_triggers() */
776
+ CREATE TABLE calamity.trig_test_tbl(val INT4 NOT NULL);
777
+ SELECT create_hash_partitions('calamity.trig_test_tbl', 'val', 2);
778
+ create_hash_partitions
779
+ ------------------------
780
+ 2
781
+ (1 row)
782
+
783
+ SELECT create_update_triggers('calamity.trig_test_tbl');
784
+ create_update_triggers
785
+ ------------------------
786
+
787
+ (1 row)
788
+
789
+ SELECT count(*) FROM pg_trigger WHERE tgrelid = 'calamity.trig_test_tbl'::REGCLASS;
790
+ count
791
+ -------
792
+ 1
793
+ (1 row)
794
+
795
+ SELECT count(*) FROM pg_trigger WHERE tgrelid = 'calamity.trig_test_tbl_1'::REGCLASS;
796
+ count
797
+ -------
798
+ 1
799
+ (1 row)
800
+
801
+ SELECT drop_triggers('calamity.trig_test_tbl'); /* OK */
802
+ drop_triggers
803
+ ---------------
804
+
805
+ (1 row)
806
+
807
+ SELECT count(*) FROM pg_trigger WHERE tgrelid = 'calamity.trig_test_tbl'::REGCLASS;
808
+ count
809
+ -------
810
+ 0
811
+ (1 row)
812
+
813
+ SELECT count(*) FROM pg_trigger WHERE tgrelid = 'calamity.trig_test_tbl_1'::REGCLASS;
814
+ count
815
+ -------
816
+ 0
817
+ (1 row)
818
+
819
+ DROP TABLE calamity.trig_test_tbl CASCADE;
820
+ NOTICE: drop cascades to 2 other objects
752
821
DROP SCHEMA calamity CASCADE;
753
- NOTICE: drop cascades to 18 other objects
822
+ NOTICE: drop cascades to 15 other objects
754
823
DROP EXTENSION pg_pathman;
755
824
/*
756
825
* -------------------------------------
@@ -764,7 +833,6 @@ SET pg_pathman.enable_bounds_cache = false;
764
833
/* check view pathman_cache_stats */
765
834
CREATE TABLE calamity.test_pathman_cache_stats(val NUMERIC NOT NULL);
766
835
SELECT create_range_partitions('calamity.test_pathman_cache_stats', 'val', 1, 10, 10);
767
- NOTICE: sequence "test_pathman_cache_stats_seq" does not exist, skipping
768
836
create_range_partitions
769
837
-------------------------
770
838
10
@@ -851,7 +919,6 @@ SELECT context, entries FROM pathman_cache_stats ORDER BY context; /* OK */
851
919
852
920
DROP TABLE calamity.test_pathman_cache_stats;
853
921
DROP SCHEMA calamity CASCADE;
854
- NOTICE: drop cascades to sequence calamity.test_pathman_cache_stats_seq
855
922
DROP EXTENSION pg_pathman;
856
923
/*
857
924
* ------------------------------------------
@@ -863,7 +930,6 @@ CREATE EXTENSION pg_pathman;
863
930
/* check function pathman_cache_search_relid() */
864
931
CREATE TABLE calamity.survivor(val INT NOT NULL);
865
932
SELECT create_range_partitions('calamity.survivor', 'val', 1, 10, 2);
866
- NOTICE: sequence "survivor_seq" does not exist, skipping
867
933
create_range_partitions
868
934
-------------------------
869
935
2
@@ -903,10 +969,10 @@ SELECT add_to_pathman_config('calamity.survivor', 'val', '10'); /* OK */
903
969
(1 row)
904
970
905
971
SELECT * FROM pathman_partition_list; /* OK */
906
- parent | partition | parttype | partattr | range_min | range_max
907
- -------------------+---------------------+----------+---------- +-----------+-----------
908
- calamity.survivor | calamity.survivor_1 | 2 | val | 1 | 11
909
- calamity.survivor | calamity.survivor_2 | 2 | val | 11 | 21
972
+ parent | partition | parttype | expr | range_min | range_max
973
+ -------------------+---------------------+----------+------+-----------+-----------
974
+ calamity.survivor | calamity.survivor_1 | 2 | val | 1 | 11
975
+ calamity.survivor | calamity.survivor_2 | 2 | val | 11 | 21
910
976
(2 rows)
911
977
912
978
SELECT get_part_range('calamity.survivor', 0, NULL::INT); /* OK */
@@ -924,7 +990,6 @@ EXPLAIN (COSTS OFF) SELECT * FROM calamity.survivor; /* OK */
924
990
(3 rows)
925
991
926
992
DROP TABLE calamity.survivor CASCADE;
927
- NOTICE: drop cascades to 2 other objects
993
+ NOTICE: drop cascades to 3 other objects
928
994
DROP SCHEMA calamity CASCADE;
929
- NOTICE: drop cascades to sequence calamity.survivor_seq
930
995
DROP EXTENSION pg_pathman;
0 commit comments