psql에서 SQL 실행이 작동하지 않아요

다음 쿼리를 실행하려고 합니다:

SELECT user_id, 0 post_id, current_timestamp granted_at 
FROM badge_posts  
WHERE (:backfill OR user_id IN (:user_ids) OR 0 NOT IN (:post_ids) )
GROUP BY user_id 
HAVING count(*) > 1000

하지만 :backfill에서 오류가 발생합니다. 이유가 무엇일까요?

이 SQL은 이전에 배지 생성 시 정상적으로 실행되었던 것으로 알고 있습니다.

:로 시작하는 모든 것은 DBMS에 전송되기 전에 mini_sql에 의해 대체될 예정인 이름 지정된 매개변수입니다. 이는 자체적으로 유효한 SQL이 아닙니다.

예를 들어, 아래 [2]번을 참고하세요:

[1] pry(main)> User.find_by(username: 'anon43915857').id
=> 5

[2] pry(main)> DB.query(
  "SELECT id FROM users WHERE username = :username",
  { username: 'anon43915857' }
).first.id
=> 5

[3] pry(main)> DB.query(
  "SELECT id FROM users WHERE username = ?",
  'anon43915857' 
).first.id
=> 5

감사합니다. 명확합니다.