Обсуждение: Problem with Avg function and Money type in PostgreSQL 15
CREATE TABLE Product(product_id SERIAL PRIMARY KEY,
price MONEY NOT NULL);
INSERT INTO Product(price) VALUES (30);
INSERT INTO Product(price) VALUES (40);
SELECT Avg(price) AS av FROM Product;
PostgreSQL 14.5
ERROR: function avg(money) does not exist
LINE 1: SELECT Avg(price) AS av FROM Product;
HINT: No function matches the given name and argument types. You might need to add explicit type casts.
PostgreSQL 15
ERROR: stack depth limit exceeded
HINT: Increase the configuration parameter "max_stack_depth" (currently 2048kB), after ensuring the platform's stack depth limit is adequate.
CONTEXT: SQL function "avg" during inlining
SQL function "avg" during startup
SQL function "avg" statement 1 --this line is repeated more than 3000 times
It seems to me that PostgreSQL 14.5 response is much better than in case of PostgreSQL 15.
Best regards
Erki Eessaar
Erki Eessaar <erki.eessaar@taltech.ee> writes: > CREATE TABLE Product(product_id SERIAL PRIMARY KEY, > price MONEY NOT NULL); > INSERT INTO Product(price) VALUES (30); > INSERT INTO Product(price) VALUES (40); > SELECT Avg(price) AS av FROM Product; > PostgreSQL 15 > ERROR: stack depth limit exceeded > HINT: Increase the configuration parameter "max_stack_depth" (currently 2048kB), after ensuring the platform's stack depthlimit is adequate. > CONTEXT: SQL function "avg" during inlining I get "function avg(money) does not exist" in all branches. Judging from the mention of a SQL function, you must have created a not-very-well-thought-out SQL function named "avg", and that function is recursing till stack overflow. regards, tom lane
Yes, this the case. I am sorry for the false report. I retract it and apologise for the inconvinience.
Best regards
Erki Eessaar
From: Tom Lane <tgl@sss.pgh.pa.us>
Sent: Sunday, October 30, 2022 7:57 PM
To: Erki Eessaar <erki.eessaar@taltech.ee>
Cc: pgsql-bugs@lists.postgresql.org <pgsql-bugs@lists.postgresql.org>
Subject: Re: Problem with Avg function and Money type in PostgreSQL 15
Sent: Sunday, October 30, 2022 7:57 PM
To: Erki Eessaar <erki.eessaar@taltech.ee>
Cc: pgsql-bugs@lists.postgresql.org <pgsql-bugs@lists.postgresql.org>
Subject: Re: Problem with Avg function and Money type in PostgreSQL 15
Erki Eessaar <erki.eessaar@taltech.ee> writes:
> CREATE TABLE Product(product_id SERIAL PRIMARY KEY,
> price MONEY NOT NULL);
> INSERT INTO Product(price) VALUES (30);
> INSERT INTO Product(price) VALUES (40);
> SELECT Avg(price) AS av FROM Product;
> PostgreSQL 15
> ERROR: stack depth limit exceeded
> HINT: Increase the configuration parameter "max_stack_depth" (currently 2048kB), after ensuring the platform's stack depth limit is adequate.
> CONTEXT: SQL function "avg" during inlining
I get "function avg(money) does not exist" in all branches.
Judging from the mention of a SQL function, you must have
created a not-very-well-thought-out SQL function named "avg",
and that function is recursing till stack overflow.
regards, tom lane
> CREATE TABLE Product(product_id SERIAL PRIMARY KEY,
> price MONEY NOT NULL);
> INSERT INTO Product(price) VALUES (30);
> INSERT INTO Product(price) VALUES (40);
> SELECT Avg(price) AS av FROM Product;
> PostgreSQL 15
> ERROR: stack depth limit exceeded
> HINT: Increase the configuration parameter "max_stack_depth" (currently 2048kB), after ensuring the platform's stack depth limit is adequate.
> CONTEXT: SQL function "avg" during inlining
I get "function avg(money) does not exist" in all branches.
Judging from the mention of a SQL function, you must have
created a not-very-well-thought-out SQL function named "avg",
and that function is recursing till stack overflow.
regards, tom lane