private Column getTextContentColumn(MutableTable table, String preferredColumnName) { MutableColumn column = null; for (Column col : table.getColumns()) { if (NATIVE_TYPE_TEXT.equals(col.getNativeType())) { column = (MutableColumn) col; break; } } if (column == null && preferredColumnName != null) { logger.info("Creating text content column for table: " + table.getName()); column = new MutableColumn(preferredColumnName + TEXT_CONTENT_TEMP_SUFFIX, ColumnType.STRING, table, table .getColumnCount(), true); column.setNativeType(NATIVE_TYPE_TEXT); table.addColumn(column); } return column; }
@Override public Table execute() { final String sql = createSqlStatement(); logger.info("Create table statement created: {}", sql); final Connection connection = getUpdateCallback().getConnection(); Statement st = null; try { st = connection.createStatement(); final int rowsAffected = st.executeUpdate(sql); logger.debug("Create table statement executed, {} rows affected", rowsAffected); } catch (SQLException e) { throw JdbcUtils.wrapException(e, "execute create table statement: " + sql, JdbcActionType.UPDATE); } finally { FileHelper.safeClose(st); } final JdbcSchema schema = (JdbcSchema) getSchema(); schema.refreshTables(connection); return schema.getTableByName(getTable().getName()); }
@Override public void run(UpdateCallback callback) { callback.createTable(_table.getSchema().getName(), _table.getName()).like(_table).execute(); } }
@Override public Table execute() { final String sql = createSqlStatement(); logger.info("Create table statement created: {}", sql); final Connection connection = getUpdateCallback().getConnection(); Statement st = null; try { st = connection.createStatement(); final int rowsAffected = st.executeUpdate(sql); logger.debug("Create table statement executed, {} rows affected", rowsAffected); } catch (SQLException e) { throw JdbcUtils.wrapException(e, "execute create table statement: " + sql, JdbcActionType.UPDATE); } finally { FileHelper.safeClose(st); } final JdbcSchema schema = (JdbcSchema) getSchema(); schema.refreshTables(connection); return schema.getTableByName(getTable().getName()); }
private MutableColumn getIdColumn(MutableTable table) { MutableColumn column = null; for (Column col : table.getColumns()) { if (NATIVE_TYPE_PRIMARY_KEY.equals(col.getNativeType())) { column = (MutableColumn) col; break; } } if (column == null) { String tableName = table.getName(); logger.info("Creating id column for table: " + tableName); column = new MutableColumn(tableName + "_metamodel_surrogate_id", ColumnType.INTEGER, table, table .getColumnCount(), false); column.setNativeType(NATIVE_TYPE_PRIMARY_KEY); column.setIndexed(true); table.addColumn(column); } return column; }
@Override public void run(UpdateCallback callback) { callback.createTable(_table.getSchema().getName(), _table.getName()).like(_table).execute(); } }
@Override public Table execute() throws MetaModelException { final MutableTable table = getTable(); final Map<String, ?> source = ElasticSearchUtils.getMappingSource(table); final ElasticSearchDataContext dataContext = getUpdateCallback().getDataContext(); final IndicesAdminClient indicesAdmin = dataContext.getElasticSearchClient().admin().indices(); final String indexName = dataContext.getIndexName(); final PutMappingRequestBuilder requestBuilder = new PutMappingRequestBuilder(indicesAdmin, PutMappingAction.INSTANCE).setIndices(indexName) .setType(table.getName()); requestBuilder.setSource(source); final PutMappingResponse result = requestBuilder.execute().actionGet(); logger.debug("PutMapping response: acknowledged={}", result.isAcknowledged()); dataContext.getElasticSearchClient().admin().indices().prepareRefresh(indexName).get(); final MutableSchema schema = (MutableSchema) getSchema(); schema.addTable(table); return table; }
@Override public Table execute() throws MetaModelException { final MutableTable table = getTable(); final Map<String, ?> source = ElasticSearchUtils.getMappingSource(table); final ElasticSearchDataContext dataContext = getUpdateCallback().getDataContext(); final IndicesAdminClient indicesAdmin = dataContext.getElasticSearchClient().admin().indices(); final String indexName = dataContext.getIndexName(); final PutMappingRequestBuilder requestBuilder = new PutMappingRequestBuilder(indicesAdmin, PutMappingAction.INSTANCE).setIndices(indexName) .setType(table.getName()); requestBuilder.setSource(source); final PutMappingResponse result = requestBuilder.execute().actionGet(); logger.debug("PutMapping response: acknowledged={}", result.isAcknowledged()); dataContext.getElasticSearchClient().admin().indices().prepareRefresh(indexName).get(); final MutableSchema schema = (MutableSchema) getSchema(); schema.addTable(table); return table; }
@Override public Table execute() { CsvUpdateCallback csvUpdateCallback = getUpdateCallback(); MutableTable table = getTable(); List<String> columnNames = table.getColumnNames(); CsvDataContext csvDataContext = (CsvDataContext) csvUpdateCallback.getDataContext(); if (csvDataContext.getConfiguration().getColumnNameLineNumber() != CsvConfiguration.NO_COLUMN_NAME_LINE) { csvUpdateCallback.writeRow(columnNames.toArray(new String[columnNames.size()]), false); } CsvSchema schema = (CsvSchema) table.getSchema(); CsvTable csvTable = new CsvTable(schema, table.getName(), table.getColumnNames()); schema.setTable(csvTable); return csvTable; } }
@Override public Table execute() { CsvUpdateCallback csvUpdateCallback = getUpdateCallback(); MutableTable table = getTable(); List<String> columnNames = table.getColumnNames(); CsvDataContext csvDataContext = (CsvDataContext) csvUpdateCallback.getDataContext(); if (csvDataContext.getConfiguration().getColumnNameLineNumber() != CsvConfiguration.NO_COLUMN_NAME_LINE) { csvUpdateCallback.writeRow(columnNames.toArray(new String[columnNames.size()]), false); } CsvSchema schema = (CsvSchema) table.getSchema(); CsvTable csvTable = new CsvTable(schema, table.getName(), table.getColumnNames()); schema.setTable(csvTable); return csvTable; } }
@Override public Table execute() { final ExcelUpdateCallback updateCallback = getUpdateCallback(); final MutableTable table = getTable(); final Sheet sheet = updateCallback.createSheet(table.getName()); final int lineNumber = updateCallback.getConfiguration().getColumnNameLineNumber(); if (lineNumber != ExcelConfiguration.NO_COLUMN_NAME_LINE) { final int zeroBasedLineNumber = lineNumber - 1; final Row row = sheet.createRow(zeroBasedLineNumber); for (final Column column : table.getColumns()) { final int columnNumber = column.getColumnNumber(); row.createCell(columnNumber).setCellValue(column.getName()); } } final MutableSchema schema = (MutableSchema) getSchema(); schema.addTable((MutableTable) table); return table; } }
@Override public Table execute() throws MetaModelException { MutableTable table = getTable(); String name = table.getName(); CouchDbInstance instance = getUpdateCallback().getDataContext().getCouchDbInstance(); instance.createDatabase(name); addMandatoryColumns(table); MutableSchema schema = (MutableSchema) table.getSchema(); schema.addTable(table); return table; }
@Override public Table execute() { final ExcelUpdateCallback updateCallback = getUpdateCallback(); final MutableTable table = getTable(); final Sheet sheet = updateCallback.createSheet(table.getName()); final int lineNumber = updateCallback.getConfiguration().getColumnNameLineNumber(); if (lineNumber != ExcelConfiguration.NO_COLUMN_NAME_LINE) { final int zeroBasedLineNumber = lineNumber - 1; final Row row = sheet.createRow(zeroBasedLineNumber); for (final Column column : table.getColumns()) { final int columnNumber = column.getColumnNumber(); row.createCell(columnNumber).setCellValue(column.getName()); } } final MutableSchema schema = (MutableSchema) getSchema(); schema.addTable((MutableTable) table); return table; } }
@Override public Table execute() throws MetaModelException { final MutableTable table = getTable(); final Map<String, ?> source = ElasticSearchUtils.getMappingSource(table); final ElasticSearchRestDataContext dataContext = getUpdateCallback().getDataContext(); final String indexName = dataContext.getIndexName(); final PutMappingRequest putMapping = new PutMappingRequest(indexName).type(table.getName()).source(source); getUpdateCallback().execute(putMapping); final MutableSchema schema = (MutableSchema) getSchema(); schema.addTable(table); return table; }
@Override public Table execute() throws MetaModelException { final MongoDbDataContext dataContext = getUpdateCallback() .getDataContext(); final Schema schema = dataContext.getDefaultSchema(); final MutableTable table = getTable(); if (table.getColumnByName("_id") == null) { // all mongo db collections have an _id field as the first field. ImmutableColumn idColumn = new ImmutableColumn("_id", ColumnType.ROWID, table, table.getColumnCount(), null, null, null, null, true, null, true); table.addColumn(idColumn); } table.setSchema(schema); getUpdateCallback().createCollection(table.getName()); dataContext.addTable(table); return table; } }
@Override public Table execute() throws MetaModelException { final MongoDbDataContext dataContext = getUpdateCallback() .getDataContext(); final Schema schema = dataContext.getDefaultSchema(); final MutableTable table = getTable(); if (table.getColumnByName("_id") == null) { // all mongo db collections have an _id field as the first field. ImmutableColumn idColumn = new ImmutableColumn("_id", ColumnType.ROWID, table, table.getColumnCount(), null, null, null, null, true, null, true); table.addColumn(idColumn); } table.setSchema(schema); getUpdateCallback().createCollection(table.getName()); dataContext.addTable(table); return table; } }
@Override public Table execute() throws MetaModelException { final MongoDbDataContext dataContext = getUpdateCallback() .getDataContext(); final Schema schema = dataContext.getDefaultSchema(); final MutableTable table = getTable(); if (table.getColumnByName("_id") == null) { // all mongo db collections have an _id field as the first field. ImmutableColumn idColumn = new ImmutableColumn("_id", ColumnType.ROWID, table, table.getColumnCount(), null, null, null, null, true, null, true); table.addColumn(idColumn); } table.setSchema(schema); getUpdateCallback().createCollection(table.getName()); dataContext.addTable(table); return table; } }
@Override public Table execute() throws MetaModelException { final MongoDbDataContext dataContext = getUpdateCallback() .getDataContext(); final Schema schema = dataContext.getDefaultSchema(); final MutableTable table = getTable(); if (table.getColumnByName("_id") == null) { // all mongo db collections have an _id field as the first field. ImmutableColumn idColumn = new ImmutableColumn("_id", ColumnType.ROWID, table, table.getColumnCount(), null, null, null, null, true, null, true); table.addColumn(idColumn); } table.setSchema(schema); getUpdateCallback().createCollection(table.getName()); dataContext.addTable(table); return table; } }
@Override protected Schema getMainSchema() throws MetaModelException { final MutableSchema theSchema = new MutableSchema(getMainSchemaName()); for (final SimpleTableDef tableDef : tableDefs) { final MutableTable table = tableDef.toTable().setSchema(theSchema); final TableMetadata cassandraTable = cassandraCluster.getMetadata().getKeyspace(keySpaceName).getTable(table .getName()); if (cassandraTable != null) { final List<ColumnMetadata> primaryKeys = cassandraTable.getPrimaryKey(); for (ColumnMetadata primaryKey : primaryKeys) { final MutableColumn column = (MutableColumn) table.getColumnByName(primaryKey.getName()); if (column != null) { column.setPrimaryKey(true); } column.setNativeType(primaryKey.getType().getName().name()); } } theSchema.addTable(table); } return theSchema; }
@Override protected Schema getMainSchema() throws MetaModelException { final MutableSchema theSchema = new MutableSchema(getMainSchemaName()); for (final SimpleTableDef tableDef : tableDefs) { final MutableTable table = tableDef.toTable().setSchema(theSchema); final TableMetadata cassandraTable = cassandraCluster.getMetadata().getKeyspace(keySpaceName).getTable(table .getName()); if (cassandraTable != null) { final List<ColumnMetadata> primaryKeys = cassandraTable.getPrimaryKey(); for (ColumnMetadata primaryKey : primaryKeys) { final MutableColumn column = (MutableColumn) table.getColumnByName(primaryKey.getName()); if (column != null) { column.setPrimaryKey(true); } column.setNativeType(primaryKey.getType().getName().name()); } } theSchema.addTable(table); } return theSchema; }