pg.ddx.io  pgsql-bugs@postgresql.org mailing list archive  
help / color / mirror / Atom feed
From: Bruce Momjian <bruce@momjian.us>
To: Tom Lane <tgl@sss.pgh.pa.us>
Cc: David G. Johnston <david.g.johnston@gmail.com>
Cc: lxndrkrlv@gmail.com <lxndrkrlv@gmail.com>
Cc: pgsql-bugs@lists.postgresql.org <pgsql-bugs@lists.postgresql.org>
Subject: Re: BUG #17233: Incorrect behavior of DELETE command with bad subquery in WHERE clause
Date: Thu, 18 Aug 2022 22:07:02 -0400
Message-ID: <Yv7wRmKX01Q2gfPo@momjian.us> (raw)
In-Reply-To: <2792105.1660859528@sss.pgh.pa.us>
References: <17233-afb9d806aaa64b17@postgresql.org>
	<CAKFQuwbnETbhnBYtMA8HNJwf0ipwAETd58=K0JzPs22Of2ZhcA@mail.gmail.com>
	<1409812.1634481258@sss.pgh.pa.us>
	<Yv6xeki829pitIXd@momjian.us>
	<2792105.1660859528@sss.pgh.pa.us>

On Thu, Aug 18, 2022 at 05:52:08PM -0400, Tom Lane wrote:
> Bruce Momjian <bruce@momjian.us> writes:
> > Feedback?
> 
> >  -- test some error cases where LATERAL should have been used but wasn't
> >  select f1,g from int4_tbl a, (select f1 as g) ss;
> >  ERROR:  column "f1" does not exist
> >  LINE 1: select f1,g from int4_tbl a, (select f1 as g) ss;
> >                                               ^
> > -HINT:  There is a column named "f1" in table "a", but it cannot be referenced from this part of the query.
> > +HINT:  There is a column named "f1" in table "a" and another table so a table-qualified column reference is required.
> 
> That one has gone from accurate to completely wrong.  First, it's not
> the case that there's more than one possible referent, and second,
> table-qualifying the reference wouldn't help.  What *would* help here
> is adding LATERAL, but I'm not sure if we can easily tell whether that
> is the case.

My error text was written based on the email report and was just a test
to see what queries trigger it.

> I think perhaps the existing message is mislabeled: it's not a hint
> as written, but errdetail, because it's entirely factual.  For this
> particular example, what would be on-point is
> 
> DETAIL:  There is a column named "f1" in table "a", but it cannot be referenced from this part of the query.
> HINT:  To reference that column, you must mark this subquery with LATERAL.

Yes, the problem is that I don't think we want to just be making a
suggestion when we have other cases where LATERAL would not help.

> While we don't insist that hints be 100% accurate, it's not good
> if they're wildly unhelpful.  So I'm not sure if we can determine
> whether or not it's likely to be on-point.
> 
> I didn't look too closely at your other examples.

Yeah, I think someone will have to have a new idea to improve this.

-- 
  Bruce Momjian  <bruce@momjian.us>        https://momjian.us
  EDB                                      https://enterprisedb.com

  Indecision is a decision.  Inaction is an action.  Mark Batterson






view thread (16+ messages)  latest in thread

Message-ID: <Yv7wRmKX01Q2gfPo@momjian.us>
Permalink:  ../Yv7wRmKX01Q2gfPo@momjian.us/
Also on:    postgresql.org/message-id/Yv7wRmKX01Q2gfPo@momjian.us

 · 

reply

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Reply to all the recipients using the --to and --cc options:
  reply via email

  To: pgsql-bugs@postgresql.org
  Cc: bruce@momjian.us, tgl@sss.pgh.pa.us, david.g.johnston@gmail.com, lxndrkrlv@gmail.com, pgsql-bugs@lists.postgresql.org
  Subject: Re: BUG #17233: Incorrect behavior of DELETE command with bad subquery in WHERE clause
  In-Reply-To: <Yv7wRmKX01Q2gfPo@momjian.us>

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

This inbox is served by DDX for PostgreSQL; see mirroring instructions
for how to clone and mirror all data and code used for this inbox