From: <aye...@us...> - 2008-09-13 06:26:48
|
Revision: 3755 http://nhibernate.svn.sourceforge.net/nhibernate/?rev=3755&view=rev Author: ayenderahien Date: 2008-09-13 06:26:58 +0000 (Sat, 13 Sep 2008) Log Message: ----------- Applying modified patch for NH-1485 Modified Paths: -------------- trunk/nhibernate/src/NHibernate/Impl/MultiQueryImpl.cs Modified: trunk/nhibernate/src/NHibernate/Impl/MultiQueryImpl.cs =================================================================== --- trunk/nhibernate/src/NHibernate/Impl/MultiQueryImpl.cs 2008-09-09 20:10:30 UTC (rev 3754) +++ trunk/nhibernate/src/NHibernate/Impl/MultiQueryImpl.cs 2008-09-13 06:26:58 UTC (rev 3755) @@ -396,17 +396,44 @@ protected virtual IList GetResultList(IList results) { - if (resultTransformer != null) + for (int i = 0, len = results.Count; i < len; ++i) { - for (int i = 0, len = results.Count; i < len; ++i) + IList subList = (IList)results[i]; + QueryParameters parameter = Parameters[i]; + HolderInstantiator holderInstantiator = GetHolderInstantiator(parameter); + if (holderInstantiator.IsRequired) { - results[i] = resultTransformer.TransformList((IList)results[i]); + for (int j = 0; j < subList.Count; j++) + { + object[] row = subList[j] as object[]; + if(row!=null) //if the result is array + subList[j] = holderInstantiator.Instantiate(row); + } + + if (holderInstantiator.ResultTransformer != null) + { + results[i] = holderInstantiator.ResultTransformer.TransformList(subList); + } } } return results; } + private HolderInstantiator GetHolderInstantiator(QueryParameters parameter) + { + //if multi query has result transformer, then this will override IQuery transformations + if (resultTransformer != null) + { + return new HolderInstantiator(resultTransformer, null); + } + if (parameter.ResultTransformer!=null) + { + return new HolderInstantiator(parameter.ResultTransformer, null); + } + return HolderInstantiator.NoopInstantiator; + } + protected ArrayList DoList() { IDbCommand command = PrepareQueriesCommand(); @@ -484,6 +511,7 @@ { log.Debug(string.Format("done processing result set ({0} rows)", count)); } + results.Add(tempResults); if (log.IsDebugEnabled) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <fab...@us...> - 2009-04-16 16:44:20
|
Revision: 4182 http://nhibernate.svn.sourceforge.net/nhibernate/?rev=4182&view=rev Author: fabiomaulo Date: 2009-04-16 16:44:03 +0000 (Thu, 16 Apr 2009) Log Message: ----------- Minor Modified Paths: -------------- trunk/nhibernate/src/NHibernate/Impl/MultiQueryImpl.cs Modified: trunk/nhibernate/src/NHibernate/Impl/MultiQueryImpl.cs =================================================================== --- trunk/nhibernate/src/NHibernate/Impl/MultiQueryImpl.cs 2009-04-15 14:17:10 UTC (rev 4181) +++ trunk/nhibernate/src/NHibernate/Impl/MultiQueryImpl.cs 2009-04-16 16:44:03 UTC (rev 4182) @@ -8,7 +8,6 @@ using NHibernate.Driver; using NHibernate.Engine; using NHibernate.Hql; -using NHibernate.Hql.Classic; using NHibernate.SqlCommand; using NHibernate.SqlTypes; using NHibernate.Transform; @@ -571,12 +570,12 @@ query.VerifyParameters(); IQueryTranslator[] queryTranslators = session.GetQueries(query.ExpandParameterLists(queryParameters.NamedParameters), false); - foreach (QueryTranslator translator in queryTranslators) + foreach (IQueryTranslator translator in queryTranslators) { translators.Add(translator); parameters.Add(queryParameters); queryParameters = GetFilteredQueryParameters(queryParameters, translator); - SqlCommandInfo commandInfo = translator.GetQueryStringAndTypes(session, queryParameters); + SqlCommandInfo commandInfo = translator.Loader.GetQueryStringAndTypes(session, queryParameters); sqlString = sqlString.Append(commandInfo.Text).Append(session.Factory.ConnectionProvider.Driver.MultipleQueriesSeparator).Append(Environment.NewLine); types.AddRange(commandInfo.ParameterTypes); } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <fab...@us...> - 2009-05-22 12:55:57
|
Revision: 4356 http://nhibernate.svn.sourceforge.net/nhibernate/?rev=4356&view=rev Author: fabiomaulo Date: 2009-05-22 12:55:51 +0000 (Fri, 22 May 2009) Log Message: ----------- Minor Modified Paths: -------------- trunk/nhibernate/src/NHibernate/Impl/MultiQueryImpl.cs Modified: trunk/nhibernate/src/NHibernate/Impl/MultiQueryImpl.cs =================================================================== --- trunk/nhibernate/src/NHibernate/Impl/MultiQueryImpl.cs 2009-05-22 08:14:55 UTC (rev 4355) +++ trunk/nhibernate/src/NHibernate/Impl/MultiQueryImpl.cs 2009-05-22 12:55:51 UTC (rev 4356) @@ -22,7 +22,10 @@ private static readonly ILog log = LogManager.GetLogger(typeof(MultiQueryImpl)); private readonly List<IQuery> queries = new List<IQuery>(); - private readonly List<IQueryTranslator> translators = new List<IQueryTranslator>(); private readonly IList<System.Type> resultCollectionGenericType = new List<System.Type>(); private readonly List<QueryParameters> parameters = new List<QueryParameters>(); private IList queryResults; + private readonly List<IQueryTranslator> translators = new List<IQueryTranslator>(); + private readonly IList<System.Type> resultCollectionGenericType = new List<System.Type>(); + private readonly List<QueryParameters> parameters = new List<QueryParameters>(); + private IList queryResults; private readonly Dictionary<string, int> criteriaResultPositions = new Dictionary<string, int>(); private string cacheRegion; private int commandTimeout = RowSelection.NoValue; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <fab...@us...> - 2010-08-06 23:19:44
|
Revision: 5121 http://nhibernate.svn.sourceforge.net/nhibernate/?rev=5121&view=rev Author: fabiomaulo Date: 2010-08-06 23:19:38 +0000 (Fri, 06 Aug 2010) Log Message: ----------- Minor (renamed private field) Modified Paths: -------------- trunk/nhibernate/src/NHibernate/Impl/MultiQueryImpl.cs Modified: trunk/nhibernate/src/NHibernate/Impl/MultiQueryImpl.cs =================================================================== --- trunk/nhibernate/src/NHibernate/Impl/MultiQueryImpl.cs 2010-08-06 23:17:22 UTC (rev 5120) +++ trunk/nhibernate/src/NHibernate/Impl/MultiQueryImpl.cs 2010-08-06 23:19:38 UTC (rev 5121) @@ -26,7 +26,7 @@ private readonly IList<System.Type> resultCollectionGenericType = new List<System.Type>(); private readonly List<QueryParameters> parameters = new List<QueryParameters>(); private IList queryResults; - private readonly Dictionary<string, int> criteriaResultPositions = new Dictionary<string, int>(); + private readonly Dictionary<string, int> queryResultPositions = new Dictionary<string, int>(); private string cacheRegion; private int commandTimeout = RowSelection.NoValue; private bool isCacheable; @@ -320,7 +320,7 @@ public IMultiQuery Add<T>(string key, IQuery query) { ThrowIfKeyAlreadyExists(key); - criteriaResultPositions.Add(key, AddQueryForLaterExecutionAndReturnIndexOfQuery(typeof(T), query)); + queryResultPositions.Add(key, AddQueryForLaterExecutionAndReturnIndexOfQuery(typeof(T), query)); return this; } @@ -682,12 +682,12 @@ queryResults = List(); } - if (!criteriaResultPositions.ContainsKey(key)) + if (!queryResultPositions.ContainsKey(key)) { throw new InvalidOperationException(String.Format("The key '{0}' is unknown", key)); } - return queryResults[criteriaResultPositions[key]]; + return queryResults[queryResultPositions[key]]; } private int BindLimitParametersFirstIfNeccesary(IDbCommand command, int queryIndex, int colIndex) @@ -801,7 +801,7 @@ private void ThrowIfKeyAlreadyExists(string key) { - if (criteriaResultPositions.ContainsKey(key)) + if (queryResultPositions.ContainsKey(key)) { throw new InvalidOperationException(String.Format("The key '{0}' already exists", key)); } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <fab...@us...> - 2010-08-07 12:34:25
|
Revision: 5122 http://nhibernate.svn.sourceforge.net/nhibernate/?rev=5122&view=rev Author: fabiomaulo Date: 2010-08-07 12:34:19 +0000 (Sat, 07 Aug 2010) Log Message: ----------- minor minor Modified Paths: -------------- trunk/nhibernate/src/NHibernate/Impl/MultiQueryImpl.cs Modified: trunk/nhibernate/src/NHibernate/Impl/MultiQueryImpl.cs =================================================================== --- trunk/nhibernate/src/NHibernate/Impl/MultiQueryImpl.cs 2010-08-06 23:19:38 UTC (rev 5121) +++ trunk/nhibernate/src/NHibernate/Impl/MultiQueryImpl.cs 2010-08-07 12:34:19 UTC (rev 5122) @@ -669,7 +669,6 @@ private int BindQueryParameters(IDbCommand command, int queryIndex, int colIndex) { - IQueryTranslator translator = Translators[queryIndex]; QueryParameters parameter = Parameters[queryIndex]; colIndex += parameter.BindParameters(command, colIndex, session); return colIndex; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <fab...@us...> - 2011-06-18 17:19:44
|
Revision: 5952 http://nhibernate.svn.sourceforge.net/nhibernate/?rev=5952&view=rev Author: fabiomaulo Date: 2011-06-18 17:19:38 +0000 (Sat, 18 Jun 2011) Log Message: ----------- Removed no more needed code Modified Paths: -------------- trunk/nhibernate/src/NHibernate/Impl/MultiQueryImpl.cs Modified: trunk/nhibernate/src/NHibernate/Impl/MultiQueryImpl.cs =================================================================== --- trunk/nhibernate/src/NHibernate/Impl/MultiQueryImpl.cs 2011-06-18 15:57:58 UTC (rev 5951) +++ trunk/nhibernate/src/NHibernate/Impl/MultiQueryImpl.cs 2011-06-18 17:19:38 UTC (rev 5952) @@ -1,9 +1,7 @@ using System; using System.Collections; using System.Collections.Generic; -using System.Data.Common; using System.Diagnostics; -using System.Linq; using Iesi.Collections; using Iesi.Collections.Generic; using NHibernate.Cache; @@ -664,22 +662,6 @@ } } - private static QueryParameters GetFilteredQueryParameters(QueryParameters queryParameters, ITranslator translator) - { - QueryParameters filteredQueryParameters = queryParameters; - Dictionary<string, TypedValue> namedParameters = new Dictionary<string, TypedValue>(queryParameters.NamedParameters); - filteredQueryParameters.NamedParameters.Clear(); - foreach (string paramName in translator.GetNamedParameterNames()) - { - TypedValue v; - if (namedParameters.TryGetValue(paramName, out v)) - { - filteredQueryParameters.NamedParameters.Add(paramName, v); - } - } - return filteredQueryParameters; - } - public object GetResult(string key) { if (queryResults == null) @@ -818,7 +800,6 @@ IType[] ReturnTypes { get; } string[] ReturnAliases { get; } ICollection<string> QuerySpaces { get; } - IEnumerable<string> GetNamedParameterNames(); } private class HqlTranslatorWrapper : ITranslator @@ -849,11 +830,6 @@ { get { return innerTranslator.ReturnAliases; } } - - public IEnumerable<string> GetNamedParameterNames() - { - return innerTranslator.GetParameterTranslations().GetNamedParameterNames(); - } } private class SqlTranslator : ITranslator @@ -887,11 +863,6 @@ { get { return loader.ReturnAliases; } } - - public IEnumerable<string> GetNamedParameterNames() - { - return loader.NamedParameters; - } } } } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |