Closed
Description
Description
After migrating from MariaDB to PostgreSQL using gitea dump -d postgres
, Gitea produces a status code 500 upon visiting https://example.org/notifications/subscriptions.
The error reported in the log is:
...user/notification.go:256:NotificationSubscriptions() [I] [63485399] [SQL] SELECT COUNT(issue.id) AS count FROM "issue" INNER JOIN "repository" ON "issue".repo_id = "repository".id WHERE issue.id NOT IN (SELECT issue_id FROM issue_watch WHERE is_watching=$1 AND user_id=$2) AND (issue.id IN (SELECT issue_id FROM issue_watch WHERE is_watching=$3 AND user_id=$4) OR issue.id IN (SELECT issue_id FROM comment WHERE poster_id=$5) OR issue.poster_id=$6 OR issue.repo_id IN (SELECT id FROM watch WHERE mode=$7 AND user_id=$8)) [false 1 true 1 1 1 true 1] - 577.586µs
...user/notification.go:263:NotificationSubscriptions() [E] [63485399] CountIssues: pq: invalid input syntax for type smallint: "true"
Manually issuing the query produces:
gitea=> SELECT COUNT(issue.id) AS count FROM "issue" INNER JOIN "repository" ON "issue".repo_id = "repository".id WHERE issue.id NOT IN (SELECT issue_id FROM issue_watch WHERE is_watching=false AND user_id=1) AND (issue.id IN (SELECT issue_id FROM issue_watch WHERE is_watching=true AND user_id=1) OR issue.id IN (SELECT issue_id FROM comment WHERE poster_id=1) OR issue.poster_id=1 OR issue.repo_id IN (SELECT id FROM watch WHERE mode=true AND user_id=1));
ERROR: operator does not exist: smallint = boolean
LINE 1: ... issue.repo_id IN (SELECT id FROM watch WHERE mode=true AND ...
^
This seems to be the only issue I encountered after migration.
Gitea Version
1.18.0+dev-548-g6a6dc97b0
Can you reproduce the bug on the Gitea demo site?
No
Log Gist
https://gist.github.com/zenofile/6cdef4553a55bcbebff6135a31511a6d
Screenshots
Git Version
2.36.2
Operating System
Fedora Linux 37
How are you running Gitea?
As a podman (docker) container, migrated from MariaDB to PostgreSQL.
Database
PostgreSQL