if (table.getName().equalsIgnoreCase(tableName)) { break;
/** * {@inheritDoc} */ protected boolean isInternalPrimaryKeyIndex(DatabaseMetaDataWrapper metaData, Table table, Index index) { // PostgreSql uses the form "[tablename]_pkey" return (table.getName() + "_pkey").equals(index.getName()); }
/** * {@inheritDoc} */ protected boolean isInternalPrimaryKeyIndex(DatabaseMetaDataWrapper metaData, Table table, Index index) { // Sql Server generates an index "PK__[table name]__[hex number]" StringBuilder pkIndexName = new StringBuilder(); pkIndexName.append("PK__"); pkIndexName.append(table.getName()); pkIndexName.append("__"); return index.getName().toUpperCase().startsWith(pkIndexName.toString().toUpperCase()); }
String tableName = table.getName();
/** * Returns the constraint name. This method takes care of length limitations imposed by some databases. * * @param prefix The constraint prefix, can be <code>null</code> * @param table The table that the constraint belongs to * @param secondPart The second name part, e.g. the name of the constraint column * @param suffix The constraint suffix, e.g. a counter (can be <code>null</code>) * @return The constraint name */ public String getConstraintName(String prefix, Table table, String secondPart, String suffix) { StringBuilder result = new StringBuilder(); if (prefix != null) { result.append(prefix); result.append("_"); } result.append(table.getName()); result.append("_"); result.append(secondPart); if (suffix != null) { result.append("_"); result.append(suffix); } return shortenName(result.toString(), getMaxConstraintNameLength()); }
/** * {@inheritDoc} */ protected boolean isInternalPrimaryKeyIndex(DatabaseMetaDataWrapper metaData, Table table, Index index) throws SQLException { // We can simply check the sysindexes table where a specific flag is set for pk indexes final String query = "SELECT name = sysindexes.name FROM sysindexes, sysobjects WHERE sysobjects.name = ? " + "AND sysindexes.name = ? AND sysobjects.id = sysindexes.id AND (sysindexes.status & 2048) > 0"; PreparedStatement stmt = null; try { stmt = getConnection().prepareStatement(query); stmt.setString(1, table.getName()); stmt.setString(2, index.getName()); ResultSet rs = stmt.executeQuery(); return rs.next(); } finally { closeStatement(stmt); } } }
/** * {@inheritDoc} */ protected List checkForPrimaryKeyChanges(Database sourceModel, Table sourceTable, Database intermediateModel, Table intermediateTable, Database targetModel, Table targetTable) { List changes = super.checkForPrimaryKeyChanges(sourceModel, sourceTable, intermediateModel, intermediateTable, targetModel, targetTable); // now we add pk changes if one of the pk columns was changed // we only need to do this if there is no other pk change (which can only be a remove or add change or both) if (changes.isEmpty()) { List columns = getRelevantChangedColumns(sourceTable, targetTable); for (Iterator it = columns.iterator(); it.hasNext();) { Column targetColumn = (Column)it.next(); if (targetColumn.isPrimaryKey()) { changes.add(new RemovePrimaryKeyChange(sourceTable.getName())); changes.add(new AddPrimaryKeyChange(sourceTable.getName(), sourceTable.getPrimaryKeyColumnNames())); break; } } } return changes; }
public void reload() { if (table != null) { String schemaName = StringUtils.isEmpty(table.getCatalog()) ? table.getSchema() : table.getCatalog(); this.table = dbDialect.findTable(schemaName, table.getName(), false); } }
/** * Helper method that determines the auto increment status using Firebird's system tables. * * @param table The table */ protected void determineAutoIncrementColumns(Table table) throws SQLException { final String query = "SELECT COLNAME FROM SYSCAT.COLUMNS WHERE TABNAME = ? AND IDENTITY = 'Y' AND HIDDEN != 'S'"; PreparedStatement stmt = null; try { stmt = getConnection().prepareStatement(query); stmt.setString(1, table.getName()); ResultSet rs = stmt.executeQuery(); while (rs.next()) { String colName = rs.getString(1).trim(); Column column = table.findColumn(colName, getPlatform().isDelimitedIdentifierModeOn()); if (column != null) { column.setAutoIncrement(true); } } } finally { closeStatement(stmt); } }
private void modifyVarBinaryColumn(Database targetModel, String tableName, String columnName) { Table table = targetModel.findTable(tableName); Column c = table.findColumn(columnName); c.setType("VARCHAR"); c.setSize("2000"); System.out.println("updating column " + c.getName() + " for table " + table.getName()); } /**
protected String getIndexName(Table table, Index index) { final String indexName; final String tablePrefix = table.getName() + '_'; // avoid adding table prefix if index already has it if (index.getName().startsWith(tablePrefix)) { indexName = index.getName(); } else { indexName = tablePrefix + index.getName(); } return shortenName(indexName, getMaxConstraintNameLength()); }
public String getSelectQueryForAllString(JetspeedDDLUtil ddlUtil, Table table) { StringBuffer query = new StringBuffer(); query.append("SELECT * FROM "); if (ddlUtil.getPlatform().isDelimitedIdentifierModeOn()) { query.append(ddlUtil.getPlatform().getPlatformInfo() .getDelimiterToken()); } query.append(table.getName()); if (ddlUtil.getPlatform().isDelimitedIdentifierModeOn()) { query.append(ddlUtil.getPlatform().getPlatformInfo() .getDelimiterToken()); } System.out.println(query.toString()); return query.toString(); }
public String getSelectQueryForAllString( Table table) { StringBuffer query = new StringBuffer(); query.append("SELECT * FROM "); if (getPlatform().isDelimitedIdentifierModeOn()) { query.append(getPlatform().getPlatformInfo().getDelimiterToken()); } query.append(table.getName()); if (getPlatform().isDelimitedIdentifierModeOn()) { query.append(getPlatform().getPlatformInfo().getDelimiterToken()); } return query.toString(); }
additionalChanges.add(new AddIndexChange(intermediateTable.getName(), targetIndexes[indexIdx]));
columnName, mappingInfo.getTargetMediaSource().getName(), table.getName(), column.getColumnType(), srcType,
/** * Creates a temporary table object that corresponds to the given table. * Database-specific implementations may redefine this method if e.g. the * database directly supports temporary tables. The default implementation * simply appends an underscore to the table name and uses that as the * table name. * * @param targetTable The target table * @return The temporary table */ protected Table getTemporaryTableFor(Table targetTable) { CloneHelper cloneHelper = new CloneHelper(); Table table = new Table(); table.setCatalog(targetTable.getCatalog()); table.setSchema(targetTable.getSchema()); table.setName(targetTable.getName() + "_"); table.setType(targetTable.getType()); for (int idx = 0; idx < targetTable.getColumnCount(); idx++) { // TODO: clone PK status ? table.addColumn(cloneHelper.clone(targetTable.getColumn(idx), true)); } return table; }
throw new ModelException("Column "+column.getName()+" in table "+table.getName()+" is auto-incrementing but not a primary key column, which is not supported by the platform");