Previous CloneSet | Next CloneSet | Back to Main Report |
Clone Mass | Clones in CloneSet | Parameter Count | Clone Similarity | Syntax Category [Sequence Length] |
---|---|---|---|---|
17 | 2 | 4 | 0.981 | statement_list[10] |
Clone Abstraction | Parameter Bindings |
Clone Instance (Click to see clone) | Line Count | Source Line | Source File |
---|---|---|---|
1 | 17 | 28 | src/NHibernate/Hql/Ast/ANTLR/Exec/MultiTableDeleteExecutor.cs |
2 | 17 | 28 | src/NHibernate/Hql/Ast/ANTLR/Exec/MultiTableUpdateExecutor.cs |
| ||||
if ( !Factory.Dialect.SupportsTemporaryTables) { throw new HibernateException("cannot perform multi-table deletes using dialect not supporting temp tables"); } var deleteStatement = (DeleteStatement) statement; FromElement fromElement = deleteStatement.FromClause.GetFromElement(); string bulkTargetAlias = fromElement.TableAlias; persister = fromElement.Queryable; idInsertSelect = GenerateIdInsertSelect(persister, bulkTargetAlias, deleteStatement.WhereClause); log.Debug("Generated ID-INSERT-SELECT SQL (multi-table delete) : " + idInsertSelect); string[] tableNames = persister.ConstraintOrderedTableNameClosure; string[][] columnNames = persister.ContraintOrderedTableKeyColumnClosure; string idSubselect = GenerateIdSubselect(persister); |
| ||||
if ( !Factory.Dialect.SupportsTemporaryTables) { throw new HibernateException("cannot perform multi-table updates using dialect not supporting temp tables"); } var updateStatement = (UpdateStatement) statement; FromElement fromElement = updateStatement.FromClause.GetFromElement(); string bulkTargetAlias = fromElement.TableAlias; persister = fromElement.Queryable; idInsertSelect = GenerateIdInsertSelect(persister, bulkTargetAlias, updateStatement.WhereClause); log.Debug("Generated ID-INSERT-SELECT SQL (multi-table update) : " + idInsertSelect); string[] tableNames = persister.ConstraintOrderedTableNameClosure; string[][] columnNames = persister.ContraintOrderedTableKeyColumnClosure; string idSubselect = GenerateIdSubselect(persister); |
| |||
if ( !Factory.Dialect.SupportsTemporaryTables) { throw new HibernateException( [[#variable6c5375c0]]); } var [[#variable70e49ac0]]= ( [[#variable2d305b60]])statement; FromElement fromElement = [[#variable70e49ac0]].FromClause.GetFromElement(); string bulkTargetAlias = fromElement.TableAlias; persister = fromElement.Queryable; idInsertSelect = GenerateIdInsertSelect(persister, bulkTargetAlias, [[#variable70e49ac0]].WhereClause); log.Debug( [[#variable6c79c200]]+ idInsertSelect); string[] tableNames = persister.ConstraintOrderedTableNameClosure; string[][] columnNames = persister.ContraintOrderedTableKeyColumnClosure; string idSubselect = GenerateIdSubselect(persister); |
CloneAbstraction |
Parameter Index | Clone Instance | Parameter Name | Value |
---|---|---|---|
1 | 1 | [[#6c5375c0]] | "cannot perform multi-table updates using dialect not supporting temp tables" |
1 | 2 | [[#6c5375c0]] | "cannot perform multi-table deletes using dialect not supporting temp tables" |
2 | 1 | [[#70e49ac0]] | updateStatement |
2 | 2 | [[#70e49ac0]] | deleteStatement |
3 | 1 | [[#2d305b60]] | UpdateStatement |
3 | 2 | [[#2d305b60]] | DeleteStatement |
4 | 1 | [[#6c79c200]] | "Generated ID-INSERT-SELECT SQL (multi-table update) : " |
4 | 2 | [[#6c79c200]] | "Generated ID-INSERT-SELECT SQL (multi-table delete) : " |