Yes, I will apply this fix to 3.3.x

Also these issues are related.

https://nhibernate.jira.com/browse/NH-3005 -- see Oskar's comment about how
to resolve this issue in general.
https://nhibernate.jira.com/browse/NH-3237 - removed cast in Min and Max
https://nhibernate.jira.com/browse/NH-3357 - added support for
datetimeofset.

Best Regards,
Alex


2013/5/31 Diego Mijelshon <[email protected]>

> Ah, I see this was fixed in 8c2e24401ca501d50829e745471e728c0c47f7bb.
> The cast removal could probably be applied to 3.x too.
>
>
> On Thu, May 30, 2013 at 10:49 AM, Alexander I. Zaytsev 
> <[email protected]>wrote:
>
>> Query should work with NH master branch.
>>
>>
>> 2013/5/31 Alexander I. Zaytsev <[email protected]>
>>
>> I see....
>>>
>>> Linq inserts cast here.
>>>
>>>
>>> 2013/5/31 Diego Mijelshon <[email protected]>
>>>
>>>> Yes. See test fixture at
>>>> https://github.com/diegose/NHibernate.Diegose/blob/master/NodaTime/Test/LocalDateFixture.cs
>>>>
>>>>
>>>> On Thu, May 30, 2013 at 9:02 AM, Alexander I. Zaytsev <[email protected]
>>>> > wrote:
>>>>
>>>>> Ok,
>>>>> does this query work in HQL?
>>>>>
>>>>>
>>>>> 2013/5/30 Diego Mijelshon <[email protected]>
>>>>>
>>>>>> Alex - that's what the NHibernate.NodaTime project is about! :-)
>>>>>> I'll wait 'til you re-read my original email...
>>>>>> ...ok, we're back :-)
>>>>>> So, the problem is, my type works fine for most operations (schema
>>>>>> creation, CRUD, HQL, and LINQ queries that include the properties as
>>>>>> scalar). But aggregations fail because the tree includes an "HqlIdent",
>>>>>> which I have no idea what represents, but is hardcoded for primitive 
>>>>>> types.
>>>>>>
>>>>>>
>>>>>> On Wed, May 29, 2013 at 8:34 PM, Alexander I. Zaytsev <
>>>>>> [email protected]> wrote:
>>>>>>
>>>>>>> I mean create a IUserType to handle NodaTime and register it in
>>>>>>> mapping.
>>>>>>>
>>>>>>> Regards,
>>>>>>> Alex
>>>>>>>
>>>>>>>
>>>>>>> 2013/5/29 Diego Mijelshon <[email protected]>
>>>>>>>
>>>>>>>> Register where, Alex?
>>>>>>>>
>>>>>>>>
>>>>>>>> On Tue, May 28, 2013 at 7:31 PM, Alexander I. Zaytsev <
>>>>>>>> [email protected]> wrote:
>>>>>>>>
>>>>>>>>> Hi Diego,
>>>>>>>>>
>>>>>>>>> Probably you need to register usertype for nodatime.
>>>>>>>>>
>>>>>>>>> Regards,
>>>>>>>>> Alex
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> 2013/5/29 Diego Mijelshon <[email protected]>
>>>>>>>>>
>>>>>>>>>> session.Query<Foo>().Max(x => x.Date);
>>>>>>>>>>
>>>>>>>>>> This is the full code of the method I did not commit in
>>>>>>>>>> LocalDateFixture:
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>         [Test]
>>>>>>>>>>         public void ValuesCanBeRetrievedFromLinqQueries()
>>>>>>>>>>         {
>>>>>>>>>>             object id;
>>>>>>>>>>             using (var session = sessionFactory.OpenSession())
>>>>>>>>>>             using (var tx = session.BeginTransaction())
>>>>>>>>>>             {
>>>>>>>>>>                 id = session.Save(new Foo { Date = someDate });
>>>>>>>>>>                 tx.Commit();
>>>>>>>>>>             }
>>>>>>>>>>             using (var session = sessionFactory.OpenSession())
>>>>>>>>>>             using (var tx = session.BeginTransaction())
>>>>>>>>>>             {
>>>>>>>>>>                 var maxDate = session.Query<Foo>().Max(x =>
>>>>>>>>>> x.Date);
>>>>>>>>>>                 Assert.AreEqual(someDate, maxDate);
>>>>>>>>>>             }
>>>>>>>>>>         }
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> Thanks
>>>>>>>>>> Diego
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> On Mon, May 27, 2013 at 11:13 PM, Alexander I. Zaytsev <
>>>>>>>>>> [email protected]> wrote:
>>>>>>>>>>
>>>>>>>>>>> Hi Diego,
>>>>>>>>>>>
>>>>>>>>>>> Can you please provide a query?
>>>>>>>>>>>
>>>>>>>>>>> Regards,
>>>>>>>>>>> Alexander
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>> 2013/5/28 Diego Mijelshon <[email protected]>
>>>>>>>>>>>
>>>>>>>>>>>>  Hi guys.
>>>>>>>>>>>>
>>>>>>>>>>>> I'm trying to implement some NodaTime mapping support for NH.
>>>>>>>>>>>> This is in a proof-of-concept state now, but there's already a
>>>>>>>>>>>> Nuget package, NHibernate.NodaTime. You can check it out.
>>>>>>>>>>>> Here's one of the first roadblocks I've found: when trying to
>>>>>>>>>>>> query using LINQ aggregate methods, I run into the following 
>>>>>>>>>>>> exception:
>>>>>>>>>>>>
>>>>>>>>>>>> System.NotSupportedException : Don't currently support idents
>>>>>>>>>>>> of type LocalDate
>>>>>>>>>>>>    at NHibernate.Hql.Ast.HqlIdent..ctor(IASTFactory factory,
>>>>>>>>>>>> Type type)
>>>>>>>>>>>>    at NHibernate.Hql.Ast.HqlCast..ctor(IASTFactory factory,
>>>>>>>>>>>> HqlExpression expression, Type type)
>>>>>>>>>>>>    at NHibernate.Hql.Ast.HqlTreeBuilder.Cast(HqlExpression
>>>>>>>>>>>> expression, Type type)
>>>>>>>>>>>>    at
>>>>>>>>>>>> NHibernate.Linq.Visitors.HqlGeneratorExpressionTreeVisitor.VisitNhMax(NhMaxExpression
>>>>>>>>>>>> expression)
>>>>>>>>>>>>    at
>>>>>>>>>>>> NHibernate.Linq.Visitors.HqlGeneratorExpressionTreeVisitor.VisitExpression(Expression
>>>>>>>>>>>> expression)
>>>>>>>>>>>>    at
>>>>>>>>>>>> NHibernate.Linq.Visitors.HqlGeneratorExpressionTreeVisitor.Visit(Expression
>>>>>>>>>>>> expression)
>>>>>>>>>>>>    at
>>>>>>>>>>>> NHibernate.Linq.Visitors.SelectClauseVisitor.VisitExpression(Expression
>>>>>>>>>>>> expression)
>>>>>>>>>>>>    at
>>>>>>>>>>>> NHibernate.Linq.Visitors.SelectClauseVisitor.Visit(Expression 
>>>>>>>>>>>> expression)
>>>>>>>>>>>>    at
>>>>>>>>>>>> NHibernate.Linq.Visitors.QueryModelVisitor.VisitSelectClause(SelectClause
>>>>>>>>>>>> selectClause, QueryModel queryModel)
>>>>>>>>>>>>    at
>>>>>>>>>>>> Remotion.Linq.Clauses.SelectClause.Accept(IQueryModelVisitor 
>>>>>>>>>>>> visitor,
>>>>>>>>>>>> QueryModel queryModel)
>>>>>>>>>>>>    at
>>>>>>>>>>>> Remotion.Linq.QueryModelVisitorBase.VisitQueryModel(QueryModel 
>>>>>>>>>>>> queryModel)
>>>>>>>>>>>>    at NHibernate.Linq.Visitors.QueryModelVisitor.Visit()
>>>>>>>>>>>>    at
>>>>>>>>>>>> NHibernate.Linq.Visitors.QueryModelVisitor.GenerateHqlQuery(QueryModel
>>>>>>>>>>>> queryModel, VisitorParameters parameters, Boolean root)
>>>>>>>>>>>>    at
>>>>>>>>>>>> NHibernate.Linq.NhLinqExpression.Translate(ISessionFactoryImplementor
>>>>>>>>>>>> sessionFactory)
>>>>>>>>>>>>    at
>>>>>>>>>>>> NHibernate.Hql.Ast.ANTLR.ASTQueryTranslatorFactory.CreateQueryTranslators(String
>>>>>>>>>>>> queryIdentifier, IQueryExpression queryExpression, String 
>>>>>>>>>>>> collectionRole,
>>>>>>>>>>>> Boolean shallow, IDictionary`2 filters, ISessionFactoryImplementor 
>>>>>>>>>>>> factory)
>>>>>>>>>>>>    at
>>>>>>>>>>>> NHibernate.Engine.Query.HQLExpressionQueryPlan.CreateTranslators(String
>>>>>>>>>>>> expressionStr, IQueryExpression queryExpression, String 
>>>>>>>>>>>> collectionRole,
>>>>>>>>>>>> Boolean shallow, IDictionary`2 enabledFilters, 
>>>>>>>>>>>> ISessionFactoryImplementor
>>>>>>>>>>>> factory)
>>>>>>>>>>>>    at
>>>>>>>>>>>> NHibernate.Engine.Query.HQLExpressionQueryPlan..ctor(String 
>>>>>>>>>>>> expressionStr,
>>>>>>>>>>>> IQueryExpression queryExpression, String collectionRole, Boolean 
>>>>>>>>>>>> shallow,
>>>>>>>>>>>> IDictionary`2 enabledFilters, ISessionFactoryImplementor factory)
>>>>>>>>>>>>    at
>>>>>>>>>>>> NHibernate.Engine.Query.HQLExpressionQueryPlan..ctor(String 
>>>>>>>>>>>> expressionStr,
>>>>>>>>>>>> IQueryExpression queryExpression, Boolean shallow, IDictionary`2
>>>>>>>>>>>> enabledFilters, ISessionFactoryImplementor factory)
>>>>>>>>>>>>    at
>>>>>>>>>>>> NHibernate.Engine.Query.QueryPlanCache.GetHQLQueryPlan(IQueryExpression
>>>>>>>>>>>> queryExpression, Boolean shallow, IDictionary`2 enabledFilters)
>>>>>>>>>>>>    at
>>>>>>>>>>>> NHibernate.Impl.AbstractSessionImpl.GetHQLQueryPlan(IQueryExpression
>>>>>>>>>>>> queryExpression, Boolean shallow)
>>>>>>>>>>>>    at
>>>>>>>>>>>> NHibernate.Impl.AbstractSessionImpl.CreateQuery(IQueryExpression
>>>>>>>>>>>> queryExpression)
>>>>>>>>>>>>    at
>>>>>>>>>>>> NHibernate.Linq.DefaultQueryProvider.PrepareQuery(Expression 
>>>>>>>>>>>> expression,
>>>>>>>>>>>> ref IQuery query, ref NhLinqExpression nhQuery)
>>>>>>>>>>>>    at NHibernate.Linq.DefaultQueryProvider.Execute(Expression
>>>>>>>>>>>> expression)
>>>>>>>>>>>>    at NHibernate.Linq.DefaultQueryProvider.Execute(Expression
>>>>>>>>>>>> expression)
>>>>>>>>>>>>    at System.Linq.Queryable.Max(IQueryable`1 source,
>>>>>>>>>>>> Expression`1 selector)
>>>>>>>>>>>>    at [my code]
>>>>>>>>>>>>
>>>>>>>>>>>> It looks like the Hql Ast generation fails for anything that is
>>>>>>>>>>>> not a native type.
>>>>>>>>>>>> Is there a workaround from the Linq side (generators) or do I
>>>>>>>>>>>> have to patch the core?
>>>>>>>>>>>>
>>>>>>>>>>>> Thanks!
>>>>>>>>>>>> Diego
>>>>>>>>>>>>
>>>>>>>>>>>> --
>>>>>>>>>>>>
>>>>>>>>>>>> ---
>>>>>>>>>>>> You received this message because you are subscribed to the
>>>>>>>>>>>> Google Groups "nhibernate-development" group.
>>>>>>>>>>>> To unsubscribe from this group and stop receiving emails from
>>>>>>>>>>>> it, send an email to
>>>>>>>>>>>> [email protected].
>>>>>>>>>>>> For more options, visit
>>>>>>>>>>>> https://groups.google.com/groups/opt_out.
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>  --
>>>>>>>>>>>
>>>>>>>>>>> ---
>>>>>>>>>>> You received this message because you are subscribed to the
>>>>>>>>>>> Google Groups "nhibernate-development" group.
>>>>>>>>>>> To unsubscribe from this group and stop receiving emails from
>>>>>>>>>>> it, send an email to
>>>>>>>>>>> [email protected].
>>>>>>>>>>> For more options, visit https://groups.google.com/groups/opt_out
>>>>>>>>>>> .
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>  --
>>>>>>>>>>
>>>>>>>>>> ---
>>>>>>>>>> You received this message because you are subscribed to the
>>>>>>>>>> Google Groups "nhibernate-development" group.
>>>>>>>>>> To unsubscribe from this group and stop receiving emails from it,
>>>>>>>>>> send an email to
>>>>>>>>>> [email protected].
>>>>>>>>>> For more options, visit https://groups.google.com/groups/opt_out.
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>
>>>>>>>>>  --
>>>>>>>>>
>>>>>>>>> ---
>>>>>>>>> You received this message because you are subscribed to the Google
>>>>>>>>> Groups "nhibernate-development" group.
>>>>>>>>> To unsubscribe from this group and stop receiving emails from it,
>>>>>>>>> send an email to
>>>>>>>>> [email protected].
>>>>>>>>> For more options, visit https://groups.google.com/groups/opt_out.
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>
>>>>>>>>  --
>>>>>>>>
>>>>>>>> ---
>>>>>>>> You received this message because you are subscribed to the Google
>>>>>>>> Groups "nhibernate-development" group.
>>>>>>>> To unsubscribe from this group and stop receiving emails from it,
>>>>>>>> send an email to
>>>>>>>> [email protected].
>>>>>>>> For more options, visit https://groups.google.com/groups/opt_out.
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>
>>>>>>>  --
>>>>>>>
>>>>>>> ---
>>>>>>> You received this message because you are subscribed to the Google
>>>>>>> Groups "nhibernate-development" group.
>>>>>>> To unsubscribe from this group and stop receiving emails from it,
>>>>>>> send an email to [email protected]
>>>>>>> .
>>>>>>> For more options, visit https://groups.google.com/groups/opt_out.
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>
>>>>>>  --
>>>>>>
>>>>>> ---
>>>>>> You received this message because you are subscribed to the Google
>>>>>> Groups "nhibernate-development" group.
>>>>>> To unsubscribe from this group and stop receiving emails from it,
>>>>>> send an email to [email protected].
>>>>>> For more options, visit https://groups.google.com/groups/opt_out.
>>>>>>
>>>>>>
>>>>>>
>>>>>
>>>>>  --
>>>>>
>>>>> ---
>>>>> You received this message because you are subscribed to the Google
>>>>> Groups "nhibernate-development" group.
>>>>> To unsubscribe from this group and stop receiving emails from it, send
>>>>> an email to [email protected].
>>>>> For more options, visit https://groups.google.com/groups/opt_out.
>>>>>
>>>>>
>>>>>
>>>>
>>>>  --
>>>>
>>>> ---
>>>> You received this message because you are subscribed to the Google
>>>> Groups "nhibernate-development" group.
>>>> To unsubscribe from this group and stop receiving emails from it, send
>>>> an email to [email protected].
>>>> For more options, visit https://groups.google.com/groups/opt_out.
>>>>
>>>>
>>>>
>>>
>>>
>>  --
>>
>> ---
>> You received this message because you are subscribed to the Google Groups
>> "nhibernate-development" group.
>> To unsubscribe from this group and stop receiving emails from it, send an
>> email to [email protected].
>> For more options, visit https://groups.google.com/groups/opt_out.
>>
>>
>>
>
>  --
>
> ---
> You received this message because you are subscribed to the Google Groups
> "nhibernate-development" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to [email protected].
> For more options, visit https://groups.google.com/groups/opt_out.
>
>
>

-- 

--- 
You received this message because you are subscribed to the Google Groups 
"nhibernate-development" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
For more options, visit https://groups.google.com/groups/opt_out.


Reply via email to