Ошибка postgres: отрицательное число, возведенное в нецелую степень, дает сложный результат - PullRequest
0 голосов
/ 02 июня 2018

Данный запрос прекрасно работает при выполнении с DataGrip, но возвращает следующую ошибку при отправке через lib / pq:

pq: a negative number raised to a non-integer power yields a complex result

Ошибка возникает в postgres, так какв журналах отображается

SELECT upvotes / (EXTRACT(EPOCH FROM current_timestamp-created_at)/3600)^1.8 as score, title,
FROM ideas
ORDER BY score desc

упрощенная схема

create table ideas
(
   title text not null,
   created_at timestamp not null,
   upvotes integer default 0 not null
)

Я использую Postgres v9.2

Я был бы очень рад получить небольшой советгде заглянуть, так как у меня нет идей.

1 Ответ

0 голосов
/ 02 июня 2018

Итак, у вас есть несколько временных отметок в будущем.Вы можете защитить запрос, чтобы гарантировать отсутствие отрицательных результатов, используя GREATEST

SELECT upvotes / (GREATEST(EXTRACT(EPOCH FROM current_timestamp-created_at)/3600),0)^1.8 as score, title,
FROM ideas
ORDER BY score desc

В качестве альтернативы вы можете исключить неверные данные с помощью предложения WHERE.

SELECT upvotes / (EXTRACT(EPOCH FROM current_timestamp-created_at)/3600)^1.8 as score, title,
FROM ideas
WHERE current_timestampn >= created_at
ORDER BY score desc
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...