Re: misleading error message in ProcessUtilitySlow T_CreateStatsStmt

Поиск
Список
Период
Сортировка
От Kirill Reshke
Тема Re: misleading error message in ProcessUtilitySlow T_CreateStatsStmt
Дата
Msg-id CALdSSPiZtCRJhe=KdPKEmeYNZQe_yhQKVn3QCsfrCiNdOCTP0A@mail.gmail.com
обсуждение исходный текст
Ответ на misleading error message in ProcessUtilitySlow T_CreateStatsStmt  (jian he <jian.universality@gmail.com>)
Ответы Re: misleading error message in ProcessUtilitySlow T_CreateStatsStmt
Re: misleading error message in ProcessUtilitySlow T_CreateStatsStmt
Список pgsql-hackers
On Thu, 21 Aug 2025 at 17:00, jian he <jian.universality@gmail.com> wrote:
>
> hi.

Hi!

>   RangeVar   *rel = (RangeVar *) linitial(stmt->relations);
>   if (!IsA(rel, RangeVar))

These two lines are weird. Looks like  linitial(stmt->relations)
should be assigned to variable with type Node* first?

>
> for example:
>
> create or replace function tftest(int) returns table(a int, b int) as $$
> begin
>   return query select $1, $1+i from generate_series(1,5) g(i);
> end;
> $$ language plpgsql immutable strict;
>
> CREATE STATISTICS alt_stat2 ON a, b FROM tftest(1);
> ERROR:  only a single relation is allowed in CREATE STATISTICS
>
> this error message seem misleading?


I wouldn’t say this is misleading, but " a single relation" is indeed
not precise enough. IMO we need a more precise term to distinguish
regular relation and table func.


> also this error check seems duplicated in CreateStatistics?
>

Indeed.

--
Best regards,
Kirill Reshke



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