mirror of https://github.com/postgres/postgres
Fix error message for COMMENT/SECURITY LABEL ON COLUMN xxx IS 'yyy'
When the column name is an unqualified name, rather than table.column, the error message complains about too many dotted names, which is wrong. Report by Peter Eisentraut based on examination of the sepgsql regression test output, but the problem also affects COMMENT. New wording as suggested by Tom Lane.
This commit is contained in:
parent
b536458e73
commit
8fbe5a317d
|
@ -91,7 +91,7 @@ SECURITY LABEL ON TABLE t2
|
|||
ERROR: SELinux: invalid security label: "invalid security context"
|
||||
SECURITY LABEL ON COLUMN t2
|
||||
IS 'system_u:object_r:sepgsql_ro_table_t:s0'; -- be failed
|
||||
ERROR: improper relation name (too many dotted names):
|
||||
ERROR: column name must be qualified
|
||||
SECURITY LABEL ON COLUMN t2.b
|
||||
IS 'system_u:object_r:sepgsql_ro_table_t:s0'; -- ok
|
||||
--
|
||||
|
|
|
@ -794,6 +794,10 @@ get_object_address_attribute(ObjectType objtype, List *objname,
|
|||
AttrNumber attnum;
|
||||
|
||||
/* Extract relation name and open relation. */
|
||||
if (list_length(objname) < 2)
|
||||
ereport(ERROR,
|
||||
(errcode(ERRCODE_SYNTAX_ERROR),
|
||||
errmsg("column name must be qualified")));
|
||||
attname = strVal(lfirst(list_tail(objname)));
|
||||
relname = list_truncate(list_copy(objname), list_length(objname) - 1);
|
||||
relation = relation_openrv(makeRangeVarFromNameList(relname), lockmode);
|
||||
|
|
|
@ -49,6 +49,7 @@ SET SESSION AUTHORIZATION seclabel_user1;
|
|||
|
||||
SECURITY LABEL ON TABLE seclabel_tbl1 IS 'classified'; -- OK
|
||||
SECURITY LABEL ON COLUMN seclabel_tbl1.a IS 'unclassified'; -- OK
|
||||
SECURITY LABEL ON COLUMN seclabel_tbl1 IS 'unclassified'; -- fail
|
||||
SECURITY LABEL ON TABLE seclabel_tbl1 IS '...invalid label...'; -- fail
|
||||
SECURITY LABEL FOR 'dummy' ON TABLE seclabel_tbl1 IS 'unclassified'; -- OK
|
||||
SECURITY LABEL FOR 'unknown_seclabel' ON TABLE seclabel_tbl1 IS 'classified'; -- fail
|
||||
|
|
|
@ -45,6 +45,8 @@ LOAD '@abs_builddir@/dummy_seclabel@DLSUFFIX@';
|
|||
SET SESSION AUTHORIZATION seclabel_user1;
|
||||
SECURITY LABEL ON TABLE seclabel_tbl1 IS 'classified'; -- OK
|
||||
SECURITY LABEL ON COLUMN seclabel_tbl1.a IS 'unclassified'; -- OK
|
||||
SECURITY LABEL ON COLUMN seclabel_tbl1 IS 'unclassified'; -- fail
|
||||
ERROR: column name must be qualified
|
||||
SECURITY LABEL ON TABLE seclabel_tbl1 IS '...invalid label...'; -- fail
|
||||
ERROR: '...invalid label...' is not a valid security label
|
||||
SECURITY LABEL FOR 'dummy' ON TABLE seclabel_tbl1 IS 'unclassified'; -- OK
|
||||
|
|
Loading…
Reference in New Issue