private CassandraColumnHandle buildColumnHandle(AbstractTableMetadata tableMetadata, ColumnMetadata columnMeta, boolean partitionKey, boolean clusteringKey, int ordinalPosition, boolean hidden) { CassandraType cassandraType = CassandraType.getCassandraType(columnMeta.getType().getName()); List<CassandraType> typeArguments = null; if (cassandraType != null && cassandraType.getTypeArgumentSize() > 0) { List<DataType> typeArgs = columnMeta.getType().getTypeArguments(); switch (cassandraType.getTypeArgumentSize()) { case 1: typeArguments = ImmutableList.of(CassandraType.getCassandraType(typeArgs.get(0).getName())); break; case 2: typeArguments = ImmutableList.of(CassandraType.getCassandraType(typeArgs.get(0).getName()), CassandraType.getCassandraType(typeArgs.get(1).getName())); break; default: throw new IllegalArgumentException("Invalid type arguments: " + typeArgs); } } boolean indexed = false; SchemaTableName schemaTableName = new SchemaTableName(tableMetadata.getKeyspace().getName(), tableMetadata.getName()); if (!isMaterializedView(schemaTableName)) { TableMetadata table = (TableMetadata) tableMetadata; for (IndexMetadata idx : table.getIndexes()) { if (idx.getTarget().equals(columnMeta.getName())) { indexed = true; break; } } } return new CassandraColumnHandle(connectorId, columnMeta.getName(), ordinalPosition, cassandraType, typeArguments, partitionKey, clusteringKey, indexed, hidden); }
public TableMetadataAssert hasIndex(IndexMetadata index) { assertThat(actual.getIndexes()).contains(index); return this; } }
@Test(groups = "short") public void should_not_mix_indexes_from_different_tables() { String[] statements = { "CREATE TABLE test_ab (a int PRIMARY KEY, b int);", "CREATE INDEX test_b on test_ab (b);", "CREATE TABLE test_cd (c int PRIMARY KEY, d int);", "CREATE INDEX test_d on test_cd (d);", }; for (String statement : statements) session().execute(statement); TableMetadata table_ab = cluster().getMetadata().getKeyspace(keyspace).getTable("test_ab"); TableMetadata table_cd = cluster().getMetadata().getKeyspace(keyspace).getTable("test_cd"); assertThat(table_ab.getIndexes().size()).isEqualTo(1); assertThat(table_ab.getIndexes()).extracting("name").containsOnly("test_b"); assertThat(table_cd.getIndexes().size()).isEqualTo(1); assertThat(table_cd.getIndexes()).extracting("name").containsOnly("test_d"); }
assertThat(tm.getClusteringColumns().size()).isEqualTo(1); assertThat(tm.getClusteringColumns().get(0).getName()).isEqualTo("port"); assertThat(tm.getIndexes().size()).isEqualTo(0); assertThat(tm.getViews().size()).isEqualTo(0); assertThat(tm.getClusteringColumns().size()).isEqualTo(1);
public TableMetadataAssert hasIndex(IndexMetadata index) { assertThat(actual.getIndexes()).contains(index); return this; } }
@Test(groups = "short") public void should_not_mix_indexes_from_different_tables() { String[] statements = { "CREATE TABLE test_ab (a int PRIMARY KEY, b int);", "CREATE INDEX test_b on test_ab (b);", "CREATE TABLE test_cd (c int PRIMARY KEY, d int);", "CREATE INDEX test_d on test_cd (d);", }; for (String statement : statements) session().execute(statement); TableMetadata table_ab = cluster().getMetadata().getKeyspace(keyspace).getTable("test_ab"); TableMetadata table_cd = cluster().getMetadata().getKeyspace(keyspace).getTable("test_cd"); assertThat(table_ab.getIndexes().size()).isEqualTo(1); assertThat(table_ab.getIndexes()).extracting("name").containsOnly("test_b"); assertThat(table_cd.getIndexes().size()).isEqualTo(1); assertThat(table_cd.getIndexes()).extracting("name").containsOnly("test_d"); }
private CassandraColumnHandle buildColumnHandle(AbstractTableMetadata tableMetadata, ColumnMetadata columnMeta, boolean partitionKey, boolean clusteringKey, int ordinalPosition, boolean hidden) { CassandraType cassandraType = CassandraType.getCassandraType(columnMeta.getType().getName()); List<CassandraType> typeArguments = null; if (cassandraType != null && cassandraType.getTypeArgumentSize() > 0) { List<DataType> typeArgs = columnMeta.getType().getTypeArguments(); switch (cassandraType.getTypeArgumentSize()) { case 1: typeArguments = ImmutableList.of(CassandraType.getCassandraType(typeArgs.get(0).getName())); break; case 2: typeArguments = ImmutableList.of(CassandraType.getCassandraType(typeArgs.get(0).getName()), CassandraType.getCassandraType(typeArgs.get(1).getName())); break; default: throw new IllegalArgumentException("Invalid type arguments: " + typeArgs); } } boolean indexed = false; SchemaTableName schemaTableName = new SchemaTableName(tableMetadata.getKeyspace().getName(), tableMetadata.getName()); if (!isMaterializedView(schemaTableName)) { TableMetadata table = (TableMetadata) tableMetadata; for (IndexMetadata idx : table.getIndexes()) { if (idx.getTarget().equals(columnMeta.getName())) { indexed = true; break; } } } return new CassandraColumnHandle(connectorId, columnMeta.getName(), ordinalPosition, cassandraType, typeArguments, partitionKey, clusteringKey, indexed, hidden); }
private CassandraColumnHandle buildColumnHandle(AbstractTableMetadata tableMetadata, ColumnMetadata columnMeta, boolean partitionKey, boolean clusteringKey, int ordinalPosition, boolean hidden) { CassandraType cassandraType = CassandraType.getCassandraType(columnMeta.getType().getName()); List<CassandraType> typeArguments = null; if (cassandraType != null && cassandraType.getTypeArgumentSize() > 0) { List<DataType> typeArgs = columnMeta.getType().getTypeArguments(); switch (cassandraType.getTypeArgumentSize()) { case 1: typeArguments = ImmutableList.of(CassandraType.getCassandraType(typeArgs.get(0).getName())); break; case 2: typeArguments = ImmutableList.of(CassandraType.getCassandraType(typeArgs.get(0).getName()), CassandraType.getCassandraType(typeArgs.get(1).getName())); break; default: throw new IllegalArgumentException("Invalid type arguments: " + typeArgs); } } boolean indexed = false; SchemaTableName schemaTableName = new SchemaTableName(tableMetadata.getKeyspace().getName(), tableMetadata.getName()); if (!isMaterializedView(schemaTableName)) { TableMetadata table = (TableMetadata) tableMetadata; for (IndexMetadata idx : table.getIndexes()) { if (idx.getTarget().equals(columnMeta.getName())) { indexed = true; break; } } } return new CassandraColumnHandle(connectorId, columnMeta.getName(), ordinalPosition, cassandraType, typeArguments, partitionKey, clusteringKey, indexed, hidden); }
assertThat(tm.getClusteringColumns().get(0).getName()).isEqualTo("table_name"); assertThat(tm.getClusteringColumns().get(1).getName()).isEqualTo("task_id"); assertThat(tm.getIndexes().size()).isEqualTo(0); assertThat(tm.getViews().size()).isEqualTo(0); assertThat(tm.getClusteringColumns().size()).isEqualTo(2);
for(IndexMetadata index:table.getIndexes()){ MetadataRow row = new MetadataRow().addEntry("TABLE_CAT", statement.connection.getCatalog()) .addEntry("TABLE_SCHEM", keyspace.getName())
for (IndexMetadata i : t.getIndexes()) { if (i != null && i.getKind() != IndexMetadata.Kind.KEYS) { list.add(populateIndexMetaData(ks, t, i));