Hi,

I've noticed a locale-specific bug in regression tests, I discovered
thanks to the new "magpie" buildfarm member (testing "cs_CZ" locale).
The problem is in "foreign_data" where the output is sorted by a column,
and "cs_CZ" behaves differently from "C" and "en_US".

More precisely, in "C" it's true that ('s4' < 'sc') but that's not true
in cs_CZ (and supposedly some other locales).

I've fixed this by replacing 'sc' with 't0' which seems to fix the
ordering (and should work with other locales too). See the patch attached.

kind regards
Tomas
diff --git a/src/test/regress/expected/foreign_data.out 
b/src/test/regress/expected/foreign_data.out
index 2b3eddf..3f6bce2 100644
--- a/src/test/regress/expected/foreign_data.out
+++ b/src/test/regress/expected/foreign_data.out
@@ -631,25 +631,25 @@ DROP SERVER s7;
 
 -- CREATE FOREIGN TABLE
 CREATE SCHEMA foreign_schema;
-CREATE SERVER sc FOREIGN DATA WRAPPER dummy;
+CREATE SERVER t0 FOREIGN DATA WRAPPER dummy;
 CREATE FOREIGN TABLE ft1 ();                                    -- ERROR
 ERROR:  syntax error at or near ";"
 LINE 1: CREATE FOREIGN TABLE ft1 ();
                                    ^
 CREATE FOREIGN TABLE ft1 () SERVER no_server;                   -- ERROR
 ERROR:  server "no_server" does not exist
-CREATE FOREIGN TABLE ft1 (c1 serial) SERVER sc;                 -- ERROR
+CREATE FOREIGN TABLE ft1 (c1 serial) SERVER t0;                 -- ERROR
 NOTICE:  CREATE FOREIGN TABLE will create implicit sequence "ft1_c1_seq" for 
serial column "ft1.c1"
 ERROR:  default values on foreign tables are not supported
-CREATE FOREIGN TABLE ft1 () SERVER sc WITH OIDS;                -- ERROR
+CREATE FOREIGN TABLE ft1 () SERVER t0 WITH OIDS;                -- ERROR
 ERROR:  syntax error at or near "WITH OIDS"
-LINE 1: CREATE FOREIGN TABLE ft1 () SERVER sc WITH OIDS;
+LINE 1: CREATE FOREIGN TABLE ft1 () SERVER t0 WITH OIDS;
                                               ^
 CREATE FOREIGN TABLE ft1 (
        c1 integer NOT NULL,
        c2 text,
        c3 date
-) SERVER sc OPTIONS (delimiter ',', quote '"');
+) SERVER t0 OPTIONS (delimiter ',', quote '"');
 COMMENT ON FOREIGN TABLE ft1 IS 'ft1';
 COMMENT ON COLUMN ft1.c1 IS 'ft1.c1';
 \d+ ft1
@@ -659,14 +659,14 @@ COMMENT ON COLUMN ft1.c1 IS 'ft1.c1';
  c1     | integer | not null  | plain    | ft1.c1
  c2     | text    |           | extended | 
  c3     | date    |           | plain    | 
-Server: sc
+Server: t0
 Has OIDs: no
 
 \det+
                 List of foreign tables
  Schema | Table | Server |          Options           
 --------+-------+--------+----------------------------
- public | ft1   | sc     | {"delimiter=,","quote=\""}
+ public | ft1   | t0     | {"delimiter=,","quote=\""}
 (1 row)
 
 CREATE INDEX id_ft1_c2 ON ft1 (c2);                             -- ERROR
@@ -737,7 +737,7 @@ Foreign table "foreign_schema.foreign_table_1"
  c7               | integer | 
  c8               | text    | 
  c10              | integer | 
-Server: sc
+Server: t0
 
 -- Information schema
 SELECT * FROM information_schema.foreign_data_wrappers ORDER BY 1, 2;
@@ -761,7 +761,7 @@ SELECT * FROM information_schema.foreign_servers ORDER BY 
1, 2;
  regression             | s5                  | regression                   | 
foo                       |                     | 15.0                   | 
regress_test_role
  regression             | s6                  | regression                   | 
foo                       |                     | 16.0                   | 
regress_test_indirect
  regression             | s8                  | regression                   | 
postgresql                |                     |                        | 
foreign_data_user
- regression             | sc                  | regression                   | 
dummy                     |                     |                        | 
foreign_data_user
+ regression             | t0                  | regression                   | 
dummy                     |                     |                        | 
foreign_data_user
  regression             | t1                  | regression                   | 
foo                       |                     |                        | 
regress_test_indirect
  regression             | t2                  | regression                   | 
foo                       |                     |                        | 
regress_test_role
 (7 rows)
@@ -823,7 +823,7 @@ SELECT * FROM information_schema.role_usage_grants WHERE 
object_type LIKE 'FOREI
 SELECT * FROM information_schema.foreign_tables ORDER BY 1, 2, 3;
  foreign_table_catalog | foreign_table_schema | foreign_table_name | 
foreign_server_catalog | foreign_server_name 
 
-----------------------+----------------------+--------------------+------------------------+---------------------
- regression            | foreign_schema       | foreign_table_1    | 
regression             | sc
+ regression            | foreign_schema       | foreign_table_1    | 
regression             | t0
 (1 row)
 
 SELECT * FROM information_schema.foreign_table_options ORDER BY 1, 2, 3, 4;
@@ -1106,7 +1106,7 @@ DROP ROLE unprivileged_role;
 DROP ROLE regress_test_role2;
 DROP FOREIGN DATA WRAPPER postgresql CASCADE;
 DROP FOREIGN DATA WRAPPER dummy CASCADE;
-NOTICE:  drop cascades to server sc
+NOTICE:  drop cascades to server t0
 \c
 DROP ROLE foreign_data_user;
 -- At this point we should have no wrappers, no servers, and no mappings.
diff --git a/src/test/regress/sql/foreign_data.sql 
b/src/test/regress/sql/foreign_data.sql
index 58e5060..9899cf5 100644
--- a/src/test/regress/sql/foreign_data.sql
+++ b/src/test/regress/sql/foreign_data.sql
@@ -258,16 +258,16 @@ DROP SERVER s7;
 
 -- CREATE FOREIGN TABLE
 CREATE SCHEMA foreign_schema;
-CREATE SERVER sc FOREIGN DATA WRAPPER dummy;
+CREATE SERVER t0 FOREIGN DATA WRAPPER dummy;
 CREATE FOREIGN TABLE ft1 ();                                    -- ERROR
 CREATE FOREIGN TABLE ft1 () SERVER no_server;                   -- ERROR
-CREATE FOREIGN TABLE ft1 (c1 serial) SERVER sc;                 -- ERROR
-CREATE FOREIGN TABLE ft1 () SERVER sc WITH OIDS;                -- ERROR
+CREATE FOREIGN TABLE ft1 (c1 serial) SERVER t0;                 -- ERROR
+CREATE FOREIGN TABLE ft1 () SERVER t0 WITH OIDS;                -- ERROR
 CREATE FOREIGN TABLE ft1 (
        c1 integer NOT NULL,
        c2 text,
        c3 date
-) SERVER sc OPTIONS (delimiter ',', quote '"');
+) SERVER t0 OPTIONS (delimiter ',', quote '"');
 COMMENT ON FOREIGN TABLE ft1 IS 'ft1';
 COMMENT ON COLUMN ft1.c1 IS 'ft1.c1';
 \d+ ft1
-- 
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers

Reply via email to