From: Michael D. <mik...@us...> - 2004-09-14 17:50:04
|
Update of /cvsroot/nhibernate/nhibernate/src/NHibernate/Id In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv11256/Id Modified Files: SequenceGenerator.cs Log Message: Major refactoring with NDataReader and Batcher. NHibernate now uses an IDataReader returned from the Driver for as long as possible before converting to a NDataReader. This has nice perf gains on the simple performance test in the Test Fixtures. Index: SequenceGenerator.cs =================================================================== RCS file: /cvsroot/nhibernate/nhibernate/src/NHibernate/Id/SequenceGenerator.cs,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** SequenceGenerator.cs 28 Aug 2004 04:24:20 -0000 1.4 --- SequenceGenerator.cs 14 Sep 2004 17:49:54 -0000 1.5 *************** *** 42,59 **** public virtual object Generate(ISessionImplementor session, object obj) { ! IDbCommand st = session.Batcher.PrepareCommand( new SqlString(sql) ); try { ! IDataReader rs = st.ExecuteReader(); object result = null; ! try ! { ! rs.Read(); ! result = IdentifierGeneratorFactory.Get(rs, returnClass); ! } ! finally ! { ! rs.Close(); ! } log.Debug("sequence ID generated: " + result); --- 42,53 ---- public virtual object Generate(ISessionImplementor session, object obj) { ! IDbCommand cmd = session.Batcher.PrepareCommand( new SqlString(sql) ); ! IDataReader reader = null; try { ! reader = session.Batcher.ExecuteReader( cmd ); object result = null; ! reader.Read(); ! result = IdentifierGeneratorFactory.Get(reader, returnClass); log.Debug("sequence ID generated: " + result); *************** *** 66,70 **** finally { ! session.Batcher.CloseCommand(st); } } --- 60,64 ---- finally { ! session.Batcher.CloseCommand( cmd, reader); } } |