From: <fab...@us...> - 2009-05-04 14:22:19
|
Revision: 4230 http://nhibernate.svn.sourceforge.net/nhibernate/?rev=4230&view=rev Author: fabiomaulo Date: 2009-05-04 13:34:20 +0000 (Mon, 04 May 2009) Log Message: ----------- Continue porting HQL executable Modified Paths: -------------- trunk/nhibernate/src/NHibernate/Hql/Ast/ANTLR/Exec/AbstractStatementExecutor.cs trunk/nhibernate/src/NHibernate/Hql/Ast/ANTLR/Exec/BasicExecutor.cs trunk/nhibernate/src/NHibernate.Test/HQL/Ast/BulkManipulation.cs Modified: trunk/nhibernate/src/NHibernate/Hql/Ast/ANTLR/Exec/AbstractStatementExecutor.cs =================================================================== --- trunk/nhibernate/src/NHibernate/Hql/Ast/ANTLR/Exec/AbstractStatementExecutor.cs 2009-05-04 05:09:41 UTC (rev 4229) +++ trunk/nhibernate/src/NHibernate/Hql/Ast/ANTLR/Exec/AbstractStatementExecutor.cs 2009-05-04 13:34:20 UTC (rev 4230) @@ -1,5 +1,8 @@ using System; +using NHibernate.Action; using NHibernate.Engine; +using NHibernate.Event; +using NHibernate.Persister.Entity; using NHibernate.SqlCommand; using log4net; @@ -21,5 +24,19 @@ public abstract SqlString[] SqlStatements{get;} public abstract int Execute(QueryParameters parameters, ISessionImplementor session); + + protected abstract IQueryable[] AffectedQueryables { get; } + + protected virtual void CoordinateSharedCacheCleanup(ISessionImplementor session) + { + var action = new BulkOperationCleanupAction(session, AffectedQueryables); + + action.Init(); + + if (session.IsEventSource) + { + ((IEventSource)session).ActionQueue.AddAction(action); + } + } } } \ No newline at end of file Modified: trunk/nhibernate/src/NHibernate/Hql/Ast/ANTLR/Exec/BasicExecutor.cs =================================================================== --- trunk/nhibernate/src/NHibernate/Hql/Ast/ANTLR/Exec/BasicExecutor.cs 2009-05-04 05:09:41 UTC (rev 4229) +++ trunk/nhibernate/src/NHibernate/Hql/Ast/ANTLR/Exec/BasicExecutor.cs 2009-05-04 13:34:20 UTC (rev 4230) @@ -56,7 +56,7 @@ public override int Execute(QueryParameters parameters, ISessionImplementor session) { - //CoordinateSharedCacheCleanup(session); + CoordinateSharedCacheCleanup(session); IDbCommand st = null; RowSelection selection = parameters.RowSelection; @@ -101,5 +101,10 @@ "could not execute update query", sql); } } + + protected override IQueryable[] AffectedQueryables + { + get { return new[] { persister }; } + } } } \ No newline at end of file Modified: trunk/nhibernate/src/NHibernate.Test/HQL/Ast/BulkManipulation.cs =================================================================== --- trunk/nhibernate/src/NHibernate.Test/HQL/Ast/BulkManipulation.cs 2009-05-04 05:09:41 UTC (rev 4229) +++ trunk/nhibernate/src/NHibernate.Test/HQL/Ast/BulkManipulation.cs 2009-05-04 13:34:20 UTC (rev 4230) @@ -162,6 +162,6 @@ txn.Commit(); s.Close(); } - } + } } } \ No newline at end of file This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |