You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@cassandra.apache.org by Joshua Partogi <jo...@gmail.com> on 2011/02/06 07:12:14 UTC

Ruby thrift is trying to write Time as string

Hi,

I don't know whether my assumption is right or not. When I tried to insert a
Time value into a column I am getting this exception:

vendor/ruby/1.8/gems/thrift-0.5.0/lib/thrift/protocol/binary_protocol.rb:106:in
`write_string'
vendor/ruby/1.8/gems/thrift-0.5.0/lib/thrift/client.rb:35:in `write'
vendor/ruby/1.8/gems/thrift-0.5.0/lib/thrift/client.rb:35:in `send_message'
vendor/ruby/1.8/gems/cassandra-0.9.0/lib/./vendor/0.7/gen-rb/cassandra.rb:213:in
`send_batch_mutate'
vendor/ruby/1.8/gems/cassandra-0.9.0/lib/./vendor/0.7/gen-rb/cassandra.rb:208:in
`batch_mutate'
vendor/ruby/1.8/gems/thrift_client-0.6.0/lib/thrift_client/abstract_thrift_client.rb:115:in
`send'
vendor/ruby/1.8/gems/thrift_client-0.6.0/lib/thrift_client/abstract_thrift_client.rb:115:in
`handled_proxy'
vendor/ruby/1.8/gems/thrift_client-0.6.0/lib/thrift_client/abstract_thrift_client.rb:57:in
`batch_mutate'
vendor/ruby/1.8/gems/cassandra-0.9.0/lib/cassandra/0.7/protocol.rb:8:in
`_mutate'
vendor/ruby/1.8/gems/cassandra-0.9.0/lib/cassandra/cassandra.rb:130:in
`insert'

But I am not getting any error if I insert a Time value into a sub-column.

Is this an error or does it suppose to work that way?

Thanks heaps for the insight.

Kind regards,
Joshua.

-- 
http://twitter.com/jpartogi

Re: Ruby thrift is trying to write Time as string

Posted by Joshua Partogi <jo...@gmail.com>.
Thanks Ryan.

That makes more sense now. So I should instead find a way to (de)serialize
Ruby objects to string vice versa when inserting to Column.

Kind regards,
Joshua

On Tue, Feb 8, 2011 at 4:43 AM, Ryan King <ry...@twitter.com> wrote:

> On Sat, Feb 5, 2011 at 10:12 PM, Joshua Partogi <jo...@gmail.com>
> wrote:
> > Hi,
> >
> > I don't know whether my assumption is right or not. When I tried to
> insert a
> > Time value into a column I am getting this exception:
> >
> >
> vendor/ruby/1.8/gems/thrift-0.5.0/lib/thrift/protocol/binary_protocol.rb:106:in
> > `write_string'
> > vendor/ruby/1.8/gems/thrift-0.5.0/lib/thrift/client.rb:35:in `write'
> > vendor/ruby/1.8/gems/thrift-0.5.0/lib/thrift/client.rb:35:in
> `send_message'
> >
> vendor/ruby/1.8/gems/cassandra-0.9.0/lib/./vendor/0.7/gen-rb/cassandra.rb:213:in
> > `send_batch_mutate'
> >
> vendor/ruby/1.8/gems/cassandra-0.9.0/lib/./vendor/0.7/gen-rb/cassandra.rb:208:in
> > `batch_mutate'
> >
> vendor/ruby/1.8/gems/thrift_client-0.6.0/lib/thrift_client/abstract_thrift_client.rb:115:in
> > `send'
> >
> vendor/ruby/1.8/gems/thrift_client-0.6.0/lib/thrift_client/abstract_thrift_client.rb:115:in
> > `handled_proxy'
> >
> vendor/ruby/1.8/gems/thrift_client-0.6.0/lib/thrift_client/abstract_thrift_client.rb:57:in
> > `batch_mutate'
> > vendor/ruby/1.8/gems/cassandra-0.9.0/lib/cassandra/0.7/protocol.rb:8:in
> > `_mutate'
> > vendor/ruby/1.8/gems/cassandra-0.9.0/lib/cassandra/cassandra.rb:130:in
> > `insert'
> >
> > But I am not getting any error if I insert a Time value into a
> sub-column.
> >
> > Is this an error or does it suppose to work that way?
> >
> > Thanks heaps for the insight.
>
> IIRC when we wrote that code the idea was to require strings for
> everything and have users do their own serialization. In that context,
> the supercolmn behavior is the wrong one here.
>
> -ryan
>
> --
> @rk
>



-- 
http://twitter.com/jpartogi

Re: Ruby thrift is trying to write Time as string

Posted by Ryan King <ry...@twitter.com>.
On Sat, Feb 5, 2011 at 10:12 PM, Joshua Partogi <jo...@gmail.com> wrote:
> Hi,
>
> I don't know whether my assumption is right or not. When I tried to insert a
> Time value into a column I am getting this exception:
>
> vendor/ruby/1.8/gems/thrift-0.5.0/lib/thrift/protocol/binary_protocol.rb:106:in
> `write_string'
> vendor/ruby/1.8/gems/thrift-0.5.0/lib/thrift/client.rb:35:in `write'
> vendor/ruby/1.8/gems/thrift-0.5.0/lib/thrift/client.rb:35:in `send_message'
> vendor/ruby/1.8/gems/cassandra-0.9.0/lib/./vendor/0.7/gen-rb/cassandra.rb:213:in
> `send_batch_mutate'
> vendor/ruby/1.8/gems/cassandra-0.9.0/lib/./vendor/0.7/gen-rb/cassandra.rb:208:in
> `batch_mutate'
> vendor/ruby/1.8/gems/thrift_client-0.6.0/lib/thrift_client/abstract_thrift_client.rb:115:in
> `send'
> vendor/ruby/1.8/gems/thrift_client-0.6.0/lib/thrift_client/abstract_thrift_client.rb:115:in
> `handled_proxy'
> vendor/ruby/1.8/gems/thrift_client-0.6.0/lib/thrift_client/abstract_thrift_client.rb:57:in
> `batch_mutate'
> vendor/ruby/1.8/gems/cassandra-0.9.0/lib/cassandra/0.7/protocol.rb:8:in
> `_mutate'
> vendor/ruby/1.8/gems/cassandra-0.9.0/lib/cassandra/cassandra.rb:130:in
> `insert'
>
> But I am not getting any error if I insert a Time value into a sub-column.
>
> Is this an error or does it suppose to work that way?
>
> Thanks heaps for the insight.

IIRC when we wrote that code the idea was to require strings for
everything and have users do their own serialization. In that context,
the supercolmn behavior is the wrong one here.

-ryan

-- 
@rk

Re: Ruby thrift is trying to write Time as string

Posted by Aaron Morton <aa...@thelastpickle.com>.
Is there something missing from the error stack? I'm not sure what the actual error is, I also am not really a ruby coder :)

Can you provide your schema definition and the data you are trying to insert? 

Aaron
 
On 06 Feb, 2011,at 07:12 PM, Joshua Partogi <jo...@gmail.com> wrote:

Hi,

I don't know whether my assumption is right or not. When I tried to insert a Time value into a column I am getting this exception:

vendor/ruby/1.8/gems/thrift-0.5.0/lib/thrift/protocol/binary_protocol.rb:106:in `write_string'
vendor/ruby/1.8/gems/thrift-0.5.0/lib/thrift/client.rb:35:in `write'
vendor/ruby/1.8/gems/thrift-0.5.0/lib/thrift/client.rb:35:in `send_message'
vendor/ruby/1.8/gems/cassandra-0.9.0/lib//vendor/0.7/gen-rb/cassandra.rb:213:in `send_batch_mutate'
vendor/ruby/1.8/gems/cassandra-0.9.0/lib/./vendor/0.7/gen-rb/cassandra.rb:208:in `batch_mutate'
vendor/ruby/1.8/gems/thrift_client-0.6.0/lib/thrift_client/abstract_thrift_client.rb:115:in `send'
vendor/ruby/1.8/gems/thrift_client-0.6.0/lib/thrift_client/abstract_thrift_client.rb:115:in `handled_proxy'
vendor/ruby/1.8/gems/thrift_client-0.6.0/lib/thrift_client/abstract_thrift_client.rb:57:in `batch_mutate'
vendor/ruby/1.8/gems/cassandra-0.9.0/lib/cassandra/0.7/protocol.rb:8:in `_mutate'
vendor/ruby/1.8/gems/cassandra-0.9.0/lib/cassandra/cassandra.rb:130:in `insert'

But I am not getting any error if I insert a Time value into a sub-column. 

Is this an error or does it suppose to work that way?

Thanks heaps for the insight.

Kind regards,
Joshua.

-- 
http://twitter.com/jpartogi