Re: Cannot mix counter and non counter columns in the same table

2016-11-01 Thread Ali Akhtar
> I agree it makes code messier

That's not a trivial point.

It isn't just about doing two queries to read. Its also having to do two
queries to write and remembering to do that in all the places.

On Wed, Nov 2, 2016 at 1:56 AM, Cody Yancey  wrote:

> I agree it makes code messier, but you aren't really losing anything by
> separating them out into separate tables and then doing parallel queries.
>
> Counter tables already don't support atomic batch operations (all batch
> operations are unlogged), CAS operations (LWTs not supported) and have a
> whole host of other gotchas that don't apply as much to Cassandra but have
> more to do with the mathematical underpinnings of non-idempotent operations
> in a world where the Two Generals problem is unsolved.
>
> If Cassandra WAS to allow mixing of storage paradigms into one "logical"
> table it would probably be just two separate tables under the hood anyway
> since the write path is so different.
>
> This isn't Stockholm Syndrome for Cassandra as much as it is Stockholm
> Syndrome for databases. I've never used a database that could count very
> well, even non-distributed databases like postgres or mysql. Cassandra's
> implementation is at least fast and scalable.
>
> Thanks,
> Cody
>
> On Tue, Nov 1, 2016 at 2:13 PM, Edward Capriolo 
> wrote:
>
>> Here is a solution that I have leverage. Ignore the count of the value
>> and use a multi-part column name as it's value.
>>
>> For example:
>>
>> create column family stuff (
>> rowkey string,
>> column string,
>> value string.
>> counter_to_ignore long,
>> primary key( rowkey, column, value));
>>
>>
>>
>> On Tue, Nov 1, 2016 at 9:29 AM, Ali Akhtar  wrote:
>>
>>> That's a terrible gotcha rule.
>>>
>>> On Tue, Nov 1, 2016 at 6:27 PM, Cody Yancey  wrote:
>>>
 In your table schema, you have KEYS and you have VALUES. Your KEYS are
 text, but they could be any non-counter type or compound thereof. KEYS
 obviously cannot ever be counters.

 Your VALUES, however, must be either all counters or all non-counters.
 The official example you posted conforms to this limitation.

 Thanks,
 Cody

 On Nov 1, 2016 7:16 AM, "Ali Akhtar"  wrote:

> I'm not referring to the primary key, just to other columns.
>
> My primary key is a text, and my table contains a mix of texts, ints,
> and timestamps.
>
> If I try to change one of the ints to a counter and run the create
> table query, I get the error ' Cannot mix counter and non counter
> columns in the same table'
>
>
> On Tue, Nov 1, 2016 at 6:11 PM, Cody Yancey  wrote:
>
>> For counter tables, non-counter types are of course allowed in the
>> primary key. Counters would be meaningless otherwise.
>>
>> Thanks,
>> Cody
>>
>> On Nov 1, 2016 7:00 AM, "Ali Akhtar"  wrote:
>>
>>> In the documentation for counters:
>>>
>>> https://docs.datastax.com/en/cql/3.1/cql/cql_using/use_count
>>> er_t.html
>>>
>>> The example table is created via:
>>>
>>> CREATE TABLE counterks.page_view_counts
>>>   (counter_value counter,
>>>   url_name varchar,
>>>   page_name varchar,
>>>   PRIMARY KEY (url_name, page_name)
>>> );
>>>
>>> Yet if I try to create a table with a mixture of texts, ints,
>>> timestamps, and counters, i get the error ' Cannot mix counter and non
>>> counter columns in the same table'
>>>
>>> Is that supposed to be allowed or not allowed, given that the
>>> official example contains a mix of counters and non-counters?
>>>
>>
>
>>>
>>
>


Re: Cannot mix counter and non counter columns in the same table

2016-11-01 Thread Cody Yancey
I agree it makes code messier, but you aren't really losing anything by
separating them out into separate tables and then doing parallel queries.

Counter tables already don't support atomic batch operations (all batch
operations are unlogged), CAS operations (LWTs not supported) and have a
whole host of other gotchas that don't apply as much to Cassandra but have
more to do with the mathematical underpinnings of non-idempotent operations
in a world where the Two Generals problem is unsolved.

If Cassandra WAS to allow mixing of storage paradigms into one "logical"
table it would probably be just two separate tables under the hood anyway
since the write path is so different.

This isn't Stockholm Syndrome for Cassandra as much as it is Stockholm
Syndrome for databases. I've never used a database that could count very
well, even non-distributed databases like postgres or mysql. Cassandra's
implementation is at least fast and scalable.

Thanks,
Cody

On Tue, Nov 1, 2016 at 2:13 PM, Edward Capriolo 
wrote:

> Here is a solution that I have leverage. Ignore the count of the value and
> use a multi-part column name as it's value.
>
> For example:
>
> create column family stuff (
> rowkey string,
> column string,
> value string.
> counter_to_ignore long,
> primary key( rowkey, column, value));
>
>
>
> On Tue, Nov 1, 2016 at 9:29 AM, Ali Akhtar  wrote:
>
>> That's a terrible gotcha rule.
>>
>> On Tue, Nov 1, 2016 at 6:27 PM, Cody Yancey  wrote:
>>
>>> In your table schema, you have KEYS and you have VALUES. Your KEYS are
>>> text, but they could be any non-counter type or compound thereof. KEYS
>>> obviously cannot ever be counters.
>>>
>>> Your VALUES, however, must be either all counters or all non-counters.
>>> The official example you posted conforms to this limitation.
>>>
>>> Thanks,
>>> Cody
>>>
>>> On Nov 1, 2016 7:16 AM, "Ali Akhtar"  wrote:
>>>
 I'm not referring to the primary key, just to other columns.

 My primary key is a text, and my table contains a mix of texts, ints,
 and timestamps.

 If I try to change one of the ints to a counter and run the create
 table query, I get the error ' Cannot mix counter and non counter
 columns in the same table'


 On Tue, Nov 1, 2016 at 6:11 PM, Cody Yancey  wrote:

> For counter tables, non-counter types are of course allowed in the
> primary key. Counters would be meaningless otherwise.
>
> Thanks,
> Cody
>
> On Nov 1, 2016 7:00 AM, "Ali Akhtar"  wrote:
>
>> In the documentation for counters:
>>
>> https://docs.datastax.com/en/cql/3.1/cql/cql_using/use_counter_t.html
>>
>> The example table is created via:
>>
>> CREATE TABLE counterks.page_view_counts
>>   (counter_value counter,
>>   url_name varchar,
>>   page_name varchar,
>>   PRIMARY KEY (url_name, page_name)
>> );
>>
>> Yet if I try to create a table with a mixture of texts, ints,
>> timestamps, and counters, i get the error ' Cannot mix counter and non
>> counter columns in the same table'
>>
>> Is that supposed to be allowed or not allowed, given that the
>> official example contains a mix of counters and non-counters?
>>
>

>>
>


Re: Cannot mix counter and non counter columns in the same table

2016-11-01 Thread Edward Capriolo
Here is a solution that I have leverage. Ignore the count of the value and
use a multi-part column name as it's value.

For example:

create column family stuff (
rowkey string,
column string,
value string.
counter_to_ignore long,
primary key( rowkey, column, value));



On Tue, Nov 1, 2016 at 9:29 AM, Ali Akhtar  wrote:

> That's a terrible gotcha rule.
>
> On Tue, Nov 1, 2016 at 6:27 PM, Cody Yancey  wrote:
>
>> In your table schema, you have KEYS and you have VALUES. Your KEYS are
>> text, but they could be any non-counter type or compound thereof. KEYS
>> obviously cannot ever be counters.
>>
>> Your VALUES, however, must be either all counters or all non-counters.
>> The official example you posted conforms to this limitation.
>>
>> Thanks,
>> Cody
>>
>> On Nov 1, 2016 7:16 AM, "Ali Akhtar"  wrote:
>>
>>> I'm not referring to the primary key, just to other columns.
>>>
>>> My primary key is a text, and my table contains a mix of texts, ints,
>>> and timestamps.
>>>
>>> If I try to change one of the ints to a counter and run the create table
>>> query, I get the error ' Cannot mix counter and non counter columns in
>>> the same table'
>>>
>>>
>>> On Tue, Nov 1, 2016 at 6:11 PM, Cody Yancey  wrote:
>>>
 For counter tables, non-counter types are of course allowed in the
 primary key. Counters would be meaningless otherwise.

 Thanks,
 Cody

 On Nov 1, 2016 7:00 AM, "Ali Akhtar"  wrote:

> In the documentation for counters:
>
> https://docs.datastax.com/en/cql/3.1/cql/cql_using/use_counter_t.html
>
> The example table is created via:
>
> CREATE TABLE counterks.page_view_counts
>   (counter_value counter,
>   url_name varchar,
>   page_name varchar,
>   PRIMARY KEY (url_name, page_name)
> );
>
> Yet if I try to create a table with a mixture of texts, ints,
> timestamps, and counters, i get the error ' Cannot mix counter and non
> counter columns in the same table'
>
> Is that supposed to be allowed or not allowed, given that the official
> example contains a mix of counters and non-counters?
>

>>>
>


Re: Cannot mix counter and non counter columns in the same table

2016-11-01 Thread Benjamin Roth
Big Fat lol!!!

Am 01.11.2016 19:02 schrieb "Ali Akhtar" :

> ^ Stockholm syndrome :)
>
> On Tue, Nov 1, 2016 at 10:54 PM, Robert Wille  wrote:
>
>> I used to think it was terrible as well. But it really isn’t. Just put
>> your non-counter columns in a separate table with the same primary key. If
>> you want to query both counter and non-counter columns at the same time,
>> just query both tables at the same time with asynchronous queries.
>>
>> On Nov 1, 2016, at 7:29 AM, Ali Akhtar  wrote:
>>
>> That's a terrible gotcha rule.
>>
>> On Tue, Nov 1, 2016 at 6:27 PM, Cody Yancey  wrote:
>>
>>> In your table schema, you have KEYS and you have VALUES. Your KEYS are
>>> text, but they could be any non-counter type or compound thereof. KEYS
>>> obviously cannot ever be counters.
>>>
>>> Your VALUES, however, must be either all counters or all non-counters.
>>> The official example you posted conforms to this limitation.
>>>
>>> Thanks,
>>> Cody
>>>
>>> On Nov 1, 2016 7:16 AM, "Ali Akhtar"  wrote:
>>>
 I'm not referring to the primary key, just to other columns.

 My primary key is a text, and my table contains a mix of texts, ints,
 and timestamps.

 If I try to change one of the ints to a counter and run the create
 table query, I get the error ' Cannot mix counter and non counter
 columns in the same table'


 On Tue, Nov 1, 2016 at 6:11 PM, Cody Yancey  wrote:

> For counter tables, non-counter types are of course allowed in the
> primary key. Counters would be meaningless otherwise.
>
> Thanks,
> Cody
>
> On Nov 1, 2016 7:00 AM, "Ali Akhtar"  wrote:
>
>> In the documentation for counters:
>>
>> https://docs.datastax.com/en/cql/3.1/cql/cql_using/use_counter_t.html
>>
>> The example table is created via:
>>
>> CREATE TABLE counterks.page_view_counts
>>   (counter_value counter,
>>   url_name varchar,
>>   page_name varchar,
>>   PRIMARY KEY (url_name, page_name)
>> );
>>
>> Yet if I try to create a table with a mixture of texts, ints,
>> timestamps, and counters, i get the error ' Cannot mix counter and non
>> counter columns in the same table'
>>
>> Is that supposed to be allowed or not allowed, given that the
>> official example contains a mix of counters and non-counters?
>>
>

>>
>>
>


Re: Cannot mix counter and non counter columns in the same table

2016-11-01 Thread Ali Akhtar
^ Stockholm syndrome :)

On Tue, Nov 1, 2016 at 10:54 PM, Robert Wille  wrote:

> I used to think it was terrible as well. But it really isn’t. Just put
> your non-counter columns in a separate table with the same primary key. If
> you want to query both counter and non-counter columns at the same time,
> just query both tables at the same time with asynchronous queries.
>
> On Nov 1, 2016, at 7:29 AM, Ali Akhtar  wrote:
>
> That's a terrible gotcha rule.
>
> On Tue, Nov 1, 2016 at 6:27 PM, Cody Yancey  wrote:
>
>> In your table schema, you have KEYS and you have VALUES. Your KEYS are
>> text, but they could be any non-counter type or compound thereof. KEYS
>> obviously cannot ever be counters.
>>
>> Your VALUES, however, must be either all counters or all non-counters.
>> The official example you posted conforms to this limitation.
>>
>> Thanks,
>> Cody
>>
>> On Nov 1, 2016 7:16 AM, "Ali Akhtar"  wrote:
>>
>>> I'm not referring to the primary key, just to other columns.
>>>
>>> My primary key is a text, and my table contains a mix of texts, ints,
>>> and timestamps.
>>>
>>> If I try to change one of the ints to a counter and run the create table
>>> query, I get the error ' Cannot mix counter and non counter columns in
>>> the same table'
>>>
>>>
>>> On Tue, Nov 1, 2016 at 6:11 PM, Cody Yancey  wrote:
>>>
 For counter tables, non-counter types are of course allowed in the
 primary key. Counters would be meaningless otherwise.

 Thanks,
 Cody

 On Nov 1, 2016 7:00 AM, "Ali Akhtar"  wrote:

> In the documentation for counters:
>
> https://docs.datastax.com/en/cql/3.1/cql/cql_using/use_counter_t.html
>
> The example table is created via:
>
> CREATE TABLE counterks.page_view_counts
>   (counter_value counter,
>   url_name varchar,
>   page_name varchar,
>   PRIMARY KEY (url_name, page_name)
> );
>
> Yet if I try to create a table with a mixture of texts, ints,
> timestamps, and counters, i get the error ' Cannot mix counter and non
> counter columns in the same table'
>
> Is that supposed to be allowed or not allowed, given that the official
> example contains a mix of counters and non-counters?
>

>>>
>
>


Re: Cannot mix counter and non counter columns in the same table

2016-11-01 Thread Robert Wille
I used to think it was terrible as well. But it really isn’t. Just put your 
non-counter columns in a separate table with the same primary key. If you want 
to query both counter and non-counter columns at the same time, just query both 
tables at the same time with asynchronous queries.

On Nov 1, 2016, at 7:29 AM, Ali Akhtar 
> wrote:

That's a terrible gotcha rule.

On Tue, Nov 1, 2016 at 6:27 PM, Cody Yancey 
> wrote:

In your table schema, you have KEYS and you have VALUES. Your KEYS are text, 
but they could be any non-counter type or compound thereof. KEYS obviously 
cannot ever be counters.

Your VALUES, however, must be either all counters or all non-counters. The 
official example you posted conforms to this limitation.

Thanks,
Cody

On Nov 1, 2016 7:16 AM, "Ali Akhtar" 
> wrote:
I'm not referring to the primary key, just to other columns.

My primary key is a text, and my table contains a mix of texts, ints, and 
timestamps.

If I try to change one of the ints to a counter and run the create table query, 
I get the error ' Cannot mix counter and non counter columns in the same table'


On Tue, Nov 1, 2016 at 6:11 PM, Cody Yancey 
> wrote:

For counter tables, non-counter types are of course allowed in the primary key. 
Counters would be meaningless otherwise.

Thanks,
Cody

On Nov 1, 2016 7:00 AM, "Ali Akhtar" 
> wrote:
In the documentation for counters:

https://docs.datastax.com/en/cql/3.1/cql/cql_using/use_counter_t.html

The example table is created via:

CREATE TABLE counterks.page_view_counts
  (counter_value counter,
  url_name varchar,
  page_name varchar,
  PRIMARY KEY (url_name, page_name)
);

Yet if I try to create a table with a mixture of texts, ints, timestamps, and 
counters, i get the error ' Cannot mix counter and non counter columns in the 
same table'

Is that supposed to be allowed or not allowed, given that the official example 
contains a mix of counters and non-counters?





Re: Cannot mix counter and non counter columns in the same table

2016-11-01 Thread Ali Akhtar
That's a terrible gotcha rule.

On Tue, Nov 1, 2016 at 6:27 PM, Cody Yancey  wrote:

> In your table schema, you have KEYS and you have VALUES. Your KEYS are
> text, but they could be any non-counter type or compound thereof. KEYS
> obviously cannot ever be counters.
>
> Your VALUES, however, must be either all counters or all non-counters. The
> official example you posted conforms to this limitation.
>
> Thanks,
> Cody
>
> On Nov 1, 2016 7:16 AM, "Ali Akhtar"  wrote:
>
>> I'm not referring to the primary key, just to other columns.
>>
>> My primary key is a text, and my table contains a mix of texts, ints, and
>> timestamps.
>>
>> If I try to change one of the ints to a counter and run the create table
>> query, I get the error ' Cannot mix counter and non counter columns in
>> the same table'
>>
>>
>> On Tue, Nov 1, 2016 at 6:11 PM, Cody Yancey  wrote:
>>
>>> For counter tables, non-counter types are of course allowed in the
>>> primary key. Counters would be meaningless otherwise.
>>>
>>> Thanks,
>>> Cody
>>>
>>> On Nov 1, 2016 7:00 AM, "Ali Akhtar"  wrote:
>>>
 In the documentation for counters:

 https://docs.datastax.com/en/cql/3.1/cql/cql_using/use_counter_t.html

 The example table is created via:

 CREATE TABLE counterks.page_view_counts
   (counter_value counter,
   url_name varchar,
   page_name varchar,
   PRIMARY KEY (url_name, page_name)
 );

 Yet if I try to create a table with a mixture of texts, ints,
 timestamps, and counters, i get the error ' Cannot mix counter and non
 counter columns in the same table'

 Is that supposed to be allowed or not allowed, given that the official
 example contains a mix of counters and non-counters?

>>>
>>


Re: Cannot mix counter and non counter columns in the same table

2016-11-01 Thread Cody Yancey
In your table schema, you have KEYS and you have VALUES. Your KEYS are
text, but they could be any non-counter type or compound thereof. KEYS
obviously cannot ever be counters.

Your VALUES, however, must be either all counters or all non-counters. The
official example you posted conforms to this limitation.

Thanks,
Cody

On Nov 1, 2016 7:16 AM, "Ali Akhtar"  wrote:

> I'm not referring to the primary key, just to other columns.
>
> My primary key is a text, and my table contains a mix of texts, ints, and
> timestamps.
>
> If I try to change one of the ints to a counter and run the create table
> query, I get the error ' Cannot mix counter and non counter columns in
> the same table'
>
>
> On Tue, Nov 1, 2016 at 6:11 PM, Cody Yancey  wrote:
>
>> For counter tables, non-counter types are of course allowed in the
>> primary key. Counters would be meaningless otherwise.
>>
>> Thanks,
>> Cody
>>
>> On Nov 1, 2016 7:00 AM, "Ali Akhtar"  wrote:
>>
>>> In the documentation for counters:
>>>
>>> https://docs.datastax.com/en/cql/3.1/cql/cql_using/use_counter_t.html
>>>
>>> The example table is created via:
>>>
>>> CREATE TABLE counterks.page_view_counts
>>>   (counter_value counter,
>>>   url_name varchar,
>>>   page_name varchar,
>>>   PRIMARY KEY (url_name, page_name)
>>> );
>>>
>>> Yet if I try to create a table with a mixture of texts, ints,
>>> timestamps, and counters, i get the error ' Cannot mix counter and non
>>> counter columns in the same table'
>>>
>>> Is that supposed to be allowed or not allowed, given that the official
>>> example contains a mix of counters and non-counters?
>>>
>>
>


Re: Cannot mix counter and non counter columns in the same table

2016-11-01 Thread Ali Akhtar
I'm not referring to the primary key, just to other columns.

My primary key is a text, and my table contains a mix of texts, ints, and
timestamps.

If I try to change one of the ints to a counter and run the create table
query, I get the error ' Cannot mix counter and non counter columns in the
same table'


On Tue, Nov 1, 2016 at 6:11 PM, Cody Yancey  wrote:

> For counter tables, non-counter types are of course allowed in the primary
> key. Counters would be meaningless otherwise.
>
> Thanks,
> Cody
>
> On Nov 1, 2016 7:00 AM, "Ali Akhtar"  wrote:
>
>> In the documentation for counters:
>>
>> https://docs.datastax.com/en/cql/3.1/cql/cql_using/use_counter_t.html
>>
>> The example table is created via:
>>
>> CREATE TABLE counterks.page_view_counts
>>   (counter_value counter,
>>   url_name varchar,
>>   page_name varchar,
>>   PRIMARY KEY (url_name, page_name)
>> );
>>
>> Yet if I try to create a table with a mixture of texts, ints, timestamps,
>> and counters, i get the error ' Cannot mix counter and non counter columns
>> in the same table'
>>
>> Is that supposed to be allowed or not allowed, given that the official
>> example contains a mix of counters and non-counters?
>>
>


Re: Cannot mix counter and non counter columns in the same table

2016-11-01 Thread Cody Yancey
For counter tables, non-counter types are of course allowed in the primary
key. Counters would be meaningless otherwise.

Thanks,
Cody

On Nov 1, 2016 7:00 AM, "Ali Akhtar"  wrote:

> In the documentation for counters:
>
> https://docs.datastax.com/en/cql/3.1/cql/cql_using/use_counter_t.html
>
> The example table is created via:
>
> CREATE TABLE counterks.page_view_counts
>   (counter_value counter,
>   url_name varchar,
>   page_name varchar,
>   PRIMARY KEY (url_name, page_name)
> );
>
> Yet if I try to create a table with a mixture of texts, ints, timestamps,
> and counters, i get the error ' Cannot mix counter and non counter columns
> in the same table'
>
> Is that supposed to be allowed or not allowed, given that the official
> example contains a mix of counters and non-counters?
>