@Override public String getAlterTableToDropUniqueKeyCommand(UniqueKey uniqueKey, Metadata metadata) { final JdbcEnvironment jdbcEnvironment = metadata.getDatabase().getJdbcEnvironment(); final String tableName = jdbcEnvironment.getQualifiedObjectNameFormatter().format( uniqueKey.getTable().getQualifiedTableName(), dialect ); final StringBuilder buf = new StringBuilder( dialect.getAlterTableString(tableName) ); buf.append( getDropUnique() ); if ( dialect.supportsIfExistsBeforeConstraintName() ) { buf.append( "if exists " ); } buf.append( dialect.quote( uniqueKey.getName() ) ); if ( dialect.supportsIfExistsAfterConstraintName() ) { buf.append( " if exists" ); } return buf.toString(); }
protected String determineTableName(Table table, JdbcEnvironment jdbcEnvironment) { if ( table.getSubselect() != null ) { return "( " + table.getSubselect() + " )"; } return jdbcEnvironment.getQualifiedObjectNameFormatter().format( table.getQualifiedTableName(), jdbcEnvironment.getDialect() ); }
protected String determineTableName(Table table, JdbcEnvironment jdbcEnvironment) { if ( table.getSubselect() != null ) { return "( " + table.getSubselect() + " )"; } return jdbcEnvironment.getQualifiedObjectNameFormatter().format( table.getQualifiedTableName(), jdbcEnvironment.getDialect() ); }
@Override protected IdTableInfoImpl buildIdTableInfo( PersistentClass entityBinding, Table idTable, JdbcServices jdbcServices, MetadataImplementor metadata, PreparationContextImpl context) { final String renderedName = jdbcServices.getJdbcEnvironment().getQualifiedObjectNameFormatter().format( idTable.getQualifiedTableName(), jdbcServices.getJdbcEnvironment().getDialect() ); context.creationStatements.add( buildIdTableCreateStatement( idTable, jdbcServices, metadata ) ); if ( dropIdTables ) { context.dropStatements.add( buildIdTableDropStatement( idTable, jdbcServices ) ); } return new IdTableInfoImpl( renderedName ); }
@Override protected IdTableInfoImpl buildIdTableInfo( PersistentClass entityBinding, Table idTable, JdbcServices jdbcServices, MetadataImplementor metadata, PreparationContextImpl context) { context.creationStatements.add( buildIdTableCreateStatement( idTable, jdbcServices, metadata ) ); if ( dropIdTables ) { context.dropStatements.add( buildIdTableDropStatement( idTable, jdbcServices ) ); } final String renderedName = jdbcServices.getJdbcEnvironment().getQualifiedObjectNameFormatter().format( idTable.getQualifiedTableName(), jdbcServices.getJdbcEnvironment().getDialect() ); return new IdTableInfoImpl( renderedName ); }
@Override public String[] getSqlDropStrings(Sequence sequence, Metadata metadata) { final JdbcEnvironment jdbcEnvironment = metadata.getDatabase().getJdbcEnvironment(); return dialect.getDropSequenceStrings( jdbcEnvironment.getQualifiedObjectNameFormatter().format( sequence.getName(), jdbcEnvironment.getDialect() ) ); } }
@Override protected void buildSequence(Database database) { database.addAuxiliaryDatabaseObject( sequenceObject ); this.sequenceName = database.getJdbcEnvironment().getQualifiedObjectNameFormatter().format( getQualifiedName(), database.getJdbcEnvironment().getDialect() ); }
protected String buildIdTableDropStatement(Table idTable, JdbcServices jdbcServices) { final JdbcEnvironment jdbcEnvironment = jdbcServices.getJdbcEnvironment(); final Dialect dialect = jdbcEnvironment.getDialect(); return getIdTableSupport().getDropIdTableCommand() + " " + jdbcEnvironment.getQualifiedObjectNameFormatter().format( idTable.getQualifiedTableName(), dialect ); }
@Override public String[] getSqlDropStrings(Table table, Metadata metadata) { StringBuilder buf = new StringBuilder( "drop table " ); if ( dialect.supportsIfExistsBeforeTableName() ) { buf.append( "if exists " ); } final QualifiedName tableName = new QualifiedNameParser.NameParts( Identifier.toIdentifier( table.getCatalog(), table.isCatalogQuoted() ), Identifier.toIdentifier( table.getSchema(), table.isSchemaQuoted() ), table.getNameIdentifier() ); final JdbcEnvironment jdbcEnvironment = metadata.getDatabase().getJdbcEnvironment(); buf.append( jdbcEnvironment.getQualifiedObjectNameFormatter().format( tableName, jdbcEnvironment.getDialect() ) ) .append( dialect.getCascadeConstraintsString() ); if ( dialect.supportsIfExistsAfterTableName() ) { buf.append( " if exists" ); } return new String[] { buf.toString() }; } }
public static String buildSqlCreateIndexString( Dialect dialect, String name, Table table, Iterator<Column> columns, java.util.Map<Column, String> columnOrderMap, boolean unique, Metadata metadata) { final JdbcEnvironment jdbcEnvironment = metadata.getDatabase().getJdbcEnvironment(); final String tableName = jdbcEnvironment.getQualifiedObjectNameFormatter().format( table.getQualifiedTableName(), dialect ); return buildSqlCreateIndexString( dialect, name, tableName, columns, columnOrderMap, unique ); }
@Override public String[] getSqlCreateStrings(Sequence sequence, Metadata metadata) { final JdbcEnvironment jdbcEnvironment = metadata.getDatabase().getJdbcEnvironment(); return dialect.getCreateSequenceStrings( jdbcEnvironment.getQualifiedObjectNameFormatter().format( sequence.getName(), jdbcEnvironment.getDialect() ), sequence.getInitialValue(), sequence.getIncrementSize() ); }
@Override public String getAlterTableToAddUniqueKeyCommand(UniqueKey uniqueKey, Metadata metadata) { final JdbcEnvironment jdbcEnvironment = metadata.getDatabase().getJdbcEnvironment(); final String tableName = jdbcEnvironment.getQualifiedObjectNameFormatter().format( uniqueKey.getTable().getQualifiedTableName(), dialect ); final String constraintName = dialect.quote( uniqueKey.getName() ); return dialect.getAlterTableString( tableName ) + " add constraint " + constraintName + " " + uniqueConstraintSql( uniqueKey ); }
@Override protected IdTableInfoImpl buildIdTableInfo( PersistentClass entityBinding, Table idTable, JdbcServices jdbcServices, MetadataImplementor metadata, PreparationContext context) { return new IdTableInfoImpl( jdbcServices.getJdbcEnvironment().getQualifiedObjectNameFormatter().format( idTable.getQualifiedTableName(), jdbcServices.getJdbcEnvironment().getDialect() ), buildIdTableCreateStatement( idTable, jdbcServices, metadata ), buildIdTableDropStatement( idTable, jdbcServices ) ); }
@Override public String[] getSqlDropStrings(ForeignKey foreignKey, Metadata metadata) { if ( !dialect.hasAlterTable() ) { return NO_COMMANDS; } if ( !foreignKey.isCreationEnabled() ) { return NO_COMMANDS; } if ( !foreignKey.isPhysicalConstraint() ) { return NO_COMMANDS; } final JdbcEnvironment jdbcEnvironment = metadata.getDatabase().getJdbcEnvironment(); final String sourceTableName = jdbcEnvironment.getQualifiedObjectNameFormatter().format( foreignKey.getTable().getQualifiedTableName(), dialect ); return new String[] { getSqlDropStrings( sourceTableName, foreignKey, dialect ) }; }
@Override public String getAlterTableToAddUniqueKeyCommand(UniqueKey uniqueKey, Metadata metadata) { // Do this here, rather than allowing UniqueKey/Constraint to do it. // We need full, simplified control over whether or not it happens. final String tableName = metadata.getDatabase().getJdbcEnvironment().getQualifiedObjectNameFormatter().format( uniqueKey.getTable().getQualifiedTableName(), metadata.getDatabase().getJdbcEnvironment().getDialect() ); final String constraintName = dialect.quote( uniqueKey.getName() ); return dialect.getAlterTableString( tableName ) + " add constraint " + uniqueConstraintSql( uniqueKey ) + " constraint " + constraintName; }
protected String determineIdTableName(Queryable persister) { String qualifiedTableName = jdbcEnvironment.getIdentifierHelper().applyGlobalQuoting( "HT_" + StringHelper.unquote( persister.getTableName(), jdbcEnvironment.getDialect() ) ).render(); return jdbcEnvironment.getQualifiedObjectNameFormatter().format( new QualifiedTableName( Identifier.toIdentifier( catalog ), Identifier.toIdentifier( schema ), Identifier.toIdentifier( qualifiedTableName ) ), jdbcEnvironment.getDialect() ); }
@Override public String[] getSqlDropStrings(Index index, Metadata metadata) { if ( !dialect.dropConstraints() ) { return NO_COMMANDS; } final JdbcEnvironment jdbcEnvironment = metadata.getDatabase().getJdbcEnvironment(); final String tableName = jdbcEnvironment.getQualifiedObjectNameFormatter().format( index.getTable().getQualifiedTableName(), dialect ); final String indexNameForCreation; if ( dialect.qualifyIndexName() ) { indexNameForCreation = StringHelper.qualify( tableName, index.getName() ); } else { indexNameForCreation = index.getName(); } return new String[] { "drop index " + indexNameForCreation }; } }
@Override public String getAlterTableToDropUniqueKeyCommand(UniqueKey uniqueKey, Metadata metadata) { if ( hasNullable( uniqueKey ) ) { return org.hibernate.mapping.Index.buildSqlDropIndexString( uniqueKey.getName(), metadata.getDatabase().getJdbcEnvironment().getQualifiedObjectNameFormatter().format( uniqueKey.getTable().getQualifiedTableName(), metadata.getDatabase().getJdbcEnvironment().getDialect() ) ); } else { return super.getAlterTableToDropUniqueKeyCommand( uniqueKey, metadata ); } }
protected void buildSequence(Database database) { final int sourceIncrementSize = getSourceIncrementSize(); final Namespace namespace = database.locateNamespace( logicalQualifiedSequenceName.getCatalogName(), logicalQualifiedSequenceName.getSchemaName() ); Sequence sequence = namespace.locateSequence( logicalQualifiedSequenceName.getObjectName() ); if ( sequence != null ) { sequence.validate( initialValue, sourceIncrementSize ); } else { sequence = namespace.createSequence( logicalQualifiedSequenceName.getObjectName(), initialValue, sourceIncrementSize ); } this.sequenceName = database.getJdbcEnvironment().getQualifiedObjectNameFormatter().format( sequence.getName(), database.getJdbcEnvironment().getDialect() ); } }
@Test public void testQualifiedNameSeparator() throws Exception { Namespace.Name namespaceName = new Namespace.Name( Identifier.toIdentifier( "DB1" ), Identifier.toIdentifier( "PUBLIC" ) ); String expectedName = null; for ( Namespace namespace : metadata().getDatabase().getNamespaces() ) { if ( !namespace.getName().equals( namespaceName ) ) { continue; } assertEquals( 1, namespace.getTables().size() ); expectedName = metadata().getDatabase().getJdbcEnvironment().getQualifiedObjectNameFormatter().format( namespace.getTables().iterator().next().getQualifiedTableName(), getDialect() ); } assertNotNull( expectedName ); SingleTableEntityPersister persister = (SingleTableEntityPersister) sessionFactory().getEntityPersister( Box.class.getName() ); assertEquals( expectedName, persister.getTableName() ); }