Improve stability of identity.sql regression test.
authorTom Lane <tgl@sss.pgh.pa.us>
Mon, 5 Oct 2020 00:45:06 +0000 (20:45 -0400)
committerTom Lane <tgl@sss.pgh.pa.us>
Mon, 5 Oct 2020 00:46:47 +0000 (20:46 -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 7ac9df767f5538b9ed7cbfd7d2bf3a73f32507b9..2238f896f9a483040c373539c71b47b5196d1d4a 100644 (file)
@@ -335,7 +335,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 1bf2a976eb0b963c4db0db405a271ab092657f70..d4bc29ab5c30072efbfcb7d8a5f0b7a820d5c55a 100644 (file)
@@ -208,7 +208,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