wrong message on REASSIGN OWNED
Hi,
on shdepReassignOwned() we have this message, which is obviously wrong
we are not dropping objects just reassigning them...
"""
ereport(ERROR,
(errcode(ERRCODE_DEPENDENT_OBJECTS_STILL_EXIST),
errmsg("cannot drop objects owned
by %s because they are "
"required by the
database system",
getObjectDescription(&obj))));
"""
but haven't thought of a good way of rephrase it
--
Jaime Casanova www.2ndQuadrant.com
Professional PostgreSQL: Soporte 24x7 y capacitación
On Thu, Jun 9, 2011 at 1:26 PM, Jaime Casanova <jaime@2ndquadrant.com> wrote:
on shdepReassignOwned() we have this message, which is obviously wrong
we are not dropping objects just reassigning them...
"""
ereport(ERROR,(errcode(ERRCODE_DEPENDENT_OBJECTS_STILL_EXIST),
errmsg("cannot drop objects owned
by %s because they are "
"required by the
database system",
getObjectDescription(&obj))));
"""but haven't thought of a good way of rephrase it
"can't reassign objects owned by %s because this user is internal to
the database system" ?
--
Robert Haas
EnterpriseDB: http://www.enterprisedb.com
The Enterprise PostgreSQL Company
On Sat, Jun 11, 2011 at 8:01 PM, Robert Haas <robertmhaas@gmail.com> wrote:
"can't reassign objects owned by %s because this user is internal to
the database system" ?
that message is not that clear... it seems to imply i can't reassign
any object from that user...
btw, i'm allowed to use ALTER TABLE to assign a new owner (even an
unprivileged one) to a system catalog, probably that's a bug.
db=# create role unprivileged_user login;
CREATE ROLE
db=# alter table pg_class owner to unprivileged_user ;
ALTER TABLE
db=# \dt pg_class
List of relations
Schema | Name | Type | Owner
------------+----------+-------+-------------------
pg_catalog | pg_class | table | unprivileged_user
(1 row)
--
Jaime Casanova www.2ndQuadrant.com
Professional PostgreSQL: Soporte 24x7 y capacitación
On Mon, Jun 13, 2011 at 2:41 AM, Jaime Casanova <jaime@2ndquadrant.com> wrote:
On Sat, Jun 11, 2011 at 8:01 PM, Robert Haas <robertmhaas@gmail.com> wrote:
"can't reassign objects owned by %s because this user is internal to
the database system" ?that message is not that clear... it seems to imply i can't reassign
any object from that user...
cannot change owner of some objects owned by %s because they are
required by the database system?
btw, i'm allowed to use ALTER TABLE to assign a new owner (even an
unprivileged one) to a system catalog, probably that's a bug.
+1 for tightening that up in 9.2.
--
Robert Haas
EnterpriseDB: http://www.enterprisedb.com
The Enterprise PostgreSQL Company
Robert Haas <robertmhaas@gmail.com> writes:
On Mon, Jun 13, 2011 at 2:41 AM, Jaime Casanova <jaime@2ndquadrant.com> wrote:
btw, i'm allowed to use ALTER TABLE to assign a new owner (even an
unprivileged one) to a system catalog, probably that's a bug.
+1 for tightening that up in 9.2.
Nonsense. You won't like the results of "DELETE FROM pg_proc;" either,
but we don't try to put training wheels on superusers.
regards, tom lane
Jaime Casanova <jaime@2ndquadrant.com> writes:
On Sat, Jun 11, 2011 at 8:01 PM, Robert Haas <robertmhaas@gmail.com> wrote:
"can't reassign objects owned by %s because this user is internal to
the database system" ?
that message is not that clear... it seems to imply i can't reassign
any object from that user...
I think s/drop/reassign ownership of/ is sufficient. There's no reason
to change the rest of the message, especially because the same
phraseology is in use elsewhere.
regards, tom lane
On Mon, Jun 13, 2011 at 9:55 AM, Tom Lane <tgl@sss.pgh.pa.us> wrote:
Robert Haas <robertmhaas@gmail.com> writes:
On Mon, Jun 13, 2011 at 2:41 AM, Jaime Casanova <jaime@2ndquadrant.com> wrote:
btw, i'm allowed to use ALTER TABLE to assign a new owner (even an
unprivileged one) to a system catalog, probably that's a bug.+1 for tightening that up in 9.2.
Nonsense. You won't like the results of "DELETE FROM pg_proc;" either,
but we don't try to put training wheels on superusers.
allow_system_table_mods?
--
Robert Haas
EnterpriseDB: http://www.enterprisedb.com
The Enterprise PostgreSQL Company
On 06/13/2011 09:55 AM, Tom Lane wrote:
Robert Haas<robertmhaas@gmail.com> writes:
On Mon, Jun 13, 2011 at 2:41 AM, Jaime Casanova<jaime@2ndquadrant.com> wrote:
btw, i'm allowed to use ALTER TABLE to assign a new owner (even an
unprivileged one) to a system catalog, probably that's a bug.+1 for tightening that up in 9.2.
Nonsense. You won't like the results of "DELETE FROM pg_proc;" either,
but we don't try to put training wheels on superusers.
Yeah. Amusing anecdote along these lines: I had fun recently recovering
the situation for someone who had for reasons I can't even imagine done
"delete from pg_database;" on their production system.
cheers
andrew
On Mon, Jun 13, 2011 at 8:55 AM, Tom Lane <tgl@sss.pgh.pa.us> wrote:
Robert Haas <robertmhaas@gmail.com> writes:
On Mon, Jun 13, 2011 at 2:41 AM, Jaime Casanova <jaime@2ndquadrant.com> wrote:
btw, i'm allowed to use ALTER TABLE to assign a new owner (even an
unprivileged one) to a system catalog, probably that's a bug.+1 for tightening that up in 9.2.
Nonsense. You won't like the results of "DELETE FROM pg_proc;" either,
but we don't try to put training wheels on superusers.
really? i thought we do when system catalogs are involved based on this example:
"""
db=# alter table pg_largeobject set tablespace tblspc_prueba;
ERROR: permission denied: "pg_largeobject" is a system catalog
"""
--
Jaime Casanova www.2ndQuadrant.com
Professional PostgreSQL: Soporte 24x7 y capacitación
Excerpts from Robert Haas's message of sáb jun 11 21:01:55 -0400 2011:
On Thu, Jun 9, 2011 at 1:26 PM, Jaime Casanova <jaime@2ndquadrant.com> wrote:
on shdepReassignOwned() we have this message, which is obviously wrong
we are not dropping objects just reassigning them...
"""
ereport(ERROR,(errcode(ERRCODE_DEPENDENT_OBJECTS_STILL_EXIST),
errmsg("cannot drop objects owned
by %s because they are "
"required by the
database system",
getObjectDescription(&obj))));
"""
Oh my. I introduced this mistake 6 years ago and nobody noticed in all
this time. I guess this is not a very frequently used feature.
but haven't thought of a good way of rephrase it
"can't reassign objects owned by %s because this user is internal to
the database system" ?
Thanks, I'll use that.
--
Álvaro Herrera <alvherre@commandprompt.com>
The PostgreSQL Company - Command Prompt, Inc.
PostgreSQL Replication, Consulting, Custom Development, 24x7 support
On Mon, Jun 13, 2011 at 10:37 AM, Alvaro Herrera
<alvherre@commandprompt.com> wrote:
Excerpts from Robert Haas's message of sáb jun 11 21:01:55 -0400 2011:
On Thu, Jun 9, 2011 at 1:26 PM, Jaime Casanova <jaime@2ndquadrant.com> wrote:
on shdepReassignOwned() we have this message, which is obviously wrong
we are not dropping objects just reassigning them...
"""
ereport(ERROR,(errcode(ERRCODE_DEPENDENT_OBJECTS_STILL_EXIST),
errmsg("cannot drop objects owned
by %s because they are "
"required by the
database system",
getObjectDescription(&obj))));
"""Oh my. I introduced this mistake 6 years ago and nobody noticed in all
this time. I guess this is not a very frequently used feature.
well, i used it once last year... ;)
but the only reason i found this one was because i was giving a
training and it jumps out in the middle of it...
--
Jaime Casanova www.2ndQuadrant.com
Professional PostgreSQL: Soporte 24x7 y capacitación
Excerpts from Tom Lane's message of lun jun 13 09:57:50 -0400 2011:
Jaime Casanova <jaime@2ndquadrant.com> writes:
On Sat, Jun 11, 2011 at 8:01 PM, Robert Haas <robertmhaas@gmail.com> wrote:
"can't reassign objects owned by %s because this user is internal to
the database system" ?that message is not that clear... it seems to imply i can't reassign
any object from that user...I think s/drop/reassign ownership of/ is sufficient. There's no reason
to change the rest of the message, especially because the same
phraseology is in use elsewhere.
Fixed in 8.2 and up.
--
Álvaro Herrera <alvherre@commandprompt.com>
The PostgreSQL Company - Command Prompt, Inc.
PostgreSQL Replication, Consulting, Custom Development, 24x7 support