A finalidade do
OR -- como você suspeita -- é lidar com o caso em que há empates nas pontuações. A ideia é fazer uma classificação estável incluindo o id , então isso está recebendo tudo depois (score, id) . Presumivelmente, os valores usados para
score e id são os últimos valores vistos (provavelmente na página anterior, mas isso é especulação). Uma classificação "estável" é aquela que retorna as linhas na mesma ordem sempre que é aplicada. Como as tabelas SQL representam não ordenadas sets, empates implicam em um instável ordenar. Incluindo o
id torna estável (assumindo que id é único. O Postgres na verdade suporta uma sintaxe mais simples:
where (score, id) > (11266, 4482)
Observe que também removi as aspas simples. Os valores parecem números, portanto, devem ser tratados como números e não como strings.