Error:
UPDATE object_preview
SET
"previewStatus" = 1,
"lastUpdate" = NOW()
FROM (
SELECT "streamId", "objectId" FROM object_preview
WHERE "previewStatus" = 0 OR ("previewStatus" = 1 AND "lastUpdate" < NOW() - INTERVAL '1 WEEK')
ORDER BY "priority" ASC, "lastUpdate" ASC
LIMIT 1
) as task
WHERE object_preview."streamId" = task."streamId" AND object_preview."objectId" = task."objectId"
RETURNING object_preview."streamId", object_preview."objectId"
- invalid syntax at line 1 col 3:
1 1 week
^
Unexpected input (lexer error). Instead, I was expecting to see one of the following:
- A "dot" token
- A "colon" token
- A "years" token
- A "months" token
- A "days" token
- A "hours" token
- A "minutes" token
- A "seconds" token
- A "milliseconds" token
💥 This is a nasty error, which was unexpected by pg-mem. Also known "a bug" 😁 Please file an issue !
To Reproduce
A more minimal example to reproduce:
SELECT "id" FROM my_table
WHERE "lastUpdate" < NOW() - INTERVAL '1 WEEK'
Describe the bug
WEEK
should be recognised as a valid interval unit. pg 16: https://www.postgresql.org/docs/current/datatype-datetime.html#DATATYPE-INTERVAL-INPUT pg 14: https://www.postgresql.org/docs/14/datatype-datetime.html#DATATYPE-INTERVAL-INPUTTo Reproduce
A more minimal example to reproduce:
pg-mem version
2.8.1