Ben mysql (mysql2 gem) postgres (pg gem) kullanarak bir ray uygulaması dönüştürüyorum. Mysql ileconnection.select_value yalnızca pg gem ile postgres dizeleri döndürür
, ActiveRecord::Base.connection.select_value
aramalar örneğin verilerine göre yazdığınız değerleri döndürür:
> 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
Ancak Postgres'e ile connection.select_value
hep bir dize döndürür: Bu işlem birkaç birimi kırdı
> 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"
testler ve bunlar düzeltilebilir olsa da, eminim bu dönüş değerlerine dayanan başka bir kodumuz var. Postgres kullanırken connection.select_value
'dan doğru yazılan dönüş değerleri almanın bir yolu var mı?
Şimdiye kadarki en kötü cevap! ;) Teşekkürler. –
"yerel 'libpq' sürücüsünün üzerine mümkün olduğunca ince bir katman." Sorun şu ki, Ruby'de string tahsisleri aslında oldukça pahalı, bu kadar savurgan görünüyor. –
Sanırım her sütun için dizeleri ayırmak ya da PostgreSQL tiplerini varsayılan olarak Ruby ile eşlemeye çalışmak daha israf edici bir durum. Sütun türlerinizin tümü Ruby'de Sayısal türetilmiş (BigNum olmayan) eşdeğere sahipse, bunların tümünü Dizeler olarak göstermek büyük olasılıkla israftır. Bununla birlikte, nispeten nadir görülen durumdaki potansiyel bellek atığına dayalı olarak sadece kısmen tamamlanmış bir tip haritalama sisteminin ne olabileceğini uygulamak benim için sorumsuz görünmektedir. –