summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--contrib/earthdistance/expected/earthdistance.out8
-rw-r--r--contrib/postgres_fdw/expected/postgres_fdw.out2
-rw-r--r--src/backend/catalog/objectaddress.c22
-rw-r--r--src/test/regress/expected/alter_table.out6
-rw-r--r--src/test/regress/expected/collate.out2
-rw-r--r--src/test/regress/expected/domain.out8
-rw-r--r--src/test/regress/expected/sequence.out4
-rw-r--r--src/test/regress/expected/triggers.out8
8 files changed, 36 insertions, 24 deletions
diff --git a/contrib/earthdistance/expected/earthdistance.out b/contrib/earthdistance/expected/earthdistance.out
index 89022491cb6..36a5a7bf6be 100644
--- a/contrib/earthdistance/expected/earthdistance.out
+++ b/contrib/earthdistance/expected/earthdistance.out
@@ -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
diff --git a/contrib/postgres_fdw/expected/postgres_fdw.out b/contrib/postgres_fdw/expected/postgres_fdw.out
index e803c0b39ca..cf4863c5aa2 100644
--- a/contrib/postgres_fdw/expected/postgres_fdw.out
+++ b/contrib/postgres_fdw/expected/postgres_fdw.out
@@ -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
diff --git a/src/backend/catalog/objectaddress.c b/src/backend/catalog/objectaddress.c
index 053d9281e57..ad682673e6a 100644
--- a/src/backend/catalog/objectaddress.c
+++ b/src/backend/catalog/objectaddress.c
@@ -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);
diff --git a/src/test/regress/expected/alter_table.out b/src/test/regress/expected/alter_table.out
index 376194c48ae..702bf9fe986 100644
--- a/src/test/regress/expected/alter_table.out
+++ b/src/test/regress/expected/alter_table.out
@@ -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
diff --git a/src/test/regress/expected/collate.out b/src/test/regress/expected/collate.out
index f045f2b291c..fcbe3a5cc82 100644
--- a/src/test/regress/expected/collate.out
+++ b/src/test/regress/expected/collate.out
@@ -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");
diff --git a/src/test/regress/expected/domain.out b/src/test/regress/expected/domain.out
index f4eebb75cf2..0b5a9041b0e 100644
--- a/src/test/regress/expected/domain.out
+++ b/src/test/regress/expected/domain.out
@@ -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;
diff --git a/src/test/regress/expected/sequence.out b/src/test/regress/expected/sequence.out
index ca5ea063fa0..a0d2b22d3c0 100644
--- a/src/test/regress/expected/sequence.out
+++ b/src/test/regress/expected/sequence.out
@@ -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;
diff --git a/src/test/regress/expected/triggers.out b/src/test/regress/expected/triggers.out
index 1f8caef2d7f..bf271d536ef 100644
--- a/src/test/regress/expected/triggers.out
+++ b/src/test/regress/expected/triggers.out
@@ -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;