Re: Proposal to suppress errors thrown by to_reg*()

Поиск
Список
Период
Сортировка
От Takuma Hoshiai
Тема Re: Proposal to suppress errors thrown by to_reg*()
Дата
Msg-id 20190322094509.7fbd7e0d3bfa32086b0a43a8@sraoss.co.jp
обсуждение исходный текст
Ответ на Re: Proposal to suppress errors thrown by to_reg*()  (Yugo Nagata <nagata@sraoss.co.jp>)
Ответы Re: Proposal to suppress errors thrown by to_reg*()
Список pgsql-hackers
Hi Nagata-san,

sorry for te late reply.
Thank you for your comments, I have attached a patch that reflected it.

On Tue, 19 Mar 2019 15:13:04 +0900
Yugo Nagata <nagata@sraoss.co.jp> wrote:

> I reviewed the patch. Here are some comments:
> 
>  /*
> + * RangeVarCheckNamespaceAccessNoError
> + *         Returns true if given relation's namespace can be accessable by the
> + *         current user. If no namespace is given in the relation, just returns
> + *         true.
> + */
> +bool
> +RangeVarCheckNamespaceAccessNoError(RangeVar *relation)
> 
> Although it might be trivial, the new function's name 'RangeVar...' seems a bit
> weird to me because this is used for not only to_regclass but also to_regproc,
> to_regtype, and so on, that is, the argument "relation" is not always a relation. 
> 
> This function is used always with makeRangeVarFromNameList() as
> 
>   if (!RangeVarCheckNamespaceAccessNoError(makeRangeVarFromNameList(names)))
> 
> , so how about merging the two function as below, for example:
> 
>  /*
>   * CheckNamespaceAccessNoError
>   *         Returns true if the namespace in given qualified-name can be accessable
>   *         by the current user. If no namespace is given in the names, just returns
>   *         true.
>   */
>  bool
>  CheckNamespaceAccessNoError(List *names);
> 
> 
> BTW, this patch supresses also "Cross-database references is not allowed" error in
> addition to the namespace ACL error.  Is this an intentional change?  If this error
> can be allowed, you can use DeconstructQualifiedName() instead of
> makeRangeVarFromNameList().

I think it is enough to supress napesapace ACL error only. so I will use its function.

> In the regression test, you are using \gset and \connect psql meta-commands to test
> the user privilege to a namespace, but I think we can make this more simpler 
> by using SET SESSION AUTHORIZATION and RESET AUTHORIZATION.

I forgot this SQL, I fixed to use it.

Best regards,

-- 
Takuma Hoshiai <hoshiai@sraoss.co.jp>

Вложения

В списке pgsql-hackers по дате отправления:

Предыдущее
От: Michael Paquier
Дата:
Сообщение: Re: pg_basebackup ignores the existing data directory permissions
Следующее
От: Michael Paquier
Дата:
Сообщение: Re: current_logfiles not following group access and instead followslog_file_mode permissions