cassandra-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Aleksey Yeschenko (JIRA)" <>
Subject [jira] [Commented] (CASSANDRA-10624) Support UDT in CQLSSTableWriter
Date Tue, 12 Apr 2016 09:46:25 GMT


Aleksey Yeschenko commented on CASSANDRA-10624:

[~Stefania] we all miss things all the time, and this one wasn't even a major one. No worries.
Please do the review - I'll just skim on commit.

bq. User still would have to take care of providing types in the order of their creation if
they depend on one another.

That's fine, but after going through all the effort of v2, why have that limitation? Is there
no way to reuse {{Types.RawBuilder}}?

> Support UDT in CQLSSTableWriter
> -------------------------------
>                 Key: CASSANDRA-10624
>                 URL:
>             Project: Cassandra
>          Issue Type: Improvement
>          Components: CQL
>            Reporter: Sylvain Lebresne
>            Assignee: Alex Petrov
>             Fix For: 3.x
>         Attachments: 0001-Add-support-for-UDTs-to-CQLSStableWriter.patch, 0001-Support-UDTs-in-CQLSStableWriterV2.patch
> As far as I can tell, there is not way to use a UDT with {{CQLSSTableWriter}} since there
is no way to declare it and thus {{CQLSSTableWriter.Builder}} knows of no UDT when parsing
the {{CREATE TABLE}} statement passed.
> In terms of API, I think the simplest would be to allow to pass types to the builder
in the same way we pass the table definition. So something like:
> {noformat}
> String type = "CREATE TYPE myKs.vertex (x int, y int, z int)";
> String schema = "CREATE TABLE myKs.myTable ("
>               + "  k int PRIMARY KEY,"
>               + "  s set<vertex>"
>               + ")";
> String insert = ...;
> CQLSSTableWriter writer = CQLSSTableWriter.builder()
>                                           .inDirectory("path/to/directory")
>                                           .withType(type)
>                                           .forTable(schema)
>                                           .using(insert).build();
> {noformat}
> I'll note that implementation wise, this might be a bit simpler after the changes of
CASSANDRA-10365 (as it makes it easy to passe specific types during the preparation of the
create statement).

This message was sent by Atlassian JIRA

View raw message