Re: BUG #18950: pgsql function that worked in Postgresql 16 does not return in Postgresql 17

Lowell Hought <lowell.hought@gmail.com>

From: Lowell Hought <lowell.hought@gmail.com>
To: Tom Lane <tgl@sss.pgh.pa.us>
Cc: Laurenz Albe <laurenz.albe@cybertec.at>, pgsql-bugs@lists.postgresql.org
Date: 2025-06-14T14:27:19Z
Lists: pgsql-bugs
So I tried one more thing.  I executed the raw query on version 17 with a
LIMIT 1 clause and it returned 1 record.  So I increased that to LIMIT 100
and it returned 100 records.  I increased to LIMIT 1000 and it returned
1000 records.  I increased to 10000 and it returned 10000 records. I
increased to 100000 and it returned 19959 records as that is all there are,
and it only took a few seconds to return.  However, I then removed the
LIMIT clause, and once again it was hung and never returned.

Why would it return with a LIMIT clause, but not without the LIMIT clause?


On Mon, Jun 9, 2025 at 6:35 PM Lowell Hought <lowell.hought@gmail.com>
wrote:

> I wrote a script to create all of the tables, views, and function in an
> effort to recreate the issue.  I ran the script on both version 16 and
> version 17 and executed the function on each.  On both servers, the
> function returned results, so the attempt to recreate the problem failed.
> I then ran both versions of the server simultaneously on different ports
> and attempted a dump from 16 to version 17.  I used the pg_dump from
> version 17.  Once again the restore to version 17 got hung up and did not
> finish.  It hangs at the point where it attempts to REFRESH MATERIALIZED
> view.  The materialized view in question uses the
> function report.GetReportPoolTrainees that we have been discussing.  I
> deleted the materialized view in the version 16 database and then did a
> dump/restore to the version 17 database, ran ANALYZE, and attempted to
> execute the query that the function calls.  No luck, it would not return.
>
> What is so puzzling to me is that if I do a fresh install of version 16,
> everything works as it should.  But not when I do the exact same thing on
> version 17.
>
> Lowell
>
>
>
>
> On Sat, Jun 7, 2025 at 10:26 PM Tom Lane <tgl@sss.pgh.pa.us> wrote:
>
>> Lowell Hought <lowell.hought@gmail.com> writes:
>> > I can try.  I am not sure how to go about that.  I did not see on the
>> bug
>> > report page where I could upload files, and I am afraid the file size of
>> > the tables needed might be too large for email.
>>
>> No, uploading stuff to that webform doesn't work.  But at this point
>> we're just conversing on the pgsql-bugs mailing list, so anything you
>> can squeeze into email is fine.  Having said that, nobody likes
>> multi-gigabyte emails.
>>
>> > The entire database when
>> > written to an sql dump file is about 20 GB, so not terribly large.  I
>> could
>> > attempt to dump the schema definition in one file and then the
>> underlying
>> > tables in another.  Would that work?  Or would you also need the files
>> for
>> > the function and any views the query relies upon?
>>
>> Yeah, we'd need all the moving parts.
>>
>> Usually people with this kind of problem don't want to expose their
>> data anyway, for privacy and/or legal reasons.  So what I'd suggest
>> is trying to create some little script that generates fake data
>> that's close enough to trigger the problem.  Then you just need to
>> provide that script and the DDL and function definitions.
>>
>>                         regards, tom lane
>>
>