From: Paul H. <pha...@us...> - 2005-03-26 12:30:44
|
Update of /cvsroot/nhibernate/nhibernate/src/NHibernate/Impl In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv1268/nhibernate/src/NHibernate/Impl Modified Files: AbstractQueryImpl.cs SessionImpl.cs Log Message: Minor 2.1 sync changes needed for SqlLoader Index: SessionImpl.cs =================================================================== RCS file: /cvsroot/nhibernate/nhibernate/src/NHibernate/Impl/SessionImpl.cs,v retrieving revision 1.75 retrieving revision 1.76 diff -C2 -d -r1.75 -r1.76 *** SessionImpl.cs 18 Mar 2005 23:33:19 -0000 1.75 --- SessionImpl.cs 26 Mar 2005 12:30:24 -0000 1.76 *************** *** 857,861 **** if ( persister.HasCollections ) { ! // h2.1 has some extra code here for OnReplicateVisitor - is a new setting // that is only in h2.1 because of the method Replicate(object, ReplicateMode) WrapVisitor visitor = new WrapVisitor(this); --- 857,861 ---- if ( persister.HasCollections ) { ! // TODO - 2.1 has some extra code here for OnReplicateVisitor - is a new setting // that is only in h2.1 because of the method Replicate(object, ReplicateMode) WrapVisitor visitor = new WrapVisitor(this); Index: AbstractQueryImpl.cs =================================================================== RCS file: /cvsroot/nhibernate/nhibernate/src/NHibernate/Impl/AbstractQueryImpl.cs,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** AbstractQueryImpl.cs 6 Mar 2005 12:44:42 -0000 1.2 --- AbstractQueryImpl.cs 26 Mar 2005 12:30:23 -0000 1.3 *************** *** 2,9 **** using System.Collections; using System.Text; - using Iesi.Collections; - using NHibernate.Engine; using NHibernate.Property; using NHibernate.Proxy; --- 2,8 ---- using System.Collections; using System.Text; using Iesi.Collections; using NHibernate.Engine; + using NHibernate.Hql; using NHibernate.Property; using NHibernate.Proxy; *************** *** 30,33 **** --- 29,35 ---- private IDictionary namedParameters = new Hashtable( 4 ); private IDictionary namedParametersLists = new Hashtable( 4 ); + private bool cacheable; + private string cacheRegion; + private bool forceCacheRefresh; private static readonly object UNSET_PARAMETER = new Object(); private static readonly object UNSET_TYPE = new Object(); *************** *** 43,47 **** this.queryString = queryString; selection = new RowSelection(); - InitParameterBookKeeping(); } --- 45,48 ---- *************** *** 49,54 **** protected void VerifyParameters() { - actualNamedParameters = new ListSet( session.Factory.GetNamedParameters( queryString ) ); - if ( actualNamedParameters.Count != namedParameters.Count + namedParametersLists.Count ) { --- 50,53 ---- *************** *** 676,681 **** public IQuery SetParameterList( string name, ICollection vals, IType type ) { ! // HACK: Test for null should be removed once Filter parsing bug is resolved ! if ( actualNamedParameters != null && !actualNamedParameters.Contains(name) ) throw new ArgumentOutOfRangeException(string.Format("Parameter {0} does not exist as a named parameter in [{1}]", name, queryString)); --- 675,679 ---- public IQuery SetParameterList( string name, ICollection vals, IType type ) { ! if ( !actualNamedParameters.Contains(name) ) throw new ArgumentOutOfRangeException(string.Format("Parameter {0} does not exist as a named parameter in [{1}]", name, queryString)); *************** *** 709,713 **** string alias = name + i++ + StringHelper.Underscore; namedParams.Add( alias, new TypedValue( type, obj ) ); ! list.Append( ':' + alias ); if( i < vals.Count ) { --- 707,711 ---- string alias = name + i++ + StringHelper.Underscore; namedParams.Add( alias, new TypedValue( type, obj ) ); ! list.Append( ParserHelper.HqlVariablePrefix + alias ); if( i < vals.Count ) { *************** *** 716,720 **** } ! return StringHelper.Replace( queryString, ':' + name, list.ToString() ); } --- 714,718 ---- } ! return StringHelper.Replace( queryString, ParserHelper.HqlVariablePrefix + name, list.ToString() ); } *************** *** 737,742 **** private void InitParameterBookKeeping() { ! // HACK: Filter parsing bug causes this to fail e.g. select max(this.I) can't resolve 'this' ! //actualNamedParameters = new ListSet( session.Factory.GetNamedParameters( queryString ) ); positionalParameterCount = StringHelper.CountUnquoted( queryString, StringHelper.SqlParameter.ToCharArray()[0] ); } --- 735,753 ---- private void InitParameterBookKeeping() { ! StringTokenizer st = new StringTokenizer( queryString, ParserHelper.HqlSeparators ); ! ISet result = new HashedSet(); ! ! IEnumerator enumer = st.GetEnumerator(); ! while( enumer.MoveNext() ) ! { ! string str = (string) enumer.Current; ! if ( str.StartsWith( ParserHelper.HqlVariablePrefix ) ) ! { ! result.Add( str.Substring( 1 ) ); ! } ! } ! ! actualNamedParameters = result; ! // TODO: This is weak as it doesn't take account of ? embedded in the SQL positionalParameterCount = StringHelper.CountUnquoted( queryString, StringHelper.SqlParameter.ToCharArray()[0] ); } *************** *** 747,752 **** get { - // HACK: Remove once Filter parsing bug resolved - actualNamedParameters = new ListSet( session.Factory.GetNamedParameters( queryString ) ); string[ ] retVal = new String[actualNamedParameters.Count]; int i = 0; --- 758,761 ---- *************** *** 767,772 **** { System.Type clazz = bean.GetType(); - // HACK: Remove once Filter parsing bug resolved - actualNamedParameters = new ListSet( session.Factory.GetNamedParameters( queryString ) ); foreach( string namedParam in actualNamedParameters ) { --- 776,779 ---- |