]> granicus.if.org Git - postgresql/commitdiff
Improve English wording of some other getObjectDescription() messages.
authorTom Lane <tgl@sss.pgh.pa.us>
Thu, 24 May 2018 18:01:10 +0000 (14:01 -0400)
committerTom Lane <tgl@sss.pgh.pa.us>
Thu, 24 May 2018 18:01:10 +0000 (14:01 -0400)
Print columns as "column C of <relation>" rather than "<relation> column
C".  This seems to read noticeably better in English, as evidenced by the
regression test output changes, and the code change also makes it possible
for translators to adjust the phrase order in other languages.

Also change the output for OCLASS_DEFAULT from "default for %s" to
"default value for %s".  This seems to read better and is also more
consistent with the output of, for instance, getObjectTypeDescription().

Kyotaro Horiguchi, per a complaint from me

Discussion: https://postgr.es/m/20180522.182020.114074746.horiguchi.kyotaro@lab.ntt.co.jp

contrib/earthdistance/expected/earthdistance.out
contrib/postgres_fdw/expected/postgres_fdw.out
src/backend/catalog/objectaddress.c
src/test/regress/expected/alter_table.out
src/test/regress/expected/collate.out
src/test/regress/expected/domain.out
src/test/regress/expected/sequence.out
src/test/regress/expected/triggers.out

index 89022491cb6f7ebeff597b2e7186dc1a51ce635d..36a5a7bf6bed1bb57a8605b8db15dcceac6373f5 100644 (file)
@@ -985,7 +985,7 @@ HINT:  You can drop extension cube instead.
 create table foo (f1 cube, f2 int);
 drop extension cube;  -- fail, foo.f1 requires it
 ERROR:  cannot drop extension cube because other objects depend on it
-DETAIL:  table foo column f1 depends on type cube
+DETAIL:  column f1 of table foo depends on type cube
 HINT:  Use DROP ... CASCADE to drop the dependent objects too.
 drop table foo;
 drop extension cube;
@@ -1039,15 +1039,15 @@ create extension cube with schema c;
 create table foo (f1 c.cube, f2 int);
 drop extension cube;  -- fail, foo.f1 requires it
 ERROR:  cannot drop extension cube because other objects depend on it
-DETAIL:  table foo column f1 depends on type c.cube
+DETAIL:  column f1 of table foo depends on type c.cube
 HINT:  Use DROP ... CASCADE to drop the dependent objects too.
 drop schema c;  -- fail, cube requires it
 ERROR:  cannot drop schema c because other objects depend on it
 DETAIL:  extension cube depends on schema c
-table foo column f1 depends on type c.cube
+column f1 of table foo depends on type c.cube
 HINT:  Use DROP ... CASCADE to drop the dependent objects too.
 drop extension cube cascade;
-NOTICE:  drop cascades to table foo column f1
+NOTICE:  drop cascades to column f1 of table foo
 \d foo
                 Table "public.foo"
  Column |  Type   | Collation | Nullable | Default 
index e803c0b39cafe7b00936560f3e8edc0c7676cf53..cf4863c5aa2a6e9b423e9e75425f0bbd4f9da1e4 100644 (file)
@@ -8116,7 +8116,7 @@ CREATE TABLE import_source.t5 (c1 int, c2 text collate "C", "Col" "Colors");
 CREATE SCHEMA import_dest5;
 BEGIN;
 DROP TYPE "Colors" CASCADE;
-NOTICE:  drop cascades to table import_source.t5 column Col
+NOTICE:  drop cascades to column Col of table import_source.t5
 IMPORT FOREIGN SCHEMA import_source LIMIT TO (t5)
   FROM SERVER loopback INTO import_dest5;  -- ERROR
 ERROR:  type "public.Colors" does not exist
index 053d9281e578d518d1a49f240605a5b08a5bc447..ad682673e6aac94d674b80ba3ccba772d2780e50 100644 (file)
@@ -2681,12 +2681,23 @@ getObjectDescription(const ObjectAddress *object)
        switch (getObjectClass(object))
        {
                case OCLASS_CLASS:
-                       getRelationDescription(&buffer, object->objectId);
-                       if (object->objectSubId != 0)
-                               appendStringInfo(&buffer, _(" column %s"),
+                       if (object->objectSubId == 0)
+                               getRelationDescription(&buffer, object->objectId);
+                       else
+                       {
+                               /* column, not whole relation */
+                               StringInfoData rel;
+
+                               initStringInfo(&rel);
+                               getRelationDescription(&rel, object->objectId);
+                               /* translator: second %s is, e.g., "table %s" */
+                               appendStringInfo(&buffer, _("column %s of %s"),
                                                                 get_attname(object->objectId,
                                                                                         object->objectSubId,
-                                                                                        false));
+                                                                                        false),
+                                                                rel.data);
+                               pfree(rel.data);
+                       }
                        break;
 
                case OCLASS_PROC:
@@ -2850,7 +2861,8 @@ getObjectDescription(const ObjectAddress *object)
                                colobject.objectId = attrdef->adrelid;
                                colobject.objectSubId = attrdef->adnum;
 
-                               appendStringInfo(&buffer, _("default for %s"),
+                               /* translator: %s is typically "column %s of table %s" */
+                               appendStringInfo(&buffer, _("default value for %s"),
                                                                 getObjectDescription(&colobject));
 
                                systable_endscan(adscan);
index 376194c48aec219f399f6187fc5278e5dc2b9842..702bf9fe986ddc1e23e1721ef5541d33e591915e 100644 (file)
@@ -1844,7 +1844,7 @@ select * from foo;
 (1 row)
 
 drop domain mytype cascade;
-NOTICE:  drop cascades to table foo column f2
+NOTICE:  drop cascades to column f2 of table foo
 select * from foo;
  f1 | f3 
 ----+----
@@ -2870,8 +2870,8 @@ DROP TABLE test_tbl2_subclass;
 CREATE TYPE test_typex AS (a int, b text);
 CREATE TABLE test_tblx (x int, y test_typex check ((y).a > 0));
 ALTER TYPE test_typex DROP ATTRIBUTE a; -- fails
-ERROR:  cannot drop composite type test_typex column a because other objects depend on it
-DETAIL:  constraint test_tblx_y_check on table test_tblx depends on composite type test_typex column a
+ERROR:  cannot drop column a of composite type test_typex because other objects depend on it
+DETAIL:  constraint test_tblx_y_check on table test_tblx depends on column a of composite type test_typex
 HINT:  Use DROP ... CASCADE to drop the dependent objects too.
 ALTER TYPE test_typex DROP ATTRIBUTE a CASCADE;
 NOTICE:  drop cascades to constraint test_tblx_y_check on table test_tblx
index f045f2b291cb54631d364a99090326e79d6f55d1..fcbe3a5cc8234558bf60d28866fa310e62112d15 100644 (file)
@@ -631,7 +631,7 @@ DROP COLLATION mycoll1;
 CREATE TABLE collate_test23 (f1 text collate mycoll2);
 DROP COLLATION mycoll2;  -- fail
 ERROR:  cannot drop collation mycoll2 because other objects depend on it
-DETAIL:  table collate_test23 column f1 depends on collation mycoll2
+DETAIL:  column f1 of table collate_test23 depends on collation mycoll2
 HINT:  Use DROP ... CASCADE to drop the dependent objects too.
 -- invalid: non-lowercase quoted identifiers
 CREATE COLLATION case_coll ("Lc_Collate" = "POSIX", "Lc_Ctype" = "POSIX");
index f4eebb75cf2805c31b100b7c48543d3dd26da014..0b5a9041b0e6d7a7ee776ac45c0cb17935b33c32 100644 (file)
@@ -298,8 +298,8 @@ ERROR:  operator does not exist: character varying > double precision
 HINT:  No operator matches the given name and argument types. You might need to add explicit type casts.
 alter type comptype alter attribute r type bigint;
 alter type comptype drop attribute r;  -- fail
-ERROR:  cannot drop composite type comptype column r because other objects depend on it
-DETAIL:  constraint c1 depends on composite type comptype column r
+ERROR:  cannot drop column r of composite type comptype because other objects depend on it
+DETAIL:  constraint c1 depends on column r of composite type comptype
 HINT:  Use DROP ... CASCADE to drop the dependent objects too.
 alter type comptype drop attribute i;
 select conname, obj_description(oid, 'pg_constraint') from pg_constraint
@@ -645,8 +645,8 @@ alter domain dnotnulltest drop not null;
 update domnotnull set col1 = null;
 drop domain dnotnulltest cascade;
 NOTICE:  drop cascades to 2 other objects
-DETAIL:  drop cascades to table domnotnull column col1
-drop cascades to table domnotnull column col2
+DETAIL:  drop cascades to column col1 of table domnotnull
+drop cascades to column col2 of table domnotnull
 -- Test ALTER DOMAIN .. DEFAULT ..
 create table domdeftest (col1 ddef1);
 insert into domdeftest default values;
index ca5ea063fa02bfb6b716bc51ef4b5e6aabeb9ad6..a0d2b22d3c015bcc53e88e0dbead1f38cfed101a 100644 (file)
@@ -293,11 +293,11 @@ CREATE TEMP TABLE t1 (
 -- Both drops should fail, but with different error messages:
 DROP SEQUENCE t1_f1_seq;
 ERROR:  cannot drop sequence t1_f1_seq because other objects depend on it
-DETAIL:  default for table t1 column f1 depends on sequence t1_f1_seq
+DETAIL:  default value for column f1 of table t1 depends on sequence t1_f1_seq
 HINT:  Use DROP ... CASCADE to drop the dependent objects too.
 DROP SEQUENCE myseq2;
 ERROR:  cannot drop sequence myseq2 because other objects depend on it
-DETAIL:  default for table t1 column f2 depends on sequence myseq2
+DETAIL:  default value for column f2 of table t1 depends on sequence myseq2
 HINT:  Use DROP ... CASCADE to drop the dependent objects too.
 -- This however will work:
 DROP SEQUENCE myseq3;
index 1f8caef2d7fab459c2fa64e0c8203e2bce130709..bf271d536ef7ae54e5db41cd061d6ac6066613ab 100644 (file)
@@ -557,10 +557,10 @@ LINE 2: FOR EACH STATEMENT WHEN (OLD.* IS DISTINCT FROM NEW.*)
                                  ^
 -- check dependency restrictions
 ALTER TABLE main_table DROP COLUMN b;
-ERROR:  cannot drop table main_table column b because other objects depend on it
-DETAIL:  trigger after_upd_b_row_trig on table main_table depends on table main_table column b
-trigger after_upd_a_b_row_trig on table main_table depends on table main_table column b
-trigger after_upd_b_stmt_trig on table main_table depends on table main_table column b
+ERROR:  cannot drop column b of table main_table because other objects depend on it
+DETAIL:  trigger after_upd_b_row_trig on table main_table depends on column b of table main_table
+trigger after_upd_a_b_row_trig on table main_table depends on column b of table main_table
+trigger after_upd_b_stmt_trig on table main_table depends on column b of table main_table
 HINT:  Use DROP ... CASCADE to drop the dependent objects too.
 -- this should succeed, but we'll roll it back to keep the triggers around
 begin;