connection.select_value возвращает только строки в postgres с pg gem

Я преобразую приложение rails из mysql (mysql2 gem) в postgres (pg gem).

С MySQL,ActiveRecord::Base.connection.select_value вызывает возвращаемые значения, набранные в соответствии с данными, например:

> ActiveRecord::Base.connection.select_value("SELECT COUNT(*) FROM errors")
=> 86
> ActiveRecord::Base.connection.select_value("SELECT exception FROM errors where id=565")
=> "TechTalk.Genome.SqlExecutionException"
> ActiveRecord::Base.connection.select_value("SELECT id FROM errors where id=565")
=> 565

Тем не менее, с Postgres,connection.select_value всегда возвращает строку:

> ActiveRecord::Base.connection.select_value("SELECT COUNT(*) FROM errors")
=> "1"
> ActiveRecord::Base.connection.select_value("SELECT id FROM errors")
=> "1"
> ActiveRecord::Base.connection.select_value("SELECT source FROM errors limit 1")
=> "webapp"

Это сломало несколько модульных тестов, и хотя они исправимы, я уверен, что у нас есть другой код, основанный на этих возвращаемых значениях.Is there a way to get properly-typed return values from connection.select_value when using postgres?

Ответы на вопрос(2)

Ваш ответ на вопрос