possibly to automatic detection of bad variable types in plans? - Mailing list pgsql-hackers

From Pavel Stehule
Subject possibly to automatic detection of bad variable types in plans?
Date
Msg-id CAFj8pRC7faA=FRBKG3hYrBQGU21YA2LBh5mXDOS-wHkkSg2Gqg@mail.gmail.com
Whole thread Raw
List pgsql-hackers
Hi

I have a talk with Alex Stanev about known issue that block indexes - bad param types

postgres=# do $$
declare _id numeric = 777722;
begin
  perform * from bigtable where a = _id;
end;
$$;
DO
Time: 108,775 ms
postgres=# do $$
declare _id numeric = 777722;
begin
  perform * from bigtable where a = _id;
end;
$$;
DO
Time: 106,111 ms
postgres=# do $$
declare _id int = 777722;
begin
  perform * from bigtable where a = _id;
end;
$$;
DO
Time: 1,522 ms
postgres=# do $$
declare _id numeric = 777722;
begin
  perform * from bigtable where a = _id;
end;
$$;
DO
Time: 108,287 ms

https://github.com/okbob/plpgsql_check/issues/32

Is possible to write a extension, that raise warning so index is not possible due bad parameter type, or so cast will be performed on every row?

It can be started like autoexplain.

Regards

Pavel


pgsql-hackers by date:

Previous
From: Meenatchi Sandanam
Date:
Subject: Re: PostgreSQL opens all the indexes of a relation for every Queryduring Planning Time?
Next
From: Andrew Gierth
Date:
Subject: Re: PostgreSQL 10: Segmentation fault when using GROUPING SETS with all unsortable columns