Re: BUG #19386: Unnecessary Sort in query plan for SELECT literal with ORDER BY - Mailing list pgsql-bugs

From Pierre Forstmann
Subject Re: BUG #19386: Unnecessary Sort in query plan for SELECT literal with ORDER BY
Date
Msg-id 1ffee916-e255-4a82-afd0-5f8a87c0ab87@gmail.com
Whole thread Raw
In response to Re: BUG #19386: Unnecessary Sort in query plan for SELECT literal with ORDER BY  (Andrei Lepikhov <lepihov@gmail.com>)
List pgsql-bugs

It's only a detail but I don't understand why '*' is added to some table name if there are no table inheritance ?

https://www.postgresql.org/docs/18/sql-select.html  says

table_name

The name (optionally schema-qualified) of an existing table or view. If ONLY is specified before the table name, only that table is scanned. If ONLY is not specified, the table and all its descendant tables (if any) are scanned. Optionally, * can be specified after the table name to explicitly indicate that descendant tables are included. Le 21/01/2026 à 12:11, Andrei Lepikhov a écrit :

On 21/1/26 09:26, PG Bug reporting form wrote:
The following bug has been logged on the website:

Bug reference:      19386
Logged by:          Chi Zhang
Email address:      798604270@qq.com
PostgreSQL version: 18.1
Operating system:   ubuntu 24.04 with docker
Description:

Hi,

In the following test case, there are two equivalent queries. One is a
normal SELECT, and the other is a prepared SELECT. In the query plan of the
normal SELECT, there is an unnecessary Sort, which causes it to be slower
than the prepared SELECT. In general, the prepared SELECT should be slower
than the normal SELECT, as its query plan is suboptimal. So there maybe
potential opportunities for further optimization in the query planning of
normal SELECT statements.

These queries aren't equivalent for me. The generic case may produce errors if a parameter has an incompatible type. The 'simple query' case validates constants and may simplify the clause, being sure no logical errors happen during clause evaluation.
Another question - should we do anything to optimise this quite narrow (at least it seems so for me) case and stop simplification of the clause?

pgsql-bugs by date:

Previous
From: Dean Rasheed
Date:
Subject: Re: BUG #19380: Transition table in AFTER INSERT trigger misses rows from MERGE when used with INSERT in a CTE
Next
From: Andrei Lepikhov
Date:
Subject: Re: BUG #19385: Normal SELECT generates an ineffecifient query plan compare to the prepared SELECT.