Обсуждение: BUG #18139: Causing FATAL error on database using function last() or first()
BUG #18139: Causing FATAL error on database using function last() or first()
От
PG Bug reporting form
Дата:
The following bug has been logged on the website: Bug reference: 18139 Logged by: Paul Gazagne Email address: pyrotarlu74@gmail.com PostgreSQL version: 14.9 Operating system: (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0, 64-bit Description: How to reproduce the error : Setup table and dataset : CREATE TABLE test ( id int4 not null, value numeric(20, 6) NULL, value_t text NULL ); INSERT INTO test (id) VALUES (1); INSERT INTO test (id,value,value_t) VALUES (2,2,'it is 2'); INSERT INTO test (id) VALUES (3); INSERT INTO test (id,value,value_t) VALUES (4,4,'it is 4'); INSERT INTO test (id) VALUES (5); If I use the function last/first on this dataset, if the first rows parsed by the function contain null values, it cause FATAL error on database. Examples : These queries work fine : select last(value_t,value) as thatsok from test t where id between 2 and 4; select last(value_t,value) as thatsok from test t where id between 2 and 5; select first(value_t,value) as thatsok from test t where id between 2 and 4; select first(value_t,value) as thatsok from test t where id between 2 and 5; These ones cause FATAL error : select last(value_t,value) as fatal_error from test t where id between 1 and 5; select first(value_t,value) as fatal_error from test t where id between 1 and 5;
PG Bug reporting form <noreply@postgresql.org> writes: > If I use the function last/first on this dataset, if the first rows parsed > by the function contain null values, it cause FATAL error on database. There is no last() nor first() function built into Postgres. I surmise that you are using a buggy extension, in which case you need to report this to the extension's author. regards, tom lane
Re: BUG #18139: Causing FATAL error on database using function last() or first()
От
"David G. Johnston"
Дата:
On Thu, Sep 28, 2023 at 11:33 AM PG Bug reporting form <noreply@postgresql.org> wrote:
The following bug has been logged on the website:
Bug reference: 18139
Logged by: Paul Gazagne
Email address: pyrotarlu74@gmail.com
PostgreSQL version: 14.9
Operating system: (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0, 64-bit
Description:
If I use the function last/first on this dataset,
This isn't a bug since these functions don't exist and all of your examples error out on that account. You need to provide the definition of the function you are using - and the bug likely belongs to whomever wrote the function.
The seemingly equivalent COALESCE "function" does indeed produce the expected type mismatch error for all those queries.
select
coalesce(value_t,value) as thatsok
from test t
where id between 2 and 4;
coalesce(value_t,value) as thatsok
from test t
where id between 2 and 4;
ERROR: COALESCE types text and numeric cannot be matched
LINE 2: coalesce(value_t,value) as thatsok
LINE 2: coalesce(value_t,value) as thatsok
David J.