[ https://issues.apache.org/jira/browse/CASSANDRA-12450?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15554071#comment-15554071 ]
Stefania commented on CASSANDRA-12450: -------------------------------------- LGTM - committed to 3.X as 47c473ae3c0455e02b7a8529746988afdfdd9c54 and merged into trunk. > CQLSSTableWriter does not allow Update statement > ------------------------------------------------ > > Key: CASSANDRA-12450 > URL: https://issues.apache.org/jira/browse/CASSANDRA-12450 > Project: Cassandra > Issue Type: Bug > Components: Tools > Reporter: Kuku1 > Assignee: Alex Petrov > Fix For: 3.10 > > > CQLSSTableWriter throws Exception when trying to use Update statement. > Has been working fine in previous versions for me. > Code: > {code} > public static void main(String[] args) throws IOException { > final String KS = "test"; > final String TABLE = "data"; > final String schema = "CREATE TABLE " + KS + "." + TABLE > + "(k text, c1 text, c2 text, c3 text, v text, > primary key(k, c1,c2,c3))"; > final String query = "UPDATE " + KS + "." + TABLE + " SET v = ? > WHERE k = ? and c1 = ? and c2 = ? and c3 = ?"; > File dataDir = new File(...); > CQLSSTableWriter writer = > CQLSSTableWriter.builder().inDirectory(dataDir).forTable(schema).using(query).build(); > //Exception here (see below) > HashMap<String, Object> row = new HashMap<>(); > row.put("k", "a"); > row.put("c1", "a"); > row.put("c2", "a"); > row.put("c3", "a"); > row.put("v", "v"); > writer.addRow(row); > writer.close(); > } > {code} > Exception: > {code} > 14:51:00.461 [main] INFO o.a.cassandra.cql3.QueryProcessor - Initialized > prepar > ed statement caches with 0 MB (native) and 0 MB (Thrift) > Exception in thread "main" java.lang.IllegalArgumentException: Invalid query, > mu > st be a INSERT statement but was: class > org.apache.cassandra.cql3.statements.Upd > ateStatement$ParsedUpdate > at > org.apache.cassandra.io.sstable.CQLSSTableWriter.parseStatement(CQLSS > TableWriter.java:589) > at > org.apache.cassandra.io.sstable.CQLSSTableWriter.access$000(CQLSSTabl > eWriter.java:102) > at > org.apache.cassandra.io.sstable.CQLSSTableWriter$Builder.using(CQLSST > ableWriter.java:445) > at CassandraJsonImporter.main(Cassand > raJsonImporter.java:66) > {code} > I'm currently testing it with 3.7 version, my POM looks like this: > {code} > <dependency> > <groupId>org.apache.cassandra</groupId> > <artifactId>cassandra-all</artifactId> > <version>3.7</version> > </dependency> > <dependency> > <groupId>org.apache.cassandra</groupId> > <artifactId>cassandra-clientutil</artifactId> > <version>3.7</version> > </dependency> > <dependency> > <groupId>com.datastax.cassandra</groupId> > <artifactId>cassandra-driver-core</artifactId> > <version>3.0.0</version> > </dependency> > {code} > It has been working with 3.0.8 versions in the POM, but that version is > somehow not including the UDT support? > I want to use UPDATE instead of INSERT because I need to append data to lists > and do not want to overwrite existing data in the lists. -- This message was sent by Atlassian JIRA (v6.3.4#6332)