Skip to content

Commit efac8f3

Browse files
author
Marc Cousin
committed
Fix partition checking
Now return string of partitions_are are sorted with a reproducible order (collate C)
1 parent 2ede30f commit efac8f3

File tree

3 files changed

+10
-10
lines changed

3 files changed

+10
-10
lines changed

compat/install-9.6.patch

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -100,8 +100,8 @@
100100
-RETURNS TEXT AS $$
101101
- SELECT _are(
102102
- 'partitions',
103-
- ARRAY(SELECT _parts($1, $2) EXCEPT SELECT unnest($3)),
104-
- ARRAY(SELECT unnest($3) EXCEPT SELECT _parts($1, $2)),
103+
- ARRAY((SELECT _parts($1, $2)::text collate "C" EXCEPT SELECT unnest($3)) ORDER BY 1),
104+
- ARRAY((SELECT unnest($3)::text collate "C" EXCEPT SELECT _parts($1, $2)) ORDER BY 1),
105105
- $4
106106
- );
107107
-$$ LANGUAGE SQL;
@@ -120,8 +120,8 @@
120120
-RETURNS TEXT AS $$
121121
- SELECT _are(
122122
- 'partitions',
123-
- ARRAY(SELECT _parts($1) EXCEPT SELECT unnest($2)),
124-
- ARRAY(SELECT unnest($2) EXCEPT SELECT _parts($1)),
123+
- ARRAY((SELECT _parts($1)::text collate "C" EXCEPT SELECT unnest($2)) ORDER BY 1),
124+
- ARRAY((SELECT unnest($2)::text collate "C" EXCEPT SELECT _parts($1)) ORDER BY 1),
125125
- $3
126126
- );
127127
-$$ LANGUAGE SQL;

sql/pgtap.sql.in

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -9986,8 +9986,8 @@ CREATE OR REPLACE FUNCTION partitions_are( NAME, NAME, NAME[], TEXT )
99869986
RETURNS TEXT AS $$
99879987
SELECT _are(
99889988
'partitions',
9989-
ARRAY(SELECT _parts($1, $2) EXCEPT SELECT unnest($3)),
9990-
ARRAY(SELECT unnest($3) EXCEPT SELECT _parts($1, $2)),
9989+
ARRAY((SELECT _parts($1, $2)::text collate "C" EXCEPT SELECT unnest($3)) ORDER BY 1),
9990+
ARRAY((SELECT unnest($3)::text collate "C" EXCEPT SELECT _parts($1, $2)) ORDER BY 1),
99919991
$4
99929992
);
99939993
$$ LANGUAGE SQL;
@@ -10006,8 +10006,8 @@ CREATE OR REPLACE FUNCTION partitions_are( NAME, NAME[], TEXT )
1000610006
RETURNS TEXT AS $$
1000710007
SELECT _are(
1000810008
'partitions',
10009-
ARRAY(SELECT _parts($1) EXCEPT SELECT unnest($2)),
10010-
ARRAY(SELECT unnest($2) EXCEPT SELECT _parts($1)),
10009+
ARRAY((SELECT _parts($1)::text collate "C" EXCEPT SELECT unnest($2)) ORDER BY 1),
10010+
ARRAY((SELECT unnest($2)::text collate "C" EXCEPT SELECT _parts($1)) ORDER BY 1),
1001110011
$3
1001210012
);
1001310013
$$ LANGUAGE SQL;

test/sql/partitions.sql

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -300,9 +300,9 @@ SELECT * FROM check_test(
300300
'partitions_are( hidden tab, parts, desc )',
301301
'hi',
302302
' Missing partitions:
303-
not_hidden_part3
303+
"hide.hidden_part1"
304304
"hide.hidden_part2"
305-
"hide.hidden_part1"'
305+
not_hidden_part3'
306306
);
307307

308308
-- Should not work for unpartitioned but inherited table

0 commit comments

Comments
 (0)