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?