update returning order by syntax error question - Mailing list pgsql-general

From raf
Subject update returning order by syntax error question
Date
Msg-id 20190912031743.jfbfj7e5ri5is36t@raf.org
Whole thread Raw
Responses Re: update returning order by syntax error question
Re: update returning order by syntax error question
List pgsql-general
Hi,

postgresql-9.6.15

I just tried something like:

  select * from
  (update tblname t set ... where ... returning ...)
  order by ...;

assuming it would work but it didn't.
That's OK. I found on stackoverflow
that a CTE can be used to do it:

  with u as
  (update tblname t set ... where ... returning ...)
  select * from u order by ...;

What surprises me is the syntax error:

  ERROR:  syntax error at or near "t"
  LINE 2:  tblname t
                   ^
If the syntax was invalid because an update returning
statement can't appear in a from clause, I'd expect the
error to be at the token "update".

It's almost as if the parser sees "update" as a possible
table name (rather than a reserved word) and "tblname"
as the alias for that table and it's expecting a comma
or left/right/full etc. when it seess the "t".

Anyone care to explain why the error is what it is?
It's no big deal. I'm just curious.

cheers,
raf




pgsql-general by date:

Previous
From: Thomas Munro
Date:
Subject: Re: ERROR: too many dynamic shared memory segments
Next
From: Luca Ferrari
Date:
Subject: Re: update returning order by syntax error question