On Friday, June 1, 2012 11:24:42 AM UTC-7, Jeremy Evans wrote: > > On Friday, June 1, 2012 11:11:17 AM UTC-7, Joe Van Dyk wrote: >> >> I'm not sure if this is what you mean by a "primitive type", but I have a >> postgresql domain like: >> >> CREATE DOMAIN tanga_money AS numeric(19,2) >> >> CONSTRAINT not_negative CHECK ((VALUE >= (0)::numeric)); >> >> I use it for prices of things. >> >> ActiveRecord 3.x (not sure if changed in 4.x?), both jdbc and regular: >> 1.9.3p0 :002 > Product.first.normal_price >> => "8.99" >> Note that it's a string. >> >> Sequel: >> 1.9.3-p0-perf :011 > DB[:products].order(:id.desc).first[:normal_price] >> => #<BigDecimal:7fae1bbac748,'0.899E1',18(18)> >> >> >> >> 1.9.3-p0-perf :012 > p Product.order(:id.desc).first.normal_price >> => #<BigDecimal:7fe85243c190,'0.899E1',18(18)> >> >> It's a BigDecimal in Sequel, what I'd expect. >> >> If Sequel and AR shared the same code that detected the types here, it >> would make it a lot easier to write code that accessed the same database. >> >> > I've mentioned multiple times on rails-core that the way that Sequel does > this is to use the type OIDs when retrieving the value. This doesn't > appear to be a parsing issue, as I assume AR knows how to parse numeric > columns. It's that AR doesn't recognize that the column should be parsed > as numeric, probably because it isn't using the type OIDs. I see that as a > different issue than your suggestion to share the parsers for datatypes > like array, hstore, json, and range. >
Ah, right. For what it's worth, this problem *is* fixed in ActiveRecord 4.0. Joe -- You received this message because you are subscribed to the Google Groups "sequel-talk" group. To view this discussion on the web visit https://groups.google.com/d/msg/sequel-talk/-/0yFi5eyc-JkJ. To post to this group, send email to [email protected]. To unsubscribe from this group, send email to [email protected]. For more options, visit this group at http://groups.google.com/group/sequel-talk?hl=en.
