Обсуждение: weird error message in sepgsql

Поиск
Список
Период
Сортировка

weird error message in sepgsql

От
Peter Eisentraut
Дата:
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.



Re: weird error message in sepgsql

От
Tom Lane
Дата:
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


Re: weird error message in sepgsql

От
Robert Haas
Дата:
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