Stabilize ordering in tablefunc contrib module
authorTomas Vondra <[email protected]>
Wed, 30 Aug 2017 23:23:27 +0000 (01:23 +0200)
committerTomas Vondra <[email protected]>
Wed, 30 Aug 2017 23:23:27 +0000 (01:23 +0200)
Add explicit ORDER BY clause to stabilize ordering of test results.

contrib/tablefunc/expected/tablefunc.out
contrib/tablefunc/sql/tablefunc.sql

index fffadc6e1b405533a5ec0cd47250abe80ac8c095..3e376cab99fb4d89c21cba5b472826fcd7f1dce3 100644 (file)
@@ -332,26 +332,26 @@ SELECT * FROM connectby('connectby_text', 'keyid', 'parent_keyid', 'pos', 'row2'
 CREATE TABLE connectby_int(keyid int, parent_keyid int);
 \copy connectby_int from 'data/connectby_int.data'
 -- with branch
-SELECT * FROM connectby('connectby_int', 'keyid', 'parent_keyid', '2', 0, '~') AS t(keyid int, parent_keyid int, level int, branch text);
+SELECT * FROM connectby('connectby_int', 'keyid', 'parent_keyid', '2', 0, '~') AS t(keyid int, parent_keyid int, level int, branch text) ORDER BY keyid;
  keyid | parent_keyid | level | branch  
 -------+--------------+-------+---------
      2 |              |     0 | 2
      4 |            2 |     1 | 2~4
+     5 |            2 |     1 | 2~5
      6 |            4 |     2 | 2~4~6
      8 |            6 |     3 | 2~4~6~8
-     5 |            2 |     1 | 2~5
      9 |            5 |     2 | 2~5~9
 (6 rows)
 
 -- without branch
-SELECT * FROM connectby('connectby_int', 'keyid', 'parent_keyid', '2', 0) AS t(keyid int, parent_keyid int, level int);
+SELECT * FROM connectby('connectby_int', 'keyid', 'parent_keyid', '2', 0) AS t(keyid int, parent_keyid int, level int) ORDER BY keyid;
  keyid | parent_keyid | level 
 -------+--------------+-------
      2 |              |     0
      4 |            2 |     1
+     5 |            2 |     1
      6 |            4 |     2
      8 |            6 |     3
-     5 |            2 |     1
      9 |            5 |     2
 (6 rows)
 
@@ -363,14 +363,14 @@ INSERT INTO connectby_int VALUES(9,11);
 SELECT * FROM connectby('connectby_int', 'keyid', 'parent_keyid', '2', 0, '~') AS t(keyid int, parent_keyid int, level int, branch text);
 ERROR:  infinite recursion detected
 -- infinite recursion failure avoided by depth limit
-SELECT * FROM connectby('connectby_int', 'keyid', 'parent_keyid', '2', 4, '~') AS t(keyid int, parent_keyid int, level int, branch text);
+SELECT * FROM connectby('connectby_int', 'keyid', 'parent_keyid', '2', 4, '~') AS t(keyid int, parent_keyid int, level int, branch text) ORDER BY keyid;
  keyid | parent_keyid | level |   branch    
 -------+--------------+-------+-------------
      2 |              |     0 | 2
      4 |            2 |     1 | 2~4
+     5 |            2 |     1 | 2~5
      6 |            4 |     2 | 2~4~6
      8 |            6 |     3 | 2~4~6~8
-     5 |            2 |     1 | 2~5
      9 |            5 |     2 | 2~5~9
     10 |            9 |     3 | 2~5~9~10
     11 |           10 |     4 | 2~5~9~10~11
index ec375b05c63c9df90fa437be88ad192bf0ab24c4..8c8f32798ac4aed0d95c1a72d2a1b96246f132e1 100644 (file)
@@ -163,10 +163,10 @@ CREATE TABLE connectby_int(keyid int, parent_keyid int);
 \copy connectby_int from 'data/connectby_int.data'
 
 -- with branch
-SELECT * FROM connectby('connectby_int', 'keyid', 'parent_keyid', '2', 0, '~') AS t(keyid int, parent_keyid int, level int, branch text);
+SELECT * FROM connectby('connectby_int', 'keyid', 'parent_keyid', '2', 0, '~') AS t(keyid int, parent_keyid int, level int, branch text) ORDER BY keyid;
 
 -- without branch
-SELECT * FROM connectby('connectby_int', 'keyid', 'parent_keyid', '2', 0) AS t(keyid int, parent_keyid int, level int);
+SELECT * FROM connectby('connectby_int', 'keyid', 'parent_keyid', '2', 0) AS t(keyid int, parent_keyid int, level int) ORDER BY keyid;
 
 -- recursion detection
 INSERT INTO connectby_int VALUES(10,9);
@@ -177,7 +177,7 @@ INSERT INTO connectby_int VALUES(9,11);
 SELECT * FROM connectby('connectby_int', 'keyid', 'parent_keyid', '2', 0, '~') AS t(keyid int, parent_keyid int, level int, branch text);
 
 -- infinite recursion failure avoided by depth limit
-SELECT * FROM connectby('connectby_int', 'keyid', 'parent_keyid', '2', 4, '~') AS t(keyid int, parent_keyid int, level int, branch text);
+SELECT * FROM connectby('connectby_int', 'keyid', 'parent_keyid', '2', 4, '~') AS t(keyid int, parent_keyid int, level int, branch text) ORDER BY keyid;
 
 -- should fail as first two columns must have the same type
 SELECT * FROM connectby('connectby_int', 'keyid', 'parent_keyid', '2', 0, '~') AS t(keyid text, parent_keyid int, level int, branch text);