md.c should not call files "relations"

From: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
To: pgsql-hackers(at)postgreSQL(dot)org
Subject: md.c should not call files "relations"
Date: 2009-08-05 01:30:35
Message-ID: 26241.1249435835@sss.pgh.pa.us
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

There's an interesting thread over here
http://archives.postgresql.org/pgsql-sql/2009-08/msg00013.php
in which someone mistook a filesystem-level permissions problem
for a database permissions problem. It wasn't exactly his fault,
I think, since the message he was presented with was

ERROR: could not create relation "test": Permission denied

which is not all that obviously different from what you would
get for a SQL-permissions violation.

I am thinking that this message would be more correct and less
confusing if it looked something like

ERROR: could not create file "12345/67890": Permission denied

ie, when reflecting an OS-level error we should call a file a file and
provide its filesystem name, not the name of the table that we were
hoping to map to it. This would be more likely to lead the user's
mind in the right direction, and he'd need the filesystem pathname
for any detailed investigation anyway.

This would have the further advantage that we could make all the
errors in md.c consistent --- some of them provide filesystem names
rather than table names because that's all they have available.

Lastly, I'm wondering why someone seems to have removed the double
quotes around the filesystem name in some of these messages.
Surely that's not per style guide.

Comments?

regards, tom lane

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message David Fetter 2009-08-05 01:33:33 Re: the case for machine-readable error fields
Previous Message Robert Haas 2009-08-05 01:16:23 Re: the case for machine-readable error fields