[ https://issues.apache.org/jira/browse/CASSANDRA-9449?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14555793#comment-14555793 ]
Paul Praet edited comment on CASSANDRA-9449 at 5/22/15 11:18 AM: ----------------------------------------------------------------- 1) Yes: {code} cqlsh> DESCRIBE TABLE wifidoctor.device; CREATE TABLE wifidoctor.device ( columna text, columnb text, columnc timestamp, columnd text, columne text, columnf text, columng text, columnh text, PRIMARY KEY ((columna, columnb)) ) WITH bloom_filter_fp_chance = 0.01 AND caching = '{"keys":"ALL", "rows_per_partition":"NONE"}' AND comment = '' AND compaction = {'min_threshold': '4', 'class': 'org.apache.cassandra.db.compaction.SizeTieredCompactionStrategy', 'max_threshold': '32'} AND compression = {'sstable_compression': 'org.apache.cassandra.io.compress.LZ4Compressor'} AND dclocal_read_repair_chance = 0.1 AND default_time_to_live = 0 AND gc_grace_seconds = 864000 AND max_index_interval = 2048 AND memtable_flush_period_in_ms = 0 AND min_index_interval = 128 AND read_repair_chance = 0.0 AND speculative_retry = '99.0PERCENTILE'; cqlsh> INSERT INTO wifidoctor.device (columnA, columnB, columnC,columnD,columnE,columnF,columnG,columnH) VALUES ('a','','2015-01-01','','','','',''); InvalidRequest: code=2200 [Invalid query] message="Unknown identifier columne" {code} 2) yes, it does. After the restart, the INSERT query works. was (Author: praetp): 1) Yes: {code} CREATE TABLE wifidoctor.device ( columna text, columnb text, columnc timestamp, columnd text, columne text, columnf text, columng text, columnh text, PRIMARY KEY ((columna, columnb)) ) WITH bloom_filter_fp_chance = 0.01 AND caching = '{"keys":"ALL", "rows_per_partition":"NONE"}' AND comment = '' AND compaction = {'min_threshold': '4', 'class': 'org.apache.cassandra.db.compaction.SizeTieredCompactionStrategy', 'max_threshold': '32'} AND compression = {'sstable_compression': 'org.apache.cassandra.io.compress.LZ4Compressor'} AND dclocal_read_repair_chance = 0.1 AND default_time_to_live = 0 AND gc_grace_seconds = 864000 AND max_index_interval = 2048 AND memtable_flush_period_in_ms = 0 AND min_index_interval = 128 AND read_repair_chance = 0.0 AND speculative_retry = '99.0PERCENTILE'; cqlsh> INSERT INTO wifidoctor.device (columnA, columnB, columnC,columnD,columnE,columnF,columnG,columnH) VALUES ('a','','2015-01-01','','','','',''); InvalidRequest: code=2200 [Invalid query] message="Unknown identifier columne" {code} 2) yes, it does. After the restart, the INSERT query works. > Running ALTER TABLE cql statement asynchronously results in failure > ------------------------------------------------------------------- > > Key: CASSANDRA-9449 > URL: https://issues.apache.org/jira/browse/CASSANDRA-9449 > Project: Cassandra > Issue Type: Bug > Environment: Singe cluster environment > Reporter: Paul Praet > > When running 'ALTER TABLE' cql statements asynchronously, we notice that > often certain columns are missing, causing subsequent queries to fail. > The code snippet below can be used to reproduce the problem. > cassandra is a com.datastax.driver.core.Session reference. > We construct the table synchronously and then alter it (adding five columns) > with the cassandra async API. We synchronize to ensure the table is properly > altered before continuing. Preparing the statement at the bottom of the code > snippet often fails: > {noformat} com.datastax.driver.core.exceptions.InvalidQueryException: Unknown > identifier columnf {noformat} > {code} > @Test > public void testCassandraAsyncAlterTable() throws Exception { > ResultSet rs = cassandra.execute("CREATE TABLE device ( columnA text, > columnB text, columnC timestamp, PRIMARY KEY ((columnA, columnB)));"); > List<ResultSetFuture> futures = new ArrayList<>(); > futures.add(cassandra.executeAsync("ALTER TABLE device ADD columnD > text;")); > futures.add(cassandra.executeAsync("ALTER TABLE device ADD columnE > text;")); > futures.add(cassandra.executeAsync("ALTER TABLE device ADD columnF > text;")); > futures.add(cassandra.executeAsync("ALTER TABLE device ADD columnG > text;")); > futures.add(cassandra.executeAsync("ALTER TABLE device ADD columnH > text;")); > for(ResultSetFuture resultfuture : futures){ resultfuture.get(); } > > /* discard the result; only interested to see if it works or not */ > cassandra.prepare("INSERT INTO device (columnA, columnB, > columnC,columnD,columnE,columnF,columnG,columnH) VALUES (?,?,?,?,?,?,?,?);"); > } > {code} -- This message was sent by Atlassian JIRA (v6.3.4#6332)