Problem

- using pgSQL 9.x as database engine
- calling admin/content/translation-overview-assignments/en in browser

throws an database exception

PDOException: SQLSTATE[22P02]: Invalid text representation: 7 ERROR: invalid input syntax for integer: "en" LINE 7: ...iew_priority top ON n.nid = top.tnid AND top.lang_en <> 'en' ^: SELECT COUNT(*) AS expression FROM (SELECT 1 AS expression FROM {node} n LEFT OUTER JOIN {node} nt ON n.nid=nt.tnid AND nt.language=:lang INNER JOIN {translation_overview_priority} top ON n.nid = top.tnid AND top.lang_en <> :lang WHERE (n.type IN (:db_condition_placeholder_0, :db_condition_placeholder_1)) AND ((n.nid = n.tnid OR n.tnid = 0) AND n.language NOT IN ('', :lang) AND n.language IS NOT NULL) ) subquery; Array ( [:db_condition_placeholder_0] => article [:db_condition_placeholder_1] => page [:lang] => en ) in PagerDefault->execute() (line 74 of /var/www/clients/client1/web19/web/includes/pager.inc).

dpq($query)

SELECT n.nid AS nid, n.title AS title, n.type AS type, n.status AS status, n.language AS language, n.created AS created, nt.nid AS translation_nid, CASE
    WHEN n.language = ''en''  THEN 0
    WHEN nt.tnid IS NULL    THEN 3 + 2 * top.lang_en
    WHEN nt.translate = 0   THEN 1
    WHEN n.nid = n.tnid     THEN 2 + 2 * top.lang_en
    ELSE -1 END AS translation_status
FROM 
{node} n
LEFT OUTER JOIN {node} nt ON n.nid=nt.tnid AND nt.language='en'
INNER JOIN {translation_overview_priority} top ON n.nid = top.tnid AND top.lang_en <> 'en'
WHERE  (n.type IN  ('article', 'page')) AND ((n.nid = n.tnid OR n.tnid = 0) AND n.language NOT IN ('', 'en') AND n.language IS NOT NULL) 
ORDER BY translation_status DESC

The problem is the inner join

INNER JOIN {translation_overview_priority} top ON n.nid = top.tnid AND top.lang_en <> 'en'

The database field top.lang_en is an integer field, and the query is trying to compare it with a string.

In translation_overview.pages.inc on line 500

 $query->innerJoin('translation_overview_priority', 'top', "n.nid = top.tnid AND top.$language_field <> :lang", array(':lang' => $language)); 

What is the purpose of AND top.$language_field <> :lang using there?
Maybe not to show translations with ignore priority set?
So is should be AND top.$language_field <> 0?