public Iterator sqlCommentStrings(Dialect dialect, String defaultCatalog, String defaultSchema) { List comments = new ArrayList(); if ( dialect.supportsCommentOn() ) { String tableName = getQualifiedName( dialect, defaultCatalog, defaultSchema ); if ( comment != null ) { comments.add( "comment on table " + tableName + " is '" + comment + "'" ); } Iterator iter = getColumnIterator(); while ( iter.hasNext() ) { Column column = (Column) iter.next(); String columnComment = column.getComment(); if ( columnComment != null ) { comments.add( "comment on column " + tableName + '.' + column.getQuotedName( dialect ) + " is '" + columnComment + "'" ); } } } return comments.iterator(); }
protected void applyComments(Table table, QualifiedName tableName, List<String> sqlStrings) { if ( dialect.supportsCommentOn() ) { if ( table.getComment() != null ) { sqlStrings.add( "comment on table " + tableName + " is '" + table.getComment() + "'" ); } final Iterator iter = table.getColumnIterator(); while ( iter.hasNext() ) { Column column = (Column) iter.next(); String columnComment = column.getComment(); if ( columnComment != null ) { sqlStrings.add( "comment on column " + tableName + '.' + column.getQuotedName( dialect ) + " is '" + columnComment + "'" ); } } } }
@Test @TestForIssue(jiraKey = "HHH-10451") public void testCommentOnTableStatementIsGenerated() throws IOException { createSchema( new Class[] {TableWithComment.class} ); final List<String> sqlLines = Files.readAllLines( output.toPath(), Charset.defaultCharset() ); boolean found = false; final String tableName = getTableName(); for ( String sqlStatement : sqlLines ) { if ( sqlStatement.toLowerCase() .equals( "comment on table " + tableName.toLowerCase() + " is 'comment snippet'" ) ) { if ( getDialect().supportsCommentOn() ) { found = true; } else { fail( "Generated " + sqlStatement + " statement, but Dialect does not support it" ); } } 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" ); } else { found = true; } } } assertThat( "Table Comment Statement not correctly generated", found, is( true ) ); }
@Override public boolean supportsCommentOn() { return delegate.supportsCommentOn(); }
@Override public boolean supportsCommentOn() { return delegate.supportsCommentOn(); }
@Override public boolean supportsCommentOn() { return delegate.supportsCommentOn(); }
@Override public boolean supportsCommentOn() { return delegate.supportsCommentOn(); }
@Override public boolean supportsCommentOn() { return delegate.supportsCommentOn(); }
@Override public boolean supportsCommentOn() { return delegate.supportsCommentOn(); }
@Override public boolean supportsCommentOn() { return delegate.supportsCommentOn(); }
@Override public boolean supportsCommentOn() { return delegate.supportsCommentOn(); }
@Override public boolean supportsCommentOn() { return delegate.supportsCommentOn(); }
@Override public boolean supportsCommentOn() { return delegate.supportsCommentOn(); }
@Override public boolean supportsCommentOn() { return delegate.supportsCommentOn(); }
public Iterator sqlCommentStrings(Dialect dialect, String defaultCatalog, String defaultSchema) { List comments = new ArrayList(); if ( dialect.supportsCommentOn() ) { String tableName = getQualifiedName( dialect, defaultCatalog, defaultSchema ); if ( comment != null ) {
public Iterator sqlCommentStrings(Dialect dialect, String defaultCatalog, String defaultSchema) { List comments = new ArrayList(); if ( dialect.supportsCommentOn() ) { String tableName = getQualifiedName( dialect, defaultCatalog, defaultSchema ); if ( comment != null ) {
public Iterator sqlCommentStrings(Dialect dialect, String defaultCatalog, String defaultSchema) { List comments = new ArrayList(); if ( dialect.supportsCommentOn() ) { String tableName = getQualifiedName( dialect , defaultCatalog, defaultSchema ); if ( comment!=null ) {
public Iterator sqlCommentStrings(Dialect dialect, String defaultCatalog, String defaultSchema) { List comments = new ArrayList(); if ( dialect.supportsCommentOn() ) { String tableName = getQualifiedName( dialect, defaultCatalog, defaultSchema ); if ( comment != null ) {
protected void applyComments(ExportableTable table, QualifiedName tableName, List<String> sqlStrings) { if ( dialect.supportsCommentOn() ) { if ( table.getComment() != null ) { sqlStrings.add( "comment on table " + tableName + " is '" + table.getComment() + "'" ); } for(PhysicalColumn column : table.getPhysicalColumns()){ if( PhysicalColumn.class.isInstance( column )) { String columnComment = column.getComment(); if ( columnComment != null ) { sqlStrings.add( "comment on column " + tableName + '.' + column.getName().render( dialect ) + " is '" + columnComment + "'" ); } } } } }
public MultiTableDeleteExecutor(HqlSqlWalker walker) { super( walker, log ); if ( !walker.getSessionFactoryHelper().getFactory().getDialect().supportsTemporaryTables() ) { throw new HibernateException( "cannot perform multi-table deletes using dialect not supporting temp tables" ); } DeleteStatement deleteStatement = ( DeleteStatement ) walker.getAST(); FromElement fromElement = deleteStatement.getFromClause().getFromElement(); String bulkTargetAlias = fromElement.getTableAlias(); this.persister = fromElement.getQueryable(); this.idInsertSelect = generateIdInsertSelect( persister, bulkTargetAlias, deleteStatement.getWhereClause() ); log.trace( "Generated ID-INSERT-SELECT SQL (multi-table delete) : " + idInsertSelect ); String[] tableNames = persister.getConstraintOrderedTableNameClosure(); String[][] columnNames = persister.getContraintOrderedTableKeyColumnClosure(); String idSubselect = generateIdSubselect( persister ); deletes = new String[tableNames.length]; for ( int i = tableNames.length - 1; i >= 0; i-- ) { // TODO : an optimization here would be to consider cascade deletes and not gen those delete statements; // the difficulty is the ordering of the tables here vs the cascade attributes on the persisters -> // the table info gotten here should really be self-contained (i.e., a class representation // defining all the needed attributes), then we could then get an array of those final Delete delete = new Delete() .setTableName( tableNames[i] ) .setWhere( "(" + StringHelper.join( ", ", columnNames[i] ) + ") IN (" + idSubselect + ")" ); if ( getFactory().getSettings().isCommentsEnabled() && getFactory().getDialect().supportsCommentOn() ) { delete.setComment( "bulk delete" ); } deletes[i] = delete.toStatementString(); } }