Search code examples
rubypostgresqlpg

Is there a more concise way to check if PGResult is empty?


I'm using the pg gem to talk to PostgreSQL from Ruby. Is there a better way to check if there are no results than using res.ntuples == 0?

conn = PGconn.connect config

cmd = "select * from labels inner join labels_mail using(label_id) " + 
  "where labels_mail.mail_id = $1 and labels.name = $2"

res = conn.exec(cmd, [mail_id, mailbox])

if res.ntuples == 0  #  <=== is there a better way to check this?
  cmd = "insert into labels_mail (mail_id, label_id) values ($1, $2)"
  conn.exec(cmd, [mail_id, label_id(mailbox)])
end

Solution

  • ntuples, a typo? It is faster and concise to use zero? than == 0

    if res.num_tuples.zero?