incubator-cassandra-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Sylvain Lebresne <sylv...@datastax.com>
Subject Re: Compund/Composite column names
Date Mon, 17 Dec 2012 15:35:09 GMT
Feel free to open a ticket with steps to reproduce. We can certainly throw
a more meaningful exception.


On Mon, Dec 17, 2012 at 4:11 PM, Edward Capriolo <edlinuxguru@gmail.com>wrote:

> This was discussed in one of the tickets. The problem is that CQL3's sparse
> tables is it has different metadata that has NOT been added to thrift's
> CFMetaData. Thus thrift is unaware of exactly how to verify the insert.
>
> Originally it was made impossible for thrift to see a sparse table (but
> that restriction has been lifted) it seems. It is probably a bad idea to
> thrift insert into a sparse table until Cassandra does not have two
> distinct sources of meta information.
>
>
>
>
>
> On Mon, Dec 17, 2012 at 9:52 AM, Vivek Mishra <vivek.mishra@yahoo.com
> >wrote:
>
> > Looks like Thrift API is not working as expected?
> >
> > -Vivek
> >
> >
> >
> >
> > ________________________________
> >  From: Brian O'Neill <bone@alumni.brown.edu>
> > To: dev@cassandra.apache.org
> > Cc: Vivek Mishra <vivek.mishra@yahoo.com>
> > Sent: Monday, December 17, 2012 8:12 PM
> > Subject: Re: Compund/Composite column names
> >
> > FYI -- I'm still seeing this on 1.2-beta1.
> >
> > If you create a table via CQL, then insert into it (via Java API) with
> > an incorrect number of components.  The insert works, but select *
> > from CQL results in a TSocket read error.
> >
> > I showed this in the webinar last week, just in case people ran into
> > it.  It would be great to translate the ArrayIndexOutofBoundsException
> > from the server side into something meaningful in cqlsh to help people
> > diagnose the problem.  (a regular user probably doesn't have access to
> > the server-side logs)
> >
> > You can see it at minute 41 in the video from the webinar:
> > http://www.youtube.com/watch?v=AdfugJxfd0o&feature=youtu.be
> >
> > -brian
> >
> >
> > On Tue, Oct 9, 2012 at 9:39 AM, Jonathan Ellis <jbellis@gmail.com>
> wrote:
> > > Sounds like you're running into the keyspace drop bug.  It's "mostly"
> > fixed
> > > in 1.1.5 but you might need the latest from 1.1 branch.  1.1.6 will be
> > > released soon with the final fix.
> > > On Oct 9, 2012 1:58 AM, "Vivek Mishra" <vivek.mishra@yahoo.com> wrote:
> > >
> > >>
> > >>
> > >> Ok. I am able to understand the problem now. Issue is:
> > >>
> > >> If i create a column family altercations as:
> > >>
> > >>
> > >>
> >
> **********************************************************************************************************8
> > >> CREATE TABLE altercations (
> > >>        instigator text,
> > >>        started_at timestamp,
> > >>        ships_destroyed int,
> > >>        energy_used float,
> > >>        alliance_involvement boolean,
> > >>        PRIMARY KEY (instigator,started_at,ships_destroyed)
> > >>    );
> > >> /
> > >>    INSERT INTO altercations (instigator, started_at, ships_destroyed,
> > >>                              energy_used, alliance_involvement)
> > >>                      VALUES ('Jayne Cobb', '2012-07-23', 2, 4.6,
> > 'false');
> > >>
> > >>
> >
> *********************************************************************************************************************
> > >>
> > >> It works!
> > >>
> > >> But if i create a column family with compound primary key with 2
> > composite
> > >> column as:
> > >>
> > >>
> > >>
> >
> *********************************************************************************************************************
> > >> CREATE TABLE altercations (
> > >>        instigator text,
> > >>        started_at timestamp,
> > >>        ships_destroyed int,
> > >>        energy_used float,
> > >>        alliance_involvement boolean,
> > >>        PRIMARY KEY (instigator,started_at)
> > >>    );
> > >>
> > >>
> > >>
> >
> *********************************************************************************************************************
> > >> and Then drop this column family:
> > >>
> > >>
> > >>
> >
> *********************************************************************************************************************
> > >> drop columnfamily altercations;
> > >>
> > >>
> >
> *********************************************************************************************************************
> > >>
> > >> and then try to create same one with primary compound key with 3
> > composite
> > >> column:
> > >>
> > >>
> > >>
> >
> *********************************************************************************************************************
> > >>
> > >> CREATE TABLE altercations (
> > >>        instigator text,
> > >>        started_at timestamp,
> > >>        ships_destroyed int,
> > >>        energy_used float,
> > >>        alliance_involvement boolean,
> > >>        PRIMARY KEY (instigator,started_at,ships_destroyed)
> > >>    );
> > >>
> > >>
> >
> *********************************************************************************************************************
> > >>
> > >> it gives me error: "TSocket read 0 bytes"
> > >>
> > >> Rest, as no column family is created, so nothing onwards will work.
> > >>
> > >> Is this an issue?
> > >>
> > >> -Vivek
> > >>
> > >>
> > >> ________________________________
> > >>  From: Jonathan Ellis <jbellis@gmail.com>
> > >> To: dev@cassandra.apache.org; Vivek Mishra <vivek.mishra@yahoo.com>
> > >> Sent: Tuesday, October 9, 2012 9:08 AM
> > >> Subject: Re: Compund/Composite column names
> > >>
> > >> Works for me on latest 1.1 in cql3 mode.  cql2 mode gives a parse
> error.
> > >>
> > >> On Mon, Oct 8, 2012 at 9:18 PM, Vivek Mishra <vivek.mishra@yahoo.com>
> > >> wrote:
> > >> > Hi All,
> > >> >
> > >> > I am trying to use compound primary key column name and i am
> referring
> > >> to:
> > >> > http://www.datastax.com/dev/blog/whats-new-in-cql-3-0
> > >> >
> > >> >
> > >> > As mentioned on this example, i tried to create a column family
> > >> containing compound primary key (one or more) as:
> > >> >
> > >> >  CREATE TABLE altercations (
> > >> >        instigator text,
> > >> >        started_at timestamp,
> > >> >        ships_destroyed int,
> > >> >        energy_used float,
> > >> >        alliance_involvement boolean,
> > >> >        PRIMARY KEY (instigator,started_at,ships_destroyed)
> > >> >    );
> > >> >
> > >> > And i am getting:
> > >> >
> > >> >
> > >> >
> **********************************************************************
> > >> > TSocket read 0 bytes
> > >> > cqlsh:testcomp>
> > >> >
> **********************************************************************
> > >> >
> > >> >
> > >> > Then followed by insert and select statements giving me following
> > errors:
> > >> >
> > >> >
> > >>
> >
> ********************************************************************************************************************************************
> > >> >
> > >> > cqlsh:testcomp>    INSERT INTO altercations (instigator, started_at,
> > >> ships_destroyed,
> > >> >             ...                              energy_used,
> > >> alliance_involvement)
> > >> >             ...                      VALUES ('Jayne Cobb',
> > '2012-07-23',
> > >> 2, 4.6, 'false');
> > >> > TSocket read 0 bytes
> > >> >
> > >> > cqlsh:testcomp> select * from altercations;
> > >> > Traceback (most recent call last):
> > >> >   File "bin/cqlsh", line 1008, in perform_statement
> > >> >     self.cursor.execute(statement, decoder=decoder)
> > >> >   File
> > >> "bin/../lib/cql-internal-only-1.0.10.zip/cql-1.0.10/cql/cursor.py",
> line
> > >> 117, in execute
> > >> >     response = self.handle_cql_execution_errors(doquery, prepared_q,
> > >> compress)
> > >> >   File
> > >> "bin/../lib/cql-internal-only-1.0.10.zip/cql-1.0.10/cql/cursor.py",
> line
> > >> 132, in handle_cql_execution_errors
> > >> >     return executor(*args, **kwargs)
> > >> >   File
> > >>
> >
> "bin/../lib/cql-internal-only-1.0.10.zip/cql-1.0.10/cql/cassandra/Cassandra.py",
> > >> line 1583, in execute_cql_query
> > >> >     self.send_execute_cql_query(query, compression)
> > >> >   File
> > >>
> >
> "bin/../lib/cql-internal-only-1.0.10.zip/cql-1.0.10/cql/cassandra/Cassandra.py",
> > >> line 1593, in send_execute_cql_query
> > >> >     self._oprot.trans.flush()
> > >> >   File
> > >>
> >
> "bin/../lib/thrift-python-internal-only-0.7.0.zip/thrift/transport/TTransport.py",
> > >> line 293, in flush
> > >> >     self.__trans.write(buf)
> > >> >   File
> > >>
> >
> "bin/../lib/thrift-python-internal-only-0.7.0.zip/thrift/transport/TSocket.py",
> > >> line 117, in write
> > >> >     plus = self.handle.send(buff)
> > >> > error: [Errno 32] Broken pipe
> > >> >
> > >> > cqlsh:testcomp>
> > >> >
> > >> >
> > >>
> >
> ********************************************************************************************************************************************
> > >> >
> > >> >
> > >> >
> > >> > Any idea?
> > >> >
> > >> >
> > >> > -Vivek
> > >>
> > >>
> > >>
> > >> --
> > >> Jonathan Ellis
> > >> Project Chair, Apache Cassandra
> > >> co-founder of DataStax, the source for professional Cassandra support
> > >> http://www.datastax.com
> >
> >
> >
> > --
> > Brian ONeill
> > Lead Architect, Health Market Science (http://healthmarketscience.com)
> >
> > mobile:215.588.6024
> > blog: http://brianoneill.blogspot.com/
> > twitter: @boneill42
>

Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message