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.

Reply via email to