Improve stability of identity.sql regression test.
authorTom Lane
Mon, 5 Oct 2020 00:45:06 +0000 (20:45 -0400)
committerTom Lane
Mon, 5 Oct 2020 00:45:59 +0000 (20:45 -0400)
I noticed while trying to run the regression tests under a low
geqo_threshold that one query on information_schema.columns had
unstable (as in, variable from one run to the next) output order.
This is pretty unsurprising given the complexity of the underlying
plan.  Interestingly, of this test's three nigh-identical queries on
information_schema.columns, the other two already had ORDER BY clauses
guaranteeing stable output.  Let's make this one look the same.

Back-patch to v10 where this test was added.  We've not heard field
reports of the test failing, but this experience shows that it can
happen when testing under even slightly unusual conditions.

src/test/regress/expected/identity.out
src/test/regress/sql/identity.sql

index 5536044d9f4d88180b4c1748181336e20b4518b7..3562cd4f68a1f061c1fe0412d65d2206ae3f98d5 100644 (file)
@@ -303,7 +303,7 @@ SELECT * FROM itest6;
  102 | 
 (3 rows)
 
-SELECT table_name, column_name, is_identity, identity_generation FROM information_schema.columns WHERE table_name = 'itest6';
+SELECT table_name, column_name, is_identity, identity_generation FROM information_schema.columns WHERE table_name = 'itest6' ORDER BY 1, 2;
  table_name | column_name | is_identity | identity_generation 
 ------------+-------------+-------------+---------------------
  itest6     | a           | YES         | BY DEFAULT
index 8be086d7eaf00b9c2e90ece038e3b28199d476bc..e3459be497abe484aef015a136ab8d22eb1e0407 100644 (file)
@@ -183,7 +183,7 @@ INSERT INTO itest6 DEFAULT VALUES;
 INSERT INTO itest6 DEFAULT VALUES;
 SELECT * FROM itest6;
 
-SELECT table_name, column_name, is_identity, identity_generation FROM information_schema.columns WHERE table_name = 'itest6';
+SELECT table_name, column_name, is_identity, identity_generation FROM information_schema.columns WHERE table_name = 'itest6' ORDER BY 1, 2;
 
 ALTER TABLE itest6 ALTER COLUMN b SET INCREMENT BY 2;  -- fail, not identity