Fix HANA test failures
This commit is contained in:
parent
db3a69f8bd
commit
f13264d71d
|
@ -929,6 +929,11 @@ public class MySQLLegacyDialect extends Dialect {
|
|||
return "select uuid()";
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean supportsCommentOn() {
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getTableComment(String comment) {
|
||||
return " comment='" + comment + "'";
|
||||
|
|
|
@ -908,12 +908,12 @@ public abstract class AbstractHANADialect extends Dialect {
|
|||
|
||||
@Override
|
||||
public String getTableComment(String comment) {
|
||||
return "comment '" + comment + "'";
|
||||
return " comment '" + comment + "'";
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getColumnComment(String comment) {
|
||||
return "comment '" + comment + "'";
|
||||
return " comment '" + comment + "'";
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
|
@ -1041,6 +1041,11 @@ public class MySQLDialect extends Dialect {
|
|||
return "select uuid()";
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean supportsCommentOn() {
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getTableComment(String comment) {
|
||||
return " comment='" + comment + "'";
|
||||
|
|
|
@ -141,17 +141,18 @@ public class StandardTableExporter implements Exporter<Table> {
|
|||
*/
|
||||
protected void applyComments(Table table, String formattedTableName, List<String> sqlStrings) {
|
||||
if ( dialect.supportsCommentOn() ) {
|
||||
if ( table.getComment() != null ) {
|
||||
sqlStrings.add( "comment on table "
|
||||
+ formattedTableName
|
||||
+ " is '" + table.getComment() + "'" );
|
||||
if ( table.getComment() != null && dialect.getTableComment( "" ).isEmpty() ) {
|
||||
sqlStrings.add( "comment on table " + formattedTableName + " is '" + table.getComment() + "'" );
|
||||
}
|
||||
for ( Column column : table.getColumns() ) {
|
||||
String columnComment = column.getComment();
|
||||
if ( columnComment != null ) {
|
||||
sqlStrings.add( "comment on column "
|
||||
+ formattedTableName + '.' + column.getQuotedName( dialect )
|
||||
+ " is '" + columnComment + "'" );
|
||||
if ( dialect.getColumnComment( "" ).isEmpty() ){
|
||||
for ( Column column : table.getColumns() ) {
|
||||
String columnComment = column.getComment();
|
||||
if ( columnComment != null ) {
|
||||
sqlStrings.add(
|
||||
"comment on column " + formattedTableName + '.' + column.getQuotedName( dialect )
|
||||
+ " is '" + columnComment + "'"
|
||||
);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -59,7 +59,13 @@ public class CommentGenerationTest {
|
|||
.execute( EnumSet.of( TargetType.SCRIPT ), metadata );
|
||||
|
||||
String fileContent = new String( Files.readAllBytes( output.toPath() ) );
|
||||
assertThat( fileContent.contains( "comment on column version.description " ), is( true ) );
|
||||
String commentFragment = metadata.getDatabase().getDialect().getColumnComment( "This is a column comment" );
|
||||
if ( commentFragment.isEmpty() ) {
|
||||
assertThat( fileContent.contains( "comment on column version.description " ), is( true ) );
|
||||
}
|
||||
else {
|
||||
assertThat( fileContent.contains( commentFragment ), is( true ) );
|
||||
}
|
||||
}
|
||||
finally {
|
||||
StandardServiceRegistryBuilder.destroy( ssr );
|
||||
|
|
|
@ -70,11 +70,11 @@ public class TableCommentTest extends BaseNonConfigCoreFunctionalTestCase {
|
|||
}
|
||||
}
|
||||
if ( containsCommentInCreateTableStatement( sqlStatement ) ) {
|
||||
if ( getDialect().supportsCommentOn() && !getDialect().getTableComment( "comment snippet" ).equals( "" ) ) {
|
||||
fail( "Added comment on create table statement when Dialect support create comment on table statement" );
|
||||
if ( getDialect().supportsCommentOn() || getDialect().getTableComment( "comment snippet" ).isEmpty() ) {
|
||||
found = true;
|
||||
}
|
||||
else {
|
||||
found = true;
|
||||
fail( "Generated comment on create table statement, but Dialect does not support it" );
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -83,9 +83,8 @@ public class TableCommentTest extends BaseNonConfigCoreFunctionalTestCase {
|
|||
}
|
||||
|
||||
private boolean containsCommentInCreateTableStatement(String sqlStatement) {
|
||||
return sqlStatement.toLowerCase().contains( "create table" ) && sqlStatement.toLowerCase()
|
||||
.contains( getDialect().getTableComment( "comment snippet" )
|
||||
.toLowerCase() );
|
||||
return sqlStatement.toLowerCase().contains( getDialect().getCreateTableString() )
|
||||
&& sqlStatement.toLowerCase().contains( getDialect().getTableComment( "comment snippet" ).toLowerCase() );
|
||||
}
|
||||
|
||||
@Entity(name = "TableWithComment")
|
||||
|
|
|
@ -83,7 +83,7 @@ public class CollectionOfSoftDeleteTests {
|
|||
assertThat( loaded.getBooks() ).isEmpty();
|
||||
|
||||
assertThat( sqlInspector.getSqlQueries() ).hasSize( 1 );
|
||||
assertThat( sqlInspector.getSqlQueries().get( 0 ) ).contains( ".deleted='N'" );
|
||||
assertThat( sqlInspector.getSqlQueries().get( 0 ) ).containsAnyOf( ".deleted='N'", ".deleted=N'N'" );
|
||||
} );
|
||||
}
|
||||
|
||||
|
@ -101,7 +101,7 @@ public class CollectionOfSoftDeleteTests {
|
|||
|
||||
assertThat( sqlInspector.getSqlQueries() ).hasSize( 1 );
|
||||
assertThat( sqlInspector.getSqlQueries().get( 0 ) ).contains( " join " );
|
||||
assertThat( sqlInspector.getSqlQueries().get( 0 ) ).contains( ".deleted='N'" );
|
||||
assertThat( sqlInspector.getSqlQueries().get( 0 ) ).containsAnyOf( ".deleted='N'", ".deleted=N'N'" );
|
||||
} );
|
||||
}
|
||||
|
||||
|
|
|
@ -113,7 +113,7 @@ public class SimpleSoftDeleteTests {
|
|||
.multiLoad( 1, 2, 3 );
|
||||
assertThat( results ).hasSize( 2 );
|
||||
assertThat( statementInspector.getSqlQueries() ).hasSize( 1 );
|
||||
assertThat( statementInspector.getSqlQueries().get( 0 ) ).contains( "removed='N'" );
|
||||
assertThat( statementInspector.getSqlQueries().get( 0 ) ).containsAnyOf( "removed='N'", "removed=N'N'" );
|
||||
} );
|
||||
}
|
||||
|
||||
|
@ -125,7 +125,7 @@ public class SimpleSoftDeleteTests {
|
|||
statementInspector.clear();
|
||||
session.bySimpleNaturalId( SimpleEntity.class ).load( "second" );
|
||||
assertThat( statementInspector.getSqlQueries() ).hasSize( 1 );
|
||||
assertThat( statementInspector.getSqlQueries().get( 0 ) ).contains( "removed='N'" );
|
||||
assertThat( statementInspector.getSqlQueries().get( 0 ) ).containsAnyOf( "removed='N'", "removed=N'N'" );
|
||||
} );
|
||||
}
|
||||
|
||||
|
@ -145,7 +145,7 @@ public class SimpleSoftDeleteTests {
|
|||
// trigger load
|
||||
first.getName();
|
||||
assertThat( statementInspector.getSqlQueries() ).hasSize( 1 );
|
||||
assertThat( statementInspector.getSqlQueries().get( 0 ) ).contains( "active='Y'" );
|
||||
assertThat( statementInspector.getSqlQueries().get( 0 ) ).containsAnyOf( "active='Y'", "active=N'Y'" );
|
||||
|
||||
assertThat( Hibernate.isInitialized( first ) ).isTrue();
|
||||
assertThat( Hibernate.isInitialized( second ) ).isTrue();
|
||||
|
|
|
@ -83,10 +83,10 @@ public class ToOneTests {
|
|||
assertThat( sqlInspector.getSqlQueries() ).hasSize( 2 );
|
||||
assertThat( sqlInspector.getSqlQueries().get( 0 ) ).contains( " join " );
|
||||
assertThat( sqlInspector.getSqlQueries().get( 0 ) ).contains( ".reporter_fk" );
|
||||
assertThat( sqlInspector.getSqlQueries().get( 0 ) ).contains( ".active='Y" );
|
||||
assertThat( sqlInspector.getSqlQueries().get( 0 ) ).containsAnyOf( ".active='Y'", ".active=N'Y'" );
|
||||
assertThat( sqlInspector.getSqlQueries().get( 0 ) ).containsOnlyOnce( "active" );
|
||||
assertThat( sqlInspector.getSqlQueries().get( 1 ) ).doesNotContain( " join " );
|
||||
assertThat( sqlInspector.getSqlQueries().get( 1 ) ).contains( ".active='Y" );
|
||||
assertThat( sqlInspector.getSqlQueries().get( 1 ) ).containsAnyOf( ".active='Y'", ".active=N'Y'" );
|
||||
assertThat( sqlInspector.getSqlQueries().get( 1 ) ).containsOnlyOnce( "active" );
|
||||
} );
|
||||
}
|
||||
|
|
|
@ -92,7 +92,7 @@ public class FetchLoadableTests {
|
|||
// trigger loading one of the batch-loadable collections
|
||||
first.getBatchLoadable().size();
|
||||
assertThat( statementInspector.getSqlQueries() ).hasSize( 1 );
|
||||
assertThat( statementInspector.getSqlQueries().get( 0 ) ).contains( "active='Y'" );
|
||||
assertThat( statementInspector.getSqlQueries().get( 0 ) ).containsAnyOf( "active='Y'", "active=N'Y'" );
|
||||
assertThat( Hibernate.isInitialized( first.getBatchLoadable() ) ).isTrue();
|
||||
assertThat( Hibernate.isInitialized( second.getBatchLoadable() ) ).isTrue();
|
||||
} );
|
||||
|
@ -121,7 +121,7 @@ public class FetchLoadableTests {
|
|||
// trigger loading one of the subselect-loadable collections
|
||||
first.getSubSelectLoadable().size();
|
||||
assertThat( statementInspector.getSqlQueries() ).hasSize( 1 );
|
||||
assertThat( statementInspector.getSqlQueries().get( 0 ) ).contains( "active='Y'" );
|
||||
assertThat( statementInspector.getSqlQueries().get( 0 ) ).containsAnyOf( "active='Y'", "active=N'Y'" );
|
||||
assertThat( Hibernate.isInitialized( first.getSubSelectLoadable() ) ).isTrue();
|
||||
assertThat( Hibernate.isInitialized( second.getSubSelectLoadable() ) ).isTrue();
|
||||
} );
|
||||
|
|
|
@ -60,7 +60,7 @@ public class UsageTests {
|
|||
.uniqueResult();
|
||||
} );
|
||||
assertThat( statementInspector.getSqlQueries() ).hasSize( 1 );
|
||||
assertThat( statementInspector.getSqlQueries().get( 0 ) ).contains( "deleted='N'" );
|
||||
assertThat( statementInspector.getSqlQueries().get( 0 ) ).containsAnyOf( "deleted='N'", "deleted=N'N'" );
|
||||
}
|
||||
|
||||
@Test
|
||||
|
@ -91,8 +91,9 @@ public class UsageTests {
|
|||
} );
|
||||
assertThat( statementInspector.getSqlQueries() ).hasSize( 1 );
|
||||
assertThat( statementInspector.getSqlQueries().get( 0 ) ).startsWith( "update " );
|
||||
assertThat( statementInspector.getSqlQueries().get( 0 ) ).contains( "deleted='Y'" );
|
||||
assertThat( statementInspector.getSqlQueries().get( 0 ) ).endsWith( "deleted='N'" );
|
||||
assertThat( statementInspector.getSqlQueries().get( 0 ) ).containsAnyOf( "deleted='Y'", "deleted=N'Y'" );
|
||||
assertThat( statementInspector.getSqlQueries().get( 0 ) ).containsAnyOf( "deleted='N'", "deleted=N'N'" );
|
||||
assertThat( statementInspector.getSqlQueries().get( 0 ) ).endsWith( "'N'" );
|
||||
|
||||
scope.inTransaction( (session) -> {
|
||||
final CollectionOwner owner = session.get( CollectionOwner.class, 1 );
|
||||
|
@ -138,8 +139,9 @@ public class UsageTests {
|
|||
// this will be a "recreate"
|
||||
assertThat( statementInspector.getSqlQueries() ).hasSize( 2 );
|
||||
assertThat( statementInspector.getSqlQueries().get( 0 ) ).startsWith( "update " );
|
||||
assertThat( statementInspector.getSqlQueries().get( 0 ) ).contains( "deleted='Y'" );
|
||||
assertThat( statementInspector.getSqlQueries().get( 0 ) ).endsWith( "deleted='N'" );
|
||||
assertThat( statementInspector.getSqlQueries().get( 0 ) ).containsAnyOf( "deleted='Y'", "deleted=N'Y'" );
|
||||
assertThat( statementInspector.getSqlQueries().get( 0 ) ).containsAnyOf( "deleted='N'", "deleted=N'N'" );
|
||||
assertThat( statementInspector.getSqlQueries().get( 0 ) ).endsWith( "'N'" );
|
||||
assertThat( statementInspector.getSqlQueries().get( 1 ) ).startsWith( "insert " );
|
||||
|
||||
scope.inTransaction( (session) -> {
|
||||
|
|
|
@ -58,6 +58,6 @@ public class ConvertedSoftDeleteTests {
|
|||
assertThat( sqlInspector.getSqlQueries() ).hasSize( 1 );
|
||||
assertThat( sqlInspector.getSqlQueries().get( 0 ) ).doesNotContainIgnoringCase( "delete " );
|
||||
assertThat( sqlInspector.getSqlQueries().get( 0 ) ).containsIgnoringCase( "update " );
|
||||
assertThat( sqlInspector.getSqlQueries().get( 0 ) ).contains( "deleted='Y'" );
|
||||
assertThat( sqlInspector.getSqlQueries().get( 0 ) ).containsAnyOf( "deleted='Y'", "deleted=N'Y'" );
|
||||
}
|
||||
}
|
||||
|
|
|
@ -58,6 +58,6 @@ public class ReversedSoftDeleteTests {
|
|||
assertThat( sqlInspector.getSqlQueries() ).hasSize( 1 );
|
||||
assertThat( sqlInspector.getSqlQueries().get( 0 ) ).doesNotContainIgnoringCase( "delete " );
|
||||
assertThat( sqlInspector.getSqlQueries().get( 0 ) ).containsIgnoringCase( "update " );
|
||||
assertThat( sqlInspector.getSqlQueries().get( 0 ) ).contains( "active='N'" );
|
||||
assertThat( sqlInspector.getSqlQueries().get( 0 ) ).containsAnyOf( "active='N'", "active=N'N'" );
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue