|
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.
|