if (dataType.equals(DataType.set(firstArg))) { return row.getSet(i, firstCodec.getJavaType()); } else if (dataType.equals(DataType.list(firstArg))) {
DataType setType = DataType.set(firstParamType); statement.setSet(paramIndex, (Set) codecRegistry.codecFor(setType).parse(paramValue)); return;
/** * Returns the type of frozen sets of {@code elementType} elements. * * <p>This is a shorthand for {@code set(elementType, true);}. * * @param elementType the type of the set elements. * @return the type of frozen sets of {@code elementType} elements. */ public static CollectionType frozenSet(DataType elementType) { return set(elementType, true); }
/** * Returns the type of "not frozen" sets of {@code elementType} elements. * * <p>This is a shorthand for {@code set(elementType, false);}. * * @param elementType the type of the set elements. * @return the type of "not frozen" sets of {@code elementType} elements. */ public static CollectionType set(DataType elementType) { return set(elementType, false); }
if (dataType.equals(DataType.set(firstArg)) || dataType.equals(DataType.list(firstArg))) { builder.name(columnDefinitions.getName(i)).type().unionOf().nullBuilder().endNull().and().array()
@Override public void init(CassandraSessionPool.Session session) { ImmutableMap<HugeKeys, DataType> pkeys = ImmutableMap.of( HugeKeys.ID, DATATYPE_SL ); ImmutableMap<HugeKeys, DataType> ckeys = ImmutableMap.of(); ImmutableMap<HugeKeys, DataType> columns = ImmutableMap .<HugeKeys, DataType>builder() .put(HugeKeys.NAME, DataType.text()) .put(HugeKeys.ID_STRATEGY, DataType.tinyint()) .put(HugeKeys.PRIMARY_KEYS, DataType.list(DATATYPE_PK)) .put(HugeKeys.NULLABLE_KEYS, DataType.set(DATATYPE_PK)) .put(HugeKeys.INDEX_LABELS, DataType.set(DATATYPE_IL)) .put(HugeKeys.PROPERTIES, DataType.set(DATATYPE_PK)) .put(HugeKeys.ENABLE_LABEL_INDEX, DataType.cboolean()) .put(HugeKeys.USER_DATA, DATATYPE_UD) .put(HugeKeys.STATUS, DataType.tinyint()) .build(); this.createTable(session, pkeys, ckeys, columns); this.createIndex(session, NAME_INDEX, HugeKeys.NAME); } }
@Override public void init(CassandraSessionPool.Session session) { ImmutableMap<HugeKeys, DataType> pkeys = ImmutableMap.of( HugeKeys.ID, DATATYPE_SL ); ImmutableMap<HugeKeys, DataType> ckeys = ImmutableMap.of(); ImmutableMap<HugeKeys, DataType> columns = ImmutableMap .<HugeKeys, DataType>builder() .put(HugeKeys.NAME, DataType.text()) .put(HugeKeys.FREQUENCY, DataType.tinyint()) .put(HugeKeys.SOURCE_LABEL, DATATYPE_SL) .put(HugeKeys.TARGET_LABEL, DATATYPE_SL) .put(HugeKeys.SORT_KEYS, DataType.list(DATATYPE_PK)) .put(HugeKeys.NULLABLE_KEYS, DataType.set(DATATYPE_PK)) .put(HugeKeys.INDEX_LABELS, DataType.set(DATATYPE_IL)) .put(HugeKeys.PROPERTIES, DataType.set(DATATYPE_PK)) .put(HugeKeys.ENABLE_LABEL_INDEX, DataType.cboolean()) .put(HugeKeys.USER_DATA, DATATYPE_UD) .put(HugeKeys.STATUS, DataType.tinyint()) .build(); this.createTable(session, pkeys, ckeys, columns); this.createIndex(session, NAME_INDEX, HugeKeys.NAME); } }
private SetCodec(TypeCodec<T> eltCodec) { super(DataType.set(eltCodec.cqlType), TypeTokens.setOf(eltCodec.getJavaType()), eltCodec); }
@Override public void init(CassandraSessionPool.Session session) { ImmutableMap<HugeKeys, DataType> pkeys = ImmutableMap.of( HugeKeys.ID, DataType.cint() ); ImmutableMap<HugeKeys, DataType> ckeys = ImmutableMap.of(); ImmutableMap<HugeKeys, DataType> columns = ImmutableMap .<HugeKeys, DataType>builder() .put(HugeKeys.NAME, DataType.text()) .put(HugeKeys.DATA_TYPE, DataType.tinyint()) .put(HugeKeys.CARDINALITY, DataType.tinyint()) .put(HugeKeys.PROPERTIES, DataType.set(DATATYPE_PK)) .put(HugeKeys.USER_DATA, DATATYPE_UD) .put(HugeKeys.STATUS, DataType.tinyint()) .build(); this.createTable(session, pkeys, ckeys, columns); this.createIndex(session, NAME_INDEX, HugeKeys.NAME); } }
private List<TestTable> tablesWithCollectionsOfPrimitives() { List<TestTable> tables = Lists.newArrayList(); for (Map.Entry<DataType, Object> entry : samples.entrySet()) { DataType elementType = entry.getKey(); Object elementSample = entry.getValue(); tables.add( new TestTable( DataType.list(elementType), Lists.newArrayList(elementSample, elementSample), "1.2.0")); // Duration not supported in Set if (elementType != DataType.duration()) tables.add( new TestTable(DataType.set(elementType), Sets.newHashSet(elementSample), "1.2.0")); } return tables; }
@Test(groups = "unit") public void testCustomSet() throws Exception { DataType cqlType = set(CUSTOM_FOO); TypeCodec<Set<?>> codec = codecRegistry.codecFor(cqlType); assertThat(codec).isNotNull().accepts(cqlType); }
/** * Create index label table for vertex/edge * @param session DB session * @param table index table name */ private static void createIndexTable(CassandraSessionPool.Session session, String table) { Create tableBuilder = SchemaBuilder.createTable(table).ifNotExists(); tableBuilder.addPartitionKey(LABEL, DataType.cint()); tableBuilder.addColumn(ELEMENT_IDS, DataType.set(DataType.text())); session.execute(tableBuilder); }
public void createIndex(CassandraSessionPool.Session session) { Create create = SchemaBuilder.createTable(this.table) .ifNotExists(); create.addPartitionKey(NAME, DataType.text()); create.addColumn(ELEMENT_IDS, DataType.set(DataType.cint())); session.execute(create); }
@Test(groups = "unit") public void should_create_simple_table_with_set() throws Exception { // When SchemaStatement statement = createTable("test") .addPartitionKey("id", DataType.bigint()) .addColumn("friends", DataType.set(DataType.text())); // Then assertThat(statement.getQueryString()) .isEqualTo( "\n\tCREATE TABLE test(\n\t\t" + "id bigint,\n\t\t" + "friends set<text>,\n\t\t" + "PRIMARY KEY(id))"); }
@SuppressWarnings("serial") @Test(groups = "unit") public void parseFormatSetTest() { String toParse = "{'Foo','Bar','Foo''bar'}"; Set<String> toFormat = new LinkedHashSet<String>() { { add("Foo"); add("Bar"); add("Foo'bar"); } }; DataType dt = DataType.set(DataType.text()); assertEquals(codecRegistry.codecFor(dt).parse(toParse), toFormat); assertEquals(codecRegistry.codecFor(dt).format(toFormat), toParse); }
@Test(groups = "short") @SuppressWarnings("unchecked") public void prepareSetTest() { // Test preparing/bounding for all possible set types for (DataType rawType : primitiveTypes) { // This must be handled separately if (exclude(rawType)) continue; String name = "c_set_" + rawType; DataType type = DataType.set(rawType); Set<Object> value = (Set<Object>) getFixedValue(type); PreparedStatement ps = session() .prepare( String.format( "INSERT INTO %s(k, %s) VALUES ('prepared_set', ?)", ALL_SET_TABLE, name)); BoundStatement bs = ps.bind(); setValue(bs, name, type, value); session().execute(bs); Row row = session() .execute( String.format("SELECT %s FROM %s WHERE k='prepared_set'", name, ALL_SET_TABLE)) .one(); assertEquals( getValue(row, name, type, cluster().getConfiguration().getCodecRegistry()), value, "For type " + type); } }
@Test(groups = "short") public void should_ignore_whitespace() { assertThat(parse(" int ", cluster(), null, null, null, false, false)).isEqualTo(cint()); assertThat(parse(" set < bigint > ", cluster(), null, null, null, false, false)) .isEqualTo(set(bigint())); assertThat(parse(" map < date , timeuuid > ", cluster(), null, null, null, false, false)) .isEqualTo(map(date(), timeuuid())); }
@Test(groups = "short") public void should_parse_frozen_collection_types() { assertThat(parse("frozen<list<int>>", cluster(), null, null, null, false, false)) .isEqualTo(list(cint(), true)); assertThat(parse("frozen<set<bigint>>", cluster(), null, null, null, false, false)) .isEqualTo(set(bigint(), true)); assertThat(parse("frozen<map<date,timeuuid>>", cluster(), null, null, null, false, false)) .isEqualTo(map(date(), timeuuid(), true)); }
@Test(groups = "short") public void should_parse_collection_types() { assertThat(parse("list<int>", cluster(), null, null, null, false, false)) .isEqualTo(list(cint())); assertThat(parse("set<bigint>", cluster(), null, null, null, false, false)) .isEqualTo(set(bigint())); assertThat(parse("map<date,timeuuid>", cluster(), null, null, null, false, false)) .isEqualTo(map(date(), timeuuid())); }
@Test(groups = "short") public void should_ignore_case() { assertThat(parse("INT", cluster(), null, null, null, false, false)).isEqualTo(cint()); assertThat(parse("SET<BIGint>", cluster(), null, null, null, false, false)) .isEqualTo(set(bigint())); assertThat( parse("FROZEN<mAp<Date,Tuple<timeUUID>>>", cluster(), null, null, null, false, false)) .isEqualTo(map(date(), cluster().getMetadata().newTupleType(timeuuid()), true)); }