use of com.datastax.driver.core.TableMetadata in project cassandra-driver-mapping by valchkou.
the class SchemaSync method buildSyncStatements.
/**
* Generate alter, drop or create statements for the given Entity
*
* @param keyspace
* @param session
* @param entityMetadata
* @param syncOptions
* @return RegularStatements
*/
public static List<RegularStatement> buildSyncStatements(String keyspace, Session session, EntityTypeMetadata entityMetadata, SyncOptions syncOptions) {
String table = entityMetadata.getTableName();
session.execute("USE " + keyspace);
Cluster cluster = session.getCluster();
KeyspaceMetadata keyspaceMetadata = cluster.getMetadata().getKeyspace(keyspace);
TableMetadata tableMetadata = keyspaceMetadata.getTable(table);
List<RegularStatement> statements = new ArrayList<RegularStatement>();
if (tableMetadata == null) {
statements = createTableStatements(keyspace, entityMetadata);
} else {
statements = alterTableStatements(keyspace, session, entityMetadata, syncOptions);
}
return statements;
}
use of com.datastax.driver.core.TableMetadata in project cassandra-driver-mapping by valchkou.
the class SchemaSync method drop.
public static synchronized void drop(String keyspace, Session session, Class<?> clazz) {
EntityTypeMetadata entityMetadata = EntityTypeParser.getEntityMetadata(clazz);
entityMetadata.markUnSynced(keyspace);
String table = entityMetadata.getTableName();
Cluster cluster = session.getCluster();
KeyspaceMetadata keyspaceMetadata = cluster.getMetadata().getKeyspace(keyspace);
TableMetadata tableMetadata = keyspaceMetadata.getTable(table);
if (tableMetadata != null) {
session.execute("USE " + keyspace);
// drop indexes
/*for (ColumnMetadata columnMetadata: tableMetadata.getColumns()) {
if (columnMetadata.getIndex() != null) {
session.execute(new DropIndex(keyspace, columnMetadata.getIndex().getName()));
}
}*/
// drop table
session.execute(new DropTable(keyspace, entityMetadata));
}
}
use of com.datastax.driver.core.TableMetadata in project presto by prestodb.
the class NativeCassandraSession method getAllTables.
@Override
public List<String> getAllTables(String schema) throws SchemaNotFoundException {
KeyspaceMetadata meta = getCheckedKeyspaceMetadata(schema);
ImmutableList.Builder<String> builder = ImmutableList.builder();
for (TableMetadata tableMeta : meta.getTables()) {
builder.add(tableMeta.getName());
}
return builder.build();
}
use of com.datastax.driver.core.TableMetadata in project presto by prestodb.
the class NativeCassandraSession method getTableMetadata.
private TableMetadata getTableMetadata(SchemaTableName schemaTableName) {
String schemaName = schemaTableName.getSchemaName();
String tableName = schemaTableName.getTableName();
KeyspaceMetadata keyspaceMetadata = getCheckedKeyspaceMetadata(schemaName);
TableMetadata tableMetadata = keyspaceMetadata.getTable(tableName);
if (tableMetadata != null) {
return tableMetadata;
}
for (TableMetadata table : keyspaceMetadata.getTables()) {
if (table.getName().equalsIgnoreCase(tableName)) {
return table;
}
}
throw new TableNotFoundException(schemaTableName);
}
use of com.datastax.driver.core.TableMetadata in project metacat by Netflix.
the class CassandraConnectorTableService method get.
/**
* {@inheritDoc}
*/
@Override
public TableInfo get(@Nonnull @NonNull final ConnectorContext context, @Nonnull @NonNull final QualifiedName name) {
final String keyspace = name.getDatabaseName();
final String table = name.getTableName();
log.debug("Attempting to get metadata for Cassandra table {}.{} for request {}", keyspace, table, context);
try {
final KeyspaceMetadata keyspaceMetadata = this.getCluster().getMetadata().getKeyspace(keyspace);
if (keyspaceMetadata == null) {
throw new DatabaseNotFoundException(name);
}
final TableMetadata tableMetadata = keyspaceMetadata.getTable(table);
if (tableMetadata == null) {
throw new TableNotFoundException(name);
}
final TableInfo tableInfo = this.getTableInfo(name, tableMetadata);
log.debug("Successfully got metadata for Cassandra table {}.{} for request {}", keyspace, table, context);
return tableInfo;
} catch (final DriverException de) {
log.error(de.getMessage(), de);
throw this.getExceptionMapper().toConnectorException(de, name);
}
}
Aggregations