PostgreSQL
 sql >> Database >  >> RDS >> PostgreSQL

Problema durante il recupero di record con array vuoto

In Rails 4 puoi usare User.where.not(id: []) che ti darà il risultato corretto. Produce:

SELECT "users".* FROM "users" WHERE (1 = 1)

Sfortunatamente User.where('id NOT IN (?)', []) dovrebbe essere equivalente ma non lo è. Ti dà ancora il risultato sbagliato:

SELECT "users".* FROM "users" WHERE (id NOT IN (NULL))

Riferimenti:

  • https://github.com/rails/rails/issues/778
  • https://github.com/rails/arel/commit/cbff1bcf
  • https://github.com/rails/rails/pull/8332
  • https://github.com/rails/rails/commit/8d02afaeee8993bd0fde69687fdd9bf30921e805