Обсуждение: returning does not act as expected after viewing documentation

Поиск
Список
Период
Сортировка

returning does not act as expected after viewing documentation

От
PG Doc comments form
Дата:
The following documentation comment has been logged on the website:

Page: https://www.postgresql.org/docs/11/dml-returning.html
Description:

With the following query:

update batch_log
set status=('in-progress'),
updated_at=now()
where status = ('pending')
and id = (
select id
  from batch_log
  where status = ('pending')
  order by priority desc, updated_at asc
  limit 1
)
returning id, batch_log.update_at
;


I get the following error message:


column batch_log.update_at does not exist
LINE 14:     returning id, batch_log.update_at
HINT:  Perhaps you meant to reference the column "batch_log.updated_at".

This does not make a whole lot of sense. It is recommending that I do what I
am doing!

Also I don't see why this would fail.

I am on PostgreSQL 11 latest official docker image as of today's date
(2019-09-23).

Re: returning does not act as expected after viewing documentation

От
"David G. Johnston"
Дата:
On Mon, Sep 23, 2019 at 2:45 PM PG Doc comments form <noreply@postgresql.org> wrote:
update batch_log
set status=('in-progress'),
updated_at=now()
[...]
returning id, batch_log.update_at
;
 
column batch_log.update_at does not exist
LINE 14:     returning id, batch_log.update_at
HINT:  Perhaps you meant to reference the column "batch_log.updated_at".

This does not make a whole lot of sense. It is recommending that I do what I
am doing!

Also I don't see why this would fail.

Its informing you, apparently correctly, of a possible typo in your query.  You wrote: returning ... "batch_log.update_at" but the spelling for that field is in past tense "batch_log.updated_at" - note the "d" on the end of the word "update".

David J.

Re: returning does not act as expected after viewing documentation

От
lennart rolland
Дата:
Facepalm.

Please disregard my rookie mistake! 

On Tue, Sep 24, 2019, 00:18 David G. Johnston <david.g.johnston@gmail.com> wrote:
On Mon, Sep 23, 2019 at 2:45 PM PG Doc comments form <noreply@postgresql.org> wrote:
update batch_log
set status=('in-progress'),
updated_at=now()
[...]
returning id, batch_log.update_at
;
 
column batch_log.update_at does not exist
LINE 14:     returning id, batch_log.update_at
HINT:  Perhaps you meant to reference the column "batch_log.updated_at".

This does not make a whole lot of sense. It is recommending that I do what I
am doing!

Also I don't see why this would fail.

Its informing you, apparently correctly, of a possible typo in your query.  You wrote: returning ... "batch_log.update_at" but the spelling for that field is in past tense "batch_log.updated_at" - note the "d" on the end of the word "update".

David J.