I only now noticed your github activity. Getting to it now.
On Thursday, October 9, 2014 9:42:10 AM UTC-4, Alexander Zaytsev wrote:
>
> Ok, here some results.
>
> I've managed to implement the feature, and it works, but tests seems to be
> incorrect.
>
> So...
>
> 1. I believe that correct grammar is
>
> orderExprs
> : orderExpr ( ASCENDING | DESCENDING )? (orderExprs)?
> ;
>
> orderExpr
> : { IsOrderExpressionResultVariableRef( (IASTNode) input.LT(1) ) }?
> resultVariableRef // not sure that _t is input.LT(1) but seems to be
> working.
> | expr
> ;
>
> resultVariableRef!
> @after {
> HandleResultVariableRef( $resultVariableRef.tree );
> }
> : i=identifier
> -> ^(RESULT_VARIABLE_REF [i.Tree.Text]) // $i.text does not work because
> tokenstream is empty.
> ;
>
> 2. SetColumnIndex was ported incorrectly, and it is always 0, so I fixed
> it.
> 3. DESC does apply only for last collumn of component (Address) object.
> This is not resolved in Hibernate yet
> https://hibernate.atlassian.net/browse/HHH-5574
> 4. Indents was fixed
> 5. Tests need to be fixed / improved
>
> The changes available at
> https://github.com/nhibernate/nhibernate-core/tree/NH-3035
>
> Best Regards,
> Alexander
>
> 2014-10-10 1:45 GMT+13:00 Alexander Zaytsev <[email protected]
> <javascript:>>:
>
>> I managed to implement this.
>>
>> 2014-10-10 1:09 GMT+13:00 Alexander Zaytsev <[email protected]
>> <javascript:>>:
>>
>>> Does it finally work?
>>>
>>> 2014-10-10 0:52 GMT+13:00 Stanley Goldman <[email protected]
>>> <javascript:>>:
>>>
>>>> Hey Alexander and Oskar,
>>>>
>>>> Thanks for the help.
>>>>
>>>> Oskar's comments pointed me in the right direction, so I've made some
>>>> progress.
>>>>
>>>> I just pushed my latest changes:
>>>> https://github.com/StanleyGoldman/nhibernate-core/compare/NH-3035
>>>>
>>>> Alexander, please check my changes before you do any work.
>>>>
>>>> I found the partial class HqlSqlWalker and added the
>>>> IsOrderExpressionResultVariableRef()
>>>> and handleResultVariableRef()
>>>>
>>>> in HqlSqlWalker.g I at least understand how to use
>>>> HandleResultVariableRef() now, I just don't know what value I'm supposed
>>>> to
>>>> send to IsOrderExpressionResultVariableRef().
>>>>
>>>> orderExpr
>>>>> : { IsOrderExpressionResultVariableRef(_t) }? resultVariableRef
>>>>> | expr
>>>>> ;
>>>>>
>>>>> resultVariableRef!
>>>>> : i=identifier {
>>>>> // Create a RESULT_VARIABLE_REF node instead of an IDENT node.
>>>>> ResultVariableRefNode resultVariableRef = (IASTNode)
>>>>> adaptor.Create(RESULT_VARIABLE_REF, i.Text);
>>>>> HandleResultVariableRef(resultVariableRef);
>>>>> }
>>>>> ;
>>>>>
>>>>
>>>> Thanks for all the help so far.
>>>> -Stan
>>>>
>>>>
>>>> On Thursday, October 9, 2014 6:56:24 AM UTC-4, Alexander Zaytsev wrote:
>>>>
>>>>> Hi Stanley,
>>>>>
>>>>> I'm trying to fix the HqlSqlWalker.g, I'll comback later.
>>>>>
>>>>> But it seems that you've forgot to port following code to
>>>>> HqlSqlWalker.cs:
>>>>> + protected boolean isOrderExpressionResultVariableRef(AST
>>>>> orderExpressionNode) throws SemanticException {
>>>>> + // ORDER BY is not supported in a subquery
>>>>> + // TODO: should an exception be thrown if an ORDER BY is in a
>>>>> subquery?
>>>>> + if ( ! isSubQuery() &&
>>>>> + orderExpressionNode.getType() == IDENT &&
>>>>> + selectExpressionsByResultVariable.containsKey(
>>>>> orderExpressionNode.getText() ) ) {
>>>>> + return true;
>>>>> + }
>>>>> + return false;
>>>>> + }
>>>>> +
>>>>> + protected void handleResultVariableRef(AST resultVariableRef)
>>>>> throws SemanticException {
>>>>> + if ( isSubQuery() ) {
>>>>> + throw new SemanticException(
>>>>> + "References to result variables in subqueries are not supported."
>>>>> + );
>>>>> + }
>>>>> + ( ( ResultVariableRefNode ) resultVariableRef ).setSelectExpression(
>>>>> + selectExpressionsByResultVariable.get( resultVariableRef.getText() )
>>>>> + );
>>>>> + }
>>>>> +
>>>>>
>>>>> Best Regards,
>>>>> Alexander
>>>>>
>>>>> 2014-10-09 10:38 GMT+13:00 Oskar Berggren <[email protected]>:
>>>>>
>>>>>> In SqlASTFactory.java there is (addition in the diff):
>>>>>> + case RESULT_VARIABLE_REF:
>>>>>> + return ResultVariableRefNode.class;
>>>>>>
>>>>>>
>>>>>> A class with otherwise similar code in NHibernate seems to be
>>>>>> HqlSqlWalkerTreeAdaptor.
>>>>>>
>>>>>> /Oskar
>>>>>>
>>>>>>
>>>>>> 2014-10-08 20:45 GMT+02:00 Stanley Goldman <[email protected]>:
>>>>>>
>>>>>> Still looking for some help here. I will code most of whatever needs
>>>>>>> to be fixed.
>>>>>>> I just need some direction from someone who knows this better than I
>>>>>>> do.
>>>>>>>
>>>>>>>
>>>>>>> On Sunday, October 5, 2014 10:39:30 AM UTC-4, Stanley Goldman wrote:
>>>>>>>>
>>>>>>>> Hello,
>>>>>>>>
>>>>>>>> I'm developing for Orchard CMS and I came across this bug.
>>>>>>>>
>>>>>>>> https://nhibernate.jira.com/browse/NH-3035
>>>>>>>>
>>>>>>>> Which I see has been fixed in Hibernate.
>>>>>>>>
>>>>>>>> https://hibernate.atlassian.net/browse/HHH-892
>>>>>>>>
>>>>>>>> https://github.com/davidmc24/hibernate-core/commit/13699d792
>>>>>>>> b9f69fa13a1540617db71109aa9688e
>>>>>>>>
>>>>>>>> At first I felt confident that I would be able to work these
>>>>>>>> changes in.
>>>>>>>> I feel i successfully ported the unit tests and most of the object
>>>>>>>> changes.
>>>>>>>> I'm hoping I can get some help with the n-hibernate equivalents in
>>>>>>>> HqlSqlGenerator.g and SqlGenerator.g
>>>>>>>>
>>>>>>>> https://github.com/StanleyGoldman/nhibernate-core/compare/NH-3035
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>> For instance this chunk
>>>>>>>>
>>>>>>>> orderExprs
>>>>>>>>> : expr ( ASCENDING | DESCENDING )? (orderExprs)?
>>>>>>>>> : orderExpr ( ASCENDING | DESCENDING )? (orderExprs)?
>>>>>>>>> ;
>>>>>>>>>
>>>>>>>>> orderExpr
>>>>>>>>> : { isOrderExpressionResultVariableRef( _t ) }?
>>>>>>>>> resultVariableRef
>>>>>>>>> | expr
>>>>>>>>> ;
>>>>>>>>>
>>>>>>>>> resultVariableRef!
>>>>>>>>> : i:identifier {
>>>>>>>>> // Create a RESULT_VARIABLE_REF node instead of an IDENT
>>>>>>>>> node.
>>>>>>>>> #resultVariableRef = #([RESULT_VARIABLE_REF, i.getText()]);
>>>>>>>>> handleResultVariableRef(#resultVariableRef);
>>>>>>>>> }
>>>>>>>>> ;
>>>>>>>>>
>>>>>>>>
>>>>>>>> I'm not sure how to create a new instance of ResultVariableRefNode
>>>>>>>> equivalent to the one above.
>>>>>>>>
>>>>>>>> orderExprs
>>>>>>>>> : orderExpr ( ASCENDING | DESCENDING )? (orderExprs)?
>>>>>>>>> ;
>>>>>>>>>
>>>>>>>>> orderExpr
>>>>>>>>> : { IsOrderExpressionResultVariableRef( _t ) }?
>>>>>>>>> resultVariableRef
>>>>>>>>> | expr
>>>>>>>>> ;
>>>>>>>>>
>>>>>>>>> resultVariableRef!
>>>>>>>>> : i=identifier {
>>>>>>>>> // Create a RESULT_VARIABLE_REF node instead of an IDENT
>>>>>>>>> node.
>>>>>>>>> var resultVariableRef = new ResultVariableRefNode();
>>>>>>>>> HandleResultVariableRef(resultVariableRef);
>>>>>>>>> }
>>>>>>>>> ;
>>>>>>>>>
>>>>>>>>
>>>>>>>> Thanks in advance for any help.
>>>>>>>>
>>>>>>>> -Stanley
>>>>>>>>
>>>>>>> --
>>>>>>>
>>>>>>> ---
>>>>>>> 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/d/optout.
>>>>>>>
>>>>>>
>>>>>> --
>>>>>>
>>>>>> ---
>>>>>> 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/d/optout.
>>>>>>
>>>>>
>>>>> --
>>>>
>>>> ---
>>>> 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]
>>>> <javascript:>.
>>>> For more options, visit https://groups.google.com/d/optout.
>>>>
>>>
>>>
>>
>
--
---
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/d/optout.