weird error message in sepgsql

Started by Peter Eisentrautalmost 14 years ago3 messageshackers
Jump to latest
#1Peter Eisentraut
peter_e@gmx.net

I found this in contrib/sepgsql/expected/label.out:

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): <nothing>

Contrast with:

SECURITY LABEL ON COLUMN t2.b
IS 'system_u:object_r:sepgsql_ro_table_t:s0'; -- ok

I guess what's happening is that it's calling makeRangeVarFromNameList()
with a list of length zero.

We should either fix the SECURITY LABEL command to catch that case
beforehand, or fix makeRangeVarFromNameList() to give a proper error
message, or both.

#2Tom Lane
tgl@sss.pgh.pa.us
In reply to: Peter Eisentraut (#1)
Re: weird error message in sepgsql

Peter Eisentraut <peter_e@gmx.net> writes:

I found this in contrib/sepgsql/expected/label.out:
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): <nothing>

Contrast with:

SECURITY LABEL ON COLUMN t2.b
IS 'system_u:object_r:sepgsql_ro_table_t:s0'; -- ok

I guess what's happening is that it's calling makeRangeVarFromNameList()
with a list of length zero.

We should either fix the SECURITY LABEL command to catch that case
beforehand, or fix makeRangeVarFromNameList() to give a proper error
message, or both.

I think the appropriate error message is probably along the lines of
"column name must be qualified", and it's hard to justify having
makeRangeVarFromNameList emit such a thing. So this is the fault
of the calling code.

regards, tom lane

#3Robert Haas
robertmhaas@gmail.com
In reply to: Tom Lane (#2)
Re: weird error message in sepgsql

On Sun, May 20, 2012 at 11:28 AM, Tom Lane <tgl@sss.pgh.pa.us> wrote:

Peter Eisentraut <peter_e@gmx.net> writes:

I found this in contrib/sepgsql/expected/label.out:
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): <nothing>

Contrast with:

SECURITY LABEL ON COLUMN t2.b
    IS 'system_u:object_r:sepgsql_ro_table_t:s0';   -- ok

I guess what's happening is that it's calling makeRangeVarFromNameList()
with a list of length zero.

We should either fix the SECURITY LABEL command to catch that case
beforehand, or fix makeRangeVarFromNameList() to give a proper error
message, or both.

I think the appropriate error message is probably along the lines of
"column name must be qualified", and it's hard to justify having
makeRangeVarFromNameList emit such a thing.  So this is the fault
of the calling code.

Fixed and back-patched to 9.1. Thanks for the report.

--
Robert Haas
EnterpriseDB: http://www.enterprisedb.com
The Enterprise PostgreSQL Company