Hi Kenneth,
Cassandra's internal representation of timestamps is simply milliseconds since epoch, so in terms of the actual data storage, timestamps are not in the picture. cassandra-cql casts Time objects to the appropriate millisecond value when preparing them for a CQL query:
Similarly, Time columns in result rows are cast using the inverse of that operation:
So the behavior you're observing is all at the cassandra-cql level. Since timestamps stored in Cassandra don't carry time zone information, it wouldn't be possible to retain the time zone of the Time object that gets stored, but it is probably worth having better across the board behavior, probably just using `in_time_zone`.
My instinct is that at the `Cequel::Metal` level, we should always convert timestamp values to UTC in result rows; and then in Cequel::Record, timestamp attributes should be converted to Time.zone (which I believe is UTC unless otherwise configured). Does that seem reasonable?
Mat