@Override public String toString() { StringBuilder sb = new StringBuilder("ALTER TABLE "); sb.append(Utils.toCaseSensitive(tableName.getCatalogName().getName())).append('.').append(Utils.toCaseSensitive (tableName.getName())); switch (option) { case ALTER_COLUMN:
/** * InsertIntoStatement general constructor. * * @param targetTable Table target. * @param columnsMetadata List of {@link com.stratio.connector.cassandra.utils.ColumnInsertCassandra} to insert. * @param ifNotExists Boolean that indicates if IF NOT EXISTS clause is included in the query. */ public InsertIntoStatement(TableMetadata targetTable, Map<String, ColumnInsertCassandra> columnsMetadata, boolean ifNotExists) { ids = new ArrayList<>(); this.tableName = targetTable.getName().getQualifiedName(); if (tableName.contains(".")) { String[] ksAndTableName = tableName.split("\\."); catalog = ksAndTableName[0]; this.tableName = ksAndTableName[1]; catalogInc = true; } for (String id : columnsMetadata.keySet()) { ids.add(Utils.toCaseSensitive(id)); } this.cellValues = columnsMetadata; this.ifNotExists = ifNotExists; }
/** * Class Constructor. * * @param tableName The table name of the truncate statement. */ public TruncateStatement(TableName tableName) { this.tableName = tableName; this.catalogInc= tableName.isCompletedName(); this.catalog= tableName.getCatalogName().getName(); }
private String getFromClause() { StringBuilder sb = new StringBuilder(); sb.append(" FROM "); if (catalogInc) { sb.append(Utils.toCaseSensitive(catalog)).append("."); } sb.append(Utils.toCaseSensitive(tableName.getName())); return sb.toString(); }
/** * Get the tables from a specified keyspace. * * @param session The cassandra session. * @param keyspaceMetadata The keyspace metadata. * @return A map of tables. */ private static Map<TableName, TableMetadata> getTablesFromKeyspace(Session session, KeyspaceMetadata keyspaceMetadata, String cluster) { Map<TableName, TableMetadata> tables = new HashMap<>(); Collection<com.datastax.driver.core.TableMetadata> cassandraTables = keyspaceMetadata.getTables(); for (com.datastax.driver.core.TableMetadata cassandraTable : cassandraTables) { TableName tableName = new TableName(keyspaceMetadata.getName(), cassandraTable.getName()); TableMetadata tableMetadata = getXDTableMetadata(session, cassandraTable, cluster); tables.put(tableName, tableMetadata); } return tables; }
/** * Get the catalog of the truncate statement. * * @return com.stratio.crossdata.common.data.CatalogName */ public CatalogName getCatalog() { return tableName.getCatalogName(); }
@Override public String toString() { StringBuilder sb = new StringBuilder("TRUNCATE "); if (catalogInc) { sb.append(Utils.toCaseSensitive(catalog)).append("."); } sb.append(Utils.toCaseSensitive(tableName.getName())); return sb.toString(); }
Map<String,Cell> rowCell=row.getCells(); if(!rowCell.get("index_options").getValue().equals("null")){ Map<Selector,Selector> map=StringUtils.convertJsonToOptions(new TableName(keyspace,table), rowCell.get("index_options").getValue().toString());
/** * Class constructor. * * @param index The name of the index. * @param ifExists Whether it should be removed only if exists. */ public DropIndexStatement(IndexMetadata index, boolean ifExists) { if (index.getColumns() != null && !index.getColumns().isEmpty()) { this.catalogInc = true; this.catalog = index.getName().getTableName().getCatalogName().getName(); } else { String[] indexQ = index.getName().getQualifiedName().split("\\."); if (indexQ.length > 1) { this.catalog = indexQ[0]; catalogInc = true; } else { catalogInc = false; } } this.indexName = index.getName().getName(); this.ifExists = ifExists; }
List<ColumnName> primaryKey, List<ColumnName> partitionKey, List<ColumnName> clusterKey, int primaryKeyType, String properties, boolean ifNotExists) throws ExecutionException { this.tableName = tableMetadata.getName().getName(); this.catalog = tableMetadata.getName().getCatalogName().getName(); this.catalogInc = true; this.tableColumns = tableMetadata.getColumns();
/** * Constructor Class. * @param tableName The table Name * @param whereClauses A list with the conditions */ public DeleteStatement(TableName tableName, List<Filter> whereClauses) { this.tableName = tableName; if (tableName.isCompletedName()) { catalogInc = true; catalog = tableName.getCatalogName().getName(); } this.whereClauses = whereClauses; }
@Override public String toString() { StringBuilder sb = new StringBuilder("DELETE FROM "); if (catalogInc) { sb.append(Utils.toCaseSensitive(catalog)).append("."); } sb.append(Utils.toCaseSensitive(tableName.getName())); if (!whereClauses.isEmpty()) { sb.append(" WHERE "); for (Filter filter : whereClauses) { Relation relation = filter.getRelation(); String leftTerm = relation.getLeftTerm().getStringValue().substring(relation.getLeftTerm() .getStringValue().lastIndexOf('.') + 1, relation.getLeftTerm().getStringValue().length()); sb.append(Utils.toCaseSensitive(leftTerm)).append(relation.getOperator().toString()).append (relation.getRightTerm().toString()).append(" AND "); } sb.delete(sb.lastIndexOf(" AND"), sb.length()); } return sb.toString(); }
TableName tableName = new TableName(cassandraTableMetadata.getKeyspace().getName(), cassandraTableMetadata.getName());
/** * Drop table that was created previously. * * @param targetCluster The target cluster. * @param name The TableName of the Table. * @throws ConnectorException */ @Override public void dropTable(ClusterName targetCluster, TableName name) throws ConnectorException { session = sessions.get(targetCluster.getName()); DropTableStatement tableStatement = new DropTableStatement(name.getQualifiedName(), false); CassandraExecutor.execute(tableStatement.toString(), session); }
@Override public String toString() { StringBuilder sb = new StringBuilder("UPDATE "); sb.append(Utils.toCaseSensitive(tableName.getCatalogName().getName())).append('.') .append(Utils.toCaseSensitive(tableName .getName()));
catalogInc = tableName.isCompletedName(); if (catalogInc) { CatalogName catalogName = tableName.getCatalogName(); catalog = catalogName.getName();
private String getLuceneIndex() { String indexName = ""; List<ColumnMetadata> columns = session.getCluster().getMetadata().getKeyspace(Utils.toCaseSensitive(catalog)).getTable( Utils.toCaseSensitive(tableName .getName())) .getColumns(); for (ColumnMetadata column : columns) { if (column.getIndex() != null && column.getIndex().isCustomIndex()) { indexName = Utils.toCaseSensitive(column.getName()); } } return indexName; }
private String insertBlock(Row row, TableMetadata targetTable, boolean ifNotExists) throws ExecutionException { Set<String> keys = row.getCells().keySet(); Map<ColumnName, ColumnMetadata> columnsWithMetadata = targetTable.getColumns(); Map<String, ColumnInsertCassandra> columnsMetadata = new HashMap<>(); try { for (String key : keys) { ColumnName col = new ColumnName(targetTable.getName().getCatalogName().getName(), targetTable.getName().getName(), key); columnsMetadata.put(key, new ColumnInsertCassandra(columnsWithMetadata.get(col).getColumnType(), row.getCell(key).toString(), key)); } } catch (Exception e) { throw new ExecutionException("Trying insert data in a not existing column", e); } InsertIntoStatement insertStatement = new InsertIntoStatement(targetTable, columnsMetadata, ifNotExists); return insertStatement.toString(); }
this.createIfNotExists = createIfNotExists; this.type = indexMetadata.getType(); this.tableName = indexMetadata.getName().getTableName().getName(); this.keyspace = indexMetadata.getName().getTableName().getCatalogName().getName(); if (keyspace != null) { this.keyspaceIncluded = true; String catalog= Utils.toCaseSensitive(indexMetadata.getName().getTableName().getCatalogName() .getName()); String table=Utils.toCaseSensitive(indexMetadata.getName().getTableName().getName()); session.execute( "ALTER TABLE " + catalog + '.' + table + " ADD "
/** * Get the Crossdata TableMetadata from a tableName that is search into cassandra table metadata. * * @param session The cassandra session. * @param tableName The table name to search. * @return A {@link com.stratio.crossdata.common.metadata.TableMetadata} . */ public static TableMetadata getTablesByTableName(Session session, TableName tableName, String cluster) throws ConnectorException { Metadata clusterMetadata = session.getCluster().getMetadata(); String ks = Utils.toCaseSensitive(tableName.getCatalogName().getName()); KeyspaceMetadata ksMetadata = clusterMetadata.getKeyspace(ks); if(clusterMetadata.getKeyspace(ks) == null){ throw new ConnectorException("Catalog " + ks + " not found"); } String tn = Utils.toCaseSensitive(tableName.getName()); com.datastax.driver.core.TableMetadata cassandraTableMetadata = ksMetadata.getTable(tn); if(ksMetadata.getTable(tn) == null){ throw new ConnectorException("Table " + ks + "." + tn + " not found"); } return getXDTableMetadata(session, cassandraTableMetadata, cluster); }