[jira] [Issue Comment Deleted] (CASSANDRA-10857) Allow dropping COMPACT STORAGE flag from tables in 3.X
[ https://issues.apache.org/jira/browse/CASSANDRA-10857?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Alex Petrov updated CASSANDRA-10857: Comment: was deleted (was: Github user ptnapoleon commented on a diff in the pull request: https://github.com/apache/cassandra-dtest/pull/9#discussion_r149296143 --- Diff: cql_tests.py --- @@ -698,6 +719,54 @@ def many_columns_test(self): ",".join(map(lambda i: "c_{}".format(i), range(width))) + " FROM very_wide_table", [[i for i in range(width)]]) +@since("3.11", max_version="3.X") +def drop_compact_storage_flag_test(self): +""" +Test for CASSANDRA-10857, verifying the schema change +distribution across the other nodes. + +""" + +cluster = self.cluster + +cluster.populate(3).start() +node1 = cluster.nodelist()[0] +node2 = cluster.nodelist()[1] +node3 = cluster.nodelist()[2] +time.sleep(0.2) --- End diff -- There's no need for this sleep. ) > Allow dropping COMPACT STORAGE flag from tables in 3.X > -- > > Key: CASSANDRA-10857 > URL: https://issues.apache.org/jira/browse/CASSANDRA-10857 > Project: Cassandra > Issue Type: Improvement > Components: CQL, Distributed Metadata >Reporter: Aleksey Yeschenko >Assignee: Alex Petrov >Priority: Blocker > Labels: client-impacting > Fix For: 4.0, 3.0.x, 3.11.x > > > Thrift allows users to define flexible mixed column families - where certain > columns would have explicitly pre-defined names, potentially non-default > validation types, and be indexed. > Example: > {code} > create column family foo > and default_validation_class = UTF8Type > and column_metadata = [ > {column_name: bar, validation_class: Int32Type, index_type: KEYS}, > {column_name: baz, validation_class: UUIDType, index_type: KEYS} > ]; > {code} > Columns named {{bar}} and {{baz}} will be validated as {{Int32Type}} and > {{UUIDType}}, respectively, and be indexed. Columns with any other name will > be validated by {{UTF8Type}} and will not be indexed. > With CASSANDRA-8099, {{bar}} and {{baz}} would be mapped to static columns > internally. However, being {{WITH COMPACT STORAGE}}, the table will only > expose {{bar}} and {{baz}} columns. Accessing any dynamic columns (any column > not named {{bar}} and {{baz}}) right now requires going through Thrift. > This is blocking Thrift -> CQL migration for users who have mixed > dynamic/static column families. That said, it *shouldn't* be hard to allow > users to drop the {{compact}} flag to expose the table as it is internally > now, and be able to access all columns. -- This message was sent by Atlassian JIRA (v6.4.14#64029) - To unsubscribe, e-mail: commits-unsubscr...@cassandra.apache.org For additional commands, e-mail: commits-h...@cassandra.apache.org
[jira] [Issue Comment Deleted] (CASSANDRA-10857) Allow dropping COMPACT STORAGE flag from tables in 3.X
[ https://issues.apache.org/jira/browse/CASSANDRA-10857?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Alex Petrov updated CASSANDRA-10857: Comment: was deleted (was: Github user ptnapoleon commented on a diff in the pull request: https://github.com/apache/cassandra-dtest/pull/9#discussion_r149296195 --- Diff: cql_tests.py --- @@ -698,6 +719,54 @@ def many_columns_test(self): ",".join(map(lambda i: "c_{}".format(i), range(width))) + " FROM very_wide_table", [[i for i in range(width)]]) +@since("3.11", max_version="3.X") +def drop_compact_storage_flag_test(self): +""" +Test for CASSANDRA-10857, verifying the schema change +distribution across the other nodes. + +""" + +cluster = self.cluster + +cluster.populate(3).start() +node1 = cluster.nodelist()[0] --- End diff -- Its much more concise to just write `node1, node2, node3 = cluster.nodelist()` ) > Allow dropping COMPACT STORAGE flag from tables in 3.X > -- > > Key: CASSANDRA-10857 > URL: https://issues.apache.org/jira/browse/CASSANDRA-10857 > Project: Cassandra > Issue Type: Improvement > Components: CQL, Distributed Metadata >Reporter: Aleksey Yeschenko >Assignee: Alex Petrov >Priority: Blocker > Labels: client-impacting > Fix For: 4.0, 3.0.x, 3.11.x > > > Thrift allows users to define flexible mixed column families - where certain > columns would have explicitly pre-defined names, potentially non-default > validation types, and be indexed. > Example: > {code} > create column family foo > and default_validation_class = UTF8Type > and column_metadata = [ > {column_name: bar, validation_class: Int32Type, index_type: KEYS}, > {column_name: baz, validation_class: UUIDType, index_type: KEYS} > ]; > {code} > Columns named {{bar}} and {{baz}} will be validated as {{Int32Type}} and > {{UUIDType}}, respectively, and be indexed. Columns with any other name will > be validated by {{UTF8Type}} and will not be indexed. > With CASSANDRA-8099, {{bar}} and {{baz}} would be mapped to static columns > internally. However, being {{WITH COMPACT STORAGE}}, the table will only > expose {{bar}} and {{baz}} columns. Accessing any dynamic columns (any column > not named {{bar}} and {{baz}}) right now requires going through Thrift. > This is blocking Thrift -> CQL migration for users who have mixed > dynamic/static column families. That said, it *shouldn't* be hard to allow > users to drop the {{compact}} flag to expose the table as it is internally > now, and be able to access all columns. -- This message was sent by Atlassian JIRA (v6.4.14#64029) - To unsubscribe, e-mail: commits-unsubscr...@cassandra.apache.org For additional commands, e-mail: commits-h...@cassandra.apache.org
[jira] [Issue Comment Deleted] (CASSANDRA-10857) Allow dropping COMPACT STORAGE flag from tables in 3.X
[ https://issues.apache.org/jira/browse/CASSANDRA-10857?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Alex Petrov updated CASSANDRA-10857: Comment: was deleted (was: Github user ptnapoleon commented on a diff in the pull request: https://github.com/apache/cassandra-dtest/pull/9#discussion_r149296242 --- Diff: cql_tests.py --- @@ -698,6 +719,54 @@ def many_columns_test(self): ",".join(map(lambda i: "c_{}".format(i), range(width))) + " FROM very_wide_table", [[i for i in range(width)]]) +@since("3.11", max_version="3.X") +def drop_compact_storage_flag_test(self): +""" +Test for CASSANDRA-10857, verifying the schema change +distribution across the other nodes. + +""" + +cluster = self.cluster + +cluster.populate(3).start() +node1 = cluster.nodelist()[0] +node2 = cluster.nodelist()[1] +node3 = cluster.nodelist()[2] +time.sleep(0.2) + +session1 = self.patient_cql_connection(node1) +session2 = self.patient_cql_connection(node2) +session3 = self.patient_cql_connection(node3) +self.create_ks(session1, 'ks', 3) +sessions = [session1, session2, session3] + +for session in sessions: +session.set_keyspace('ks') + +session1.execute(""" +CREATE TABLE test_drop_compact_storage (k int PRIMARY KEY, s1 int) WITH COMPACT STORAGE; +""") +time.sleep(1) --- End diff -- No need for this sleep. ) > Allow dropping COMPACT STORAGE flag from tables in 3.X > -- > > Key: CASSANDRA-10857 > URL: https://issues.apache.org/jira/browse/CASSANDRA-10857 > Project: Cassandra > Issue Type: Improvement > Components: CQL, Distributed Metadata >Reporter: Aleksey Yeschenko >Assignee: Alex Petrov >Priority: Blocker > Labels: client-impacting > Fix For: 4.0, 3.0.x, 3.11.x > > > Thrift allows users to define flexible mixed column families - where certain > columns would have explicitly pre-defined names, potentially non-default > validation types, and be indexed. > Example: > {code} > create column family foo > and default_validation_class = UTF8Type > and column_metadata = [ > {column_name: bar, validation_class: Int32Type, index_type: KEYS}, > {column_name: baz, validation_class: UUIDType, index_type: KEYS} > ]; > {code} > Columns named {{bar}} and {{baz}} will be validated as {{Int32Type}} and > {{UUIDType}}, respectively, and be indexed. Columns with any other name will > be validated by {{UTF8Type}} and will not be indexed. > With CASSANDRA-8099, {{bar}} and {{baz}} would be mapped to static columns > internally. However, being {{WITH COMPACT STORAGE}}, the table will only > expose {{bar}} and {{baz}} columns. Accessing any dynamic columns (any column > not named {{bar}} and {{baz}}) right now requires going through Thrift. > This is blocking Thrift -> CQL migration for users who have mixed > dynamic/static column families. That said, it *shouldn't* be hard to allow > users to drop the {{compact}} flag to expose the table as it is internally > now, and be able to access all columns. -- This message was sent by Atlassian JIRA (v6.4.14#64029) - To unsubscribe, e-mail: commits-unsubscr...@cassandra.apache.org For additional commands, e-mail: commits-h...@cassandra.apache.org