You can subscribe to this list here.
2004 |
Jan
|
Feb
|
Mar
|
Apr
(248) |
May
(82) |
Jun
(90) |
Jul
(177) |
Aug
(253) |
Sep
(157) |
Oct
(151) |
Nov
(143) |
Dec
(278) |
---|---|---|---|---|---|---|---|---|---|---|---|---|
2005 |
Jan
(152) |
Feb
(107) |
Mar
(177) |
Apr
(133) |
May
(259) |
Jun
(81) |
Jul
(119) |
Aug
(306) |
Sep
(416) |
Oct
(240) |
Nov
(329) |
Dec
(206) |
2006 |
Jan
(466) |
Feb
(382) |
Mar
(153) |
Apr
(162) |
May
(133) |
Jun
(21) |
Jul
(18) |
Aug
(37) |
Sep
(97) |
Oct
(114) |
Nov
(110) |
Dec
(28) |
2007 |
Jan
(74) |
Feb
(65) |
Mar
(49) |
Apr
(76) |
May
(43) |
Jun
(15) |
Jul
(68) |
Aug
(55) |
Sep
(63) |
Oct
(59) |
Nov
(70) |
Dec
(66) |
2008 |
Jan
(71) |
Feb
(60) |
Mar
(120) |
Apr
(31) |
May
(48) |
Jun
(81) |
Jul
(107) |
Aug
(51) |
Sep
(80) |
Oct
(83) |
Nov
(83) |
Dec
(79) |
2009 |
Jan
(83) |
Feb
(110) |
Mar
(97) |
Apr
(91) |
May
(291) |
Jun
(250) |
Jul
(197) |
Aug
(58) |
Sep
(54) |
Oct
(122) |
Nov
(68) |
Dec
(34) |
2010 |
Jan
(50) |
Feb
(17) |
Mar
(63) |
Apr
(61) |
May
(84) |
Jun
(81) |
Jul
(138) |
Aug
(144) |
Sep
(78) |
Oct
(26) |
Nov
(30) |
Dec
(61) |
2011 |
Jan
(33) |
Feb
(35) |
Mar
(166) |
Apr
(221) |
May
(109) |
Jun
(76) |
Jul
(27) |
Aug
(37) |
Sep
(1) |
Oct
(4) |
Nov
(2) |
Dec
(1) |
2012 |
Jan
|
Feb
|
Mar
(2) |
Apr
(2) |
May
|
Jun
|
Jul
(1) |
Aug
|
Sep
(1) |
Oct
|
Nov
(1) |
Dec
|
2013 |
Jan
|
Feb
(1) |
Mar
|
Apr
|
May
|
Jun
|
Jul
(1) |
Aug
(1) |
Sep
(3) |
Oct
(2) |
Nov
|
Dec
(1) |
2014 |
Jan
(1) |
Feb
(1) |
Mar
(3) |
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
From: <pa...@us...> - 2011-01-16 20:48:58
|
Revision: 5353 http://nhibernate.svn.sourceforge.net/nhibernate/?rev=5353&view=rev Author: patearl Date: 2011-01-16 20:48:51 +0000 (Sun, 16 Jan 2011) Log Message: ----------- Moved Linq tests that examine specific methods into subfolder. Modified Paths: -------------- trunk/nhibernate/src/NHibernate.Test/NHibernate.Test.csproj Added Paths: ----------- trunk/nhibernate/src/NHibernate.Test/Linq/ByMethod/ trunk/nhibernate/src/NHibernate.Test/Linq/ByMethod/AnyTests.cs trunk/nhibernate/src/NHibernate.Test/Linq/ByMethod/OrderByTests.cs trunk/nhibernate/src/NHibernate.Test/Linq/ByMethod/SumTests.cs Removed Paths: ------------- trunk/nhibernate/src/NHibernate.Test/Linq/AnyTests.cs trunk/nhibernate/src/NHibernate.Test/Linq/OrderByTests.cs trunk/nhibernate/src/NHibernate.Test/Linq/SumTests.cs Deleted: trunk/nhibernate/src/NHibernate.Test/Linq/AnyTests.cs =================================================================== --- trunk/nhibernate/src/NHibernate.Test/Linq/AnyTests.cs 2011-01-16 02:49:49 UTC (rev 5352) +++ trunk/nhibernate/src/NHibernate.Test/Linq/AnyTests.cs 2011-01-16 20:48:51 UTC (rev 5353) @@ -1,19 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using NUnit.Framework; - -namespace NHibernate.Test.Linq -{ - [TestFixture] - public class AnyTests : LinqTestCase - { - [Test] - public void AnySublist() - { - var orders = db.Orders.Where(o => o.OrderLines.Any(ol => ol.Quantity == 5)).ToList(); - Assert.AreEqual(61, orders.Count); - } - } -} Added: trunk/nhibernate/src/NHibernate.Test/Linq/ByMethod/AnyTests.cs =================================================================== --- trunk/nhibernate/src/NHibernate.Test/Linq/ByMethod/AnyTests.cs (rev 0) +++ trunk/nhibernate/src/NHibernate.Test/Linq/ByMethod/AnyTests.cs 2011-01-16 20:48:51 UTC (rev 5353) @@ -0,0 +1,19 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using NUnit.Framework; + +namespace NHibernate.Test.Linq.ByMethod +{ + [TestFixture] + public class AnyTests : LinqTestCase + { + [Test] + public void AnySublist() + { + var orders = db.Orders.Where(o => o.OrderLines.Any(ol => ol.Quantity == 5)).ToList(); + Assert.AreEqual(61, orders.Count); + } + } +} Copied: trunk/nhibernate/src/NHibernate.Test/Linq/ByMethod/OrderByTests.cs (from rev 5344, trunk/nhibernate/src/NHibernate.Test/Linq/OrderByTests.cs) =================================================================== --- trunk/nhibernate/src/NHibernate.Test/Linq/ByMethod/OrderByTests.cs (rev 0) +++ trunk/nhibernate/src/NHibernate.Test/Linq/ByMethod/OrderByTests.cs 2011-01-16 20:48:51 UTC (rev 5353) @@ -0,0 +1,119 @@ +using System.Linq; +using NUnit.Framework; + +namespace NHibernate.Test.Linq.ByMethod +{ + [TestFixture] + public class OrderByTests : LinqTestCase + { + [Test] + public void AscendingOrderByClause() + { + var query = from c in db.Customers + orderby c.CustomerId + select c.CustomerId; + + var ids = query.ToList(); + + if (ids.Count > 1) + { + Assert.Greater(ids[1], ids[0]); + } + } + + [Test] + public void DescendingOrderByClause() + { + var query = from c in db.Customers + orderby c.CustomerId descending + select c.CustomerId; + + var ids = query.ToList(); + + if (ids.Count > 1) + { + Assert.Greater(ids[0], ids[1]); + } + } + + [Test] + [Ignore("NHibernate does not currently support subqueries in select clause (no way to specify a projection from a detached criteria).")] + public void AggregateAscendingOrderByClause() + { + var query = from c in db.Customers + orderby c.Orders.Count + select c; + + var customers = query.ToList(); + + if (customers.Count > 1) + { + Assert.Less(customers[0].Orders.Count, customers[1].Orders.Count); + } + } + + [Test] + [Ignore("NHibernate does not currently support subqueries in select clause (no way to specify a projection from a detached criteria).")] + public void AggregateDescendingOrderByClause() + { + var query = from c in db.Customers + orderby c.Orders.Count descending + select c; + + var customers = query.ToList(); + + if (customers.Count > 1) + { + Assert.Greater(customers[0].Orders.Count, customers[1].Orders.Count); + } + } + + [Test] + public void ComplexAscendingOrderByClause() + { + var query = from c in db.Customers + where c.Address.Country == "Belgium" + orderby c.Address.Country, c.Address.City + select c.Address.City; + + var ids = query.ToList(); + + if (ids.Count > 1) + { + Assert.Greater(ids[1], ids[0]); + } + } + + [Test] + public void ComplexDescendingOrderByClause() + { + var query = from c in db.Customers + where c.Address.Country == "Belgium" + orderby c.Address.Country descending, c.Address.City descending + select c.Address.City; + + var ids = query.ToList(); + + if (ids.Count > 1) + { + Assert.Greater(ids[0], ids[1]); + } + } + + [Test] + public void ComplexAscendingDescendingOrderByClause() + { + var query = from c in db.Customers + where c.Address.Country == "Belgium" + orderby c.Address.Country ascending, c.Address.City descending + select c.Address.City; + + var ids = query.ToList(); + + if (ids.Count > 1) + { + Assert.Greater(ids[0], ids[1]); + } + } + } +} \ No newline at end of file Copied: trunk/nhibernate/src/NHibernate.Test/Linq/ByMethod/SumTests.cs (from rev 5344, trunk/nhibernate/src/NHibernate.Test/Linq/SumTests.cs) =================================================================== --- trunk/nhibernate/src/NHibernate.Test/Linq/ByMethod/SumTests.cs (rev 0) +++ trunk/nhibernate/src/NHibernate.Test/Linq/ByMethod/SumTests.cs 2011-01-16 20:48:51 UTC (rev 5353) @@ -0,0 +1,47 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using NUnit.Framework; + +namespace NHibernate.Test.Linq.ByMethod +{ + [TestFixture] + public class SumTests : LinqTestCase + { + [Test] + [ExpectedException] + public void EmptySumDecimal() + { + db.OrderLines.Where(ol => false).Sum(ol => ol.Discount); + } + + [Test] + public void EmptySumCastNullableDecimal() + { + decimal total = db.OrderLines.Where(ol => false).Sum(ol => (decimal?)ol.Discount) ?? 0; + Assert.AreEqual(0, total); + } + + [Test] + public void SumDecimal() + { + decimal total = db.OrderLines.Sum(ol => ol.Discount); + Assert.Greater(total, 0); + } + + [Test] + public void EmptySumNullableDecimal() + { + decimal total = db.Orders.Where(ol => false).Sum(ol => ol.Freight) ?? 0; + Assert.AreEqual(0, total); + } + + [Test] + public void SumNullableDecimal() + { + decimal? total = db.Orders.Sum(ol => ol.Freight); + Assert.Greater(total, 0); + } + } +} Deleted: trunk/nhibernate/src/NHibernate.Test/Linq/OrderByTests.cs =================================================================== --- trunk/nhibernate/src/NHibernate.Test/Linq/OrderByTests.cs 2011-01-16 02:49:49 UTC (rev 5352) +++ trunk/nhibernate/src/NHibernate.Test/Linq/OrderByTests.cs 2011-01-16 20:48:51 UTC (rev 5353) @@ -1,119 +0,0 @@ -using System.Linq; -using NUnit.Framework; - -namespace NHibernate.Test.Linq -{ - [TestFixture] - public class OrderByTests : LinqTestCase - { - [Test] - public void AscendingOrderByClause() - { - var query = from c in db.Customers - orderby c.CustomerId - select c.CustomerId; - - var ids = query.ToList(); - - if (ids.Count > 1) - { - Assert.Greater(ids[1], ids[0]); - } - } - - [Test] - public void DescendingOrderByClause() - { - var query = from c in db.Customers - orderby c.CustomerId descending - select c.CustomerId; - - var ids = query.ToList(); - - if (ids.Count > 1) - { - Assert.Greater(ids[0], ids[1]); - } - } - - [Test] - [Ignore("NHibernate does not currently support subqueries in select clause (no way to specify a projection from a detached criteria).")] - public void AggregateAscendingOrderByClause() - { - var query = from c in db.Customers - orderby c.Orders.Count - select c; - - var customers = query.ToList(); - - if (customers.Count > 1) - { - Assert.Less(customers[0].Orders.Count, customers[1].Orders.Count); - } - } - - [Test] - [Ignore("NHibernate does not currently support subqueries in select clause (no way to specify a projection from a detached criteria).")] - public void AggregateDescendingOrderByClause() - { - var query = from c in db.Customers - orderby c.Orders.Count descending - select c; - - var customers = query.ToList(); - - if (customers.Count > 1) - { - Assert.Greater(customers[0].Orders.Count, customers[1].Orders.Count); - } - } - - [Test] - public void ComplexAscendingOrderByClause() - { - var query = from c in db.Customers - where c.Address.Country == "Belgium" - orderby c.Address.Country, c.Address.City - select c.Address.City; - - var ids = query.ToList(); - - if (ids.Count > 1) - { - Assert.Greater(ids[1], ids[0]); - } - } - - [Test] - public void ComplexDescendingOrderByClause() - { - var query = from c in db.Customers - where c.Address.Country == "Belgium" - orderby c.Address.Country descending, c.Address.City descending - select c.Address.City; - - var ids = query.ToList(); - - if (ids.Count > 1) - { - Assert.Greater(ids[0], ids[1]); - } - } - - [Test] - public void ComplexAscendingDescendingOrderByClause() - { - var query = from c in db.Customers - where c.Address.Country == "Belgium" - orderby c.Address.Country ascending, c.Address.City descending - select c.Address.City; - - var ids = query.ToList(); - - if (ids.Count > 1) - { - Assert.Greater(ids[0], ids[1]); - } - } - } -} \ No newline at end of file Deleted: trunk/nhibernate/src/NHibernate.Test/Linq/SumTests.cs =================================================================== --- trunk/nhibernate/src/NHibernate.Test/Linq/SumTests.cs 2011-01-16 02:49:49 UTC (rev 5352) +++ trunk/nhibernate/src/NHibernate.Test/Linq/SumTests.cs 2011-01-16 20:48:51 UTC (rev 5353) @@ -1,47 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using NUnit.Framework; - -namespace NHibernate.Test.Linq -{ - [TestFixture] - public class SumTests : LinqTestCase - { - [Test] - [ExpectedException] - public void EmptySumDecimal() - { - db.OrderLines.Where(ol => false).Sum(ol => ol.Discount); - } - - [Test] - public void EmptySumCastNullableDecimal() - { - decimal total = db.OrderLines.Where(ol => false).Sum(ol => (decimal?)ol.Discount) ?? 0; - Assert.AreEqual(0, total); - } - - [Test] - public void SumDecimal() - { - decimal total = db.OrderLines.Sum(ol => ol.Discount); - Assert.Greater(total, 0); - } - - [Test] - public void EmptySumNullableDecimal() - { - decimal total = db.Orders.Where(ol => false).Sum(ol => ol.Freight) ?? 0; - Assert.AreEqual(0, total); - } - - [Test] - public void SumNullableDecimal() - { - decimal? total = db.Orders.Sum(ol => ol.Freight); - Assert.Greater(total, 0); - } - } -} Modified: trunk/nhibernate/src/NHibernate.Test/NHibernate.Test.csproj =================================================================== --- trunk/nhibernate/src/NHibernate.Test/NHibernate.Test.csproj 2011-01-16 02:49:49 UTC (rev 5352) +++ trunk/nhibernate/src/NHibernate.Test/NHibernate.Test.csproj 2011-01-16 20:48:51 UTC (rev 5353) @@ -423,7 +423,7 @@ <Compile Include="LazyProperty\Book.cs" /> <Compile Include="LazyProperty\LazyPropertyFixture.cs" /> <Compile Include="Linq\AggregateTests.cs" /> - <Compile Include="Linq\AnyTests.cs" /> + <Compile Include="Linq\ByMethod\AnyTests.cs" /> <Compile Include="Linq\BinaryBooleanExpressionTests.cs" /> <Compile Include="Linq\BinaryExpressionOrdererTests.cs" /> <Compile Include="Linq\BooleanMethodExtensionExample.cs" /> @@ -445,7 +445,7 @@ <Compile Include="Linq\NorthwindDbCreator.cs" /> <Compile Include="Linq\NullComparisonTests.cs" /> <Compile Include="Linq\ObjectDumper.cs" /> - <Compile Include="Linq\OrderByTests.cs" /> + <Compile Include="Linq\ByMethod\OrderByTests.cs" /> <Compile Include="Linq\PagingTests.cs" /> <Compile Include="Linq\ParameterisedQueries.cs" /> <Compile Include="Linq\PatientTests.cs" /> @@ -455,7 +455,7 @@ <Compile Include="Linq\QueryReuseTests.cs" /> <Compile Include="Linq\ReadonlyTestCase.cs" /> <Compile Include="Linq\StatelessSessionQueringTest.cs" /> - <Compile Include="Linq\SumTests.cs" /> + <Compile Include="Linq\ByMethod\SumTests.cs" /> <Compile Include="Logging\Log4NetLoggerTest.cs" /> <Compile Include="Logging\LoggerProviderTest.cs" /> <Compile Include="NHSpecificTest\BagWithLazyExtraAndFilter\Domain.cs" /> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <pa...@us...> - 2011-01-16 02:49:55
|
Revision: 5352 http://nhibernate.svn.sourceforge.net/nhibernate/?rev=5352&view=rev Author: patearl Date: 2011-01-16 02:49:49 +0000 (Sun, 16 Jan 2011) Log Message: ----------- Linq: Added a passing test for a simple Any() call. Modified Paths: -------------- trunk/nhibernate/src/NHibernate.Test/NHibernate.Test.csproj Added Paths: ----------- trunk/nhibernate/src/NHibernate.Test/Linq/AnyTests.cs Added: trunk/nhibernate/src/NHibernate.Test/Linq/AnyTests.cs =================================================================== --- trunk/nhibernate/src/NHibernate.Test/Linq/AnyTests.cs (rev 0) +++ trunk/nhibernate/src/NHibernate.Test/Linq/AnyTests.cs 2011-01-16 02:49:49 UTC (rev 5352) @@ -0,0 +1,19 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using NUnit.Framework; + +namespace NHibernate.Test.Linq +{ + [TestFixture] + public class AnyTests : LinqTestCase + { + [Test] + public void AnySublist() + { + var orders = db.Orders.Where(o => o.OrderLines.Any(ol => ol.Quantity == 5)).ToList(); + Assert.AreEqual(61, orders.Count); + } + } +} Modified: trunk/nhibernate/src/NHibernate.Test/NHibernate.Test.csproj =================================================================== --- trunk/nhibernate/src/NHibernate.Test/NHibernate.Test.csproj 2011-01-15 17:51:33 UTC (rev 5351) +++ trunk/nhibernate/src/NHibernate.Test/NHibernate.Test.csproj 2011-01-16 02:49:49 UTC (rev 5352) @@ -423,6 +423,7 @@ <Compile Include="LazyProperty\Book.cs" /> <Compile Include="LazyProperty\LazyPropertyFixture.cs" /> <Compile Include="Linq\AggregateTests.cs" /> + <Compile Include="Linq\AnyTests.cs" /> <Compile Include="Linq\BinaryBooleanExpressionTests.cs" /> <Compile Include="Linq\BinaryExpressionOrdererTests.cs" /> <Compile Include="Linq\BooleanMethodExtensionExample.cs" /> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <pa...@us...> - 2011-01-15 17:51:40
|
Revision: 5351 http://nhibernate.svn.sourceforge.net/nhibernate/?rev=5351&view=rev Author: patearl Date: 2011-01-15 17:51:33 +0000 (Sat, 15 Jan 2011) Log Message: ----------- Support subqueries in arithmetic expressions within HQL SQL generation. Modified Paths: -------------- trunk/nhibernate/src/NHibernate/Hql/Ast/ANTLR/Generated/HqlSqlWalker.cs trunk/nhibernate/src/NHibernate/Hql/Ast/ANTLR/HqlSqlWalker.g trunk/nhibernate/src/NHibernate.Test/HQL/Ast/HqlFixture.cs Removed Paths: ------------- trunk/nhibernate/src/NHibernate/Hql/Ast/ANTLR/output/ Modified: trunk/nhibernate/src/NHibernate/Hql/Ast/ANTLR/Generated/HqlSqlWalker.cs =================================================================== --- trunk/nhibernate/src/NHibernate/Hql/Ast/ANTLR/Generated/HqlSqlWalker.cs 2011-01-15 17:38:05 UTC (rev 5350) +++ trunk/nhibernate/src/NHibernate/Hql/Ast/ANTLR/Generated/HqlSqlWalker.cs 2011-01-15 17:51:33 UTC (rev 5351) @@ -1,4 +1,4 @@ -// $ANTLR 3.2 Sep 23, 2009 12:02:23 HqlSqlWalker.g 2011-01-15 09:52:09 +// $ANTLR 3.2 Sep 23, 2009 12:02:23 HqlSqlWalker.g 2011-01-15 10:39:02 // The variable 'variable' is assigned but its value is never used. #pragma warning disable 168, 219 @@ -677,16 +677,16 @@ // AST REWRITE - // elements: w, f, s, u + // elements: s, u, f, w // token labels: u - // rule labels: f, w, retval, s + // rule labels: w, f, retval, s // token list labels: // rule list labels: // wildcard labels: retval.Tree = root_0; RewriteRuleNodeStream stream_u = new RewriteRuleNodeStream(adaptor, "token u", u); + RewriteRuleSubtreeStream stream_w = new RewriteRuleSubtreeStream(adaptor, "rule w", w!=null ? w.Tree : null); RewriteRuleSubtreeStream stream_f = new RewriteRuleSubtreeStream(adaptor, "rule f", f!=null ? f.Tree : null); - RewriteRuleSubtreeStream stream_w = new RewriteRuleSubtreeStream(adaptor, "rule w", w!=null ? w.Tree : null); RewriteRuleSubtreeStream stream_retval = new RewriteRuleSubtreeStream(adaptor, "rule retval", retval!=null ? retval.Tree : null); RewriteRuleSubtreeStream stream_s = new RewriteRuleSubtreeStream(adaptor, "rule s", s!=null ? s.Tree : null); @@ -1757,15 +1757,15 @@ // AST REWRITE - // elements: o, f, g, s, w + // elements: o, g, s, w, f // token labels: - // rule labels: w, f, g, retval, s, o + // rule labels: f, w, g, retval, s, o // token list labels: // rule list labels: // wildcard labels: retval.Tree = root_0; + RewriteRuleSubtreeStream stream_f = new RewriteRuleSubtreeStream(adaptor, "rule f", f!=null ? f.Tree : null); RewriteRuleSubtreeStream stream_w = new RewriteRuleSubtreeStream(adaptor, "rule w", w!=null ? w.Tree : null); - RewriteRuleSubtreeStream stream_f = new RewriteRuleSubtreeStream(adaptor, "rule f", f!=null ? f.Tree : null); RewriteRuleSubtreeStream stream_g = new RewriteRuleSubtreeStream(adaptor, "rule g", g!=null ? g.Tree : null); RewriteRuleSubtreeStream stream_retval = new RewriteRuleSubtreeStream(adaptor, "rule retval", retval!=null ? retval.Tree : null); RewriteRuleSubtreeStream stream_s = new RewriteRuleSubtreeStream(adaptor, "rule s", s!=null ? s.Tree : null); @@ -2280,7 +2280,7 @@ // AST REWRITE - // elements: x, d + // elements: d, x // token labels: d // rule labels: retval, x // token list labels: @@ -4453,7 +4453,7 @@ // AST REWRITE - // elements: b, w + // elements: w, b // token labels: w // rule labels: retval, b // token list labels: @@ -4556,7 +4556,7 @@ // AST REWRITE - // elements: b, w + // elements: w, b // token labels: w // rule labels: retval, b // token list labels: @@ -6636,7 +6636,7 @@ }; // $ANTLR start "arithmeticExpr" - // HqlSqlWalker.g:367:1: arithmeticExpr : ( ^( PLUS expr expr ) | ^( MINUS expr expr ) | ^( DIV expr expr ) | ^( STAR expr expr ) | ^( BNOT expr ) | ^( BAND expr expr ) | ^( BOR expr expr ) | ^( BXOR expr expr ) | ^( UNARY_MINUS expr ) | c= caseExpr ); + // HqlSqlWalker.g:367:1: arithmeticExpr : ( ^( PLUS exprOrSubquery exprOrSubquery ) | ^( MINUS exprOrSubquery exprOrSubquery ) | ^( DIV exprOrSubquery exprOrSubquery ) | ^( STAR exprOrSubquery exprOrSubquery ) | ^( BNOT exprOrSubquery ) | ^( BAND exprOrSubquery exprOrSubquery ) | ^( BOR exprOrSubquery exprOrSubquery ) | ^( BXOR exprOrSubquery exprOrSubquery ) | ^( UNARY_MINUS exprOrSubquery ) | c= caseExpr ); public HqlSqlWalker.arithmeticExpr_return arithmeticExpr() // throws RecognitionException [1] { HqlSqlWalker.arithmeticExpr_return retval = new HqlSqlWalker.arithmeticExpr_return(); @@ -6658,37 +6658,37 @@ IASTNode UNARY_MINUS170 = null; HqlSqlWalker.caseExpr_return c = default(HqlSqlWalker.caseExpr_return); - HqlSqlWalker.expr_return expr148 = default(HqlSqlWalker.expr_return); + HqlSqlWalker.exprOrSubquery_return exprOrSubquery148 = default(HqlSqlWalker.exprOrSubquery_return); - HqlSqlWalker.expr_return expr149 = default(HqlSqlWalker.expr_return); + HqlSqlWalker.exprOrSubquery_return exprOrSubquery149 = default(HqlSqlWalker.exprOrSubquery_return); - HqlSqlWalker.expr_return expr151 = default(HqlSqlWalker.expr_return); + HqlSqlWalker.exprOrSubquery_return exprOrSubquery151 = default(HqlSqlWalker.exprOrSubquery_return); - HqlSqlWalker.expr_return expr152 = default(HqlSqlWalker.expr_return); + HqlSqlWalker.exprOrSubquery_return exprOrSubquery152 = default(HqlSqlWalker.exprOrSubquery_return); - HqlSqlWalker.expr_return expr154 = default(HqlSqlWalker.expr_return); + HqlSqlWalker.exprOrSubquery_return exprOrSubquery154 = default(HqlSqlWalker.exprOrSubquery_return); - HqlSqlWalker.expr_return expr155 = default(HqlSqlWalker.expr_return); + HqlSqlWalker.exprOrSubquery_return exprOrSubquery155 = default(HqlSqlWalker.exprOrSubquery_return); - HqlSqlWalker.expr_return expr157 = default(HqlSqlWalker.expr_return); + HqlSqlWalker.exprOrSubquery_return exprOrSubquery157 = default(HqlSqlWalker.exprOrSubquery_return); - HqlSqlWalker.expr_return expr158 = default(HqlSqlWalker.expr_return); + HqlSqlWalker.exprOrSubquery_return exprOrSubquery158 = default(HqlSqlWalker.exprOrSubquery_return); - HqlSqlWalker.expr_return expr160 = default(HqlSqlWalker.expr_return); + HqlSqlWalker.exprOrSubquery_return exprOrSubquery160 = default(HqlSqlWalker.exprOrSubquery_return); - HqlSqlWalker.expr_return expr162 = default(HqlSqlWalker.expr_return); + HqlSqlWalker.exprOrSubquery_return exprOrSubquery162 = default(HqlSqlWalker.exprOrSubquery_return); - HqlSqlWalker.expr_return expr163 = default(HqlSqlWalker.expr_return); + HqlSqlWalker.exprOrSubquery_return exprOrSubquery163 = default(HqlSqlWalker.exprOrSubquery_return); - HqlSqlWalker.expr_return expr165 = default(HqlSqlWalker.expr_return); + HqlSqlWalker.exprOrSubquery_return exprOrSubquery165 = default(HqlSqlWalker.exprOrSubquery_return); - HqlSqlWalker.expr_return expr166 = default(HqlSqlWalker.expr_return); + HqlSqlWalker.exprOrSubquery_return exprOrSubquery166 = default(HqlSqlWalker.exprOrSubquery_return); - HqlSqlWalker.expr_return expr168 = default(HqlSqlWalker.expr_return); + HqlSqlWalker.exprOrSubquery_return exprOrSubquery168 = default(HqlSqlWalker.exprOrSubquery_return); - HqlSqlWalker.expr_return expr169 = default(HqlSqlWalker.expr_return); + HqlSqlWalker.exprOrSubquery_return exprOrSubquery169 = default(HqlSqlWalker.exprOrSubquery_return); - HqlSqlWalker.expr_return expr171 = default(HqlSqlWalker.expr_return); + HqlSqlWalker.exprOrSubquery_return exprOrSubquery171 = default(HqlSqlWalker.exprOrSubquery_return); IASTNode PLUS147_tree=null; @@ -6703,7 +6703,7 @@ try { - // HqlSqlWalker.g:374:2: ( ^( PLUS expr expr ) | ^( MINUS expr expr ) | ^( DIV expr expr ) | ^( STAR expr expr ) | ^( BNOT expr ) | ^( BAND expr expr ) | ^( BOR expr expr ) | ^( BXOR expr expr ) | ^( UNARY_MINUS expr ) | c= caseExpr ) + // HqlSqlWalker.g:374:2: ( ^( PLUS exprOrSubquery exprOrSubquery ) | ^( MINUS exprOrSubquery exprOrSubquery ) | ^( DIV exprOrSubquery exprOrSubquery ) | ^( STAR exprOrSubquery exprOrSubquery ) | ^( BNOT exprOrSubquery ) | ^( BAND exprOrSubquery exprOrSubquery ) | ^( BOR exprOrSubquery exprOrSubquery ) | ^( BXOR exprOrSubquery exprOrSubquery ) | ^( UNARY_MINUS exprOrSubquery ) | c= caseExpr ) int alt49 = 10; switch ( input.LA(1) ) { @@ -6768,7 +6768,7 @@ switch (alt49) { case 1 : - // HqlSqlWalker.g:374:4: ^( PLUS expr expr ) + // HqlSqlWalker.g:374:4: ^( PLUS exprOrSubquery exprOrSubquery ) { root_0 = (IASTNode)adaptor.GetNilNode(); @@ -6786,17 +6786,17 @@ Match(input, Token.DOWN, null); _last = (IASTNode)input.LT(1); - PushFollow(FOLLOW_expr_in_arithmeticExpr1866); - expr148 = expr(); + PushFollow(FOLLOW_exprOrSubquery_in_arithmeticExpr1866); + exprOrSubquery148 = exprOrSubquery(); state.followingStackPointer--; - adaptor.AddChild(root_1, expr148.Tree); + adaptor.AddChild(root_1, exprOrSubquery148.Tree); _last = (IASTNode)input.LT(1); - PushFollow(FOLLOW_expr_in_arithmeticExpr1868); - expr149 = expr(); + PushFollow(FOLLOW_exprOrSubquery_in_arithmeticExpr1868); + exprOrSubquery149 = exprOrSubquery(); state.followingStackPointer--; - adaptor.AddChild(root_1, expr149.Tree); + adaptor.AddChild(root_1, exprOrSubquery149.Tree); Match(input, Token.UP, null); adaptor.AddChild(root_0, root_1);_last = _save_last_1; } @@ -6805,7 +6805,7 @@ } break; case 2 : - // HqlSqlWalker.g:375:4: ^( MINUS expr expr ) + // HqlSqlWalker.g:375:4: ^( MINUS exprOrSubquery exprOrSubquery ) { root_0 = (IASTNode)adaptor.GetNilNode(); @@ -6823,17 +6823,17 @@ Match(input, Token.DOWN, null); _last = (IASTNode)input.LT(1); - PushFollow(FOLLOW_expr_in_arithmeticExpr1877); - expr151 = expr(); + PushFollow(FOLLOW_exprOrSubquery_in_arithmeticExpr1877); + exprOrSubquery151 = exprOrSubquery(); state.followingStackPointer--; - adaptor.AddChild(root_1, expr151.Tree); + adaptor.AddChild(root_1, exprOrSubquery151.Tree); _last = (IASTNode)input.LT(1); - PushFollow(FOLLOW_expr_in_arithmeticExpr1879); - expr152 = expr(); + PushFollow(FOLLOW_exprOrSubquery_in_arithmeticExpr1879); + exprOrSubquery152 = exprOrSubquery(); state.followingStackPointer--; - adaptor.AddChild(root_1, expr152.Tree); + adaptor.AddChild(root_1, exprOrSubquery152.Tree); Match(input, Token.UP, null); adaptor.AddChild(root_0, root_1);_last = _save_last_1; } @@ -6842,7 +6842,7 @@ } break; case 3 : - // HqlSqlWalker.g:376:4: ^( DIV expr expr ) + // HqlSqlWalker.g:376:4: ^( DIV exprOrSubquery exprOrSubquery ) { root_0 = (IASTNode)adaptor.GetNilNode(); @@ -6860,17 +6860,17 @@ Match(input, Token.DOWN, null); _last = (IASTNode)input.LT(1); - PushFollow(FOLLOW_expr_in_arithmeticExpr1888); - expr154 = expr(); + PushFollow(FOLLOW_exprOrSubquery_in_arithmeticExpr1888); + exprOrSubquery154 = exprOrSubquery(); state.followingStackPointer--; - adaptor.AddChild(root_1, expr154.Tree); + adaptor.AddChild(root_1, exprOrSubquery154.Tree); _last = (IASTNode)input.LT(1); - PushFollow(FOLLOW_expr_in_arithmeticExpr1890); - expr155 = expr(); + PushFollow(FOLLOW_exprOrSubquery_in_arithmeticExpr1890); + exprOrSubquery155 = exprOrSubquery(); state.followingStackPointer--; - adaptor.AddChild(root_1, expr155.Tree); + adaptor.AddChild(root_1, exprOrSubquery155.Tree); Match(input, Token.UP, null); adaptor.AddChild(root_0, root_1);_last = _save_last_1; } @@ -6879,7 +6879,7 @@ } break; case 4 : - // HqlSqlWalker.g:377:4: ^( STAR expr expr ) + // HqlSqlWalker.g:377:4: ^( STAR exprOrSubquery exprOrSubquery ) { root_0 = (IASTNode)adaptor.GetNilNode(); @@ -6897,17 +6897,17 @@ Match(input, Token.DOWN, null); _last = (IASTNode)input.LT(1); - PushFollow(FOLLOW_expr_in_arithmeticExpr1899); - expr157 = expr(); + PushFollow(FOLLOW_exprOrSubquery_in_arithmeticExpr1899); + exprOrSubquery157 = exprOrSubquery(); state.followingStackPointer--; - adaptor.AddChild(root_1, expr157.Tree); + adaptor.AddChild(root_1, exprOrSubquery157.Tree); _last = (IASTNode)input.LT(1); - PushFollow(FOLLOW_expr_in_arithmeticExpr1901); - expr158 = expr(); + PushFollow(FOLLOW_exprOrSubquery_in_arithmeticExpr1901); + exprOrSubquery158 = exprOrSubquery(); state.followingStackPointer--; - adaptor.AddChild(root_1, expr158.Tree); + adaptor.AddChild(root_1, exprOrSubquery158.Tree); Match(input, Token.UP, null); adaptor.AddChild(root_0, root_1);_last = _save_last_1; } @@ -6916,7 +6916,7 @@ } break; case 5 : - // HqlSqlWalker.g:378:4: ^( BNOT expr ) + // HqlSqlWalker.g:378:4: ^( BNOT exprOrSubquery ) { root_0 = (IASTNode)adaptor.GetNilNode(); @@ -6934,11 +6934,11 @@ Match(input, Token.DOWN, null); _last = (IASTNode)input.LT(1); - PushFollow(FOLLOW_expr_in_arithmeticExpr1910); - expr160 = expr(); + PushFollow(FOLLOW_exprOrSubquery_in_arithmeticExpr1910); + exprOrSubquery160 = exprOrSubquery(); state.followingStackPointer--; - adaptor.AddChild(root_1, expr160.Tree); + adaptor.AddChild(root_1, exprOrSubquery160.Tree); Match(input, Token.UP, null); adaptor.AddChild(root_0, root_1);_last = _save_last_1; } @@ -6947,7 +6947,7 @@ } break; case 6 : - // HqlSqlWalker.g:379:4: ^( BAND expr expr ) + // HqlSqlWalker.g:379:4: ^( BAND exprOrSubquery exprOrSubquery ) { root_0 = (IASTNode)adaptor.GetNilNode(); @@ -6965,17 +6965,17 @@ Match(input, Token.DOWN, null); _last = (IASTNode)input.LT(1); - PushFollow(FOLLOW_expr_in_arithmeticExpr1919); - expr162 = expr(); + PushFollow(FOLLOW_exprOrSubquery_in_arithmeticExpr1919); + exprOrSubquery162 = exprOrSubquery(); state.followingStackPointer--; - adaptor.AddChild(root_1, expr162.Tree); + adaptor.AddChild(root_1, exprOrSubquery162.Tree); _last = (IASTNode)input.LT(1); - PushFollow(FOLLOW_expr_in_arithmeticExpr1921); - expr163 = expr(); + PushFollow(FOLLOW_exprOrSubquery_in_arithmeticExpr1921); + exprOrSubquery163 = exprOrSubquery(); state.followingStackPointer--; - adaptor.AddChild(root_1, expr163.Tree); + adaptor.AddChild(root_1, exprOrSubquery163.Tree); Match(input, Token.UP, null); adaptor.AddChild(root_0, root_1);_last = _save_last_1; } @@ -6984,7 +6984,7 @@ } break; case 7 : - // HqlSqlWalker.g:380:4: ^( BOR expr expr ) + // HqlSqlWalker.g:380:4: ^( BOR exprOrSubquery exprOrSubquery ) { root_0 = (IASTNode)adaptor.GetNilNode(); @@ -7002,17 +7002,17 @@ Match(input, Token.DOWN, null); _last = (IASTNode)input.LT(1); - PushFollow(FOLLOW_expr_in_arithmeticExpr1930); - expr165 = expr(); + PushFollow(FOLLOW_exprOrSubquery_in_arithmeticExpr1930); + exprOrSubquery165 = exprOrSubquery(); state.followingStackPointer--; - adaptor.AddChild(root_1, expr165.Tree); + adaptor.AddChild(root_1, exprOrSubquery165.Tree); _last = (IASTNode)input.LT(1); - PushFollow(FOLLOW_expr_in_arithmeticExpr1932); - expr166 = expr(); + PushFollow(FOLLOW_exprOrSubquery_in_arithmeticExpr1932); + exprOrSubquery166 = exprOrSubquery(); state.followingStackPointer--; - adaptor.AddChild(root_1, expr166.Tree); + adaptor.AddChild(root_1, exprOrSubquery166.Tree); Match(input, Token.UP, null); adaptor.AddChild(root_0, root_1);_last = _save_last_1; } @@ -7021,7 +7021,7 @@ } break; case 8 : - // HqlSqlWalker.g:381:4: ^( BXOR expr expr ) + // HqlSqlWalker.g:381:4: ^( BXOR exprOrSubquery exprOrSubquery ) { root_0 = (IASTNode)adaptor.GetNilNode(); @@ -7039,17 +7039,17 @@ Match(input, Token.DOWN, null); _last = (IASTNode)input.LT(1); - PushFollow(FOLLOW_expr_in_arithmeticExpr1941); - expr168 = expr(); + PushFollow(FOLLOW_exprOrSubquery_in_arithmeticExpr1941); + exprOrSubquery168 = exprOrSubquery(); state.followingStackPointer--; - adaptor.AddChild(root_1, expr168.Tree); + adaptor.AddChild(root_1, exprOrSubquery168.Tree); _last = (IASTNode)input.LT(1); - PushFollow(FOLLOW_expr_in_arithmeticExpr1943); - expr169 = expr(); + PushFollow(FOLLOW_exprOrSubquery_in_arithmeticExpr1943); + exprOrSubquery169 = exprOrSubquery(); state.followingStackPointer--; - adaptor.AddChild(root_1, expr169.Tree); + adaptor.AddChild(root_1, exprOrSubquery169.Tree); Match(input, Token.UP, null); adaptor.AddChild(root_0, root_1);_last = _save_last_1; } @@ -7058,7 +7058,7 @@ } break; case 9 : - // HqlSqlWalker.g:383:4: ^( UNARY_MINUS expr ) + // HqlSqlWalker.g:383:4: ^( UNARY_MINUS exprOrSubquery ) { root_0 = (IASTNode)adaptor.GetNilNode(); @@ -7076,11 +7076,11 @@ Match(input, Token.DOWN, null); _last = (IASTNode)input.LT(1); - PushFollow(FOLLOW_expr_in_arithmeticExpr1953); - expr171 = expr(); + PushFollow(FOLLOW_exprOrSubquery_in_arithmeticExpr1953); + exprOrSubquery171 = exprOrSubquery(); state.followingStackPointer--; - adaptor.AddChild(root_1, expr171.Tree); + adaptor.AddChild(root_1, exprOrSubquery171.Tree); Match(input, Token.UP, null); adaptor.AddChild(root_0, root_1);_last = _save_last_1; } @@ -8576,7 +8576,7 @@ // AST REWRITE - // elements: d, lhs, rhs + // elements: d, rhs, lhs // token labels: d // rule labels: retval, rhs, lhs // token list labels: @@ -8692,7 +8692,7 @@ // AST REWRITE - // elements: rhs2, lhs2, i + // elements: lhs2, i, rhs2 // token labels: i // rule labels: retval, rhs2, lhs2 // token list labels: @@ -9194,7 +9194,7 @@ // AST REWRITE - // elements: d, rhs, lhs + // elements: lhs, rhs, d // token labels: d // rule labels: retval, rhs, lhs // token list labels: @@ -9900,30 +9900,30 @@ public static readonly BitSet FOLLOW_parameter_in_expr1831 = new BitSet(new ulong[]{0x0000000000000002UL}); public static readonly BitSet FOLLOW_count_in_expr1836 = new BitSet(new ulong[]{0x0000000000000002UL}); public static readonly BitSet FOLLOW_PLUS_in_arithmeticExpr1864 = new BitSet(new ulong[]{0x0000000000000004UL}); - public static readonly BitSet FOLLOW_expr_in_arithmeticExpr1866 = new BitSet(new ulong[]{0x0082008000109000UL,0x0F3FC007ED009120UL}); - public static readonly BitSet FOLLOW_expr_in_arithmeticExpr1868 = new BitSet(new ulong[]{0x0000000000000008UL}); + public static readonly BitSet FOLLOW_exprOrSubquery_in_arithmeticExpr1866 = new BitSet(new ulong[]{0x0086808000109030UL,0x0F3FC007ED109120UL}); + public static readonly BitSet FOLLOW_exprOrSubquery_in_arithmeticExpr1868 = new BitSet(new ulong[]{0x0000000000000008UL}); public static readonly BitSet FOLLOW_MINUS_in_arithmeticExpr1875 = new BitSet(new ulong[]{0x0000000000000004UL}); - public static readonly BitSet FOLLOW_expr_in_arithmeticExpr1877 = new BitSet(new ulong[]{0x0082008000109000UL,0x0F3FC007ED009120UL}); - public static readonly BitSet FOLLOW_expr_in_arithmeticExpr1879 = new BitSet(new ulong[]{0x0000000000000008UL}); + public static readonly BitSet FOLLOW_exprOrSubquery_in_arithmeticExpr1877 = new BitSet(new ulong[]{0x0086808000109030UL,0x0F3FC007ED109120UL}); + public static readonly BitSet FOLLOW_exprOrSubquery_in_arithmeticExpr1879 = new BitSet(new ulong[]{0x0000000000000008UL}); public static readonly BitSet FOLLOW_DIV_in_arithmeticExpr1886 = new BitSet(new ulong[]{0x0000000000000004UL}); - public static readonly BitSet FOLLOW_expr_in_arithmeticExpr1888 = new BitSet(new ulong[]{0x0082008000109000UL,0x0F3FC007ED009120UL}); - public static readonly BitSet FOLLOW_expr_in_arithmeticExpr1890 = new BitSet(new ulong[]{0x0000000000000008UL}); + public static readonly BitSet FOLLOW_exprOrSubquery_in_arithmeticExpr1888 = new BitSet(new ulong[]{0x0086808000109030UL,0x0F3FC007ED109120UL}); + public static readonly BitSet FOLLOW_exprOrSubquery_in_arithmeticExpr1890 = new BitSet(new ulong[]{0x0000000000000008UL}); public static readonly BitSet FOLLOW_STAR_in_arithmeticExpr1897 = new BitSet(new ulong[]{0x0000000000000004UL}); - public static readonly BitSet FOLLOW_expr_in_arithmeticExpr1899 = new BitSet(new ulong[]{0x0082008000109000UL,0x0F3FC007ED009120UL}); - public static readonly BitSet FOLLOW_expr_in_arithmeticExpr1901 = new BitSet(new ulong[]{0x0000000000000008UL}); + public static readonly BitSet FOLLOW_exprOrSubquery_in_arithmeticExpr1899 = new BitSet(new ulong[]{0x0086808000109030UL,0x0F3FC007ED109120UL}); + public static readonly BitSet FOLLOW_exprOrSubquery_in_arithmeticExpr1901 = new BitSet(new ulong[]{0x0000000000000008UL}); public static readonly BitSet FOLLOW_BNOT_in_arithmeticExpr1908 = new BitSet(new ulong[]{0x0000000000000004UL}); - public static readonly BitSet FOLLOW_expr_in_arithmeticExpr1910 = new BitSet(new ulong[]{0x0000000000000008UL}); + public static readonly BitSet FOLLOW_exprOrSubquery_in_arithmeticExpr1910 = new BitSet(new ulong[]{0x0000000000000008UL}); public static readonly BitSet FOLLOW_BAND_in_arithmeticExpr1917 = new BitSet(new ulong[]{0x0000000000000004UL}); - public static readonly BitSet FOLLOW_expr_in_arithmeticExpr1919 = new BitSet(new ulong[]{0x0082008000109000UL,0x0F3FC007ED009120UL}); - public static readonly BitSet FOLLOW_expr_in_arithmeticExpr1921 = new BitSet(new ulong[]{0x0000000000000008UL}); + public static readonly BitSet FOLLOW_exprOrSubquery_in_arithmeticExpr1919 = new BitSet(new ulong[]{0x0086808000109030UL,0x0F3FC007ED109120UL}); + public static readonly BitSet FOLLOW_exprOrSubquery_in_arithmeticExpr1921 = new BitSet(new ulong[]{0x0000000000000008UL}); public static readonly BitSet FOLLOW_BOR_in_arithmeticExpr1928 = new BitSet(new ulong[]{0x0000000000000004UL}); - public static readonly BitSet FOLLOW_expr_in_arithmeticExpr1930 = new BitSet(new ulong[]{0x0082008000109000UL,0x0F3FC007ED009120UL}); - public static readonly BitSet FOLLOW_expr_in_arithmeticExpr1932 = new BitSet(new ulong[]{0x0000000000000008UL}); + public static readonly BitSet FOLLOW_exprOrSubquery_in_arithmeticExpr1930 = new BitSet(new ulong[]{0x0086808000109030UL,0x0F3FC007ED109120UL}); + public static readonly BitSet FOLLOW_exprOrSubquery_in_arithmeticExpr1932 = new BitSet(new ulong[]{0x0000000000000008UL}); public static readonly BitSet FOLLOW_BXOR_in_arithmeticExpr1939 = new BitSet(new ulong[]{0x0000000000000004UL}); - public static readonly BitSet FOLLOW_expr_in_arithmeticExpr1941 = new BitSet(new ulong[]{0x0082008000109000UL,0x0F3FC007ED009120UL}); - public static readonly BitSet FOLLOW_expr_in_arithmeticExpr1943 = new BitSet(new ulong[]{0x0000000000000008UL}); + public static readonly BitSet FOLLOW_exprOrSubquery_in_arithmeticExpr1941 = new BitSet(new ulong[]{0x0086808000109030UL,0x0F3FC007ED109120UL}); + public static readonly BitSet FOLLOW_exprOrSubquery_in_arithmeticExpr1943 = new BitSet(new ulong[]{0x0000000000000008UL}); public static readonly BitSet FOLLOW_UNARY_MINUS_in_arithmeticExpr1951 = new BitSet(new ulong[]{0x0000000000000004UL}); - public static readonly BitSet FOLLOW_expr_in_arithmeticExpr1953 = new BitSet(new ulong[]{0x0000000000000008UL}); + public static readonly BitSet FOLLOW_exprOrSubquery_in_arithmeticExpr1953 = new BitSet(new ulong[]{0x0000000000000008UL}); public static readonly BitSet FOLLOW_caseExpr_in_arithmeticExpr1961 = new BitSet(new ulong[]{0x0000000000000002UL}); public static readonly BitSet FOLLOW_CASE_in_caseExpr1973 = new BitSet(new ulong[]{0x0000000000000004UL}); public static readonly BitSet FOLLOW_WHEN_in_caseExpr1979 = new BitSet(new ulong[]{0x0000000000000004UL}); Modified: trunk/nhibernate/src/NHibernate/Hql/Ast/ANTLR/HqlSqlWalker.g =================================================================== --- trunk/nhibernate/src/NHibernate/Hql/Ast/ANTLR/HqlSqlWalker.g 2011-01-15 17:38:05 UTC (rev 5350) +++ trunk/nhibernate/src/NHibernate/Hql/Ast/ANTLR/HqlSqlWalker.g 2011-01-15 17:51:33 UTC (rev 5351) @@ -371,16 +371,16 @@ PrepareArithmeticOperator( $arithmeticExpr.tree ); } } - : ^(PLUS expr expr) - | ^(MINUS expr expr) - | ^(DIV expr expr) - | ^(STAR expr expr) - | ^(BNOT expr) - | ^(BAND expr expr) - | ^(BOR expr expr) - | ^(BXOR expr expr) -// | ^(CONCAT expr (expr)+ ) - | ^(UNARY_MINUS expr) + : ^(PLUS exprOrSubquery exprOrSubquery) + | ^(MINUS exprOrSubquery exprOrSubquery) + | ^(DIV exprOrSubquery exprOrSubquery) + | ^(STAR exprOrSubquery exprOrSubquery) + | ^(BNOT exprOrSubquery) + | ^(BAND exprOrSubquery exprOrSubquery) + | ^(BOR exprOrSubquery exprOrSubquery) + | ^(BXOR exprOrSubquery exprOrSubquery) +// | ^(CONCAT exprOrSubquery (exprOrSubquery)+ ) + | ^(UNARY_MINUS exprOrSubquery) | c=caseExpr ; Modified: trunk/nhibernate/src/NHibernate.Test/HQL/Ast/HqlFixture.cs =================================================================== --- trunk/nhibernate/src/NHibernate.Test/HQL/Ast/HqlFixture.cs 2011-01-15 17:38:05 UTC (rev 5350) +++ trunk/nhibernate/src/NHibernate.Test/HQL/Ast/HqlFixture.cs 2011-01-15 17:51:33 UTC (rev 5351) @@ -200,6 +200,36 @@ } } + [Test] + public void SubselectAddition() + { + using (ISession s = OpenSession()) + using (s.BeginTransaction()) + { + s.Save(new Animal { BodyWeight = 12, Description = "Polliwog" }); + s.Transaction.Commit(); + } + + try + { + using (ISession s = OpenSession()) + { + var result = s.CreateQuery("select count(a) from Animal a where (select count(a2) from Animal a2) + 1 > 1") + .UniqueResult(); + Assert.AreEqual(1, result); + } + } + finally + { + using (ISession s = OpenSession()) + using (s.BeginTransaction()) + { + s.CreateQuery("delete from Animal").ExecuteUpdate(); + s.Transaction.Commit(); + } + } + } + [Test, Ignore("Not fixed yet.")] public void SumShouldReturnDouble() { This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <pa...@us...> - 2011-01-15 17:38:12
|
Revision: 5350 http://nhibernate.svn.sourceforge.net/nhibernate/?rev=5350&view=rev Author: patearl Date: 2011-01-15 17:38:05 +0000 (Sat, 15 Jan 2011) Log Message: ----------- Added more grammar build files, options, and instructions. Modified Paths: -------------- trunk/nhibernate/ShowBuildMenu.bat Added Paths: ----------- trunk/nhibernate/src/NHibernate/Hql/Ast/ANTLR/AntlrHql.bat trunk/nhibernate/src/NHibernate/Hql/Ast/ANTLR/AntlrHqlDebug.bat trunk/nhibernate/src/NHibernate/Hql/Ast/ANTLR/AntlrHqlSqlWalker.bat trunk/nhibernate/src/NHibernate/Hql/Ast/ANTLR/AntlrHqlSqlWalkerDebug.bat Removed Paths: ------------- trunk/nhibernate/Tools/Antlr/AntlrHql.bat Modified: trunk/nhibernate/ShowBuildMenu.bat =================================================================== --- trunk/nhibernate/ShowBuildMenu.bat 2011-01-15 17:05:00 UTC (rev 5349) +++ trunk/nhibernate/ShowBuildMenu.bat 2011-01-15 17:38:05 UTC (rev 5350) @@ -15,8 +15,10 @@ echo E. Build NHibernate (Debug) echo F. Build NHibernate (Release) echo G. Build Release Package (Also runs tests and creates documentation) -echo H. Run Antlr on Hql.g to regenerate HqlParser.cs and HqlLexer.cs. echo. +echo --- GRAMMAR --- +echo H. Grammar operations (related to Hql.g and HqlSqlWalker.g) +echo. if exist %SYSTEMROOT%\System32\choice.exe ( goto prompt-choice ) goto prompt-set @@ -25,7 +27,7 @@ choice /C:abcdefgh if errorlevel 255 goto end -if errorlevel 8 goto antlr-hql +if errorlevel 8 goto grammar if errorlevel 7 goto build-release-package if errorlevel 6 goto build-release if errorlevel 5 goto build-debug @@ -45,7 +47,7 @@ if /I "%OPT%"=="E" goto build-debug if /I "%OPT%"=="F" goto build-release if /I "%OPT%"=="G" goto build-release-package -if /I "%OPT%"=="H" goto antlr-hql +if /I "%OPT%"=="H" goto grammar goto prompt-set :help-test-setup @@ -107,11 +109,65 @@ %NANT% test goto end +:grammar +echo. +echo --- GRAMMAR --- +echo A. Regenerate HqlLexer.cs and HqlParser.cs from Hql.g. +echo B. Regenerate HqlSqlWalker.cs from HqlSqlWalker.g. +echo C. Regenerate Hql.g in debug mode. +echo D. Regenerate HqlSqlWalker.g in debug mode. +echo E. Quick instructions on using debug mode. +echo. + +if exist %SYSTEMROOT%\System32\choice.exe ( goto grammar-prompt-choice ) +goto grammar-prompt-set + +:grammar-prompt-choice +choice /C:abcde + +if errorlevel 255 goto end +if errorlevel 5 goto antlr-debug +if errorlevel 4 goto antlr-hqlsqlwalker-debug +if errorlevel 3 goto antlr-hql-debug +if errorlevel 2 goto antlr-hqlsqlwalker +if errorlevel 1 goto antlr-hql +if errorlevel 0 goto end + +:grammar-prompt-set +set /p OPT=[A, B, C, D, E]? + +if /I "%OPT%"=="A" goto antlr-hql +if /I "%OPT%"=="B" goto antlr-hqlsqlwalker +if /I "%OPT%"=="C" goto antlr-hql-debug +if /I "%OPT%"=="D" goto antlr-hqlsqlwalker-debug +if /I "%OPT%"=="E" goto antlr-debug +goto grammar-prompt-set + :antlr-hql -rem NANT is 32-bit and refuses to run 64-bit Java, so we just use a batch file instead. :( -call Tools\Antlr\AntlrHql.bat +call src\NHibernate\Hql\Ast\ANTLR\AntlrHql.bat goto end +:antlr-hqlsqlwalker +call src\NHibernate\Hql\Ast\ANTLR\AntlrHqlSqlWalker.bat +goto end + +:antlr-hql-debug +call src\NHibernate\Hql\Ast\ANTLR\AntlrHqlDebug.bat +goto end + +:antlr-hqlsqlwalker-debug +call src\NHibernate\Hql\Ast\ANTLR\AntlrHqlSqlWalkerDebug.bat +goto end + +:antlr-debug +echo To use the debug grammar: +echo 1. Create a unit test that runs the hql parser on the input you're interested in. +echo 2. Run the unit test. It will appear to stall. +echo 3. Download and run AntlrWorks. +echo 4. Choose "Debug Remote" and allow the default ports. +echo 5. You should now be connected and able to step through your grammar. +goto end + :end popd pause Deleted: trunk/nhibernate/Tools/Antlr/AntlrHql.bat =================================================================== --- trunk/nhibernate/Tools/Antlr/AntlrHql.bat 2011-01-15 17:05:00 UTC (rev 5349) +++ trunk/nhibernate/Tools/Antlr/AntlrHql.bat 2011-01-15 17:38:05 UTC (rev 5350) @@ -1,4 +0,0 @@ -@echo off -pushd %~dp0\..\..\src\NHibernate\Hql\Ast\ANTLR -java.exe -cp ..\..\..\..\..\Tools\Antlr\antlr-3.2.jar org.antlr.Tool -o Generated Hql.g -popd \ No newline at end of file Copied: trunk/nhibernate/src/NHibernate/Hql/Ast/ANTLR/AntlrHql.bat (from rev 5345, trunk/nhibernate/Tools/Antlr/AntlrHql.bat) =================================================================== --- trunk/nhibernate/src/NHibernate/Hql/Ast/ANTLR/AntlrHql.bat (rev 0) +++ trunk/nhibernate/src/NHibernate/Hql/Ast/ANTLR/AntlrHql.bat 2011-01-15 17:38:05 UTC (rev 5350) @@ -0,0 +1,5 @@ +rem I wanted to put this in the nant build file, but I had very annoying problems with 64-bit java running from the 32-bit nant process. +@echo off +pushd %~dp0 +java.exe -cp ..\..\..\..\..\Tools\Antlr\antlr-3.2.jar org.antlr.Tool -o Generated Hql.g +popd \ No newline at end of file Added: trunk/nhibernate/src/NHibernate/Hql/Ast/ANTLR/AntlrHqlDebug.bat =================================================================== --- trunk/nhibernate/src/NHibernate/Hql/Ast/ANTLR/AntlrHqlDebug.bat (rev 0) +++ trunk/nhibernate/src/NHibernate/Hql/Ast/ANTLR/AntlrHqlDebug.bat 2011-01-15 17:38:05 UTC (rev 5350) @@ -0,0 +1,5 @@ +rem I wanted to put this in the nant build file, but I had very annoying problems with 64-bit java running from the 32-bit nant process. +@echo off +pushd %~dp0 +java.exe -cp ..\..\..\..\..\Tools\Antlr\antlr-3.2.jar org.antlr.Tool -debug -o Generated Hql.g +popd \ No newline at end of file Added: trunk/nhibernate/src/NHibernate/Hql/Ast/ANTLR/AntlrHqlSqlWalker.bat =================================================================== --- trunk/nhibernate/src/NHibernate/Hql/Ast/ANTLR/AntlrHqlSqlWalker.bat (rev 0) +++ trunk/nhibernate/src/NHibernate/Hql/Ast/ANTLR/AntlrHqlSqlWalker.bat 2011-01-15 17:38:05 UTC (rev 5350) @@ -0,0 +1,5 @@ +rem I wanted to put this in the nant build file, but I had very annoying problems with 64-bit java running from the 32-bit nant process. +@echo off +pushd %~dp0 +java.exe -cp ..\..\..\..\..\Tools\Antlr\antlr-3.2.jar org.antlr.Tool -o Generated HqlSqlWalker.g +popd \ No newline at end of file Added: trunk/nhibernate/src/NHibernate/Hql/Ast/ANTLR/AntlrHqlSqlWalkerDebug.bat =================================================================== --- trunk/nhibernate/src/NHibernate/Hql/Ast/ANTLR/AntlrHqlSqlWalkerDebug.bat (rev 0) +++ trunk/nhibernate/src/NHibernate/Hql/Ast/ANTLR/AntlrHqlSqlWalkerDebug.bat 2011-01-15 17:38:05 UTC (rev 5350) @@ -0,0 +1,5 @@ +rem I wanted to put this in the nant build file, but I had very annoying problems with 64-bit java running from the 32-bit nant process. +@echo off +pushd %~dp0 +java.exe -cp ..\..\..\..\..\Tools\Antlr\antlr-3.2.jar org.antlr.Tool -debug -o Generated HqlSqlWalker.g +popd \ No newline at end of file This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <pa...@us...> - 2011-01-15 17:05:08
|
Revision: 5349 http://nhibernate.svn.sourceforge.net/nhibernate/?rev=5349&view=rev Author: patearl Date: 2011-01-15 17:05:00 +0000 (Sat, 15 Jan 2011) Log Message: ----------- Hql: Regenerated HqlSqlWalker with no changes other than path to grammar file. Modified Paths: -------------- trunk/nhibernate/src/NHibernate/Hql/Ast/ANTLR/Generated/HqlSqlWalker.cs Modified: trunk/nhibernate/src/NHibernate/Hql/Ast/ANTLR/Generated/HqlSqlWalker.cs =================================================================== --- trunk/nhibernate/src/NHibernate/Hql/Ast/ANTLR/Generated/HqlSqlWalker.cs 2011-01-13 23:26:54 UTC (rev 5348) +++ trunk/nhibernate/src/NHibernate/Hql/Ast/ANTLR/Generated/HqlSqlWalker.cs 2011-01-15 17:05:00 UTC (rev 5349) @@ -1,4 +1,4 @@ -// $ANTLR 3.2 Sep 23, 2009 12:02:23 C:\\Users\\Steve\\Documents\\NHibernate\\nhibernate\\src\\NHibernate\\Hql\\Ast\\ANTLR\\HqlSqlWalker.g 2010-05-01 20:41:11 +// $ANTLR 3.2 Sep 23, 2009 12:02:23 HqlSqlWalker.g 2011-01-15 09:52:09 // The variable 'variable' is assigned but its value is never used. #pragma warning disable 168, 219 @@ -353,7 +353,7 @@ } override public string GrammarFileName { - get { return "C:\\Users\\Steve\\Documents\\NHibernate\\nhibernate\\src\\NHibernate\\Hql\\Ast\\ANTLR\\HqlSqlWalker.g"; } + get { return "HqlSqlWalker.g"; } } @@ -368,7 +368,7 @@ }; // $ANTLR start "statement" - // C:\\Users\\Steve\\Documents\\NHibernate\\nhibernate\\src\\NHibernate\\Hql\\Ast\\ANTLR\\HqlSqlWalker.g:40:1: statement : ( selectStatement | updateStatement | deleteStatement | insertStatement ); + // HqlSqlWalker.g:40:1: statement : ( selectStatement | updateStatement | deleteStatement | insertStatement ); public HqlSqlWalker.statement_return statement() // throws RecognitionException [1] { HqlSqlWalker.statement_return retval = new HqlSqlWalker.statement_return(); @@ -391,7 +391,7 @@ try { - // C:\\Users\\Steve\\Documents\\NHibernate\\nhibernate\\src\\NHibernate\\Hql\\Ast\\ANTLR\\HqlSqlWalker.g:41:2: ( selectStatement | updateStatement | deleteStatement | insertStatement ) + // HqlSqlWalker.g:41:2: ( selectStatement | updateStatement | deleteStatement | insertStatement ) int alt1 = 4; switch ( input.LA(1) ) { @@ -426,7 +426,7 @@ switch (alt1) { case 1 : - // C:\\Users\\Steve\\Documents\\NHibernate\\nhibernate\\src\\NHibernate\\Hql\\Ast\\ANTLR\\HqlSqlWalker.g:41:4: selectStatement + // HqlSqlWalker.g:41:4: selectStatement { root_0 = (IASTNode)adaptor.GetNilNode(); @@ -440,7 +440,7 @@ } break; case 2 : - // C:\\Users\\Steve\\Documents\\NHibernate\\nhibernate\\src\\NHibernate\\Hql\\Ast\\ANTLR\\HqlSqlWalker.g:41:22: updateStatement + // HqlSqlWalker.g:41:22: updateStatement { root_0 = (IASTNode)adaptor.GetNilNode(); @@ -454,7 +454,7 @@ } break; case 3 : - // C:\\Users\\Steve\\Documents\\NHibernate\\nhibernate\\src\\NHibernate\\Hql\\Ast\\ANTLR\\HqlSqlWalker.g:41:40: deleteStatement + // HqlSqlWalker.g:41:40: deleteStatement { root_0 = (IASTNode)adaptor.GetNilNode(); @@ -468,7 +468,7 @@ } break; case 4 : - // C:\\Users\\Steve\\Documents\\NHibernate\\nhibernate\\src\\NHibernate\\Hql\\Ast\\ANTLR\\HqlSqlWalker.g:41:58: insertStatement + // HqlSqlWalker.g:41:58: insertStatement { root_0 = (IASTNode)adaptor.GetNilNode(); @@ -509,7 +509,7 @@ }; // $ANTLR start "selectStatement" - // C:\\Users\\Steve\\Documents\\NHibernate\\nhibernate\\src\\NHibernate\\Hql\\Ast\\ANTLR\\HqlSqlWalker.g:44:1: selectStatement : query ; + // HqlSqlWalker.g:44:1: selectStatement : query ; public HqlSqlWalker.selectStatement_return selectStatement() // throws RecognitionException [1] { HqlSqlWalker.selectStatement_return retval = new HqlSqlWalker.selectStatement_return(); @@ -526,8 +526,8 @@ try { - // C:\\Users\\Steve\\Documents\\NHibernate\\nhibernate\\src\\NHibernate\\Hql\\Ast\\ANTLR\\HqlSqlWalker.g:45:2: ( query ) - // C:\\Users\\Steve\\Documents\\NHibernate\\nhibernate\\src\\NHibernate\\Hql\\Ast\\ANTLR\\HqlSqlWalker.g:45:4: query + // HqlSqlWalker.g:45:2: ( query ) + // HqlSqlWalker.g:45:4: query { root_0 = (IASTNode)adaptor.GetNilNode(); @@ -566,7 +566,7 @@ }; // $ANTLR start "updateStatement" - // C:\\Users\\Steve\\Documents\\NHibernate\\nhibernate\\src\\NHibernate\\Hql\\Ast\\ANTLR\\HqlSqlWalker.g:51:1: updateStatement : ^(u= UPDATE (v= VERSIONED )? f= fromClause s= setClause (w= whereClause )? ) -> ^( $u $f $s ( $w)? ) ; + // HqlSqlWalker.g:51:1: updateStatement : ^(u= UPDATE (v= VERSIONED )? f= fromClause s= setClause (w= whereClause )? ) -> ^( $u $f $s ( $w)? ) ; public HqlSqlWalker.updateStatement_return updateStatement() // throws RecognitionException [1] { HqlSqlWalker.updateStatement_return retval = new HqlSqlWalker.updateStatement_return(); @@ -595,8 +595,8 @@ RewriteRuleSubtreeStream stream_fromClause = new RewriteRuleSubtreeStream(adaptor,"rule fromClause"); try { - // C:\\Users\\Steve\\Documents\\NHibernate\\nhibernate\\src\\NHibernate\\Hql\\Ast\\ANTLR\\HqlSqlWalker.g:58:2: ( ^(u= UPDATE (v= VERSIONED )? f= fromClause s= setClause (w= whereClause )? ) -> ^( $u $f $s ( $w)? ) ) - // C:\\Users\\Steve\\Documents\\NHibernate\\nhibernate\\src\\NHibernate\\Hql\\Ast\\ANTLR\\HqlSqlWalker.g:58:4: ^(u= UPDATE (v= VERSIONED )? f= fromClause s= setClause (w= whereClause )? ) + // HqlSqlWalker.g:58:2: ( ^(u= UPDATE (v= VERSIONED )? f= fromClause s= setClause (w= whereClause )? ) -> ^( $u $f $s ( $w)? ) ) + // HqlSqlWalker.g:58:4: ^(u= UPDATE (v= VERSIONED )? f= fromClause s= setClause (w= whereClause )? ) { _last = (IASTNode)input.LT(1); { @@ -610,7 +610,7 @@ BeforeStatement( "update", UPDATE ); Match(input, Token.DOWN, null); - // C:\\Users\\Steve\\Documents\\NHibernate\\nhibernate\\src\\NHibernate\\Hql\\Ast\\ANTLR\\HqlSqlWalker.g:58:57: (v= VERSIONED )? + // HqlSqlWalker.g:58:57: (v= VERSIONED )? int alt2 = 2; int LA2_0 = input.LA(1); @@ -621,7 +621,7 @@ switch (alt2) { case 1 : - // C:\\Users\\Steve\\Documents\\NHibernate\\nhibernate\\src\\NHibernate\\Hql\\Ast\\ANTLR\\HqlSqlWalker.g:58:58: v= VERSIONED + // HqlSqlWalker.g:58:58: v= VERSIONED { _last = (IASTNode)input.LT(1); v=(IASTNode)Match(input,VERSIONED,FOLLOW_VERSIONED_in_updateStatement222); @@ -645,7 +645,7 @@ state.followingStackPointer--; stream_setClause.Add(s.Tree); - // C:\\Users\\Steve\\Documents\\NHibernate\\nhibernate\\src\\NHibernate\\Hql\\Ast\\ANTLR\\HqlSqlWalker.g:58:97: (w= whereClause )? + // HqlSqlWalker.g:58:97: (w= whereClause )? int alt3 = 2; int LA3_0 = input.LA(1); @@ -656,7 +656,7 @@ switch (alt3) { case 1 : - // C:\\Users\\Steve\\Documents\\NHibernate\\nhibernate\\src\\NHibernate\\Hql\\Ast\\ANTLR\\HqlSqlWalker.g:58:98: w= whereClause + // HqlSqlWalker.g:58:98: w= whereClause { _last = (IASTNode)input.LT(1); PushFollow(FOLLOW_whereClause_in_updateStatement237); @@ -677,7 +677,7 @@ // AST REWRITE - // elements: u, s, w, f + // elements: w, f, s, u // token labels: u // rule labels: f, w, retval, s // token list labels: @@ -693,14 +693,14 @@ root_0 = (IASTNode)adaptor.GetNilNode(); // 59:3: -> ^( $u $f $s ( $w)? ) { - // C:\\Users\\Steve\\Documents\\NHibernate\\nhibernate\\src\\NHibernate\\Hql\\Ast\\ANTLR\\HqlSqlWalker.g:59:6: ^( $u $f $s ( $w)? ) + // HqlSqlWalker.g:59:6: ^( $u $f $s ( $w)? ) { IASTNode root_1 = (IASTNode)adaptor.GetNilNode(); root_1 = (IASTNode)adaptor.BecomeRoot(stream_u.NextNode(), root_1); adaptor.AddChild(root_1, stream_f.NextTree()); adaptor.AddChild(root_1, stream_s.NextTree()); - // C:\\Users\\Steve\\Documents\\NHibernate\\nhibernate\\src\\NHibernate\\Hql\\Ast\\ANTLR\\HqlSqlWalker.g:59:17: ( $w)? + // HqlSqlWalker.g:59:17: ( $w)? if ( stream_w.HasNext() ) { adaptor.AddChild(root_1, stream_w.NextTree()); @@ -748,7 +748,7 @@ }; // $ANTLR start "deleteStatement" - // C:\\Users\\Steve\\Documents\\NHibernate\\nhibernate\\src\\NHibernate\\Hql\\Ast\\ANTLR\\HqlSqlWalker.g:62:1: deleteStatement : ^( DELETE fromClause ( whereClause )? ) ; + // HqlSqlWalker.g:62:1: deleteStatement : ^( DELETE fromClause ( whereClause )? ) ; public HqlSqlWalker.deleteStatement_return deleteStatement() // throws RecognitionException [1] { HqlSqlWalker.deleteStatement_return retval = new HqlSqlWalker.deleteStatement_return(); @@ -769,8 +769,8 @@ try { - // C:\\Users\\Steve\\Documents\\NHibernate\\nhibernate\\src\\NHibernate\\Hql\\Ast\\ANTLR\\HqlSqlWalker.g:68:2: ( ^( DELETE fromClause ( whereClause )? ) ) - // C:\\Users\\Steve\\Documents\\NHibernate\\nhibernate\\src\\NHibernate\\Hql\\Ast\\ANTLR\\HqlSqlWalker.g:68:4: ^( DELETE fromClause ( whereClause )? ) + // HqlSqlWalker.g:68:2: ( ^( DELETE fromClause ( whereClause )? ) ) + // HqlSqlWalker.g:68:4: ^( DELETE fromClause ( whereClause )? ) { root_0 = (IASTNode)adaptor.GetNilNode(); @@ -794,7 +794,7 @@ state.followingStackPointer--; adaptor.AddChild(root_1, fromClause7.Tree); - // C:\\Users\\Steve\\Documents\\NHibernate\\nhibernate\\src\\NHibernate\\Hql\\Ast\\ANTLR\\HqlSqlWalker.g:68:66: ( whereClause )? + // HqlSqlWalker.g:68:66: ( whereClause )? int alt4 = 2; int LA4_0 = input.LA(1); @@ -805,7 +805,7 @@ switch (alt4) { case 1 : - // C:\\Users\\Steve\\Documents\\NHibernate\\nhibernate\\src\\NHibernate\\Hql\\Ast\\ANTLR\\HqlSqlWalker.g:68:67: whereClause + // HqlSqlWalker.g:68:67: whereClause { _last = (IASTNode)input.LT(1); PushFollow(FOLLOW_whereClause_in_deleteStatement287); @@ -857,7 +857,7 @@ }; // $ANTLR start "insertStatement" - // C:\\Users\\Steve\\Documents\\NHibernate\\nhibernate\\src\\NHibernate\\Hql\\Ast\\ANTLR\\HqlSqlWalker.g:71:1: insertStatement : ^( INSERT intoClause query ) ; + // HqlSqlWalker.g:71:1: insertStatement : ^( INSERT intoClause query ) ; public HqlSqlWalker.insertStatement_return insertStatement() // throws RecognitionException [1] { HqlSqlWalker.insertStatement_return retval = new HqlSqlWalker.insertStatement_return(); @@ -878,8 +878,8 @@ try { - // C:\\Users\\Steve\\Documents\\NHibernate\\nhibernate\\src\\NHibernate\\Hql\\Ast\\ANTLR\\HqlSqlWalker.g:80:2: ( ^( INSERT intoClause query ) ) - // C:\\Users\\Steve\\Documents\\NHibernate\\nhibernate\\src\\NHibernate\\Hql\\Ast\\ANTLR\\HqlSqlWalker.g:80:4: ^( INSERT intoClause query ) + // HqlSqlWalker.g:80:2: ( ^( INSERT intoClause query ) ) + // HqlSqlWalker.g:80:4: ^( INSERT intoClause query ) { root_0 = (IASTNode)adaptor.GetNilNode(); @@ -947,7 +947,7 @@ }; // $ANTLR start "intoClause" - // C:\\Users\\Steve\\Documents\\NHibernate\\nhibernate\\src\\NHibernate\\Hql\\Ast\\ANTLR\\HqlSqlWalker.g:83:1: intoClause : ^( INTO (p= path ) ps= insertablePropertySpec ) ; + // HqlSqlWalker.g:83:1: intoClause : ^( INTO (p= path ) ps= insertablePropertySpec ) ; public HqlSqlWalker.intoClause_return intoClause() // throws RecognitionException [1] { HqlSqlWalker.intoClause_return retval = new HqlSqlWalker.intoClause_return(); @@ -968,8 +968,8 @@ try { - // C:\\Users\\Steve\\Documents\\NHibernate\\nhibernate\\src\\NHibernate\\Hql\\Ast\\ANTLR\\HqlSqlWalker.g:87:2: ( ^( INTO (p= path ) ps= insertablePropertySpec ) ) - // C:\\Users\\Steve\\Documents\\NHibernate\\nhibernate\\src\\NHibernate\\Hql\\Ast\\ANTLR\\HqlSqlWalker.g:87:4: ^( INTO (p= path ) ps= insertablePropertySpec ) + // HqlSqlWalker.g:87:2: ( ^( INTO (p= path ) ps= insertablePropertySpec ) ) + // HqlSqlWalker.g:87:4: ^( INTO (p= path ) ps= insertablePropertySpec ) { root_0 = (IASTNode)adaptor.GetNilNode(); @@ -987,8 +987,8 @@ HandleClauseStart( INTO ); Match(input, Token.DOWN, null); - // C:\\Users\\Steve\\Documents\\NHibernate\\nhibernate\\src\\NHibernate\\Hql\\Ast\\ANTLR\\HqlSqlWalker.g:87:43: (p= path ) - // C:\\Users\\Steve\\Documents\\NHibernate\\nhibernate\\src\\NHibernate\\Hql\\Ast\\ANTLR\\HqlSqlWalker.g:87:44: p= path + // HqlSqlWalker.g:87:43: (p= path ) + // HqlSqlWalker.g:87:44: p= path { _last = (IASTNode)input.LT(1); PushFollow(FOLLOW_path_in_intoClause354); @@ -1041,7 +1041,7 @@ }; // $ANTLR start "insertablePropertySpec" - // C:\\Users\\Steve\\Documents\\NHibernate\\nhibernate\\src\\NHibernate\\Hql\\Ast\\ANTLR\\HqlSqlWalker.g:90:1: insertablePropertySpec : ^( RANGE ( IDENT )+ ) ; + // HqlSqlWalker.g:90:1: insertablePropertySpec : ^( RANGE ( IDENT )+ ) ; public HqlSqlWalker.insertablePropertySpec_return insertablePropertySpec() // throws RecognitionException [1] { HqlSqlWalker.insertablePropertySpec_return retval = new HqlSqlWalker.insertablePropertySpec_return(); @@ -1060,8 +1060,8 @@ try { - // C:\\Users\\Steve\\Documents\\NHibernate\\nhibernate\\src\\NHibernate\\Hql\\Ast\\ANTLR\\HqlSqlWalker.g:91:2: ( ^( RANGE ( IDENT )+ ) ) - // C:\\Users\\Steve\\Documents\\NHibernate\\nhibernate\\src\\NHibernate\\Hql\\Ast\\ANTLR\\HqlSqlWalker.g:91:4: ^( RANGE ( IDENT )+ ) + // HqlSqlWalker.g:91:2: ( ^( RANGE ( IDENT )+ ) ) + // HqlSqlWalker.g:91:4: ^( RANGE ( IDENT )+ ) { root_0 = (IASTNode)adaptor.GetNilNode(); @@ -1078,7 +1078,7 @@ Match(input, Token.DOWN, null); - // C:\\Users\\Steve\\Documents\\NHibernate\\nhibernate\\src\\NHibernate\\Hql\\Ast\\ANTLR\\HqlSqlWalker.g:91:13: ( IDENT )+ + // HqlSqlWalker.g:91:13: ( IDENT )+ int cnt5 = 0; do { @@ -1094,7 +1094,7 @@ switch (alt5) { case 1 : - // C:\\Users\\Steve\\Documents\\NHibernate\\nhibernate\\src\\NHibernate\\Hql\\Ast\\ANTLR\\HqlSqlWalker.g:91:14: IDENT + // HqlSqlWalker.g:91:14: IDENT { _last = (IASTNode)input.LT(1); IDENT14=(IASTNode)Match(input,IDENT,FOLLOW_IDENT_in_insertablePropertySpec378); @@ -1151,7 +1151,7 @@ }; // $ANTLR start "setClause" - // C:\\Users\\Steve\\Documents\\NHibernate\\nhibernate\\src\\NHibernate\\Hql\\Ast\\ANTLR\\HqlSqlWalker.g:94:1: setClause : ^( SET ( assignment )* ) ; + // HqlSqlWalker.g:94:1: setClause : ^( SET ( assignment )* ) ; public HqlSqlWalker.setClause_return setClause() // throws RecognitionException [1] { HqlSqlWalker.setClause_return retval = new HqlSqlWalker.setClause_return(); @@ -1170,8 +1170,8 @@ try { - // C:\\Users\\Steve\\Documents\\NHibernate\\nhibernate\\src\\NHibernate\\Hql\\Ast\\ANTLR\\HqlSqlWalker.g:95:2: ( ^( SET ( assignment )* ) ) - // C:\\Users\\Steve\\Documents\\NHibernate\\nhibernate\\src\\NHibernate\\Hql\\Ast\\ANTLR\\HqlSqlWalker.g:95:4: ^( SET ( assignment )* ) + // HqlSqlWalker.g:95:2: ( ^( SET ( assignment )* ) ) + // HqlSqlWalker.g:95:4: ^( SET ( assignment )* ) { root_0 = (IASTNode)adaptor.GetNilNode(); @@ -1191,7 +1191,7 @@ if ( input.LA(1) == Token.DOWN ) { Match(input, Token.DOWN, null); - // C:\\Users\\Steve\\Documents\\NHibernate\\nhibernate\\src\\NHibernate\\Hql\\Ast\\ANTLR\\HqlSqlWalker.g:95:41: ( assignment )* + // HqlSqlWalker.g:95:41: ( assignment )* do { int alt6 = 2; @@ -1206,7 +1206,7 @@ switch (alt6) { case 1 : - // C:\\Users\\Steve\\Documents\\NHibernate\\nhibernate\\src\\NHibernate\\Hql\\Ast\\ANTLR\\HqlSqlWalker.g:95:42: assignment + // HqlSqlWalker.g:95:42: assignment { _last = (IASTNode)input.LT(1); PushFollow(FOLLOW_assignment_in_setClause400); @@ -1260,7 +1260,7 @@ }; // $ANTLR start "assignment" - // C:\\Users\\Steve\\Documents\\NHibernate\\nhibernate\\src\\NHibernate\\Hql\\Ast\\ANTLR\\HqlSqlWalker.g:98:1: assignment : ^( EQ (p= propertyRef ) ( newValue ) ) ; + // HqlSqlWalker.g:98:1: assignment : ^( EQ (p= propertyRef ) ( newValue ) ) ; public HqlSqlWalker.assignment_return assignment() // throws RecognitionException [1] { HqlSqlWalker.assignment_return retval = new HqlSqlWalker.assignment_return(); @@ -1281,8 +1281,8 @@ try { - // C:\\Users\\Steve\\Documents\\NHibernate\\nhibernate\\src\\NHibernate\\Hql\\Ast\\ANTLR\\HqlSqlWalker.g:104:2: ( ^( EQ (p= propertyRef ) ( newValue ) ) ) - // C:\\Users\\Steve\\Documents\\NHibernate\\nhibernate\\src\\NHibernate\\Hql\\Ast\\ANTLR\\HqlSqlWalker.g:104:4: ^( EQ (p= propertyRef ) ( newValue ) ) + // HqlSqlWalker.g:104:2: ( ^( EQ (p= propertyRef ) ( newValue ) ) ) + // HqlSqlWalker.g:104:4: ^( EQ (p= propertyRef ) ( newValue ) ) { root_0 = (IASTNode)adaptor.GetNilNode(); @@ -1299,8 +1299,8 @@ Match(input, Token.DOWN, null); - // C:\\Users\\Steve\\Documents\\NHibernate\\nhibernate\\src\\NHibernate\\Hql\\Ast\\ANTLR\\HqlSqlWalker.g:104:10: (p= propertyRef ) - // C:\\Users\\Steve\\Documents\\NHibernate\\nhibernate\\src\\NHibernate\\Hql\\Ast\\ANTLR\\HqlSqlWalker.g:104:11: p= propertyRef + // HqlSqlWalker.g:104:10: (p= propertyRef ) + // HqlSqlWalker.g:104:11: p= propertyRef { _last = (IASTNode)input.LT(1); PushFollow(FOLLOW_propertyRef_in_assignment432); @@ -1312,8 +1312,8 @@ } Resolve(((p != null) ? ((IASTNode)p.Tree) : null)); - // C:\\Users\\Steve\\Documents\\NHibernate\\nhibernate\\src\\NHibernate\\Hql\\Ast\\ANTLR\\HqlSqlWalker.g:104:48: ( newValue ) - // C:\\Users\\Steve\\Documents\\NHibernate\\nhibernate\\src\\NHibernate\\Hql\\Ast\\ANTLR\\HqlSqlWalker.g:104:49: newValue + // HqlSqlWalker.g:104:48: ( newValue ) + // HqlSqlWalker.g:104:49: newValue { _last = (IASTNode)input.LT(1); PushFollow(FOLLOW_newValue_in_assignment438); @@ -1360,7 +1360,7 @@ }; // $ANTLR start "newValue" - // C:\\Users\\Steve\\Documents\\NHibernate\\nhibernate\\src\\NHibernate\\Hql\\Ast\\ANTLR\\HqlSqlWalker.g:108:1: newValue : ( expr | query ); + // HqlSqlWalker.g:108:1: newValue : ( expr | query ); public HqlSqlWalker.newValue_return newValue() // throws RecognitionException [1] { HqlSqlWalker.newValue_return retval = new HqlSqlWalker.newValue_return(); @@ -1379,7 +1379,7 @@ try { - // C:\\Users\\Steve\\Documents\\NHibernate\\nhibernate\\src\\NHibernate\\Hql\\Ast\\ANTLR\\HqlSqlWalker.g:109:2: ( expr | query ) + // HqlSqlWalker.g:109:2: ( expr | query ) int alt7 = 2; int LA7_0 = input.LA(1); @@ -1401,7 +1401,7 @@ switch (alt7) { case 1 : - // C:\\Users\\Steve\\Documents\\NHibernate\\nhibernate\\src\\NHibernate\\Hql\\Ast\\ANTLR\\HqlSqlWalker.g:109:4: expr + // HqlSqlWalker.g:109:4: expr { root_0 = (IASTNode)adaptor.GetNilNode(); @@ -1415,7 +1415,7 @@ } break; case 2 : - // C:\\Users\\Steve\\Documents\\NHibernate\\nhibernate\\src\\NHibernate\\Hql\\Ast\\ANTLR\\HqlSqlWalker.g:109:11: query + // HqlSqlWalker.g:109:11: query { root_0 = (IASTNode)adaptor.GetNilNode(); @@ -1456,7 +1456,7 @@ }; // $ANTLR start "query" - // C:\\Users\\Steve\\Documents\\NHibernate\\nhibernate\\src\\NHibernate\\Hql\\Ast\\ANTLR\\HqlSqlWalker.g:112:1: query : ( unionedQuery | ^( UNION unionedQuery query ) ); + // HqlSqlWalker.g:112:1: query : ( unionedQuery | ^( UNION unionedQuery query ) ); public HqlSqlWalker.query_return query() // throws RecognitionException [1] { HqlSqlWalker.query_return retval = new HqlSqlWalker.query_return(); @@ -1479,7 +1479,7 @@ try { - // C:\\Users\\Steve\\Documents\\NHibernate\\nhibernate\\src\\NHibernate\\Hql\\Ast\\ANTLR\\HqlSqlWalker.g:113:2: ( unionedQuery | ^( UNION unionedQuery query ) ) + // HqlSqlWalker.g:113:2: ( unionedQuery | ^( UNION unionedQuery query ) ) int alt8 = 2; int LA8_0 = input.LA(1); @@ -1501,7 +1501,7 @@ switch (alt8) { case 1 : - // C:\\Users\\Steve\\Documents\\NHibernate\\nhibernate\\src\\NHibernate\\Hql\\Ast\\ANTLR\\HqlSqlWalker.g:113:4: unionedQuery + // HqlSqlWalker.g:113:4: unionedQuery { root_0 = (IASTNode)adaptor.GetNilNode(); @@ -1515,7 +1515,7 @@ } break; case 2 : - // C:\\Users\\Steve\\Documents\\NHibernate\\nhibernate\\src\\NHibernate\\Hql\\Ast\\ANTLR\\HqlSqlWalker.g:114:4: ^( UNION unionedQuery query ) + // HqlSqlWalker.g:114:4: ^( UNION unionedQuery query ) { root_0 = (IASTNode)adaptor.GetNilNode(); @@ -1579,7 +1579,7 @@ }; // $ANTLR start "unionedQuery" - // C:\\Users\\Steve\\Documents\\NHibernate\\nhibernate\\src\\NHibernate\\Hql\\Ast\\ANTLR\\HqlSqlWalker.g:119:1: unionedQuery : ^( QUERY ^( SELECT_FROM f= fromClause (s= selectClause )? ) (w= whereClause )? (g= groupClause )? (o= orderClause )? ) -> ^( SELECT ( $s)? $f ( $w)? ( $g)? ( $o)? ) ; + // HqlSqlWalker.g:119:1: unionedQuery : ^( QUERY ^( SELECT_FROM f= fromClause (s= selectClause )? ) (w= whereClause )? (g= groupClause )? (o= orderClause )? ) -> ^( SELECT ( $s)? $f ( $w)? ( $g)? ( $o)? ) ; public HqlSqlWalker.unionedQuery_return unionedQuery() // throws RecognitionException [1] { HqlSqlWalker.unionedQuery_return retval = new HqlSqlWalker.unionedQuery_return(); @@ -1614,8 +1614,8 @@ RewriteRuleSubtreeStream stream_selectClause = new RewriteRuleSubtreeStream(adaptor,"rule selectClause"); try { - // C:\\Users\\Steve\\Documents\\NHibernate\\nhibernate\\src\\NHibernate\\Hql\\Ast\\ANTLR\\HqlSqlWalker.g:126:2: ( ^( QUERY ^( SELECT_FROM f= fromClause (s= selectClause )? ) (w= whereClause )? (g= groupClause )? (o= orderClause )? ) -> ^( SELECT ( $s)? $f ( $w)? ( $g)? ( $o)? ) ) - // C:\\Users\\Steve\\Documents\\NHibernate\\nhibernate\\src\\NHibernate\\Hql\\Ast\\ANTLR\\HqlSqlWalker.g:126:4: ^( QUERY ^( SELECT_FROM f= fromClause (s= selectClause )? ) (w= whereClause )? (g= groupClause )? (o= orderClause )? ) + // HqlSqlWalker.g:126:2: ( ^( QUERY ^( SELECT_FROM f= fromClause (s= selectClause )? ) (w= whereClause )? (g= groupClause )? (o= orderClause )? ) -> ^( SELECT ( $s)? $f ( $w)? ( $g)? ( $o)? ) ) + // HqlSqlWalker.g:126:4: ^( QUERY ^( SELECT_FROM f= fromClause (s= selectClause )? ) (w= whereClause )? (g= groupClause )? (o= orderClause )? ) { _last = (IASTNode)input.LT(1); { @@ -1646,7 +1646,7 @@ state.followingStackPointer--; stream_fromClause.Add(f.Tree); - // C:\\Users\\Steve\\Documents\\NHibernate\\nhibernate\\src\\NHibernate\\Hql\\Ast\\ANTLR\\HqlSqlWalker.g:130:5: (s= selectClause )? + // HqlSqlWalker.g:130:5: (s= selectClause )? int alt9 = 2; int LA9_0 = input.LA(1); @@ -1657,7 +1657,7 @@ switch (alt9) { case 1 : - // C:\\Users\\Steve\\Documents\\NHibernate\\nhibernate\\src\\NHibernate\\Hql\\Ast\\ANTLR\\HqlSqlWalker.g:130:6: s= selectClause + // HqlSqlWalker.g:130:6: s= selectClause { _last = (IASTNode)input.LT(1); PushFollow(FOLLOW_selectClause_in_unionedQuery532); @@ -1675,7 +1675,7 @@ Match(input, Token.UP, null); adaptor.AddChild(root_1, root_2);_last = _save_last_2; } - // C:\\Users\\Steve\\Documents\\NHibernate\\nhibernate\\src\\NHibernate\\Hql\\Ast\\ANTLR\\HqlSqlWalker.g:132:4: (w= whereClause )? + // HqlSqlWalker.g:132:4: (w= whereClause )? int alt10 = 2; int LA10_0 = input.LA(1); @@ -1686,7 +1686,7 @@ switch (alt10) { case 1 : - // C:\\Users\\Steve\\Documents\\NHibernate\\nhibernate\\src\\NHibernate\\Hql\\Ast\\ANTLR\\HqlSqlWalker.g:132:5: w= whereClause + // HqlSqlWalker.g:132:5: w= whereClause { _last = (IASTNode)input.LT(1); PushFollow(FOLLOW_whereClause_in_unionedQuery547); @@ -1700,7 +1700,7 @@ } - // C:\\Users\\Steve\\Documents\\NHibernate\\nhibernate\\src\\NHibernate\\Hql\\Ast\\ANTLR\\HqlSqlWalker.g:133:4: (g= groupClause )? + // HqlSqlWalker.g:133:4: (g= groupClause )? int alt11 = 2; int LA11_0 = input.LA(1); @@ -1711,7 +1711,7 @@ switch (alt11) { case 1 : - // C:\\Users\\Steve\\Documents\\NHibernate\\nhibernate\\src\\NHibernate\\Hql\\Ast\\ANTLR\\HqlSqlWalker.g:133:5: g= groupClause + // HqlSqlWalker.g:133:5: g= groupClause { _last = (IASTNode)input.LT(1); PushFollow(FOLLOW_groupClause_in_unionedQuery557); @@ -1725,7 +1725,7 @@ } - // C:\\Users\\Steve\\Documents\\NHibernate\\nhibernate\\src\\NHibernate\\Hql\\Ast\\ANTLR\\HqlSqlWalker.g:134:4: (o= orderClause )? + // HqlSqlWalker.g:134:4: (o= orderClause )? int alt12 = 2; int LA12_0 = input.LA(1); @@ -1736,7 +1736,7 @@ switch (alt12) { case 1 : - // C:\\Users\\Steve\\Documents\\NHibernate\\nhibernate\\src\\NHibernate\\Hql\\Ast\\ANTLR\\HqlSqlWalker.g:134:5: o= orderClause + // HqlSqlWalker.g:134:5: o= orderClause { _last = (IASTNode)input.LT(1); PushFollow(FOLLOW_orderClause_in_unionedQuery567); @@ -1757,15 +1757,15 @@ // AST REWRITE - // elements: o, g, w, f, s + // elements: o, f, g, s, w // token labels: - // rule labels: f, w, g, retval, s, o + // rule labels: w, f, g, retval, s, o // token list labels: // rule list labels: // wildcard labels: retval.Tree = root_0; + RewriteRuleSubtreeStream stream_w = new RewriteRuleSubtreeStream(adaptor, "rule w", w!=null ? w.Tree : null); RewriteRuleSubtreeStream stream_f = new RewriteRuleSubtreeStream(adaptor, "rule f", f!=null ? f.Tree : null); - RewriteRuleSubtreeStream stream_w = new RewriteRuleSubtreeStream(adaptor, "rule w", w!=null ? w.Tree : null); RewriteRuleSubtreeStream stream_g = new RewriteRuleSubtreeStream(adaptor, "rule g", g!=null ? g.Tree : null); RewriteRuleSubtreeStream stream_retval = new RewriteRuleSubtreeStream(adaptor, "rule retval", retval!=null ? retval.Tree : null); RewriteRuleSubtreeStream stream_s = new RewriteRuleSubtreeStream(adaptor, "rule s", s!=null ? s.Tree : null); @@ -1774,12 +1774,12 @@ root_0 = (IASTNode)adaptor.GetNilNode(); // 136:2: -> ^( SELECT ( $s)? $f ( $w)? ( $g)? ( $o)? ) { - // C:\\Users\\Steve\\Documents\\NHibernate\\nhibernate\\src\\NHibernate\\Hql\\Ast\\ANTLR\\HqlSqlWalker.g:136:5: ^( SELECT ( $s)? $f ( $w)? ( $g)? ( $o)? ) + // HqlSqlWalker.g:136:5: ^( SELECT ( $s)? $f ( $w)? ( $g)? ( $o)? ) { IASTNode root_1 = (IASTNode)adaptor.GetNilNode(); root_1 = (IASTNode)adaptor.BecomeRoot((IASTNode)adaptor.Create(SELECT, "SELECT"), root_1); - // C:\\Users\\Steve\\Documents\\NHibernate\\nhibernate\\src\\NHibernate\\Hql\\Ast\\ANTLR\\HqlSqlWalker.g:136:14: ( $s)? + // HqlSqlWalker.g:136:14: ( $s)? if ( stream_s.HasNext() ) { adaptor.AddChild(root_1, stream_s.NextTree()); @@ -1787,21 +1787,21 @@ } stream_s.Reset(); adaptor.AddChild(root_1, stream_f.NextTree()); - // C:\\Users\\Steve\\Documents\\NHibernate\\nhibernate\\src\\NHibernate\\Hql\\Ast\\ANTLR\\HqlSqlWalker.g:136:21: ( $w)? + // HqlSqlWalker.g:136:21: ( $w)? if ( stream_w.HasNext() ) { adaptor.AddChild(root_1, stream_w.NextTree()); } stream_w.Reset(); - // C:\\Users\\Steve\\Documents\\NHibernate\\nhibernate\\src\\NHibernate\\Hql\\Ast\\ANTLR\\HqlSqlWalker.g:136:25: ( $g)? + // HqlSqlWalker.g:136:25: ( $g)? if ( stream_g.HasNext() ) { adaptor.AddChild(root_1, stream_g.NextTree()); } stream_g.Reset(); - // C:\\Users\\Steve\\Documents\\NHibernate\\nhibernate\\src\\NHibernate\\Hql\\Ast\\ANTLR\\HqlSqlWalker.g:136:29: ( $o)? + // HqlSqlWalker.g:136:29: ( $o)? if ( stream_o.HasNext() ) { adaptor.AddChild(root_1, stream_o.NextTree()); @@ -1849,7 +1849,7 @@ }; // $ANTLR start "orderClause" - // C:\\Users\\Steve\\Documents\\NHibernate\\nhibernate\\src\\NHibernate\\Hql\\Ast\\ANTLR\\HqlSqlWalker.g:139:1: orderClause : ^( ORDER orderExprs ) ; + // HqlSqlWalker.g:139:1: orderClause : ^( ORDER orderExprs ) ; public HqlSqlWalker.orderClause_return orderClause() // throws RecognitionException [1] { HqlSqlWalker.orderClause_return retval = new HqlSqlWalker.orderClause_return(); @@ -1868,8 +1868,8 @@ try { - // C:\\Users\\Steve\\Documents\\NHibernate\\nhibernate\\src\\NHibernate\\Hql\\Ast\\ANTLR\\HqlSqlWalker.g:140:2: ( ^( ORDER orderExprs ) ) - // C:\\Users\\Steve\\Documents\\NHibernate\\nhibernate\\src\\NHibernate\\Hql\\Ast\\ANTLR\\HqlSqlWalker.g:140:4: ^( ORDER orderExprs ) + // HqlSqlWalker.g:140:2: ( ^( ORDER orderExprs ) ) + // HqlSqlWalker.g:140:4: ^( ORDER orderExprs ) { root_0 = (IASTNode)adaptor.GetNilNode(); @@ -1926,7 +1926,7 @@ }; // $ANTLR start "orderExprs" - // C:\\Users\\Steve\\Documents\\NHibernate\\nhibernate\\src\\NHibernate\\Hql\\Ast\\ANTLR\\HqlSqlWalker.g:143:1: orderExprs : expr ( ASCENDING | DESCENDING )? ( orderExprs )? ; + // HqlSqlWalker.g:143:1: orderExprs : expr ( ASCENDING | DESCENDING )? ( orderExprs )? ; public HqlSqlWalker.orderExprs_return orderExprs() // throws RecognitionException [1] { HqlSqlWalker.orderExprs_return retval = new HqlSqlWalker.orderExprs_return(); @@ -1947,8 +1947,8 @@ try { - // C:\\Users\\Steve\\Documents\\NHibernate\\nhibernate\\src\\NHibernate\\Hql\\Ast\\ANTLR\\HqlSqlWalker.g:144:2: ( expr ( ASCENDING | DESCENDING )? ( orderExprs )? ) - // C:\\Users\\Steve\\Documents\\NHibernate\\nhibernate\\src\\NHibernate\\Hql\\Ast\\ANTLR\\HqlSqlWalker.g:144:4: expr ( ASCENDING | DESCENDING )? ( orderExprs )? + // HqlSqlWalker.g:144:2: ( expr ( ASCENDING | DESCENDING )? ( orderExprs )? ) + // HqlSqlWalker.g:144:4: expr ( ASCENDING | DESCENDING )? ( orderExprs )? { root_0 = (IASTNode)adaptor.GetNilNode(); @@ -1958,7 +1958,7 @@ state.followingStackPointer--; adaptor.AddChild(root_0, expr29.Tree); - // C:\\Users\\Steve\\Documents\\NHibernate\\nhibernate\\src\\NHibernate\\Hql\\Ast\\ANTLR\\HqlSqlWalker.g:144:9: ( ASCENDING | DESCENDING )? + // HqlSqlWalker.g:144:9: ( ASCENDING | DESCENDING )? int alt13 = 2; int LA13_0 = input.LA(1); @@ -1969,7 +1969,7 @@ switch (alt13) { case 1 : - // C:\\Users\\Steve\\Documents\\NHibernate\\nhibernate\\src\\NHibernate\\Hql\\Ast\\ANTLR\\HqlSqlWalker.g: + // HqlSqlWalker.g: { _last = (IASTNode)input.LT(1); set30 = (IASTNode)input.LT(1); @@ -1995,7 +1995,7 @@ } - // C:\\Users\\Steve\\Documents\\NHibernate\\nhibernate\\src\\NHibernate\\Hql\\Ast\\ANTLR\\HqlSqlWalker.g:144:37: ( orderExprs )? + // HqlSqlWalker.g:144:37: ( orderExprs )? int alt14 = 2; int LA14_0 = input.LA(1); @@ -2006,7 +2006,7 @@ switch (alt14) { case 1 : - // C:\\Users\\Steve\\Documents\\NHibernate\\nhibernate\\src\\NHibernate\\Hql\\Ast\\ANTLR\\HqlSqlWalker.g:144:38: orderExprs + // HqlSqlWalker.g:144:38: orderExprs { _last = (IASTNode)input.LT(1); PushFollow(FOLLOW_orderExprs_in_orderExprs642); @@ -2049,7 +2049,7 @@ }; // $ANTLR start "groupClause" - // C:\\Users\\Steve\\Documents\\NHibernate\\nhibernate\\src\\NHibernate\\Hql\\Ast\\ANTLR\\HqlSqlWalker.g:147:1: groupClause : ^( GROUP ( expr )+ ( ^( HAVING logicalExpr ) )? ) ; + // HqlSqlWalker.g:147:1: groupClause : ^( GROUP ( expr )+ ( ^( HAVING logicalExpr ) )? ) ; public HqlSqlWalker.groupClause_return groupClause() // throws RecognitionException [1] { HqlSqlWalker.groupClause_return retval = new HqlSqlWalker.groupClause_return(); @@ -2072,8 +2072,8 @@ try { - // C:\\Users\\Steve\\Documents\\NHibernate\\nhibernate\\src\\NHibernate\\Hql\\Ast\\ANTLR\\HqlSqlWalker.g:148:2: ( ^( GROUP ( expr )+ ( ^( HAVING logicalExpr ) )? ) ) - // C:\\Users\\Steve\\Documents\\NHibernate\\nhibernate\\src\\NHibernate\\Hql\\Ast\\ANTLR\\HqlSqlWalker.g:148:4: ^( GROUP ( expr )+ ( ^( HAVING logicalExpr ) )? ) + // HqlSqlWalker.g:148:2: ( ^( GROUP ( expr )+ ( ^( HAVING logicalExpr ) )? ) ) + // HqlSqlWalker.g:148:4: ^( GROUP ( expr )+ ( ^( HAVING logicalExpr ) )? ) { root_0 = (IASTNode)adaptor.GetNilNode(); @@ -2091,7 +2091,7 @@ HandleClauseStart( GROUP ); Match(input, Token.DOWN, null); - // C:\\Users\\Steve\\Documents\\NHibernate\\nhibernate\\src\\NHibernate\\Hql\\Ast\\ANTLR\\HqlSqlWalker.g:148:44: ( expr )+ + // HqlSqlWalker.g:148:44: ( expr )+ int cnt15 = 0; do { @@ -2107,7 +2107,7 @@ switch (alt15) { case 1 : - // C:\\Users\\Steve\\Documents\\NHibernate\\nhibernate\\src\\NHibernate\\Hql\\Ast\\ANTLR\\HqlSqlWalker.g:148:45: expr + // HqlSqlWalker.g:148:45: expr { _last = (IASTNode)input.LT(1); PushFollow(FOLLOW_expr_in_groupClause661); @@ -2131,7 +2131,7 @@ loop15: ; // Stops C# compiler whining that label 'loop15' has no statements - // C:\\Users\\Steve\\Documents\\NHibernate\\nhibernate\\src\\NHibernate\\Hql\\Ast\\ANTLR\\HqlSqlWalker.g:148:52: ( ^( HAVING logicalExpr ) )? + // HqlSqlWalker.g:148:52: ( ^( HAVING logicalExpr ) )? int alt16 = 2; int LA16_0 = input.LA(1); @@ -2142,7 +2142,7 @@ switch (alt16) { case 1 : - // C:\\Users\\Steve\\Documents\\NHibernate\\nhibernate\\src\\NHibernate\\Hql\\Ast\\ANTLR\\HqlSqlWalker.g:148:54: ^( HAVING logicalExpr ) + // HqlSqlWalker.g:148:54: ^( HAVING logicalExpr ) { _last = (IASTNode)input.LT(1); { @@ -2206,7 +2206,7 @@ }; // $ANTLR start "selectClause" - // C:\\Users\\Steve\\Documents\\NHibernate\\nhibernate\\src\\NHibernate\\Hql\\Ast\\ANTLR\\HqlSqlWalker.g:151:1: selectClause : ^( SELECT (d= DISTINCT )? x= selectExprList ) -> ^( SELECT_CLAUSE[\"{select clause}\"] ( $d)? $x) ; + // HqlSqlWalker.g:151:1: selectClause : ^( SELECT (d= DISTINCT )? x= selectExprList ) -> ^( SELECT_CLAUSE[\"{select clause}\"] ( $d)? $x) ; public HqlSqlWalker.selectClause_return selectClause() // throws RecognitionException [1] { HqlSqlWalker.selectClause_return retval = new HqlSqlWalker.selectClause_return(); @@ -2229,8 +2229,8 @@ RewriteRuleSubtreeStream stream_selectExprList = new RewriteRuleSubtreeStream(adaptor,"rule selectExprList"); try { - // C:\\Users\\Steve\\Documents\\NHibernate\\nhibernate\\src\\NHibernate\\Hql\\Ast\\ANTLR\\HqlSqlWalker.g:152:2: ( ^( SELECT (d= DISTINCT )? x= selectExprList ) -> ^( SELECT_CLAUSE[\"{select clause}\"] ( $d)? $x) ) - // C:\\Users\\Steve\\Documents\\NHibernate\\nhibernate\\src\\NHibernate\\Hql\\Ast\\ANTLR\\HqlSqlWalker.g:152:4: ^( SELECT (d= DISTINCT )? x= selectExprList ) + // HqlSqlWalker.g:152:2: ( ^( SELECT (d= DISTINCT )? x= selectExprList ) -> ^( SELECT_CLAUSE[\"{select clause}\"] ( $d)? $x) ) + // HqlSqlWalker.g:152:4: ^( SELECT (d= DISTINCT )? x= selectExprList ) { _last = (IASTNode)input.LT(1); { @@ -2244,7 +2244,7 @@ HandleClauseStart( SELECT ); BeforeSelectClause(); Match(input, Token.DOWN, null); - // C:\\Users\\Steve\\Documents\\NHibernate\\nhibernate\\src\\NHibernate\\Hql\\Ast\\ANTLR\\HqlSqlWalker.g:152:68: (d= DISTINCT )? + // HqlSqlWalker.g:152:68: (d= DISTINCT )? int alt17 = 2; int LA17_0 = input.LA(1); @@ -2255,7 +2255,7 @@ switch (alt17) { case 1 : - // C:\\Users\\Steve\\Documents\\NHibernate\\nhibernate\\src\\NHibernate\\Hql\\Ast\\ANTLR\\HqlSqlWalker.g:152:69: d= DISTINCT + // HqlSqlWalker.g:152:69: d= DISTINCT { _last = (IASTNode)input.LT(1); d=(IASTNode)Match(input,DISTINCT,FOLLOW_DISTINCT_in_selectClause696); @@ -2280,7 +2280,7 @@ // AST REWRITE - // elements: d, x + // elements: x, d // token labels: d // rule labels: retval, x // token list labels: @@ -2294,12 +2294,12 @@ root_0 = (IASTNode)adaptor.GetNilNode(); // 153:2: -> ^( SELECT_CLAUSE[\"{select clause}\"] ( $d)? $x) { - // C:\\Users\\Steve\\Documents\\NHibernate\\nhibernate\\src\\NHibernate\\Hql\\Ast\\ANTLR\\HqlSqlWalker.g:153:5: ^( SELECT_CLAUSE[\"{select clause}\"] ( $d)? $x) + // HqlSqlWalker.g:153:5: ^( SELECT_CLAUSE[\"{select clause}\"] ( $d)? $x) { IASTNode root_1 = (IASTNode)adaptor.GetNilNode(); root_1 = (IASTNode)adaptor.BecomeRoot((IASTNode)adaptor.Create(SELECT_CLAUSE, "{select clause}"), root_1); - // C:\\Users\\Steve\\Documents\\NHibernate\\nhibernate\\src\\NHibernate\\Hql\\Ast\\ANTLR\\HqlSqlWalker.g:153:40: ( $d)? + // HqlSqlWalker.g:153:40: ( $d)? if ( stream_d.HasNext() ) { adaptor.AddChild(root_1, stream_d.NextNode()); @@ -2342,7 +2342,7 @@ }; // $ANTLR start "selectExprList" - // C:\\Users\\Steve\\Documents\\NHibernate\\nhibernate\\src\\NHibernate\\Hql\\Ast\\ANTLR\\HqlSqlWalker.g:156:1: selectExprList : ( selectExpr | aliasedSelectExpr )+ ; + // HqlSqlWalker.g:156:1: selectExprList : ( selectExpr | aliasedSelectExpr )+ ; public HqlSqlWalker.selectExprList_return selectExprList() // throws RecognitionException [1] { HqlSqlWalker.selectExprList_return retval = new HqlSqlWalker.selectExprList_return(); @@ -2365,12 +2365,12 @@ try { - // C:\\Users\\Steve\\Documents\\NHibernate\\nhibernate\\src\\NHibernate\\Hql\\Ast\\ANTLR\\HqlSqlWalker.g:160:2: ( ( selectExpr | aliasedSelectExpr )+ ) - // C:\\Users\\Steve\\Documents\\NHibernate\\nhibernate\\src\\NHibernate\\Hql\\Ast\\ANTLR\\HqlSqlWalker.g:160:4: ( selectExpr | aliasedSelectExpr )+ + // HqlSqlWalker.g:160:2: ( ( selectExpr | aliasedSelectExpr )+ ) + // HqlSqlWalker.g:160:4: ( selectExpr | aliasedSelectExpr )+ { root_0 = (IASTNode)adaptor.GetNilNode(); - // C:\\Users\\Steve\\Documents\\NHibernate\\nhibernate\\src\\NHibernate\\Hql\\Ast\\ANTLR\\HqlSqlWalker.g:160:4: ( selectExpr | aliasedSelectExpr )+ + // HqlSqlWalker.g:160:4: ( selectExpr | aliasedSelectExpr )+ int cnt18 = 0; do { @@ -2390,7 +2390,7 @@ switch (alt18) { case 1 : - // C:\\Users\\Steve\\Documents\\NHibernate\\nhibernate\\src\\NHibernate\\Hql\\Ast\\ANTLR\\HqlSqlWalker.g:160:6: selectExpr + // HqlSqlWalker.g:160:6: selectExpr { _last = (IASTNode)input.LT(1); PushFollow(FOLLOW_selectExpr_in_selectExprList737); @@ -2402,7 +2402,7 @@ } break; case 2 : - // C:\\Users\\Steve\\Documents\\NHibernate\\nhibernate\\src\\NHibernate\\Hql\\Ast\\ANTLR\\HqlSqlWalker.g:160:19: aliasedSelectExpr + // HqlSqlWalker.g:160:19: aliasedSelectExpr { _last = (IASTNode)input.LT(1); PushFollow(FOLLOW_aliasedSelectExpr_in_selectExprList741); @@ -2458,7 +2458,7 @@ }; // $ANTLR start "aliasedSelectExpr" - // C:\\Users\\Steve\\Documents\\NHibernate\\nhibernate\\src\\NHibernate\\Hql\\Ast\\ANTLR\\HqlSqlWalker.g:165:1: aliasedSelectExpr : ^( AS se= selectExpr i= identifier ) ; + // HqlSqlWalker.g:165:1: aliasedSelectExpr : ^( AS se= selectExpr i= identifier ) ; public HqlSqlWalker.aliasedSelectExpr_return aliasedSelectExpr() // throws RecognitionException [1] { HqlSqlWalker.aliasedSelectExpr_return retval = new HqlSqlWalker.aliasedSelectExpr_return(); @@ -2479,8 +2479,8 @@ try { - // C:\\Users\\Steve\\Documents\\NHibernate\\nhibernate\\src\\NHibernate\\Hql\\Ast\\ANTLR\\HqlSqlWalker.g:170:2: ( ^( AS se= selectExpr i= identifier ) ) - // C:\\Users\\Steve\\Documents\\NHibernate\\nhibernate\\src\\NHibernate\\Hql\\Ast\\ANTLR\\HqlSqlWalker.g:170:4: ^( AS se= selectExpr i= identifier ) + // HqlSqlWalker.g:170:2: ( ^( AS se= selectExpr i= identifier ) ) + // HqlSqlWalker.g:170:4: ^( AS se= selectExpr i= identifier ) { root_0 = (IASTNode)adaptor.GetNilNode(); @@ -2546,7 +2546,7 @@ }; // $ANTLR start "selectExpr" - // C:\\Users\\Steve\\Documents\\NHibernate\\nhibernate\\src\\NHibernate\\Hql\\Ast\\ANTLR\\HqlSqlWalker.g:173:1: selectExpr : (p= propertyRef | ^( ALL ar2= aliasRef ) | ^( OBJECT ar3= aliasRef ) | con= constructor | functionCall | count | collectionFunction | literal | arithmeticExpr | query ); + // HqlSqlWalker.g:173:1: selectExpr : (p= propertyRef | ^( ALL ar2= aliasRef ) | ^( OBJECT ar3= aliasRef ) | con= constructor | functionCall | count | collectionFunction | literal | arithmeticExpr | query ); public HqlSqlWalker.selectExpr_return selectExpr() // throws RecognitionException [1] { HqlSqlWalker.selectExpr_return retval = new HqlSqlWalker.selectExpr_return(); @@ -2585,7 +2585,7 @@ try { - // C:\\Users\\Steve\\Documents\\NHibernate\\nhibernate\\src\\NHibernate\\Hql\\Ast\\ANTLR\\HqlSqlWalker.g:174:2: (p= propertyRef | ^( ALL ar2= aliasRef ) | ^( OBJECT ar3= aliasRef ) | con= constructor | functionCall | count | collectionFunction | literal | arithmeticExpr | query ) + // HqlSqlWalker.g:174:2: (p= propertyRef | ^( ALL ar2= aliasRef ) | ^( OBJECT ar3= aliasRef ) | con= constructor | functionCall | count | collectionFunction | literal | arithmeticExpr | query ) int alt19 = 10; switch ( input.LA(1) ) { @@ -2669,7 +2669,7 @@ switch (alt19) { case 1 : - // C:\\Users\\Steve\\Documents\\NHibernate\\nhibernate\\src\\NHibernate\\Hql\\Ast\\ANTLR\\HqlSqlWalker.g:174:4: p= propertyRef + // HqlSqlWalker.g:174:4: p= propertyRef { root_0 = (IASTNode)adaptor.GetNilNode(); @@ -2684,7 +2684,7 @@ } break; case 2 : - // C:\\Users\\Steve\\Documents\\NHibernate\\nhibernate\\src\\NHibernate\\Hql\\Ast\\ANTLR\\HqlSqlWalker.g:175:4: ^( ALL ar2= aliasRef ) + // HqlSqlWalker.g:175:4: ^( ALL ar2= aliasRef ) { root_0 = (IASTNode)adaptor.GetNilNode(); @@ -2716,7 +2716,7 @@ } break; case 3 : - // C:\\Users\\Steve\\Documents\\NHibernate\\nhibernate\\src\\NHibernate\\Hql\\Ast\\ANTLR\\HqlSqlWalker.g:176:4: ^( OBJECT ar3= aliasRef ) + // HqlSqlWalker.g:176:4: ^( OBJECT ar3= aliasRef ) { root_0 = (IASTNode)adaptor.GetNilNode(); @@ -2748,7 +2748,7 @@ } break; case 4 : - // C:\\Users\\Steve\\Documents\\NHibernate\\nhibernate\\src\\NHibernate\\Hql\\Ast\\ANTLR\\HqlSqlWalker.g:177:4: con= constructor + // HqlSqlWalker.g:177:4: con= constructor { root_0 = (IASTNode)adaptor.GetNilNode(); @@ -2763,7 +2763,7 @@ } break; case 5 : - // C:\\Users\\Steve\\Documents\\NHibernate\\nhibernate\\src\\NHibernate\\Hql\\Ast\\ANTLR\\HqlSqlWalker.g:178:4: functionCall + // HqlSqlWalker.g:178:4: functionCall { root_0 = (IASTNode)adaptor.GetNilNode(); @@ -2777,7 +2777,7 @@ } break; case 6 : - // C:\\Users\\Steve\\Documents\\NHibernate\\nhibernate\\src\\NHibernate\\Hql\\Ast\\ANTLR\\HqlSqlWalker.g:179:4: count + // HqlSqlWalker.g:179:4: count { root_0 = (IASTNode)adaptor.GetNilNode(); @@ -2791,7 +2791,7 @@ } break; case 7 : - // C:\\Users\\Steve\\Documents\\NHibernate\\nhibernate\\src\\NHibernate\\Hql\\Ast\\ANTLR\\HqlSqlWalker.g:180:4: collectionFunction + // HqlSqlWalker.g:180:4: collectionFunction { root_0 = (IASTNode)adaptor.GetNilNode(); @@ -2805,7 +2805,7 @@ } break; case 8 : - // C:\\Users\\Steve\\Documents\\NHibernate\\nhibernate\\src\\NHibernate\\Hql\\Ast\\ANTLR\\HqlSqlWalker.g:181:4: literal + // HqlSqlWalker.g:181:4: literal { root_0 = (IASTNode)adaptor.GetNilNode(); @@ -2819,7 +2819,7 @@ } break; case 9 : - // C:\\Users\\Steve\\Documents\\NHibernate\\nhibernate\\src\\NHibernate\\Hql\\Ast\\ANTLR\\HqlSqlWalker.g:182:4: arithmeticExpr + // HqlSqlWalker.g:182:4: arithmeticExpr { root_0 = (IASTNode)adaptor.GetNilNode(); @@ -2833,7 +2833,7 @@ } break; case 10 : - // C:\\Users\\Steve\\Documents\\NHibernate\\nhibernate\\src\\NHibernate\\Hql\\Ast\\ANTLR\\HqlSqlWalker.g:183:4: query + // HqlSqlWalker.g:183:4: query { root_0 = (IASTNode)adaptor.GetNilNode(); @@ -2874,7 +2874,7 @@ }; // $ANTLR start "count" - // C:\\Users\\Steve\\Documents\\NHibernate\\nhibernate\\src\\NHibernate\\Hql\\Ast\\ANTLR\\HqlSqlWalker.g:186:1: count : ^( COUNT ( DISTINCT | ALL )? ( aggregateExpr | ROW_STAR ) ) ; + // HqlSqlWalker.g:186:1: count : ^( COUNT ( DISTINCT | ALL )? ( aggregateExpr | ROW_STAR ) ) ; public HqlSqlWalker.count_return count() // throws RecognitionException [1] { HqlSqlWalker.count_return retval = new HqlSqlWalker.count_return(); @@ -2897,8 +2897,8 @@ try { - // C:\\Users\\Steve\\Documents\\NHibernate\\nhibernate\\src\\NHibernate\\Hql\\Ast\\ANTLR\\HqlSqlWalker.g:187:2: ( ^( COUNT ( DISTINCT | ALL )? ( aggregateExpr | ROW_STAR ) ) ) - // C:\\Users\\Steve\\Documents\\NHibernate\\nhibernate\\src\\NHibernate\\Hql\\Ast\\ANTLR\\HqlSqlWalker.g:187:4: ^( COUNT ( DISTINCT | ALL )? ( aggregateExpr | ROW_STAR ) ) + // HqlSqlWalker.g:187:2: ( ^( COUNT ( DISTINCT | ALL )? ( aggregateExpr | ROW_STAR ) ) ) + // HqlSqlWalker.g:187:4: ^( COUNT ( DISTINCT | ALL )? ( aggregateExpr | ROW_STAR ) ) { root_0 = (IASTNode)adaptor.GetNilNode(); @@ -2915,7 +2915,7 @@ Match(input, Token.DOWN, null); - // C:\\Users\\Steve\\Documents\\NHibernate\\nhibernate\\src\\NHibernate\\Hql\\Ast\\ANTLR\\HqlSqlWalker.g:187:12: ( DISTINCT | ALL )? + // HqlSqlWalker.g:187:12: ( DISTINCT | ALL )? int alt20 = 2; int LA20_0 = input.LA(1); @@ -2926,7 +2926,7 @@ switch (alt20) { case 1 : - // C:\\Users\\Steve\\Documents\\NHibernate\\nhibernate\\src\\NHibernate\\Hql\\Ast\\ANTLR\\HqlSqlWalker.g: + // HqlSqlWalker.g: { _last = (IASTNode)input.LT(1); set49 = (IASTNode)input.LT(1); @@ -2952,7 +2952,7 @@ } - // C:\\Users\\Steve\\Documents\\NHibernate\\nhibernate\\src\\NHibernate\\Hql\\Ast\\ANTLR\\HqlSqlWalker.g:187:32: ( aggregateExpr | ROW_STAR ) + // HqlSqlWalker.g:187:32: ( aggregateExpr | ROW_STAR ) int alt21 = 2; int LA21_0 = input.LA(1); @@ -2974,7 +2974,7 @@ switch (alt21) { case 1 : - // C:\\Users\\Steve\\Documents\\NHibernate\\nhibernate\\src\\NHibernate\\Hql\\Ast\\ANTLR\\HqlSqlWalker.g:187:34: aggregateExpr + // HqlSqlWalker.g:187:34: aggregateExpr { _last = (IASTNode)input.LT(1); PushFollow(FOLLOW_aggregateExpr_in_count897); @@ -2986,7 +2986,7 @@ } break; case 2 : - // C:\\Users\\Steve\\Documents\\NHibernate\\nhibernate\\src\\NHibernate\\Hql\\Ast\\ANTLR\\HqlSqlWalker.g:187:50: ROW_STAR + // HqlSqlWalker.g:187:50: ROW_STAR { _last = (IASTNode)input.LT(1); ROW_STAR51=(IASTNode)Match(input,ROW_STAR,FOLLOW_ROW_STAR_in_count901); @@ -3033,7 +3033,7 @@ }; // $ANTLR start "constructor" - // C:\\Users\\Steve\\Documents\\NHibernate\\nhibernate\\src\\NHibernate\\Hql\\Ast\\ANTLR\\HqlSqlWalker.g:190:1: constructor : ^( CONSTRUCTOR path ( selectExpr | aliasedSelectExpr )* ) ; + // HqlSqlWalker.g:190:1: constructor : ^( CONSTRUCTOR path ( selectExpr | aliasedSelectExpr )* ) ; public HqlSqlWalker.constructor_return constructor() // throws RecognitionException [1] { HqlSqlWalker.constructor_return retval = new HqlSqlWalker.constructor_return(); @@ -3056,8 +3056,8 @@ try { - // C:\\Users\\Steve\\Documents\\NHibernate\\nhibernate\\src\\NHibernate\\Hql\\Ast\\ANTLR\\HqlSqlWalker.g:191:2: ( ^( CONSTRUCTOR path ( selectExpr | aliasedSelectExpr )* ) ) - // C:\\Users\\Steve\\Documents\\NHibernate\\nhibernate\\src\\NHibernate\\Hql\\Ast\\ANTLR\\HqlSqlWalker.g:191:4: ^( CONSTRUCTOR path ( selectExpr | aliasedSelectExpr )* ) + // HqlSqlWalker.g:191:2: ( ^( CONSTRUCTOR path ( selectExpr | aliasedSelectExpr )* ) ) + // HqlSqlWalker.g:191:4: ^( CONSTRUCTOR path ( selectExpr | aliasedSelectExpr )* ) { root_0 = (IASTNode)adaptor.GetNilNode(); @@ -3080,7 +3080,7 @@ state.followingStackPointer--; adaptor.AddChild(root_1, path53.Tree); - // C:\\Users\\Steve\\Documents\\NHibernate\\nhibernate\\src\\NHibernate\\Hql\\Ast\\ANTLR\\HqlSqlWalker.g:191:23: ( selectExpr | aliasedSelectExpr )* + // HqlSqlWalker.g:191:23: ( selectExpr | aliasedSelectExpr )* do { int alt22 = 3; @@ -3099,7 +3099,7 @@ switch (alt22) { case 1 : - // C:\\Users\\Steve\\Documents\\NHibernate\\nhibernate\\src\\NHibernate\\Hql\\Ast\\ANTLR\\HqlSqlWalker.g:191:25: selectExpr + // HqlSqlWalker.g:191:25: selectExpr { _last = (IASTNode)input.LT(1); PushFollow(FOLLOW_selectExpr_in_constructor923); @@ -3111,7 +3111,7 @@ } break; case 2 : - // C:\\Users\\Steve\\Documents\\NHibernate\\nhibernate\\src\\NHibernate\\Hql\\Ast\\ANTLR\\HqlSqlWalker.g:191:38: aliasedSelectExpr + // HqlSqlWalker.g:191:38: aliasedSelectExpr { _last = (IASTNode)input.LT(1); PushFollow(FOLLOW_aliasedSelectExpr_in_constructor927); @@ -3164,7 +3164,7 @@ }; // $ANTLR start "aggregateExpr" - // C:\\Users\\Steve\\Documents\\NHibernate\\nhibernate\\src\\NHibernate\\Hql\\Ast\\ANTLR\\HqlSqlWalker.g:194:1: aggregateExpr : ( expr | collectionFunction ); + // HqlSqlWalker.g:194:1: aggregateExpr : ( expr | collectionFunction ); public HqlSqlWalker.aggregateExpr_return aggregateExpr() // throws RecognitionException [1] { HqlSqlWalker.aggregateExpr_return retval = new HqlSqlWalker.aggregateExpr_return(); @@ -3183,7 +3183,7 @@ try { - // C:\\Users\\Steve\\Documents\\NHibernate\\nhibernate\\src\\NHibernate\\Hql\\Ast\\ANTLR\\HqlSqlWalker.g:195:2: ( expr | collectionFunction ) + // HqlSqlWalker.g:195:2: ( expr | collectionFunction ) int alt23 = 2; int LA23_0 = input.LA(1); @@ -3205,7 +3205,7 @@ switch (alt23) { case 1 : - // C:\\Users\\Steve\\Documents\\NHibernate\\nhibernate\\src\\NHibernate\\Hql\\Ast\\ANTLR\\HqlSqlWalker.g:195:4: expr + // HqlSqlWalker.g:195:4: expr { root_0 = (IASTNode)adaptor.GetNilNode(); @@ -3219,7 +3219,7 @@ } break; case 2 : - // C:\\Users\\Steve\\Documents\\NHibernate\\nhibernate\\src\\NHibernate\\Hql\\Ast\\ANTLR\\HqlSqlWalker.g:196:4: collectionFunction + // HqlSqlWalker.g:196:4: collectionFunction { root_0 = (IASTNode)adaptor.GetNilNode(); @@ -3260,7 +3260,7 @@ }; // $ANTLR start "fromClause" - // C:\\Users\\Steve\\Documents\\NHibernate\\nhibernate\\src\\NHibernate\\Hql\\Ast\\ANTLR\\HqlSqlWalker.g:200:1: fromClause : ^(f= FROM fromElementList ) ; + // HqlSqlWalker.g:200:1: fromClause : ^(f= FROM fromElementList ) ; public HqlSqlWalker.fromClause_return fromClause() // throws RecognitionException [1] { HqlSqlWalker.fromClause_return retval = new HqlSqlWalker.fromClause_return(); @@ -3284,8 +3284,8 @@ try { - // C:\\Users\\Steve\\Documents\\NHibernate\\nhibernate\\src\\NHibernate\\Hql\\Ast\\ANTLR\\HqlSqlWalker.g:206:2: ( ^(f= FROM fromElementList ) ) - // C:\\Users\\Steve\\Documents\\NHibernate\\nhibernate\\src\\NHibernate\\Hql\\Ast\\ANTLR\\HqlSqlWalker.g:206:4: ^(f= FROM fromElementList ) + // HqlSqlWalker.g:206:2: ( ^(f= FROM fromElementList ) ) + // HqlSqlWalker.g:206:4: ^(f= FROM fromElementList ) { root_0 = (IASTNode)adaptor.GetNilNode(); @@ -3342,7 +3342,7 @@ }; // $ANTLR start "fromElementList" - // C:\\Users\\Steve\\Documents\\NHibernate\\nhibernate\\src\\NHibernate\\Hql\\Ast\\ANTLR\\HqlSqlWalker.g:209:1: fromElementList : ( fromElement )+ ; + // HqlSqlWalker.g:209:1: fromElementList : ( fromElement )+ ; public HqlSqlWalker.fromElementList_return fromElementList() // throws RecognitionException [1] { HqlSqlWalker.fromElementList_return retval = new HqlSqlWalker.fromElementList_return(); @@ -3363,12 +3363,12 @@ try { - // C:\\Users\\Steve\\Documents\\NHibernate\\nhibernate\\src\\NHibernate\\Hql\\Ast\\ANTLR\\HqlSqlWalker.g:213:2: ( ( fromElement )+ ) - // C:\\Users\\Steve\\Documents\\NHibernate\\nhibernate\\src\\NHibernate\\Hql\\Ast\\ANTLR\\HqlSqlWalker.g:213:4: ( fromElement )+ + // HqlSqlWalker.g:213:2: ( ( fromElement )+ ) + // HqlSqlWalker.g:213:4: ( fromElement )+ { root_0 = (IASTNode)adaptor.GetNilNode(); - // C:\\Users\\Steve\\Doc... [truncated message content] |
From: <pa...@us...> - 2011-01-13 23:27:00
|
Revision: 5348 http://nhibernate.svn.sourceforge.net/nhibernate/?rev=5348&view=rev Author: patearl Date: 2011-01-13 23:26:54 +0000 (Thu, 13 Jan 2011) Log Message: ----------- NH-2203: Move OrderBy clauses to end of query model. (Thanks to Jose F. Romaniello) Modified Paths: -------------- trunk/nhibernate/src/NHibernate/Linq/Visitors/QueryModelVisitor.cs trunk/nhibernate/src/NHibernate/NHibernate.csproj trunk/nhibernate/src/NHibernate.Test/NHibernate.Test.csproj Added Paths: ----------- trunk/nhibernate/src/NHibernate/Linq/ReWriters/MoveOrderByToEndRewriter.cs trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2203/ trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2203/Domain.cs trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2203/Fixture.cs trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2203/Mappings.hbm.xml Added: trunk/nhibernate/src/NHibernate/Linq/ReWriters/MoveOrderByToEndRewriter.cs =================================================================== --- trunk/nhibernate/src/NHibernate/Linq/ReWriters/MoveOrderByToEndRewriter.cs (rev 0) +++ trunk/nhibernate/src/NHibernate/Linq/ReWriters/MoveOrderByToEndRewriter.cs 2011-01-13 23:26:54 UTC (rev 5348) @@ -0,0 +1,30 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using Remotion.Data.Linq; +using Remotion.Data.Linq.Clauses; + +namespace NHibernate.Linq.ReWriters +{ + public class MoveOrderByToEndRewriter + { + public static void ReWrite(QueryModel queryModel) + { + int len = queryModel.BodyClauses.Count; + for(int i=0; i<len; i++) + { + if (queryModel.BodyClauses[i] is OrderByClause) + { + // If we find an order by clause, move it to the end of the list. + // This preserves the ordering of multiple orderby clauses if there are any. + IBodyClause clause = queryModel.BodyClauses[i]; + queryModel.BodyClauses.RemoveAt(i); + queryModel.BodyClauses.Add(clause); + i--; + len--; + } + } + } + } +} Modified: trunk/nhibernate/src/NHibernate/Linq/Visitors/QueryModelVisitor.cs =================================================================== --- trunk/nhibernate/src/NHibernate/Linq/Visitors/QueryModelVisitor.cs 2011-01-13 22:46:25 UTC (rev 5347) +++ trunk/nhibernate/src/NHibernate/Linq/Visitors/QueryModelVisitor.cs 2011-01-13 23:26:54 UTC (rev 5348) @@ -45,6 +45,9 @@ // Add left joins for references AddLeftJoinsReWriter.ReWrite(queryModel, parameters.SessionFactory); + // Move OrderBy clauses to end + MoveOrderByToEndRewriter.ReWrite(queryModel); + // rewrite any operators that should be applied on the outer query // by flattening out the sub-queries that they are located in ResultOperatorRewriterResult result = ResultOperatorRewriter.Rewrite(queryModel); Modified: trunk/nhibernate/src/NHibernate/NHibernate.csproj =================================================================== --- trunk/nhibernate/src/NHibernate/NHibernate.csproj 2011-01-13 22:46:25 UTC (rev 5347) +++ trunk/nhibernate/src/NHibernate/NHibernate.csproj 2011-01-13 23:26:54 UTC (rev 5348) @@ -257,6 +257,7 @@ <Compile Include="ITransaction.cs" /> <Compile Include="LazyInitializationException.cs" /> <Compile Include="Linq\Functions\DictionaryGenerator.cs" /> + <Compile Include="Linq\ReWriters\MoveOrderByToEndRewriter.cs" /> <Compile Include="Linq\ReWriters\ResultOperatorRewriter.cs" /> <Compile Include="Linq\ReWriters\ResultOperatorRewriterResult.cs" /> <Compile Include="Loader\Loader.cs" /> Property changes on: trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2203 ___________________________________________________________________ Added: bugtraq:url + http://jira.nhibernate.org/browse/%BUGID% Added: bugtraq:logregex + NH-\d+ Added: trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2203/Domain.cs =================================================================== --- trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2203/Domain.cs (rev 0) +++ trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2203/Domain.cs 2011-01-13 23:26:54 UTC (rev 5348) @@ -0,0 +1,8 @@ +namespace NHibernate.Test.NHSpecificTest.NH2203 +{ + public class Artist + { + public virtual int Id { get; set; } + public virtual string Name { get; set; } + } +} \ No newline at end of file Added: trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2203/Fixture.cs =================================================================== --- trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2203/Fixture.cs (rev 0) +++ trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2203/Fixture.cs 2011-01-13 23:26:54 UTC (rev 5348) @@ -0,0 +1,51 @@ +using System.Linq; +using NHibernate.Linq; +using NUnit.Framework; +using SharpTestsEx; + +namespace NHibernate.Test.NHSpecificTest.NH2203 +{ + [TestFixture] + public class Fixture : BugTestCase + { + protected override void OnSetUp() + { + base.OnSetUp(); + using (var session = sessions.OpenStatelessSession()) + using (var tx = session.BeginTransaction()) + { + foreach (var artistName in new[] { "Foo", "Bar", "Baz", "Soz", "Tiz", "Fez" }) + { + session.Insert(new Artist { Name = artistName }); + } + tx.Commit(); + } + } + + [Test] + public void QueryShouldWork() + { + using (var session = sessions.OpenSession()) + using(session.BeginTransaction()) + { + var actual = session.Query<Artist>() + .OrderBy(a => a.Name) + .Where(a => a.Name.StartsWith("F")) + .ToArray(); + + actual.Select(a => a.Name).Should().Have.SameSequenceAs("Fez", "Foo"); + } + } + + protected override void OnTearDown() + { + using(var session = sessions.OpenStatelessSession()) + using (var tx = session.BeginTransaction()) + { + session.CreateQuery("delete Artist").ExecuteUpdate(); + tx.Commit(); + } + base.OnTearDown(); + } + } +} \ No newline at end of file Added: trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2203/Mappings.hbm.xml =================================================================== --- trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2203/Mappings.hbm.xml (rev 0) +++ trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2203/Mappings.hbm.xml 2011-01-13 23:26:54 UTC (rev 5348) @@ -0,0 +1,12 @@ +<?xml version="1.0" encoding="utf-8" ?> +<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2" + assembly="NHibernate.Test" + namespace="NHibernate.Test.NHSpecificTest.NH2203"> + + <class name="Artist"> + <id name="Id" type="int"> + <generator class="hilo"/> + </id> + <property name="Name" /> + </class> + </hibernate-mapping> \ No newline at end of file Modified: trunk/nhibernate/src/NHibernate.Test/NHibernate.Test.csproj =================================================================== --- trunk/nhibernate/src/NHibernate.Test/NHibernate.Test.csproj 2011-01-13 22:46:25 UTC (rev 5347) +++ trunk/nhibernate/src/NHibernate.Test/NHibernate.Test.csproj 2011-01-13 23:26:54 UTC (rev 5348) @@ -496,6 +496,8 @@ <Compile Include="NHSpecificTest\NH2188\AppDomainWithMultipleSearchPath.cs" /> <Compile Include="NHSpecificTest\NH2202\Fixture.cs" /> <Compile Include="NHSpecificTest\NH2202\Model.cs" /> + <Compile Include="NHSpecificTest\NH2203\Domain.cs" /> + <Compile Include="NHSpecificTest\NH2203\Fixture.cs" /> <Compile Include="NHSpecificTest\NH2224\Domain.cs" /> <Compile Include="NHSpecificTest\NH2224\Fixture.cs" /> <Compile Include="NHSpecificTest\NH2228\Domain.cs" /> @@ -2371,6 +2373,7 @@ <EmbeddedResource Include="NHSpecificTest\NH1291AnonExample\Mappings.hbm.xml" /> </ItemGroup> <ItemGroup> + <EmbeddedResource Include="NHSpecificTest\NH2203\Mappings.hbm.xml" /> <EmbeddedResource Include="NHSpecificTest\BagWithLazyExtraAndFilter\Mappings.hbm.xml" /> <EmbeddedResource Include="NHSpecificTest\NH2470\Mappings.hbm.xml" /> <EmbeddedResource Include="NHSpecificTest\NH2056\Mappings.hbm.xml" /> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <pa...@us...> - 2011-01-13 22:46:31
|
Revision: 5347 http://nhibernate.svn.sourceforge.net/nhibernate/?rev=5347&view=rev Author: patearl Date: 2011-01-13 22:46:25 +0000 (Thu, 13 Jan 2011) Log Message: ----------- Improved flexibility in determining type of CASE statement result. Finds the first THEN clause with a known type and uses that. The original code only worked if the very first THEN clause had a known type. Modified Paths: -------------- trunk/nhibernate/src/NHibernate/Hql/Ast/ANTLR/Tree/CaseNode.cs trunk/nhibernate/src/NHibernate.Test/HQL/Ast/HqlFixture.cs Modified: trunk/nhibernate/src/NHibernate/Hql/Ast/ANTLR/Tree/CaseNode.cs =================================================================== --- trunk/nhibernate/src/NHibernate/Hql/Ast/ANTLR/Tree/CaseNode.cs 2011-01-13 18:24:22 UTC (rev 5346) +++ trunk/nhibernate/src/NHibernate/Hql/Ast/ANTLR/Tree/CaseNode.cs 2011-01-13 22:46:25 UTC (rev 5347) @@ -20,15 +20,39 @@ public override IType DataType { - get { return GetFirstThenNode().DataType; } - set { base.DataType = value; } + get + { + for (int i = 0; i < ChildCount; i++) + { + IASTNode whenOrElseClause = GetChild(i); + if (whenOrElseClause.Type == HqlParser.WHEN) + { + // WHEN Child(0) THEN Child(1) + IASTNode thenClause = whenOrElseClause.GetChild(1); + if (thenClause is ISelectExpression) + { + return (thenClause as ISelectExpression).DataType; + } + } + else if (whenOrElseClause.Type == HqlParser.ELSE) + { + // ELSE Child(0) + IASTNode elseClause = whenOrElseClause.GetChild(0); + if (elseClause is ISelectExpression) + { + return (elseClause as ISelectExpression).DataType; + } + } + else + { + throw new HibernateException("Was expecting a WHEN or ELSE, but found a: " + whenOrElseClause.Text); + } + } + throw new HibernateException("Unable to determine data type of CASE statement."); + } + set { base.DataType = value; } } - private ISelectExpression GetFirstThenNode() - { - return (ISelectExpression) GetChild(0).GetChild(0).NextSibling; - } - public override void SetScalarColumnText(int i) { ColumnHelper.GenerateSingleScalarColumn(ASTFactory, this, i ); Modified: trunk/nhibernate/src/NHibernate.Test/HQL/Ast/HqlFixture.cs =================================================================== --- trunk/nhibernate/src/NHibernate.Test/HQL/Ast/HqlFixture.cs 2011-01-13 18:24:22 UTC (rev 5346) +++ trunk/nhibernate/src/NHibernate.Test/HQL/Ast/HqlFixture.cs 2011-01-13 22:46:25 UTC (rev 5347) @@ -137,6 +137,69 @@ } } + [Test] + public void ParameterInCaseThenClause() + { + using (ISession s = OpenSession()) + using (s.BeginTransaction()) + { + s.Save(new Animal { BodyWeight = 12, Description = "Polliwog" }); + s.Transaction.Commit(); + } + + try + { + using (ISession s = OpenSession()) + { + var result = s.CreateQuery("select case when 2=2 then ? else 0 end from Animal a") + .SetParameter(0, 1) + .UniqueResult(); + Assert.AreEqual(1, result); + } + } + finally + { + using (ISession s = OpenSession()) + using (s.BeginTransaction()) + { + s.CreateQuery("delete from Animal").ExecuteUpdate(); + s.Transaction.Commit(); + } + } + } + + [Test] + public void ParameterInCaseThenAndElseClausesWithCast() + { + using (ISession s = OpenSession()) + using (s.BeginTransaction()) + { + s.Save(new Animal { BodyWeight = 12, Description = "Polliwog" }); + s.Transaction.Commit(); + } + + try + { + using (ISession s = OpenSession()) + { + var result = s.CreateQuery("select case when 2=2 then cast(? as integer) else ? end from Animal a") + .SetParameter(0, 1) + .SetParameter(1, 0) + .UniqueResult(); + Assert.AreEqual(1, result); + } + } + finally + { + using (ISession s = OpenSession()) + using (s.BeginTransaction()) + { + s.CreateQuery("delete from Animal").ExecuteUpdate(); + s.Transaction.Commit(); + } + } + } + [Test, Ignore("Not fixed yet.")] public void SumShouldReturnDouble() { This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <pa...@us...> - 2011-01-13 18:24:30
|
Revision: 5346 http://nhibernate.svn.sourceforge.net/nhibernate/?rev=5346&view=rev Author: patearl Date: 2011-01-13 18:24:22 +0000 (Thu, 13 Jan 2011) Log Message: ----------- Hql: Fixed NH-2499, allowing multiple when clauses in case statements. Modified Paths: -------------- trunk/nhibernate/src/NHibernate/Hql/Ast/ANTLR/Generated/HqlParser.cs trunk/nhibernate/src/NHibernate/Hql/Ast/ANTLR/Hql.g trunk/nhibernate/src/NHibernate.Test/HQL/Ast/HqlFixture.cs Modified: trunk/nhibernate/src/NHibernate/Hql/Ast/ANTLR/Generated/HqlParser.cs =================================================================== --- trunk/nhibernate/src/NHibernate/Hql/Ast/ANTLR/Generated/HqlParser.cs 2011-01-13 17:55:17 UTC (rev 5345) +++ trunk/nhibernate/src/NHibernate/Hql/Ast/ANTLR/Generated/HqlParser.cs 2011-01-13 18:24:22 UTC (rev 5346) @@ -1,4 +1,4 @@ -// $ANTLR 3.2 Sep 23, 2009 12:02:23 Hql.g 2011-01-13 10:47:54 +// $ANTLR 3.2 Sep 23, 2009 12:02:23 Hql.g 2011-01-13 11:20:20 // The variable 'variable' is assigned but its value is never used. #pragma warning disable 168, 219 @@ -1787,7 +1787,7 @@ // AST REWRITE - // elements: selectClause, selectClause, fromClause + // elements: selectClause, fromClause, selectClause // token labels: // rule labels: retval // token list labels: @@ -2118,7 +2118,7 @@ // AST REWRITE - // elements: selectedPropertiesList, path + // elements: path, selectedPropertiesList // token labels: // rule labels: retval // token list labels: @@ -3467,7 +3467,7 @@ // AST REWRITE - // elements: asAlias, propertyFetch, path + // elements: path, asAlias, propertyFetch // token labels: // rule labels: retval // token list labels: @@ -3713,7 +3713,7 @@ // AST REWRITE - // elements: alias, path + // elements: path, alias // token labels: // rule labels: retval // token list labels: @@ -3921,7 +3921,7 @@ // AST REWRITE - // elements: path, alias + // elements: alias, path // token labels: // rule labels: retval // token list labels: @@ -7541,7 +7541,7 @@ }; // $ANTLR start "caseExpression" - // Hql.g:500:1: caseExpression : ( CASE ( whenClause )+ ( elseClause )? END -> ^( CASE whenClause ( elseClause )? ) | CASE unaryExpression ( altWhenClause )+ ( elseClause )? END -> ^( CASE2 unaryExpression ( altWhenClause )+ ( elseClause )? ) ); + // Hql.g:500:1: caseExpression : ( CASE ( whenClause )+ ( elseClause )? END -> ^( CASE ( whenClause )+ ( elseClause )? ) | CASE unaryExpression ( altWhenClause )+ ( elseClause )? END -> ^( CASE2 unaryExpression ( altWhenClause )+ ( elseClause )? ) ); public HqlParser.caseExpression_return caseExpression() // throws RecognitionException [1] { HqlParser.caseExpression_return retval = new HqlParser.caseExpression_return(); @@ -7576,7 +7576,7 @@ RewriteRuleSubtreeStream stream_elseClause = new RewriteRuleSubtreeStream(adaptor,"rule elseClause"); try { - // Hql.g:501:2: ( CASE ( whenClause )+ ( elseClause )? END -> ^( CASE whenClause ( elseClause )? ) | CASE unaryExpression ( altWhenClause )+ ( elseClause )? END -> ^( CASE2 unaryExpression ( altWhenClause )+ ( elseClause )? ) ) + // Hql.g:501:2: ( CASE ( whenClause )+ ( elseClause )? END -> ^( CASE ( whenClause )+ ( elseClause )? ) | CASE unaryExpression ( altWhenClause )+ ( elseClause )? END -> ^( CASE2 unaryExpression ( altWhenClause )+ ( elseClause )? ) ) int alt73 = 2; int LA73_0 = input.LA(1); @@ -7694,15 +7694,23 @@ RewriteRuleSubtreeStream stream_retval = new RewriteRuleSubtreeStream(adaptor, "rule retval", retval!=null ? retval.Tree : null); root_0 = (IASTNode)adaptor.GetNilNode(); - // 502:3: -> ^( CASE whenClause ( elseClause )? ) + // 502:3: -> ^( CASE ( whenClause )+ ( elseClause )? ) { - // Hql.g:502:6: ^( CASE whenClause ( elseClause )? ) + // Hql.g:502:6: ^( CASE ( whenClause )+ ( elseClause )? ) { IASTNode root_1 = (IASTNode)adaptor.GetNilNode(); root_1 = (IASTNode)adaptor.BecomeRoot(stream_CASE.NextNode(), root_1); - adaptor.AddChild(root_1, stream_whenClause.NextTree()); - // Hql.g:502:24: ( elseClause )? + if ( !(stream_whenClause.HasNext()) ) { + throw new RewriteEarlyExitException(); + } + while ( stream_whenClause.HasNext() ) + { + adaptor.AddChild(root_1, stream_whenClause.NextTree()); + + } + stream_whenClause.Reset(); + // Hql.g:502:25: ( elseClause )? if ( stream_elseClause.HasNext() ) { adaptor.AddChild(root_1, stream_elseClause.NextTree()); @@ -7721,10 +7729,10 @@ case 2 : // Hql.g:503:4: CASE unaryExpression ( altWhenClause )+ ( elseClause )? END { - CASE198=(IToken)Match(input,CASE,FOLLOW_CASE_in_caseExpression2525); + CASE198=(IToken)Match(input,CASE,FOLLOW_CASE_in_caseExpression2526); stream_CASE.Add(CASE198); - PushFollow(FOLLOW_unaryExpression_in_caseExpression2527); + PushFollow(FOLLOW_unaryExpression_in_caseExpression2528); unaryExpression199 = unaryExpression(); state.followingStackPointer--; @@ -7747,7 +7755,7 @@ case 1 : // Hql.g:503:26: altWhenClause { - PushFollow(FOLLOW_altWhenClause_in_caseExpression2530); + PushFollow(FOLLOW_altWhenClause_in_caseExpression2531); altWhenClause200 = altWhenClause(); state.followingStackPointer--; @@ -7781,7 +7789,7 @@ case 1 : // Hql.g:503:43: elseClause { - PushFollow(FOLLOW_elseClause_in_caseExpression2535); + PushFollow(FOLLOW_elseClause_in_caseExpression2536); elseClause201 = elseClause(); state.followingStackPointer--; @@ -7792,13 +7800,13 @@ } - END202=(IToken)Match(input,END,FOLLOW_END_in_caseExpression2539); + END202=(IToken)Match(input,END,FOLLOW_END_in_caseExpression2540); stream_END.Add(END202); // AST REWRITE - // elements: unaryExpression, altWhenClause, elseClause + // elements: elseClause, altWhenClause, unaryExpression // token labels: // rule labels: retval // token list labels: @@ -7902,17 +7910,17 @@ // Hql.g:508:4: ( WHEN logicalExpression THEN expression ) // Hql.g:508:5: WHEN logicalExpression THEN expression { - WHEN203=(IToken)Match(input,WHEN,FOLLOW_WHEN_in_whenClause2568); + WHEN203=(IToken)Match(input,WHEN,FOLLOW_WHEN_in_whenClause2569); WHEN203_tree = (IASTNode)adaptor.Create(WHEN203); root_0 = (IASTNode)adaptor.BecomeRoot(WHEN203_tree, root_0); - PushFollow(FOLLOW_logicalExpression_in_whenClause2571); + PushFollow(FOLLOW_logicalExpression_in_whenClause2572); logicalExpression204 = logicalExpression(); state.followingStackPointer--; adaptor.AddChild(root_0, logicalExpression204.Tree); - THEN205=(IToken)Match(input,THEN,FOLLOW_THEN_in_whenClause2573); - PushFollow(FOLLOW_expression_in_whenClause2576); + THEN205=(IToken)Match(input,THEN,FOLLOW_THEN_in_whenClause2574); + PushFollow(FOLLOW_expression_in_whenClause2577); expression206 = expression(); state.followingStackPointer--; @@ -7982,17 +7990,17 @@ // Hql.g:512:4: ( WHEN unaryExpression THEN expression ) // Hql.g:512:5: WHEN unaryExpression THEN expression { - WHEN207=(IToken)Match(input,WHEN,FOLLOW_WHEN_in_altWhenClause2590); + WHEN207=(IToken)Match(input,WHEN,FOLLOW_WHEN_in_altWhenClause2591); WHEN207_tree = (IASTNode)adaptor.Create(WHEN207); root_0 = (IASTNode)adaptor.BecomeRoot(WHEN207_tree, root_0); - PushFollow(FOLLOW_unaryExpression_in_altWhenClause2593); + PushFollow(FOLLOW_unaryExpression_in_altWhenClause2594); unaryExpression208 = unaryExpression(); state.followingStackPointer--; adaptor.AddChild(root_0, unaryExpression208.Tree); - THEN209=(IToken)Match(input,THEN,FOLLOW_THEN_in_altWhenClause2595); - PushFollow(FOLLOW_expression_in_altWhenClause2598); + THEN209=(IToken)Match(input,THEN,FOLLOW_THEN_in_altWhenClause2596); + PushFollow(FOLLOW_expression_in_altWhenClause2599); expression210 = expression(); state.followingStackPointer--; @@ -8058,11 +8066,11 @@ // Hql.g:516:4: ( ELSE expression ) // Hql.g:516:5: ELSE expression { - ELSE211=(IToken)Match(input,ELSE,FOLLOW_ELSE_in_elseClause2612); + ELSE211=(IToken)Match(input,ELSE,FOLLOW_ELSE_in_elseClause2613); ELSE211_tree = (IASTNode)adaptor.Create(ELSE211); root_0 = (IASTNode)adaptor.BecomeRoot(ELSE211_tree, root_0); - PushFollow(FOLLOW_expression_in_elseClause2615); + PushFollow(FOLLOW_expression_in_elseClause2616); expression212 = expression(); state.followingStackPointer--; @@ -8175,7 +8183,7 @@ case 1 : // Hql.g:520:6: SOME { - SOME213=(IToken)Match(input,SOME,FOLLOW_SOME_in_quantifiedExpression2630); + SOME213=(IToken)Match(input,SOME,FOLLOW_SOME_in_quantifiedExpression2631); SOME213_tree = (IASTNode)adaptor.Create(SOME213); root_0 = (IASTNode)adaptor.BecomeRoot(SOME213_tree, root_0); @@ -8185,7 +8193,7 @@ case 2 : // Hql.g:520:14: EXISTS { - EXISTS214=(IToken)Match(input,EXISTS,FOLLOW_EXISTS_in_quantifiedExpression2635); + EXISTS214=(IToken)Match(input,EXISTS,FOLLOW_EXISTS_in_quantifiedExpression2636); EXISTS214_tree = (IASTNode)adaptor.Create(EXISTS214); root_0 = (IASTNode)adaptor.BecomeRoot(EXISTS214_tree, root_0); @@ -8195,7 +8203,7 @@ case 3 : // Hql.g:520:24: ALL { - ALL215=(IToken)Match(input,ALL,FOLLOW_ALL_in_quantifiedExpression2640); + ALL215=(IToken)Match(input,ALL,FOLLOW_ALL_in_quantifiedExpression2641); ALL215_tree = (IASTNode)adaptor.Create(ALL215); root_0 = (IASTNode)adaptor.BecomeRoot(ALL215_tree, root_0); @@ -8205,7 +8213,7 @@ case 4 : // Hql.g:520:31: ANY { - ANY216=(IToken)Match(input,ANY,FOLLOW_ANY_in_quantifiedExpression2645); + ANY216=(IToken)Match(input,ANY,FOLLOW_ANY_in_quantifiedExpression2646); ANY216_tree = (IASTNode)adaptor.Create(ANY216); root_0 = (IASTNode)adaptor.BecomeRoot(ANY216_tree, root_0); @@ -8247,7 +8255,7 @@ case 1 : // Hql.g:521:4: identifier { - PushFollow(FOLLOW_identifier_in_quantifiedExpression2654); + PushFollow(FOLLOW_identifier_in_quantifiedExpression2655); identifier217 = identifier(); state.followingStackPointer--; @@ -8258,7 +8266,7 @@ case 2 : // Hql.g:521:17: collectionExpr { - PushFollow(FOLLOW_collectionExpr_in_quantifiedExpression2658); + PushFollow(FOLLOW_collectionExpr_in_quantifiedExpression2659); collectionExpr218 = collectionExpr(); state.followingStackPointer--; @@ -8272,11 +8280,11 @@ // Hql.g:521:34: ( OPEN ( subQuery ) CLOSE ) // Hql.g:521:35: OPEN ( subQuery ) CLOSE { - OPEN219=(IToken)Match(input,OPEN,FOLLOW_OPEN_in_quantifiedExpression2663); + OPEN219=(IToken)Match(input,OPEN,FOLLOW_OPEN_in_quantifiedExpression2664); // Hql.g:521:41: ( subQuery ) // Hql.g:521:43: subQuery { - PushFollow(FOLLOW_subQuery_in_quantifiedExpression2668); + PushFollow(FOLLOW_subQuery_in_quantifiedExpression2669); subQuery220 = subQuery(); state.followingStackPointer--; @@ -8284,7 +8292,7 @@ } - CLOSE221=(IToken)Match(input,CLOSE,FOLLOW_CLOSE_in_quantifiedExpression2672); + CLOSE221=(IToken)Match(input,CLOSE,FOLLOW_CLOSE_in_quantifiedExpression2673); } @@ -8363,7 +8371,7 @@ { root_0 = (IASTNode)adaptor.GetNilNode(); - PushFollow(FOLLOW_primaryExpression_in_atom2691); + PushFollow(FOLLOW_primaryExpression_in_atom2692); primaryExpression222 = primaryExpression(); state.followingStackPointer--; @@ -8389,11 +8397,11 @@ case 1 : // Hql.g:530:4: DOT identifier ( options {greedy=true; } : (op= OPEN exprList CLOSE ) )? { - DOT223=(IToken)Match(input,DOT,FOLLOW_DOT_in_atom2700); + DOT223=(IToken)Match(input,DOT,FOLLOW_DOT_in_atom2701); DOT223_tree = (IASTNode)adaptor.Create(DOT223); root_0 = (IASTNode)adaptor.BecomeRoot(DOT223_tree, root_0); - PushFollow(FOLLOW_identifier_in_atom2703); + PushFollow(FOLLOW_identifier_in_atom2704); identifier224 = identifier(); state.followingStackPointer--; @@ -8414,17 +8422,17 @@ // Hql.g:532:6: (op= OPEN exprList CLOSE ) // Hql.g:532:8: op= OPEN exprList CLOSE { - op=(IToken)Match(input,OPEN,FOLLOW_OPEN_in_atom2731); + op=(IToken)Match(input,OPEN,FOLLOW_OPEN_in_atom2732); op_tree = (IASTNode)adaptor.Create(op); root_0 = (IASTNode)adaptor.BecomeRoot(op_tree, root_0); op.Type = METHOD_CALL; - PushFollow(FOLLOW_exprList_in_atom2736); + PushFollow(FOLLOW_exprList_in_atom2737); exprList225 = exprList(); state.followingStackPointer--; adaptor.AddChild(root_0, exprList225.Tree); - CLOSE226=(IToken)Match(input,CLOSE,FOLLOW_CLOSE_in_atom2738); + CLOSE226=(IToken)Match(input,CLOSE,FOLLOW_CLOSE_in_atom2739); } @@ -8440,17 +8448,17 @@ case 2 : // Hql.g:533:5: lb= OPEN_BRACKET expression CLOSE_BRACKET { - lb=(IToken)Match(input,OPEN_BRACKET,FOLLOW_OPEN_BRACKET_in_atom2752); + lb=(IToken)Match(input,OPEN_BRACKET,FOLLOW_OPEN_BRACKET_in_atom2753); lb_tree = (IASTNode)adaptor.Create(lb); root_0 = (IASTNode)adaptor.BecomeRoot(lb_tree, root_0); lb.Type = INDEX_OP; - PushFollow(FOLLOW_expression_in_atom2757); + PushFollow(FOLLOW_expression_in_atom2758); expression227 = expression(); state.followingStackPointer--; adaptor.AddChild(root_0, expression227.Tree); - CLOSE_BRACKET228=(IToken)Match(input,CLOSE_BRACKET,FOLLOW_CLOSE_BRACKET_in_atom2759); + CLOSE_BRACKET228=(IToken)Match(input,CLOSE_BRACKET,FOLLOW_CLOSE_BRACKET_in_atom2760); } break; @@ -8592,7 +8600,7 @@ { root_0 = (IASTNode)adaptor.GetNilNode(); - PushFollow(FOLLOW_identPrimary_in_primaryExpression2779); + PushFollow(FOLLOW_identPrimary_in_primaryExpression2780); identPrimary229 = identPrimary(); state.followingStackPointer--; @@ -8615,11 +8623,11 @@ case 1 : // Hql.g:539:46: DOT 'class' { - DOT230=(IToken)Match(input,DOT,FOLLOW_DOT_in_primaryExpression2792); + DOT230=(IToken)Match(input,DOT,FOLLOW_DOT_in_primaryExpression2793); DOT230_tree = (IASTNode)adaptor.Create(DOT230); root_0 = (IASTNode)adaptor.BecomeRoot(DOT230_tree, root_0); - string_literal231=(IToken)Match(input,CLASS,FOLLOW_CLASS_in_primaryExpression2795); + string_literal231=(IToken)Match(input,CLASS,FOLLOW_CLASS_in_primaryExpression2796); string_literal231_tree = (IASTNode)adaptor.Create(string_literal231); adaptor.AddChild(root_0, string_literal231_tree); @@ -8637,7 +8645,7 @@ { root_0 = (IASTNode)adaptor.GetNilNode(); - PushFollow(FOLLOW_constant_in_primaryExpression2805); + PushFollow(FOLLOW_constant_in_primaryExpression2806); constant232 = constant(); state.followingStackPointer--; @@ -8650,11 +8658,11 @@ { root_0 = (IASTNode)adaptor.GetNilNode(); - COLON233=(IToken)Match(input,COLON,FOLLOW_COLON_in_primaryExpression2812); + COLON233=(IToken)Match(input,COLON,FOLLOW_COLON_in_primaryExpression2813); COLON233_tree = (IASTNode)adaptor.Create(COLON233); root_0 = (IASTNode)adaptor.BecomeRoot(COLON233_tree, root_0); - PushFollow(FOLLOW_identifier_in_primaryExpression2815); + PushFollow(FOLLOW_identifier_in_primaryExpression2816); identifier234 = identifier(); state.followingStackPointer--; @@ -8667,7 +8675,7 @@ { root_0 = (IASTNode)adaptor.GetNilNode(); - OPEN235=(IToken)Match(input,OPEN,FOLLOW_OPEN_in_primaryExpression2824); + OPEN235=(IToken)Match(input,OPEN,FOLLOW_OPEN_in_primaryExpression2825); // Hql.g:543:12: ( expressionOrVector | subQuery ) int alt79 = 2; int LA79_0 = input.LA(1); @@ -8692,7 +8700,7 @@ case 1 : // Hql.g:543:13: expressionOrVector { - PushFollow(FOLLOW_expressionOrVector_in_primaryExpression2828); + PushFollow(FOLLOW_expressionOrVector_in_primaryExpression2829); expressionOrVector236 = expressionOrVector(); state.followingStackPointer--; @@ -8703,7 +8711,7 @@ case 2 : // Hql.g:543:34: subQuery { - PushFollow(FOLLOW_subQuery_in_primaryExpression2832); + PushFollow(FOLLOW_subQuery_in_primaryExpression2833); subQuery237 = subQuery(); state.followingStackPointer--; @@ -8714,7 +8722,7 @@ } - CLOSE238=(IToken)Match(input,CLOSE,FOLLOW_CLOSE_in_primaryExpression2835); + CLOSE238=(IToken)Match(input,CLOSE,FOLLOW_CLOSE_in_primaryExpression2836); } break; @@ -8723,7 +8731,7 @@ { root_0 = (IASTNode)adaptor.GetNilNode(); - PARAM239=(IToken)Match(input,PARAM,FOLLOW_PARAM_in_primaryExpression2843); + PARAM239=(IToken)Match(input,PARAM,FOLLOW_PARAM_in_primaryExpression2844); PARAM239_tree = (IASTNode)adaptor.Create(PARAM239); root_0 = (IASTNode)adaptor.BecomeRoot(PARAM239_tree, root_0); @@ -8740,7 +8748,7 @@ case 1 : // Hql.g:544:14: NUM_INT { - NUM_INT240=(IToken)Match(input,NUM_INT,FOLLOW_NUM_INT_in_primaryExpression2847); + NUM_INT240=(IToken)Match(input,NUM_INT,FOLLOW_NUM_INT_in_primaryExpression2848); NUM_INT240_tree = (IASTNode)adaptor.Create(NUM_INT240); adaptor.AddChild(root_0, NUM_INT240_tree); @@ -8806,7 +8814,7 @@ // Hql.g:550:2: (e= expression (v= vectorExpr )? -> {v != null}? ^( VECTOR_EXPR[\"{vector}\"] $e $v) -> ^( $e) ) // Hql.g:550:4: e= expression (v= vectorExpr )? { - PushFollow(FOLLOW_expression_in_expressionOrVector2865); + PushFollow(FOLLOW_expression_in_expressionOrVector2866); e = expression(); state.followingStackPointer--; @@ -8824,7 +8832,7 @@ case 1 : // Hql.g:550:19: v= vectorExpr { - PushFollow(FOLLOW_vectorExpr_in_expressionOrVector2871); + PushFollow(FOLLOW_vectorExpr_in_expressionOrVector2872); v = vectorExpr(); state.followingStackPointer--; @@ -8838,7 +8846,7 @@ // AST REWRITE - // elements: e, e, v + // elements: e, v, e // token labels: // rule labels: v, retval, e // token list labels: @@ -8936,8 +8944,8 @@ { root_0 = (IASTNode)adaptor.GetNilNode(); - COMMA241=(IToken)Match(input,COMMA,FOLLOW_COMMA_in_vectorExpr2910); - PushFollow(FOLLOW_expression_in_vectorExpr2913); + COMMA241=(IToken)Match(input,COMMA,FOLLOW_COMMA_in_vectorExpr2911); + PushFollow(FOLLOW_expression_in_vectorExpr2914); expression242 = expression(); state.followingStackPointer--; @@ -8959,8 +8967,8 @@ case 1 : // Hql.g:556:23: COMMA expression { - COMMA243=(IToken)Match(input,COMMA,FOLLOW_COMMA_in_vectorExpr2916); - PushFollow(FOLLOW_expression_in_vectorExpr2919); + COMMA243=(IToken)Match(input,COMMA,FOLLOW_COMMA_in_vectorExpr2917); + PushFollow(FOLLOW_expression_in_vectorExpr2920); expression244 = expression(); state.followingStackPointer--; @@ -9065,7 +9073,7 @@ { root_0 = (IASTNode)adaptor.GetNilNode(); - PushFollow(FOLLOW_identifier_in_identPrimary2935); + PushFollow(FOLLOW_identifier_in_identPrimary2936); identifier245 = identifier(); state.followingStackPointer--; @@ -9095,7 +9103,7 @@ case 1 : // Hql.g:564:31: DOT ( identifier | o= OBJECT ) { - DOT246=(IToken)Match(input,DOT,FOLLOW_DOT_in_identPrimary2953); + DOT246=(IToken)Match(input,DOT,FOLLOW_DOT_in_identPrimary2954); DOT246_tree = (IASTNode)adaptor.Create(DOT246); root_0 = (IASTNode)adaptor.BecomeRoot(DOT246_tree, root_0); @@ -9123,7 +9131,7 @@ case 1 : // Hql.g:564:38: identifier { - PushFollow(FOLLOW_identifier_in_identPrimary2958); + PushFollow(FOLLOW_identifier_in_identPrimary2959); identifier247 = identifier(); state.followingStackPointer--; @@ -9134,7 +9142,7 @@ case 2 : // Hql.g:564:51: o= OBJECT { - o=(IToken)Match(input,OBJECT,FOLLOW_OBJECT_in_identPrimary2964); + o=(IToken)Match(input,OBJECT,FOLLOW_OBJECT_in_identPrimary2965); o_tree = (IASTNode)adaptor.Create(o); adaptor.AddChild(root_0, o_tree); @@ -9173,17 +9181,17 @@ // Hql.g:565:6: (op= OPEN exprList CLOSE ) // Hql.g:565:8: op= OPEN exprList CLOSE { - op=(IToken)Match(input,OPEN,FOLLOW_OPEN_in_identPrimary2982); + op=(IToken)Match(input,OPEN,FOLLOW_OPEN_in_identPrimary2983); op_tree = (IASTNode)adaptor.Create(op); root_0 = (IASTNode)adaptor.BecomeRoot(op_tree, root_0); op.Type = METHOD_CALL; - PushFollow(FOLLOW_exprList_in_identPrimary2987); + PushFollow(FOLLOW_exprList_in_identPrimary2988); exprList248 = exprList(); state.followingStackPointer--; adaptor.AddChild(root_0, exprList248.Tree); - CLOSE249=(IToken)Match(input,CLOSE,FOLLOW_CLOSE_in_identPrimary2989); + CLOSE249=(IToken)Match(input,CLOSE,FOLLOW_CLOSE_in_identPrimary2990); } @@ -9201,7 +9209,7 @@ { root_0 = (IASTNode)adaptor.GetNilNode(); - PushFollow(FOLLOW_aggregate_in_identPrimary3005); + PushFollow(FOLLOW_aggregate_in_identPrimary3006); aggregate250 = aggregate(); state.followingStackPointer--; @@ -9354,7 +9362,7 @@ case 1 : // Hql.g:577:6: op= SUM { - op=(IToken)Match(input,SUM,FOLLOW_SUM_in_aggregate3026); + op=(IToken)Match(input,SUM,FOLLOW_SUM_in_aggregate3027); stream_SUM.Add(op); @@ -9363,7 +9371,7 @@ case 2 : // Hql.g:577:15: op= AVG { - op=(IToken)Match(input,AVG,FOLLOW_AVG_in_aggregate3032); + op=(IToken)Match(input,AVG,FOLLOW_AVG_in_aggregate3033); stream_AVG.Add(op); @@ -9372,7 +9380,7 @@ case 3 : // Hql.g:577:24: op= MAX { - op=(IToken)Match(input,MAX,FOLLOW_MAX_in_aggregate3038); + op=(IToken)Match(input,MAX,FOLLOW_MAX_in_aggregate3039); stream_MAX.Add(op); @@ -9381,7 +9389,7 @@ case 4 : // Hql.g:577:33: op= MIN { - op=(IToken)Match(input,MIN,FOLLOW_MIN_in_aggregate3044); + op=(IToken)Match(input,MIN,FOLLOW_MIN_in_aggregate3045); stream_MIN.Add(op); @@ -9390,15 +9398,15 @@ } - OPEN251=(IToken)Match(input,OPEN,FOLLOW_OPEN_in_aggregate3048); + OPEN251=(IToken)Match(input,OPEN,FOLLOW_OPEN_in_aggregate3049); stream_OPEN.Add(OPEN251); - PushFollow(FOLLOW_additiveExpression_in_aggregate3050); + PushFollow(FOLLOW_additiveExpression_in_aggregate3051); additiveExpression252 = additiveExpression(); state.followingStackPointer--; stream_additiveExpression.Add(additiveExpression252.Tree); - CLOSE253=(IToken)Match(input,CLOSE,FOLLOW_CLOSE_in_aggregate3052); + CLOSE253=(IToken)Match(input,CLOSE,FOLLOW_CLOSE_in_aggregate3053); stream_CLOSE.Add(CLOSE253); @@ -9434,10 +9442,10 @@ case 2 : // Hql.g:580:5: COUNT OPEN (s= STAR | p= aggregateDistinctAll ) CLOSE { - COUNT254=(IToken)Match(input,COUNT,FOLLOW_COUNT_in_aggregate3071); + COUNT254=(IToken)Match(input,COUNT,FOLLOW_COUNT_in_aggregate3072); stream_COUNT.Add(COUNT254); - OPEN255=(IToken)Match(input,OPEN,FOLLOW_OPEN_in_aggregate3073); + OPEN255=(IToken)Match(input,OPEN,FOLLOW_OPEN_in_aggregate3074); stream_OPEN.Add(OPEN255); // Hql.g:580:16: (s= STAR | p= aggregateDistinctAll ) @@ -9464,7 +9472,7 @@ case 1 : // Hql.g:580:18: s= STAR { - s=(IToken)Match(input,STAR,FOLLOW_STAR_in_aggregate3079); + s=(IToken)Match(input,STAR,FOLLOW_STAR_in_aggregate3080); stream_STAR.Add(s); @@ -9473,7 +9481,7 @@ case 2 : // Hql.g:580:27: p= aggregateDistinctAll { - PushFollow(FOLLOW_aggregateDistinctAll_in_aggregate3085); + PushFollow(FOLLOW_aggregateDistinctAll_in_aggregate3086); p = aggregateDistinctAll(); state.followingStackPointer--; @@ -9484,7 +9492,7 @@ } - CLOSE256=(IToken)Match(input,CLOSE,FOLLOW_CLOSE_in_aggregate3089); + CLOSE256=(IToken)Match(input,CLOSE,FOLLOW_CLOSE_in_aggregate3090); stream_CLOSE.Add(CLOSE256); @@ -9543,7 +9551,7 @@ { root_0 = (IASTNode)adaptor.GetNilNode(); - PushFollow(FOLLOW_collectionExpr_in_aggregate3121); + PushFollow(FOLLOW_collectionExpr_in_aggregate3122); collectionExpr257 = collectionExpr(); state.followingStackPointer--; @@ -9666,7 +9674,7 @@ case 1 : // Hql.g:587:28: path { - PushFollow(FOLLOW_path_in_aggregateDistinctAll3147); + PushFollow(FOLLOW_path_in_aggregateDistinctAll3148); path259 = path(); state.followingStackPointer--; @@ -9677,7 +9685,7 @@ case 2 : // Hql.g:587:35: collectionExpr { - PushFollow(FOLLOW_collectionExpr_in_aggregateDistinctAll3151); + PushFollow(FOLLOW_collectionExpr_in_aggregateDistinctAll3152); collectionExpr260 = collectionExpr(); state.followingStackPointer--; @@ -9776,7 +9784,7 @@ case 1 : // Hql.g:593:5: ELEMENTS { - ELEMENTS261=(IToken)Match(input,ELEMENTS,FOLLOW_ELEMENTS_in_collectionExpr3170); + ELEMENTS261=(IToken)Match(input,ELEMENTS,FOLLOW_ELEMENTS_in_collectionExpr3171); ELEMENTS261_tree = (IASTNode)adaptor.Create(ELEMENTS261); root_0 = (IASTNode)adaptor.BecomeRoot(ELEMENTS261_tree, root_0); @@ -9786,7 +9794,7 @@ case 2 : // Hql.g:593:17: INDICES { - INDICES262=(IToken)Match(input,INDICES,FOLLOW_INDICES_in_collectionExpr3175); + INDICES262=(IToken)Match(input,INDICES,FOLLOW_INDICES_in_collectionExpr3176); INDICES262_tree = (IASTNode)adaptor.Create(INDICES262); root_0 = (IASTNode)adaptor.BecomeRoot(INDICES262_tree, root_0); @@ -9796,13 +9804,13 @@ } - OPEN263=(IToken)Match(input,OPEN,FOLLOW_OPEN_in_collectionExpr3179); - PushFollow(FOLLOW_path_in_collectionExpr3182); + OPEN263=(IToken)Match(input,OPEN,FOLLOW_OPEN_in_collectionExpr3180); + PushFollow(FOLLOW_path_in_collectionExpr3183); path264 = path(); state.followingStackPointer--; adaptor.AddChild(root_0, path264.Tree); - CLOSE265=(IToken)Match(input,CLOSE,FOLLOW_CLOSE_in_collectionExpr3184); + CLOSE265=(IToken)Match(input,CLOSE,FOLLOW_CLOSE_in_collectionExpr3185); } @@ -9899,7 +9907,7 @@ { root_0 = (IASTNode)adaptor.GetNilNode(); - PushFollow(FOLLOW_collectionExpr_in_compoundExpr3239); + PushFollow(FOLLOW_collectionExpr_in_compoundExpr3240); collectionExpr266 = collectionExpr(); state.followingStackPointer--; @@ -9912,7 +9920,7 @@ { root_0 = (IASTNode)adaptor.GetNilNode(); - PushFollow(FOLLOW_path_in_compoundExpr3244); + PushFollow(FOLLOW_path_in_compoundExpr3245); path267 = path(); state.followingStackPointer--; @@ -9928,7 +9936,7 @@ // Hql.g:599:4: ( OPEN ( subQuery | ( expression ( COMMA expression )* ) ) CLOSE ) // Hql.g:599:5: OPEN ( subQuery | ( expression ( COMMA expression )* ) ) CLOSE { - OPEN268=(IToken)Match(input,OPEN,FOLLOW_OPEN_in_compoundExpr3250); + OPEN268=(IToken)Match(input,OPEN,FOLLOW_OPEN_in_compoundExpr3251); // Hql.g:599:11: ( subQuery | ( expression ( COMMA expression )* ) ) int alt95 = 2; int LA95_0 = input.LA(1); @@ -9953,7 +9961,7 @@ case 1 : // Hql.g:599:13: subQuery { - PushFollow(FOLLOW_subQuery_in_compoundExpr3255); + PushFollow(FOLLOW_subQuery_in_compoundExpr3256); subQuery269 = subQuery(); state.followingStackPointer--; @@ -9967,7 +9975,7 @@ // Hql.g:599:24: ( expression ( COMMA expression )* ) // Hql.g:599:25: expression ( COMMA expression )* { - PushFollow(FOLLOW_expression_in_compoundExpr3260); + PushFollow(FOLLOW_expression_in_compoundExpr3261); expression270 = expression(); state.followingStackPointer--; @@ -9989,8 +9997,8 @@ case 1 : // Hql.g:599:37: COMMA expression { - COMMA271=(IToken)Match(input,COMMA,FOLLOW_COMMA_in_compoundExpr3263); - PushFollow(FOLLOW_expression_in_compoundExpr3266); + COMMA271=(IToken)Match(input,COMMA,FOLLOW_COMMA_in_compoundExpr3264); + PushFollow(FOLLOW_expression_in_compoundExpr3267); expression272 = expression(); state.followingStackPointer--; @@ -10016,7 +10024,7 @@ } - CLOSE273=(IToken)Match(input,CLOSE,FOLLOW_CLOSE_in_compoundExpr3273); + CLOSE273=(IToken)Match(input,CLOSE,FOLLOW_CLOSE_in_compoundExpr3274); } @@ -10123,7 +10131,7 @@ case 1 : // Hql.g:608:5: TRAILING { - TRAILING274=(IToken)Match(input,TRAILING,FOLLOW_TRAILING_in_exprList3292); + TRAILING274=(IToken)Match(input,TRAILING,FOLLOW_TRAILING_in_exprList3293); TRAILING274_tree = (IASTNode)adaptor.Create(TRAILING274); adaptor.AddChild(root_0, TRAILING274_tree); @@ -10134,7 +10142,7 @@ case 2 : // Hql.g:609:10: LEADING { - LEADING275=(IToken)Match(input,LEADING,FOLLOW_LEADING_in_exprList3305); + LEADING275=(IToken)Match(input,LEADING,FOLLOW_LEADING_in_exprList3306); LEADING275_tree = (IASTNode)adaptor.Create(LEADING275); adaptor.AddChild(root_0, LEADING275_tree); @@ -10145,7 +10153,7 @@ case 3 : // Hql.g:610:10: BOTH { - BOTH276=(IToken)Match(input,BOTH,FOLLOW_BOTH_in_exprList3318); + BOTH276=(IToken)Match(input,BOTH,FOLLOW_BOTH_in_exprList3319); BOTH276_tree = (IASTNode)adaptor.Create(BOTH276); adaptor.AddChild(root_0, BOTH276_tree); @@ -10173,7 +10181,7 @@ case 1 : // Hql.g:613:5: expression ( ( COMMA expression )+ | f= FROM expression | AS identifier )? { - PushFollow(FOLLOW_expression_in_exprList3342); + PushFollow(FOLLOW_expression_in_exprList3343); expression277 = expression(); state.followingStackPointer--; @@ -10222,8 +10230,8 @@ case 1 : // Hql.g:613:19: COMMA expression { - COMMA278=(IToken)Match(input,COMMA,FOLLOW_COMMA_in_exprList3347); - PushFollow(FOLLOW_expression_in_exprList3350); + COMMA278=(IToken)Match(input,COMMA,FOLLOW_COMMA_in_exprList3348); + PushFollow(FOLLOW_expression_in_exprList3351); expression279 = expression(); state.followingStackPointer--; @@ -10250,11 +10258,11 @@ case 2 : // Hql.g:614:9: f= FROM expression { - f=(IToken)Match(input,FROM,FOLLOW_FROM_in_exprList3365); + f=(IToken)Match(input,FROM,FOLLOW_FROM_in_exprList3366); f_tree = (IASTNode)adaptor.Create(f); adaptor.AddChild(root_0, f_tree); - PushFollow(FOLLOW_expression_in_exprList3367); + PushFollow(FOLLOW_expression_in_exprList3368); expression280 = expression(); state.followingStackPointer--; @@ -10266,8 +10274,8 @@ case 3 : // Hql.g:615:9: AS identifier { - AS281=(IToken)Match(input,AS,FOLLOW_AS_in_exprList3379); - PushFollow(FOLLOW_identifier_in_exprList3382); + AS281=(IToken)Match(input,AS,FOLLOW_AS_in_exprList3380); + PushFollow(FOLLOW_identifier_in_exprList3383); identifier282 = identifier(); state.followingStackPointer--; @@ -10284,11 +10292,11 @@ case 2 : // Hql.g:616:7: f2= FROM expression { - f2=(IToken)Match(input,FROM,FOLLOW_FROM_in_exprList3396); + f2=(IToken)Match(input,FROM,FOLLOW_FROM_in_exprList3397); f2_tree = (IASTNode)adaptor.Create(f2); adaptor.AddChild(root_0, f2_tree); - PushFollow(FOLLOW_expression_in_exprList3398); + PushFollow(FOLLOW_expression_in_exprList3399); expression283 = expression(); state.followingStackPointer--; @@ -10362,7 +10370,7 @@ { root_0 = (IASTNode)adaptor.GetNilNode(); - PushFollow(FOLLOW_innerSubQuery_in_subQuery3418); + PushFollow(FOLLOW_innerSubQuery_in_subQuery3419); innerSubQuery284 = innerSubQuery(); state.followingStackPointer--; @@ -10384,11 +10392,11 @@ case 1 : // Hql.g:621:19: UNION innerSubQuery { - UNION285=(IToken)Match(input,UNION,FOLLOW_UNION_in_subQuery3421); + UNION285=(IToken)Match(input,UNION,FOLLOW_UNION_in_subQuery3422); UNION285_tree = (IASTNode)adaptor.Create(UNION285); root_0 = (IASTNode)adaptor.BecomeRoot(UNION285_tree, root_0); - PushFollow(FOLLOW_innerSubQuery_in_subQuery3424); + PushFollow(FOLLOW_innerSubQuery_in_subQuery3425); innerSubQuery286 = innerSubQuery(); state.followingStackPointer--; @@ -10456,7 +10464,7 @@ // Hql.g:625:2: ( queryRule -> ^( QUERY[\"query\"] queryRule ) ) // Hql.g:625:4: queryRule { - PushFollow(FOLLOW_queryRule_in_innerSubQuery3438); + PushFollow(FOLLOW_queryRule_in_innerSubQuery3439); queryRule287 = queryRule(); state.followingStackPointer--; @@ -10615,7 +10623,7 @@ { root_0 = (IASTNode)adaptor.GetNilNode(); - PushFollow(FOLLOW_identifier_in_path3526); + PushFollow(FOLLOW_identifier_in_path3527); identifier289 = identifier(); state.followingStackPointer--; @@ -10637,12 +10645,12 @@ case 1 : // Hql.g:653:17: DOT identifier { - DOT290=(IToken)Match(input,DOT,FOLLOW_DOT_in_path3530); + DOT290=(IToken)Match(input,DOT,FOLLOW_DOT_in_path3531); DOT290_tree = (IASTNode)adaptor.Create(DOT290); root_0 = (IASTNode)adaptor.BecomeRoot(DOT290_tree, root_0); WeakKeywords(); - PushFollow(FOLLOW_identifier_in_path3535); + PushFollow(FOLLOW_identifier_in_path3536); identifier291 = identifier(); state.followingStackPointer--; @@ -10712,7 +10720,7 @@ { root_0 = (IASTNode)adaptor.GetNilNode(); - IDENT292=(IToken)Match(input,IDENT,FOLLOW_IDENT_in_identifier3551); + IDENT292=(IToken)Match(input,IDENT,FOLLOW_IDENT_in_identifier3552); IDENT292_tree = (IASTNode)adaptor.Create(IDENT292); adaptor.AddChild(root_0, IDENT292_tree); @@ -10971,115 +10979,115 @@ public static readonly BitSet FOLLOW_whenClause_in_caseExpression2497 = new BitSet(new ulong[]{0x0B00000000000000UL}); public static readonly BitSet FOLLOW_elseClause_in_caseExpression2502 = new BitSet(new ulong[]{0x0100000000000000UL}); public static readonly BitSet FOLLOW_END_in_caseExpression2506 = new BitSet(new ulong[]{0x0000000000000002UL}); - public static readonly BitSet FOLLOW_CASE_in_caseExpression2525 = new BitSet(new ulong[]{0x80938098085A1230UL,0x0F0C4023E0000000UL}); - public static readonly BitSet FOLLOW_unaryExpression_in_caseExpression2527 = new BitSet(new ulong[]{0x0800000000000000UL}); - public static readonly BitSet FOLLOW_altWhenClause_in_caseExpression2530 = new BitSet(new ulong[]{0x0B00000000000000UL}); - public static readonly BitSet FOLLOW_elseClause_in_caseExpression2535 = new BitSet(new ulong[]{0x0100000000000000UL}); - public static readonly BitSet FOLLOW_END_in_caseExpression2539 = new BitSet(new ulong[]{0x0000000000000002UL}); - public static readonly BitSet FOLLOW_WHEN_in_whenClause2568 = new BitSet(new ulong[]{0x809380D8085A1230UL,0x0F0C4023E0000000UL}); - public static readonly BitSet FOLLOW_logicalExpression_in_whenClause2571 = new BitSet(new ulong[]{0x0400000000000000UL}); - public static readonly BitSet FOLLOW_THEN_in_whenClause2573 = new BitSet(new ulong[]{0x809380D8085A1230UL,0x0F0C4023E0000000UL}); - public static readonly BitSet FOLLOW_expression_in_whenClause2576 = new BitSet(new ulong[]{0x0000000000000002UL}); - public static readonly BitSet FOLLOW_WHEN_in_altWhenClause2590 = new BitSet(new ulong[]{0x80938098085A1230UL,0x0F0C4023E0000000UL}); - public static readonly BitSet FOLLOW_unaryExpression_in_altWhenClause2593 = new BitSet(new ulong[]{0x0400000000000000UL}); - public static readonly BitSet FOLLOW_THEN_in_altWhenClause2595 = new BitSet(new ulong[]{0x809380D8085A1230UL,0x0F0C4023E0000000UL}); - public static readonly BitSet FOLLOW_expression_in_altWhenClause2598 = new BitSet(new ulong[]{0x0000000000000002UL}); - public static readonly BitSet FOLLOW_ELSE_in_elseClause2612 = new BitSet(new ulong[]{0x809380D8085A1230UL,0x0F0C4023E0000000UL}); - public static readonly BitSet FOLLOW_expression_in_elseClause2615 = new BitSet(new ulong[]{0x0000000000000002UL}); - public static readonly BitSet FOLLOW_SOME_in_quantifiedExpression2630 = new BitSet(new ulong[]{0x0011001808421200UL,0x0800002000000000UL}); - public static readonly BitSet FOLLOW_EXISTS_in_quantifiedExpression2635 = new BitSet(new ulong[]{0x0011001808421200UL,0x0800002000000000UL}); - public static readonly BitSet FOLLOW_ALL_in_quantifiedExpression2640 = new BitSet(new ulong[]{0x0011001808421200UL,0x0800002000000000UL}); - public static readonly BitSet FOLLOW_ANY_in_quantifiedExpression2645 = new BitSet(new ulong[]{0x0011001808421200UL,0x0800002000000000UL}); - public static readonly BitSet FOLLOW_identifier_in_quantifiedExpression2654 = new BitSet(new ulong[]{0x0000000000000002UL}); - public static readonly BitSet FOLLOW_collectionExpr_in_quantifiedExpression2658 = new BitSet(new ulong[]{0x0000000000000002UL}); - public static readonly BitSet FOLLOW_OPEN_in_quantifiedExpression2663 = new BitSet(new ulong[]{0x0020220001400000UL}); - public static readonly BitSet FOLLOW_subQuery_in_quantifiedExpression2668 = new BitSet(new ulong[]{0x0000000000000000UL,0x0000004000000000UL}); - public static readonly BitSet FOLLOW_CLOSE_in_quantifiedExpression2672 = new BitSet(new ulong[]{0x0000000000000002UL}); - public static readonly BitSet FOLLOW_primaryExpression_in_atom2691 = new BitSet(new ulong[]{0x0000000000008002UL,0x0040000000000000UL}); - public static readonly BitSet FOLLOW_DOT_in_atom2700 = new BitSet(new ulong[]{0x0010000000400000UL,0x0800000000000000UL}); - public static readonly BitSet FOLLOW_identifier_in_atom2703 = new BitSet(new ulong[]{0x0000000000008002UL,0x0040002000000000UL}); - public static readonly BitSet FOLLOW_OPEN_in_atom2731 = new BitSet(new ulong[]{0xC09380D8085A1230UL,0x0F0C4063E0000011UL}); - public static readonly BitSet FOLLOW_exprList_in_atom2736 = new BitSet(new ulong[]{0x0000000000000000UL,0x0000004000000000UL}); - public static readonly BitSet FOLLOW_CLOSE_in_atom2738 = new BitSet(new ulong[]{0x0000000000008002UL,0x0040000000000000UL}); - public static readonly BitSet FOLLOW_OPEN_BRACKET_in_atom2752 = new BitSet(new ulong[]{0x809380D8085A1230UL,0x0F0C4023E0000000UL}); - public static readonly BitSet FOLLOW_expression_in_atom2757 = new BitSet(new ulong[]{0x0000000000000000UL,0x0080000000000000UL}); - public static readonly BitSet FOLLOW_CLOSE_BRACKET_in_atom2759 = new BitSet(new ulong[]{0x0000000000008002UL,0x0040000000000000UL}); - public static readonly BitSet FOLLOW_identPrimary_in_primaryExpression2779 = new BitSet(new ulong[]{0x0000000000008002UL}); - public static readonly BitSet FOLLOW_DOT_in_primaryExpression2792 = new BitSet(new ulong[]{0x0000000000000800UL}); - public static readonly BitSet FOLLOW_CLASS_in_primaryExpression2795 = new BitSet(new ulong[]{0x0000000000000002UL}); - public static readonly BitSet FOLLOW_constant_in_primaryExpression2805 = new BitSet(new ulong[]{0x0000000000000002UL}); - public static readonly BitSet FOLLOW_COLON_in_primaryExpression2812 = new BitSet(new ulong[]{0x0010000000400000UL,0x0800000000000000UL}); - public static readonly BitSet FOLLOW_identifier_in_primaryExpression2815 = new BitSet(new ulong[]{0x0000000000000002UL}); - public static readonly BitSet FOLLOW_OPEN_in_primaryExpression2824 = new BitSet(new ulong[]{0x80B3A2D8095A1230UL,0x0F0C4023E0000000UL}); - public static readonly BitSet FOLLOW_expressionOrVector_in_primaryExpression2828 = new BitSet(new ulong[]{0x0000000000000000UL,0x0000004000000000UL}); - public static readonly BitSet FOLLOW_subQuery_in_primaryExpression2832 = new BitSet(new ulong[]{0x0000000000000000UL,0x0000004000000000UL}); - public static readonly BitSet FOLLOW_CLOSE_in_primaryExpression2835 = new BitSet(new ulong[]{0x0000000000000002UL}); - public static readonly BitSet FOLLOW_PARAM_in_primaryExpression2843 = new BitSet(new ulong[]{0x0000000000000002UL,0x0000000020000000UL}); - public static readonly BitSet FOLLOW_NUM_INT_in_primaryExpression2847 = new BitSet(new ulong[]{0x0000000000000002UL}); - public static readonly BitSet FOLLOW_expression_in_expressionOrVector2865 = new BitSet(new ulong[]{0x0000000000000002UL,0x0000000800000000UL}); - public static readonly BitSet FOLLOW_vectorExpr_in_expressionOrVector2871 = new BitSet(new ulong[]{0x0000000000000002UL}); - public static readonly BitSet FOLLOW_COMMA_in_vectorExpr2910 = new BitSet(new ulong[]{0x809380D8085A1230UL,0x0F0C4023E0000000UL}); - public static readonly BitSet FOLLOW_expression_in_vectorExpr2913 = new BitSet(new ulong[]{0x0000000000000002UL,0x0000000800000000UL}); - public static readonly BitSet FOLLOW_COMMA_in_vectorExpr2916 = new BitSet(new ulong[]{0x809380D8085A1230UL,0x0F0C4023E0000000UL}); - public static readonly BitSet FOLLOW_expression_in_vectorExpr2919 = new BitSet(new ulong[]{0x0000000000000002UL,0x0000000800000000UL}); - public static readonly BitSet FOLLOW_identifier_in_identPrimary2935 = new BitSet(new ulong[]{0x0000000000008002UL,0x0000002000000000UL}); - public static readonly BitSet FOLLOW_DOT_in_identPrimary2953 = new BitSet(new ulong[]{0x0010000000400000UL,0x0800000000000004UL}); - public static readonly BitSet FOLLOW_identifier_in_identPrimary2958 = new BitSet(new ulong[]{0x0000000000008002UL,0x0000002000000000UL}); - public static readonly BitSet FOLLOW_OBJECT_in_identPrimary2964 = new BitSet(new ulong[]{0x0000000000008002UL,0x0000002000000000UL}); - public static readonly BitSet FOLLOW_OPEN_in_identPrimary2982 = new BitSet(new ulong[]{0xC09380D8085A1230UL,0x0F0C4063E0000011UL}); - public static readonly BitSet FOLLOW_exprList_in_identPrimary2987 = new BitSet(new ulong[]{0x0000000000000000UL,0x0000004000000000UL}); - public static readonly BitSet FOLLOW_CLOSE_in_identPrimary2989 = new BitSet(new ulong[]{0x0000000000000002UL}); - public static readonly BitSet FOLLOW_aggregate_in_identPrimary3005 = new BitSet(new ulong[]{0x0000000000000002UL}); - public static readonly BitSet FOLLOW_SUM_in_aggregate3026 = new BitSet(new ulong[]{0x0000000000000000UL,0x0000002000000000UL}); - public static readonly BitSet FOLLOW_AVG_in_aggregate3032 = new BitSet(new ulong[]{0x0000000000000000UL,0x0000002000000000UL}); - public static readonly BitSet FOLLOW_MAX_in_aggregate3038 = new BitSet(new ulong[]{0x0000000000000000UL,0x0000002000000000UL}); - public static readonly BitSet FOLLOW_MIN_in_aggregate3044 = new BitSet(new ulong[]{0x0000000000000000UL,0x0000002000000000UL}); - public static readonly BitSet FOLLOW_OPEN_in_aggregate3048 = new BitSet(new ulong[]{0x80938098085A1230UL,0x0F0C4023E0000000UL}); - public static readonly BitSet FOLLOW_additiveExpression_in_aggregate3050 = new BitSet(new ulong[]{0x0000000000000000UL,0x0000004000000000UL}); - public static readonly BitSet FOLLOW_CLOSE_in_aggregate3052 = new BitSet(new ulong[]{0x0000000000000002UL}); - public static readonly BitSet FOLLOW_COUNT_in_aggregate3071 = new BitSet(new ulong[]{0x0000000000000000UL,0x0000002000000000UL}); - public static readonly BitSet FOLLOW_OPEN_in_aggregate3073 = new BitSet(new ulong[]{0x0011001808431210UL,0x0810000000000000UL}); - public static readonly BitSet FOLLOW_STAR_in_aggregate3079 = new BitSet(new ulong[]{0x0000000000000000UL,0x0000004000000000UL}); - public static readonly BitSet FOLLOW_aggregateDistinctAll_in_aggregate3085 = new BitSet(new ulong[]{0x0000000000000000UL,0x0000004000000000UL}); - public static readonly BitSet FOLLOW_CLOSE_in_aggregate3089 = new BitSet(new ulong[]{0x0000000000000002UL}); - public static readonly BitSet FOLLOW_collectionExpr_in_aggregate3121 = new BitSet(new ulong[]{0x0000000000000002UL}); - public static readonly BitSet FOLLOW_set_in_aggregateDistinctAll3134 = new BitSet(new ulong[]{0x0011001808421200UL,0x0800000000000000UL}); - public static readonly BitSet FOLLOW_path_in_aggregateDistinctAll3147 = new BitSet(new ulong[]{0x0000000000000002UL}); - public static readonly BitSet FOLLOW_collectionExpr_in_aggregateDistinctAll3151 = new BitSet(new ulong[]{0x0000000000000002UL}); - public static readonly BitSet FOLLOW_ELEMENTS_in_collectionExpr3170 = new BitSet(new ulong[]{0x0000000000000000UL,0x0000002000000000UL}); - public static readonly BitSet FOLLOW_INDICES_in_collectionExpr3175 = new BitSet(new ulong[]{0x0000000000000000UL,0x0000002000000000UL}); - public static readonly BitSet FOLLOW_OPEN_in_collectionExpr3179 = new BitSet(new ulong[]{0x0010000000400000UL,0x0800000000000000UL}); - public static readonly BitSet FOLLOW_path_in_collectionExpr3182 = new BitSet(new ulong[]{0x0000000000000000UL,0x0000004000000000UL}); - public static readonly BitSet FOLLOW_CLOSE_in_collectionExpr3184 = new BitSet(new ulong[]{0x0000000000000002UL}); - public static readonly BitSet FOLLOW_collectionExpr_in_compoundExpr3239 = new BitSet(new ulong[]{0x0000000000000002UL}); - public static readonly BitSet FOLLOW_path_in_compoundExpr3244 = new BitSet(new ulong[]{0x0000000000000002UL}); - public static readonly BitSet FOLLOW_OPEN_in_compoundExpr3250 = new BitSet(new ulong[]{0x80B3A2D8095A1230UL,0x0F0C4023E0000000UL}); - public static readonly BitSet FOLLOW_subQuery_in_compoundExpr3255 = new BitSet(new ulong[]{0x0000000000000000UL,0x0000004000000000UL}); - public static readonly BitSet FOLLOW_expression_in_compoundExpr3260 = new BitSet(new ulong[]{0x0000000000000000UL,0x0000004800000000UL}); - public static readonly BitSet FOLLOW_COMMA_in_compoundExpr3263 = new BitSet(new ulong[]{0x809380D8085A1230UL,0x0F0C4023E0000000UL}); - public static readonly BitSet FOLLOW_expression_in_compoundExpr3266 = new BitSet(new ulong[]{0x0000000000000000UL,0x0000004800000000UL}); - public static readonly BitSet FOLLOW_CLOSE_in_compoundExpr3273 = new BitSet(new ulong[]{0x0000000000000002UL}); - public static readonly BitSet FOLLOW_TRAILING_in_exprList3292 = new BitSet(new ulong[]{0x809380D8085A1232UL,0x0F0C4023E0000000UL}); - public static readonly BitSet FOLLOW_LEADING_in_exprList3305 = new BitSet(new ulong[]{0x809380D8085A1232UL,0x0F0C4023E0000000UL}); - public static readonly BitSet FOLLOW_BOTH_in_exprList3318 = new BitSet(new ulong[]{0x809380D8085A1232UL,0x0F0C4023E0000000UL}); - public static readonly BitSet FOLLOW_expression_in_exprList3342 = new BitSet(new ulong[]{0x0000000000400082UL,0x0000000800000000UL}); - public static readonly BitSet FOLLOW_COMMA_in_exprList3347 = new BitSet(new ulong[]{0x809380D8085A1230UL,0x0F0C4023E0000000UL}); - public static readonly BitSet FOLLOW_expression_in_exprList3350 = new BitSet(new ulong[]{0x0000000000000002UL,0x0000000800000000UL}); - public static readonly BitSet FOLLOW_FROM_in_exprList3365 = new BitSet(new ulong[]{0x809380D8085A1230UL,0x0F0C4023E0000000UL}); - public static readonly BitSet FOLLOW_expression_in_exprList3367 = new BitSet(new ulong[]{0x0000000000000002UL}); - public static readonly BitSet FOLLOW_AS_in_exprList3379 = new BitSet(new ulong[]{0x0010000000400000UL,0x0800000000000000UL}); - public static readonly BitSet FOLLOW_identifier_in_exprList3382 = new BitSet(new ulong[]{0x0000000000000002UL}); - public static readonly BitSet FOLLOW_FROM_in_exprList3396 = new BitSet(new ulong[]{0x809380D8085A1230UL,0x0F0C4023E0000000UL}); - public static readonly BitSet FOLLOW_expression_in_exprList3398 = new BitSet(new ulong[]{0x0000000000000002UL}); - public static readonly BitSet FOLLOW_innerSubQuery_in_subQuery3418 = new BitSet(new ulong[]{0x0004000000000002UL}); - public static readonly BitSet FOLLOW_UNION_in_subQuery3421 = new BitSet(new ulong[]{0x0020220001400000UL}); - public static readonly BitSet FOLLOW_innerSubQuery_in_subQuery3424 = new BitSet(new ulong[]{0x0004000000000002UL}); - public static readonly BitSet FOLLOW_queryRule_in_innerSubQuery3438 = new BitSet(new ulong[]{0x0000000000000002UL}); + public static readonly BitSet FOLLOW_CASE_in_caseExpression2526 = new BitSet(new ulong[]{0x80938098085A1230UL,0x0F0C4023E0000000UL}); +... [truncated message content] |
From: <pa...@us...> - 2011-01-13 17:55:26
|
Revision: 5345 http://nhibernate.svn.sourceforge.net/nhibernate/?rev=5345&view=rev Author: patearl Date: 2011-01-13 17:55:17 +0000 (Thu, 13 Jan 2011) Log Message: ----------- Added Antlr tool to regenerate lexer and parser from grammar. Regenerated from Hql.g with no other changes to clean up path to grammar file. Modified Paths: -------------- trunk/nhibernate/ShowBuildMenu.bat trunk/nhibernate/src/NHibernate/Hql/Ast/ANTLR/Generated/HqlLexer.cs trunk/nhibernate/src/NHibernate/Hql/Ast/ANTLR/Generated/HqlParser.cs Added Paths: ----------- trunk/nhibernate/Tools/Antlr/ trunk/nhibernate/Tools/Antlr/AntlrHql.bat trunk/nhibernate/Tools/Antlr/antlr-3.2.jar Modified: trunk/nhibernate/ShowBuildMenu.bat =================================================================== --- trunk/nhibernate/ShowBuildMenu.bat 2011-01-13 01:12:33 UTC (rev 5344) +++ trunk/nhibernate/ShowBuildMenu.bat 2011-01-13 17:55:17 UTC (rev 5345) @@ -1,6 +1,5 @@ @echo off -set OLD_CD=%CD% -cd %~dp0 +pushd %~dp0 set NANT=Tools\nant\bin\NAnt.exe -t:net-3.5 @@ -16,15 +15,17 @@ echo E. Build NHibernate (Debug) echo F. Build NHibernate (Release) echo G. Build Release Package (Also runs tests and creates documentation) +echo H. Run Antlr on Hql.g to regenerate HqlParser.cs and HqlLexer.cs. echo. if exist %SYSTEMROOT%\System32\choice.exe ( goto prompt-choice ) goto prompt-set :prompt-choice -choice /C:abcdefg +choice /C:abcdefgh if errorlevel 255 goto end +if errorlevel 8 goto antlr-hql if errorlevel 7 goto build-release-package if errorlevel 6 goto build-release if errorlevel 5 goto build-debug @@ -35,7 +36,7 @@ if errorlevel 0 goto end :prompt-set -set /p OPT=[A, B, C, D, E, F, G]? +set /p OPT=[A, B, C, D, E, F, G, H]? if /I "%OPT%"=="A" goto build-visual-studio if /I "%OPT%"=="B" goto help-test-setup @@ -44,6 +45,7 @@ if /I "%OPT%"=="E" goto build-debug if /I "%OPT%"=="F" goto build-release if /I "%OPT%"=="G" goto build-release-package +if /I "%OPT%"=="H" goto antlr-hql goto prompt-set :help-test-setup @@ -105,6 +107,11 @@ %NANT% test goto end +:antlr-hql +rem NANT is 32-bit and refuses to run 64-bit Java, so we just use a batch file instead. :( +call Tools\Antlr\AntlrHql.bat +goto end + :end -cd %OLD_CD% +popd pause Property changes on: trunk/nhibernate/Tools/Antlr ___________________________________________________________________ Added: bugtraq:url + http://jira.nhibernate.org/browse/%BUGID% Added: bugtraq:logregex + NH-\d+ Added: trunk/nhibernate/Tools/Antlr/AntlrHql.bat =================================================================== --- trunk/nhibernate/Tools/Antlr/AntlrHql.bat (rev 0) +++ trunk/nhibernate/Tools/Antlr/AntlrHql.bat 2011-01-13 17:55:17 UTC (rev 5345) @@ -0,0 +1,4 @@ +@echo off +pushd %~dp0\..\..\src\NHibernate\Hql\Ast\ANTLR +java.exe -cp ..\..\..\..\..\Tools\Antlr\antlr-3.2.jar org.antlr.Tool -o Generated Hql.g +popd \ No newline at end of file Added: trunk/nhibernate/Tools/Antlr/antlr-3.2.jar =================================================================== (Binary files differ) Property changes on: trunk/nhibernate/Tools/Antlr/antlr-3.2.jar ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Modified: trunk/nhibernate/src/NHibernate/Hql/Ast/ANTLR/Generated/HqlLexer.cs =================================================================== --- trunk/nhibernate/src/NHibernate/Hql/Ast/ANTLR/Generated/HqlLexer.cs 2011-01-13 01:12:33 UTC (rev 5344) +++ trunk/nhibernate/src/NHibernate/Hql/Ast/ANTLR/Generated/HqlLexer.cs 2011-01-13 17:55:17 UTC (rev 5345) @@ -1,4 +1,4 @@ -// $ANTLR 3.2 Sep 23, 2009 12:02:23 C:\\Users\\Steve\\Documents\\NHibernate\\nhibernate\\src\\NHibernate\\Hql\\Ast\\ANTLR\\Hql.g 2010-05-01 20:41:02 +// $ANTLR 3.2 Sep 23, 2009 12:02:23 Hql.g 2011-01-13 10:47:55 // The variable 'variable' is assigned but its value is never used. #pragma warning disable 168, 219 @@ -166,7 +166,7 @@ override public string GrammarFileName { - get { return "C:\\Users\\Steve\\Documents\\NHibernate\\nhibernate\\src\\NHibernate\\Hql\\Ast\\ANTLR\\Hql.g";} + get { return "Hql.g";} } // $ANTLR start "ALL" @@ -176,8 +176,8 @@ { int _type = ALL; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Steve\\Documents\\NHibernate\\nhibernate\\src\\NHibernate\\Hql\\Ast\\ANTLR\\Hql.g:9:5: ( 'all' ) - // C:\\Users\\Steve\\Documents\\NHibernate\\nhibernate\\src\\NHibernate\\Hql\\Ast\\ANTLR\\Hql.g:9:7: 'all' + // Hql.g:9:5: ( 'all' ) + // Hql.g:9:7: 'all' { Match("all"); if (state.failed) return ; @@ -200,8 +200,8 @@ { int _type = ANY; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Steve\\Documents\\NHibernate\\nhibernate\\src\\NHibernate\\Hql\\Ast\\ANTLR\\Hql.g:10:5: ( 'any' ) - // C:\\Users\\Steve\\Documents\\NHibernate\\nhibernate\\src\\NHibernate\\Hql\\Ast\\ANTLR\\Hql.g:10:7: 'any' + // Hql.g:10:5: ( 'any' ) + // Hql.g:10:7: 'any' { Match("any"); if (state.failed) return ; @@ -224,8 +224,8 @@ { int _type = AND; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Steve\\Documents\\NHibernate\\nhibernate\\src\\NHibernate\\Hql\\Ast\\ANTLR\\Hql.g:11:5: ( 'and' ) - // C:\\Users\\Steve\\Documents\\NHibernate\\nhibernate\\src\\NHibernate\\Hql\\Ast\\ANTLR\\Hql.g:11:7: 'and' + // Hql.g:11:5: ( 'and' ) + // Hql.g:11:7: 'and' { Match("and"); if (state.failed) return ; @@ -248,8 +248,8 @@ { int _type = AS; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Steve\\Documents\\NHibernate\\nhibernate\\src\\NHibernate\\Hql\\Ast\\ANTLR\\Hql.g:12:4: ( 'as' ) - // C:\\Users\\Steve\\Documents\\NHibernate\\nhibernate\\src\\NHibernate\\Hql\\Ast\\ANTLR\\Hql.g:12:6: 'as' + // Hql.g:12:4: ( 'as' ) + // Hql.g:12:6: 'as' { Match("as"); if (state.failed) return ; @@ -272,8 +272,8 @@ { int _type = ASCENDING; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Steve\\Documents\\NHibernate\\nhibernate\\src\\NHibernate\\Hql\\Ast\\ANTLR\\Hql.g:13:11: ( 'asc' ) - // C:\\Users\\Steve\\Documents\\NHibernate\\nhibernate\\src\\NHibernate\\Hql\\Ast\\ANTLR\\Hql.g:13:13: 'asc' + // Hql.g:13:11: ( 'asc' ) + // Hql.g:13:13: 'asc' { Match("asc"); if (state.failed) return ; @@ -296,8 +296,8 @@ { int _type = AVG; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Steve\\Documents\\NHibernate\\nhibernate\\src\\NHibernate\\Hql\\Ast\\ANTLR\\Hql.g:14:5: ( 'avg' ) - // C:\\Users\\Steve\\Documents\\NHibernate\\nhibernate\\src\\NHibernate\\Hql\\Ast\\ANTLR\\Hql.g:14:7: 'avg' + // Hql.g:14:5: ( 'avg' ) + // Hql.g:14:7: 'avg' { Match("avg"); if (state.failed) return ; @@ -320,8 +320,8 @@ { int _type = BETWEEN; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Steve\\Documents\\NHibernate\\nhibernate\\src\\NHibernate\\Hql\\Ast\\ANTLR\\Hql.g:15:9: ( 'between' ) - // C:\\Users\\Steve\\Documents\\NHibernate\\nhibernate\\src\\NHibernate\\Hql\\Ast\\ANTLR\\Hql.g:15:11: 'between' + // Hql.g:15:9: ( 'between' ) + // Hql.g:15:11: 'between' { Match("between"); if (state.failed) return ; @@ -344,8 +344,8 @@ { int _type = CLASS; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Steve\\Documents\\NHibernate\\nhibernate\\src\\NHibernate\\Hql\\Ast\\ANTLR\\Hql.g:16:7: ( 'class' ) - // C:\\Users\\Steve\\Documents\\NHibernate\\nhibernate\\src\\NHibernate\\Hql\\Ast\\ANTLR\\Hql.g:16:9: 'class' + // Hql.g:16:7: ( 'class' ) + // Hql.g:16:9: 'class' { Match("class"); if (state.failed) return ; @@ -368,8 +368,8 @@ { int _type = COUNT; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Steve\\Documents\\NHibernate\\nhibernate\\src\\NHibernate\\Hql\\Ast\\ANTLR\\Hql.g:17:7: ( 'count' ) - // C:\\Users\\Steve\\Documents\\NHibernate\\nhibernate\\src\\NHibernate\\Hql\\Ast\\ANTLR\\Hql.g:17:9: 'count' + // Hql.g:17:7: ( 'count' ) + // Hql.g:17:9: 'count' { Match("count"); if (state.failed) return ; @@ -392,8 +392,8 @@ { int _type = DELETE; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Steve\\Documents\\NHibernate\\nhibernate\\src\\NHibernate\\Hql\\Ast\\ANTLR\\Hql.g:18:8: ( 'delete' ) - // C:\\Users\\Steve\\Documents\\NHibernate\\nhibernate\\src\\NHibernate\\Hql\\Ast\\ANTLR\\Hql.g:18:10: 'delete' + // Hql.g:18:8: ( 'delete' ) + // Hql.g:18:10: 'delete' { Match("delete"); if (state.failed) return ; @@ -416,8 +416,8 @@ { int _type = DESCENDING; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Steve\\Documents\\NHibernate\\nhibernate\\src\\NHibernate\\Hql\\Ast\\ANTLR\\Hql.g:19:12: ( 'desc' ) - // C:\\Users\\Steve\\Documents\\NHibernate\\nhibernate\\src\\NHibernate\\Hql\\Ast\\ANTLR\\Hql.g:19:14: 'desc' + // Hql.g:19:12: ( 'desc' ) + // Hql.g:19:14: 'desc' { Match("desc"); if (state.failed) return ; @@ -440,8 +440,8 @@ { int _type = DISTINCT; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Steve\\Documents\\NHibernate\\nhibernate\\src\\NHibernate\\Hql\\Ast\\ANTLR\\Hql.g:20:10: ( 'distinct' ) - // C:\\Users\\Steve\\Documents\\NHibernate\\nhibernate\\src\\NHibernate\\Hql\\Ast\\ANTLR\\Hql.g:20:12: 'distinct' + // Hql.g:20:10: ( 'distinct' ) + // Hql.g:20:12: 'distinct' { Match("distinct"); if (state.failed) return ; @@ -464,8 +464,8 @@ { int _type = ELEMENTS; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Steve\\Documents\\NHibernate\\nhibernate\\src\\NHibernate\\Hql\\Ast\\ANTLR\\Hql.g:21:10: ( 'elements' ) - // C:\\Users\\Steve\\Documents\\NHibernate\\nhibernate\\src\\NHibernate\\Hql\\Ast\\ANTLR\\Hql.g:21:12: 'elements' + // Hql.g:21:10: ( 'elements' ) + // Hql.g:21:12: 'elements' { Match("elements"); if (state.failed) return ; @@ -488,8 +488,8 @@ { int _type = ESCAPE; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Steve\\Documents\\NHibernate\\nhibernate\\src\\NHibernate\\Hql\\Ast\\ANTLR\\Hql.g:22:8: ( 'escape' ) - // C:\\Users\\Steve\\Documents\\NHibernate\\nhibernate\\src\\NHibernate\\Hql\\Ast\\ANTLR\\Hql.g:22:10: 'escape' + // Hql.g:22:8: ( 'escape' ) + // Hql.g:22:10: 'escape' { Match("escape"); if (state.failed) return ; @@ -512,8 +512,8 @@ { int _type = EXISTS; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Steve\\Documents\\NHibernate\\nhibernate\\src\\NHibernate\\Hql\\Ast\\ANTLR\\Hql.g:23:8: ( 'exists' ) - // C:\\Users\\Steve\\Documents\\NHibernate\\nhibernate\\src\\NHibernate\\Hql\\Ast\\ANTLR\\Hql.g:23:10: 'exists' + // Hql.g:23:8: ( 'exists' ) + // Hql.g:23:10: 'exists' { Match("exists"); if (state.failed) return ; @@ -536,8 +536,8 @@ { int _type = FALSE; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Steve\\Documents\\NHibernate\\nhibernate\\src\\NHibernate\\Hql\\Ast\\ANTLR\\Hql.g:24:7: ( 'false' ) - // C:\\Users\\Steve\\Documents\\NHibernate\\nhibernate\\src\\NHibernate\\Hql\\Ast\\ANTLR\\Hql.g:24:9: 'false' + // Hql.g:24:7: ( 'false' ) + // Hql.g:24:9: 'false' { Match("false"); if (state.failed) return ; @@ -560,8 +560,8 @@ { int _type = FETCH; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Steve\\Documents\\NHibernate\\nhibernate\\src\\NHibernate\\Hql\\Ast\\ANTLR\\Hql.g:25:7: ( 'fetch' ) - // C:\\Users\\Steve\\Documents\\NHibernate\\nhibernate\\src\\NHibernate\\Hql\\Ast\\ANTLR\\Hql.g:25:9: 'fetch' + // Hql.g:25:7: ( 'fetch' ) + // Hql.g:25:9: 'fetch' { Match("fetch"); if (state.failed) return ; @@ -584,8 +584,8 @@ { int _type = FROM; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Steve\\Documents\\NHibernate\\nhibernate\\src\\NHibernate\\Hql\\Ast\\ANTLR\\Hql.g:26:6: ( 'from' ) - // C:\\Users\\Steve\\Documents\\NHibernate\\nhibernate\\src\\NHibernate\\Hql\\Ast\\ANTLR\\Hql.g:26:8: 'from' + // Hql.g:26:6: ( 'from' ) + // Hql.g:26:8: 'from' { Match("from"); if (state.failed) return ; @@ -608,8 +608,8 @@ { int _type = FULL; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Steve\\Documents\\NHibernate\\nhibernate\\src\\NHibernate\\Hql\\Ast\\ANTLR\\Hql.g:27:6: ( 'full' ) - // C:\\Users\\Steve\\Documents\\NHibernate\\nhibernate\\src\\NHibernate\\Hql\\Ast\\ANTLR\\Hql.g:27:8: 'full' + // Hql.g:27:6: ( 'full' ) + // Hql.g:27:8: 'full' { Match("full"); if (state.failed) return ; @@ -632,8 +632,8 @@ { int _type = GROUP; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Steve\\Documents\\NHibernate\\nhibernate\\src\\NHibernate\\Hql\\Ast\\ANTLR\\Hql.g:28:7: ( 'group' ) - // C:\\Users\\Steve\\Documents\\NHibernate\\nhibernate\\src\\NHibernate\\Hql\\Ast\\ANTLR\\Hql.g:28:9: 'group' + // Hql.g:28:7: ( 'group' ) + // Hql.g:28:9: 'group' { Match("group"); if (state.failed) return ; @@ -656,8 +656,8 @@ { int _type = HAVING; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Steve\\Documents\\NHibernate\\nhibernate\\src\\NHibernate\\Hql\\Ast\\ANTLR\\Hql.g:29:8: ( 'having' ) - // C:\\Users\\Steve\\Documents\\NHibernate\\nhibernate\\src\\NHibernate\\Hql\\Ast\\ANTLR\\Hql.g:29:10: 'having' + // Hql.g:29:8: ( 'having' ) + // Hql.g:29:10: 'having' { Match("having"); if (state.failed) return ; @@ -680,8 +680,8 @@ { int _type = IN; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Steve\\Documents\\NHibernate\\nhibernate\\src\\NHibernate\\Hql\\Ast\\ANTLR\\Hql.g:30:4: ( 'in' ) - // C:\\Users\\Steve\\Documents\\NHibernate\\nhibernate\\src\\NHibernate\\Hql\\Ast\\ANTLR\\Hql.g:30:6: 'in' + // Hql.g:30:4: ( 'in' ) + // Hql.g:30:6: 'in' { Match("in"); if (state.failed) return ; @@ -704,8 +704,8 @@ { int _type = INDICES; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Steve\\Documents\\NHibernate\\nhibernate\\src\\NHibernate\\Hql\\Ast\\ANTLR\\Hql.g:31:9: ( 'indices' ) - // C:\\Users\\Steve\\Documents\\NHibernate\\nhibernate\\src\\NHibernate\\Hql\\Ast\\ANTLR\\Hql.g:31:11: 'indices' + // Hql.g:31:9: ( 'indices' ) + // Hql.g:31:11: 'indices' { Match("indices"); if (state.failed) return ; @@ -728,8 +728,8 @@ { int _type = INNER; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Steve\\Documents\\NHibernate\\nhibernate\\src\\NHibernate\\Hql\\Ast\\ANTLR\\Hql.g:32:7: ( 'inner' ) - // C:\\Users\\Steve\\Documents\\NHibernate\\nhibernate\\src\\NHibernate\\Hql\\Ast\\ANTLR\\Hql.g:32:9: 'inner' + // Hql.g:32:7: ( 'inner' ) + // Hql.g:32:9: 'inner' { Match("inner"); if (state.failed) return ; @@ -752,8 +752,8 @@ { int _type = INSERT; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Steve\\Documents\\NHibernate\\nhibernate\\src\\NHibernate\\Hql\\Ast\\ANTLR\\Hql.g:33:8: ( 'insert' ) - // C:\\Users\\Steve\\Documents\\NHibernate\\nhibernate\\src\\NHibernate\\Hql\\Ast\\ANTLR\\Hql.g:33:10: 'insert' + // Hql.g:33:8: ( 'insert' ) + // Hql.g:33:10: 'insert' { Match("insert"); if (state.failed) return ; @@ -776,8 +776,8 @@ { int _type = INTO; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Steve\\Documents\\NHibernate\\nhibernate\\src\\NHibernate\\Hql\\Ast\\ANTLR\\Hql.g:34:6: ( 'into' ) - // C:\\Users\\Steve\\Documents\\NHibernate\\nhibernate\\src\\NHibernate\\Hql\\Ast\\ANTLR\\Hql.g:34:8: 'into' + // Hql.g:34:6: ( 'into' ) + // Hql.g:34:8: 'into' { Match("into"); if (state.failed) return ; @@ -800,8 +800,8 @@ { int _type = IS; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Steve\\Documents\\NHibernate\\nhibernate\\src\\NHibernate\\Hql\\Ast\\ANTLR\\Hql.g:35:4: ( 'is' ) - // C:\\Users\\Steve\\Documents\\NHibernate\\nhibernate\\src\\NHibernate\\Hql\\Ast\\ANTLR\\Hql.g:35:6: 'is' + // Hql.g:35:4: ( 'is' ) + // Hql.g:35:6: 'is' { Match("is"); if (state.failed) return ; @@ -824,8 +824,8 @@ { int _type = JOIN; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Steve\\Documents\\NHibernate\\nhibernate\\src\\NHibernate\\Hql\\Ast\\ANTLR\\Hql.g:36:6: ( 'join' ) - // C:\\Users\\Steve\\Documents\\NHibernate\\nhibernate\\src\\NHibernate\\Hql\\Ast\\ANTLR\\Hql.g:36:8: 'join' + // Hql.g:36:6: ( 'join' ) + // Hql.g:36:8: 'join' { Match("join"); if (state.failed) return ; @@ -848,8 +848,8 @@ { int _type = LEFT; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Steve\\Documents\\NHibernate\\nhibernate\\src\\NHibernate\\Hql\\Ast\\ANTLR\\Hql.g:37:6: ( 'left' ) - // C:\\Users\\Steve\\Documents\\NHibernate\\nhibernate\\src\\NHibernate\\Hql\\Ast\\ANTLR\\Hql.g:37:8: 'left' + // Hql.g:37:6: ( 'left' ) + // Hql.g:37:8: 'left' { Match("left"); if (state.failed) return ; @@ -872,8 +872,8 @@ { int _type = LIKE; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Steve\\Documents\\NHibernate\\nhibernate\\src\\NHibernate\\Hql\\Ast\\ANTLR\\Hql.g:38:6: ( 'like' ) - // C:\\Users\\Steve\\Documents\\NHibernate\\nhibernate\\src\\NHibernate\\Hql\\Ast\\ANTLR\\Hql.g:38:8: 'like' + // Hql.g:38:6: ( 'like' ) + // Hql.g:38:8: 'like' { Match("like"); if (state.failed) return ; @@ -896,8 +896,8 @@ { int _type = MAX; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Steve\\Documents\\NHibernate\\nhibernate\\src\\NHibernate\\Hql\\Ast\\ANTLR\\Hql.g:39:5: ( 'max' ) - // C:\\Users\\Steve\\Documents\\NHibernate\\nhibernate\\src\\NHibernate\\Hql\\Ast\\ANTLR\\Hql.g:39:7: 'max' + // Hql.g:39:5: ( 'max' ) + // Hql.g:39:7: 'max' { Match("max"); if (state.failed) return ; @@ -920,8 +920,8 @@ { int _type = MIN; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Steve\\Documents\\NHibernate\\nhibernate\\src\\NHibernate\\Hql\\Ast\\ANTLR\\Hql.g:40:5: ( 'min' ) - // C:\\Users\\Steve\\Documents\\NHibernate\\nhibernate\\src\\NHibernate\\Hql\\Ast\\ANTLR\\Hql.g:40:7: 'min' + // Hql.g:40:5: ( 'min' ) + // Hql.g:40:7: 'min' { Match("min"); if (state.failed) return ; @@ -944,8 +944,8 @@ { int _type = NEW; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Steve\\Documents\\NHibernate\\nhibernate\\src\\NHibernate\\Hql\\Ast\\ANTLR\\Hql.g:41:5: ( 'new' ) - // C:\\Users\\Steve\\Documents\\NHibernate\\nhibernate\\src\\NHibernate\\Hql\\Ast\\ANTLR\\Hql.g:41:7: 'new' + // Hql.g:41:5: ( 'new' ) + // Hql.g:41:7: 'new' { Match("new"); if (state.failed) return ; @@ -968,8 +968,8 @@ { int _type = NOT; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Steve\\Documents\\NHibernate\\nhibernate\\src\\NHibernate\\Hql\\Ast\\ANTLR\\Hql.g:42:5: ( 'not' ) - // C:\\Users\\Steve\\Documents\\NHibernate\\nhibernate\\src\\NHibernate\\Hql\\Ast\\ANTLR\\Hql.g:42:7: 'not' + // Hql.g:42:5: ( 'not' ) + // Hql.g:42:7: 'not' { Match("not"); if (state.failed) return ; @@ -992,8 +992,8 @@ { int _type = NULL; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Steve\\Documents\\NHibernate\\nhibernate\\src\\NHibernate\\Hql\\Ast\\ANTLR\\Hql.g:43:6: ( 'null' ) - // C:\\Users\\Steve\\Documents\\NHibernate\\nhibernate\\src\\NHibernate\\Hql\\Ast\\ANTLR\\Hql.g:43:8: 'null' + // Hql.g:43:6: ( 'null' ) + // Hql.g:43:8: 'null' { Match("null"); if (state.failed) return ; @@ -1016,8 +1016,8 @@ { int _type = OR; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Steve\\Documents\\NHibernate\\nhibernate\\src\\NHibernate\\Hql\\Ast\\ANTLR\\Hql.g:44:4: ( 'or' ) - // C:\\Users\\Steve\\Documents\\NHibernate\\nhibernate\\src\\NHibernate\\Hql\\Ast\\ANTLR\\Hql.g:44:6: 'or' + // Hql.g:44:4: ( 'or' ) + // Hql.g:44:6: 'or' { Match("or"); if (state.failed) return ; @@ -1040,8 +1040,8 @@ { int _type = ORDER; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Steve\\Documents\\NHibernate\\nhibernate\\src\\NHibernate\\Hql\\Ast\\ANTLR\\Hql.g:45:7: ( 'order' ) - // C:\\Users\\Steve\\Documents\\NHibernate\\nhibernate\\src\\NHibernate\\Hql\\Ast\\ANTLR\\Hql.g:45:9: 'order' + // Hql.g:45:7: ( 'order' ) + // Hql.g:45:9: 'order' { Match("order"); if (state.failed) return ; @@ -1064,8 +1064,8 @@ { int _type = OUTER; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Steve\\Documents\\NHibernate\\nhibernate\\src\\NHibernate\\Hql\\Ast\\ANTLR\\Hql.g:46:7: ( 'outer' ) - // C:\\Users\\Steve\\Documents\\NHibernate\\nhibernate\\src\\NHibernate\\Hql\\Ast\\ANTLR\\Hql.g:46:9: 'outer' + // Hql.g:46:7: ( 'outer' ) + // Hql.g:46:9: 'outer' { Match("outer"); if (state.failed) return ; @@ -1088,8 +1088,8 @@ { int _type = PROPERTIES; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Steve\\Documents\\NHibernate\\nhibernate\\src\\NHibernate\\Hql\\Ast\\ANTLR\\Hql.g:47:12: ( 'properties' ) - // C:\\Users\\Steve\\Documents\\NHibernate\\nhibernate\\src\\NHibernate\\Hql\\Ast\\ANTLR\\Hql.g:47:14: 'properties' + // Hql.g:47:12: ( 'properties' ) + // Hql.g:47:14: 'properties' { Match("properties"); if (state.failed) return ; @@ -1112,8 +1112,8 @@ { int _type = RIGHT; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Steve\\Documents\\NHibernate\\nhibernate\\src\\NHibernate\\Hql\\Ast\\ANTLR\\Hql.g:48:7: ( 'right' ) - // C:\\Users\\Steve\\Documents\\NHibernate\\nhibernate\\src\\NHibernate\\Hql\\Ast\\ANTLR\\Hql.g:48:9: 'right' + // Hql.g:48:7: ( 'right' ) + // Hql.g:48:9: 'right' { Match("right"); if (state.failed) return ; @@ -1136,8 +1136,8 @@ { int _type = SELECT; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Steve\\Documents\\NHibernate\\nhibernate\\src\\NHibernate\\Hql\\Ast\\ANTLR\\Hql.g:49:8: ( 'select' ) - // C:\\Users\\Steve\\Documents\\NHibernate\\nhibernate\\src\\NHibernate\\Hql\\Ast\\ANTLR\\Hql.g:49:10: 'select' + // Hql.g:49:8: ( 'select' ) + // Hql.g:49:10: 'select' { Match("select"); if (state.failed) return ; @@ -1160,8 +1160,8 @@ { int _type = SET; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Steve\\Documents\\NHibernate\\nhibernate\\src\\NHibernate\\Hql\\Ast\\ANTLR\\Hql.g:50:5: ( 'set' ) - // C:\\Users\\Steve\\Documents\\NHibernate\\nhibernate\\src\\NHibernate\\Hql\\Ast\\ANTLR\\Hql.g:50:7: 'set' + // Hql.g:50:5: ( 'set' ) + // Hql.g:50:7: 'set' { Match("set"); if (state.failed) return ; @@ -1184,8 +1184,8 @@ { int _type = SOME; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Steve\\Documents\\NHibernate\\nhibernate\\src\\NHibernate\\Hql\\Ast\\ANTLR\\Hql.g:51:6: ( 'some' ) - // C:\\Users\\Steve\\Documents\\NHibernate\\nhibernate\\src\\NHibernate\\Hql\\Ast\\ANTLR\\Hql.g:51:8: 'some' + // Hql.g:51:6: ( 'some' ) + // Hql.g:51:8: 'some' { Match("some"); if (state.failed) return ; @@ -1208,8 +1208,8 @@ { int _type = SUM; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Steve\\Documents\\NHibernate\\nhibernate\\src\\NHibernate\\Hql\\Ast\\ANTLR\\Hql.g:52:5: ( 'sum' ) - // C:\\Users\\Steve\\Documents\\NHibernate\\nhibernate\\src\\NHibernate\\Hql\\Ast\\ANTLR\\Hql.g:52:7: 'sum' + // Hql.g:52:5: ( 'sum' ) + // Hql.g:52:7: 'sum' { Match("sum"); if (state.failed) return ; @@ -1232,8 +1232,8 @@ { int _type = TRUE; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Steve\\Documents\\NHibernate\\nhibernate\\src\\NHibernate\\Hql\\Ast\\ANTLR\\Hql.g:53:6: ( 'true' ) - // C:\\Users\\Steve\\Documents\\NHibernate\\nhibernate\\src\\NHibernate\\Hql\\Ast\\ANTLR\\Hql.g:53:8: 'true' + // Hql.g:53:6: ( 'true' ) + // Hql.g:53:8: 'true' { Match("true"); if (state.failed) return ; @@ -1256,8 +1256,8 @@ { int _type = UNION; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Steve\\Documents\\NHibernate\\nhibernate\\src\\NHibernate\\Hql\\Ast\\ANTLR\\Hql.g:54:7: ( 'union' ) - // C:\\Users\\Steve\\Documents\\NHibernate\\nhibernate\\src\\NHibernate\\Hql\\Ast\\ANTLR\\Hql.g:54:9: 'union' + // Hql.g:54:7: ( 'union' ) + // Hql.g:54:9: 'union' { Match("union"); if (state.failed) return ; @@ -1280,8 +1280,8 @@ { int _type = UPDATE; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Steve\\Documents\\NHibernate\\nhibernate\\src\\NHibernate\\Hql\\Ast\\ANTLR\\Hql.g:55:8: ( 'update' ) - // C:\\Users\\Steve\\Documents\\NHibernate\\nhibernate\\src\\NHibernate\\Hql\\Ast\\ANTLR\\Hql.g:55:10: 'update' + // Hql.g:55:8: ( 'update' ) + // Hql.g:55:10: 'update' { Match("update"); if (state.failed) return ; @@ -1304,8 +1304,8 @@ { int _type = VERSIONED; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Steve\\Documents\\NHibernate\\nhibernate\\src\\NHibernate\\Hql\\Ast\\ANTLR\\Hql.g:56:11: ( 'versioned' ) - // C:\\Users\\Steve\\Documents\\NHibernate\\nhibernate\\src\\NHibernate\\Hql\\Ast\\ANTLR\\Hql.g:56:13: 'versioned' + // Hql.g:56:11: ( 'versioned' ) + // Hql.g:56:13: 'versioned' { Match("versioned"); if (state.failed) return ; @@ -1328,8 +1328,8 @@ { int _type = WHERE; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Steve\\Documents\\NHibernate\\nhibernate\\src\\NHibernate\\Hql\\Ast\\ANTLR\\Hql.g:57:7: ( 'where' ) - // C:\\Users\\Steve\\Documents\\NHibernate\\nhibernate\\src\\NHibernate\\Hql\\Ast\\ANTLR\\Hql.g:57:9: 'where' + // Hql.g:57:7: ( 'where' ) + // Hql.g:57:9: 'where' { Match("where"); if (state.failed) return ; @@ -1352,8 +1352,8 @@ { int _type = LITERAL_by; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Steve\\Documents\\NHibernate\\nhibernate\\src\\NHibernate\\Hql\\Ast\\ANTLR\\Hql.g:58:12: ( 'by' ) - // C:\\Users\\Steve\\Documents\\NHibernate\\nhibernate\\src\\NHibernate\\Hql\\Ast\\ANTLR\\Hql.g:58:14: 'by' + // Hql.g:58:12: ( 'by' ) + // Hql.g:58:14: 'by' { Match("by"); if (state.failed) return ; @@ -1376,8 +1376,8 @@ { int _type = CASE; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Steve\\Documents\\NHibernate\\nhibernate\\src\\NHibernate\\Hql\\Ast\\ANTLR\\Hql.g:59:6: ( 'case' ) - // C:\\Users\\Steve\\Documents\\NHibernate\\nhibernate\\src\\NHibernate\\Hql\\Ast\\ANTLR\\Hql.g:59:8: 'case' + // Hql.g:59:6: ( 'case' ) + // Hql.g:59:8: 'case' { Match("case"); if (state.failed) return ; @@ -1400,8 +1400,8 @@ { int _type = END; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Steve\\Documents\\NHibernate\\nhibernate\\src\\NHibernate\\Hql\\Ast\\ANTLR\\Hql.g:60:5: ( 'end' ) - // C:\\Users\\Steve\\Documents\\NHibernate\\nhibernate\\src\\NHibernate\\Hql\\Ast\\ANTLR\\Hql.g:60:7: 'end' + // Hql.g:60:5: ( 'end' ) + // Hql.g:60:7: 'end' { Match("end"); if (state.failed) return ; @@ -1424,8 +1424,8 @@ { int _type = ELSE; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Steve\\Documents\\NHibernate\\nhibernate\\src\\NHibernate\\Hql\\Ast\\ANTLR\\Hql.g:61:6: ( 'else' ) - // C:\\Users\\Steve\\Documents\\NHibernate\\nhibernate\\src\\NHibernate\\Hql\\Ast\\ANTLR\\Hql.g:61:8: 'else' + // Hql.g:61:6: ( 'else' ) + // Hql.g:61:8: 'else' { Match("else"); if (state.failed) return ; @@ -1448,8 +1448,8 @@ { int _type = THEN; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Steve\\Documents\\NHibernate\\nhibernate\\src\\NHibernate\\Hql\\Ast\\ANTLR\\Hql.g:62:6: ( 'then' ) - // C:\\Users\\Steve\\Documents\\NHibernate\\nhibernate\\src\\NHibernate\\Hql\\Ast\\ANTLR\\Hql.g:62:8: 'then' + // Hql.g:62:6: ( 'then' ) + // Hql.g:62:8: 'then' { Match("then"); if (state.failed) return ; @@ -1472,8 +1472,8 @@ { int _type = WHEN; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Steve\\Documents\\NHibernate\\nhibernate\\src\\NHibernate\\Hql\\Ast\\ANTLR\\Hql.g:63:6: ( 'when' ) - // C:\\Users\\Steve\\Documents\\NHibernate\\nhibernate\\src\\NHibernate\\Hql\\Ast\\ANTLR\\Hql.g:63:8: 'when' + // Hql.g:63:6: ( 'when' ) + // Hql.g:63:8: 'when' { Match("when"); if (state.failed) return ; @@ -1496,8 +1496,8 @@ { int _type = ON; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Steve\\Documents\\NHibernate\\nhibernate\\src\\NHibernate\\Hql\\Ast\\ANTLR\\Hql.g:64:4: ( 'on' ) - // C:\\Users\\Steve\\Documents\\NHibernate\\nhibernate\\src\\NHibernate\\Hql\\Ast\\ANTLR\\Hql.g:64:6: 'on' + // Hql.g:64:4: ( 'on' ) + // Hql.g:64:6: 'on' { Match("on"); if (state.failed) return ; @@ -1520,8 +1520,8 @@ { int _type = WITH; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Steve\\Documents\\NHibernate\\nhibernate\\src\\NHibernate\\Hql\\Ast\\ANTLR\\Hql.g:65:6: ( 'with' ) - // C:\\Users\\Steve\\Documents\\NHibernate\\nhibernate\\src\\NHibernate\\Hql\\Ast\\ANTLR\\Hql.g:65:8: 'with' + // Hql.g:65:6: ( 'with' ) + // Hql.g:65:8: 'with' { Match("with"); if (state.failed) return ; @@ -1544,8 +1544,8 @@ { int _type = BOTH; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Steve\\Documents\\NHibernate\\nhibernate\\src\\NHibernate\\Hql\\Ast\\ANTLR\\Hql.g:66:6: ( 'both' ) - // C:\\Users\\Steve\\Documents\\NHibernate\\nhibernate\\src\\NHibernate\\Hql\\Ast\\ANTLR\\Hql.g:66:8: 'both' + // Hql.g:66:6: ( 'both' ) + // Hql.g:66:8: 'both' { Match("both"); if (state.failed) return ; @@ -1568,8 +1568,8 @@ { int _type = EMPTY; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Steve\\Documents\\NHibernate\\nhibernate\\src\\NHibernate\\Hql\\Ast\\ANTLR\\Hql.g:67:7: ( 'empty' ) - // C:\\Users\\Steve\\Documents\\NHibernate\\nhibernate\\src\\NHibernate\\Hql\\Ast\\ANTLR\\Hql.g:67:9: 'empty' + // Hql.g:67:7: ( 'empty' ) + // Hql.g:67:9: 'empty' { Match("empty"); if (state.failed) return ; @@ -1592,8 +1592,8 @@ { int _type = LEADING; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Steve\\Documents\\NHibernate\\nhibernate\\src\\NHibernate\\Hql\\Ast\\ANTLR\\Hql.g:68:9: ( 'leading' ) - // C:\\Users\\Steve\\Documents\\NHibernate\\nhibernate\\src\\NHibernate\\Hql\\Ast\\ANTLR\\Hql.g:68:11: 'leading' + // Hql.g:68:9: ( 'leading' ) + // Hql.g:68:11: 'leading' { Match("leading"); if (state.failed) return ; @@ -1616,8 +1616,8 @@ { int _type = MEMBER; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Steve\\Documents\\NHibernate\\nhibernate\\src\\NHibernate\\Hql\\Ast\\ANTLR\\Hql.g:69:8: ( 'member' ) - // C:\\Users\\Steve\\Documents\\NHibernate\\nhibernate\\src\\NHibernate\\Hql\\Ast\\ANTLR\\Hql.g:69:10: 'member' + // Hql.g:69:8: ( 'member' ) + // Hql.g:69:10: 'member' { Match("member"); if (state.failed) return ; @@ -1640,8 +1640,8 @@ { int _type = OBJECT; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Steve\\Documents\\NHibernate\\nhibernate\\src\\NHibernate\\Hql\\Ast\\ANTLR\\Hql.g:70:8: ( 'object' ) - // C:\\Users\\Steve\\Documents\\NHibernate\\nhibernate\\src\\NHibernate\\Hql\\Ast\\ANTLR\\Hql.g:70:10: 'object' + // Hql.g:70:8: ( 'object' ) + // Hql.g:70:10: 'object' { Match("object"); if (state.failed) return ; @@ -1664,8 +1664,8 @@ { int _type = OF; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Steve\\Documents\\NHibernate\\nhibernate\\src\\NHibernate\\Hql\\Ast\\ANTLR\\Hql.g:71:4: ( 'of' ) - // C:\\Users\\Steve\\Documents\\NHibernate\\nhibernate\\src\\NHibernate\\Hql\\Ast\\ANTLR\\Hql.g:71:6: 'of' + // Hql.g:71:4: ( 'of' ) + // Hql.g:71:6: 'of' { Match("of"); if (state.failed) return ; @@ -1688,8 +1688,8 @@ { int _type = TRAILING; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Steve\\Documents\\NHibernate\\nhibernate\\src\\NHibernate\\Hql\\Ast\\ANTLR\\Hql.g:72:10: ( 'trailing' ) - // C:\\Users\\Steve\\Documents\\NHibernate\\nhibernate\\src\\NHibernate\\Hql\\Ast\\ANTLR\\Hql.g:72:12: 'trailing' + // Hql.g:72:10: ( 'trailing' ) + // Hql.g:72:12: 'trailing' { Match("trailing"); if (state.failed) return ; @@ -1712,8 +1712,8 @@ { int _type = T__131; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Steve\\Documents\\NHibernate\\nhibernate\\src\\NHibernate\\Hql\\Ast\\ANTLR\\Hql.g:73:8: ( 'ascending' ) - // C:\\Users\\Steve\\Documents\\NHibernate\\nhibernate\\src\\NHibernate\\Hql\\Ast\\ANTLR\\Hql.g:73:10: 'ascending' + // Hql.g:73:8: ( 'ascending' ) + // Hql.g:73:10: 'ascending' { Match("ascending"); if (state.failed) return ; @@ -1736,8 +1736,8 @@ { int _type = T__132; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Steve\\Documents\\NHibernate\\nhibernate\\src\\NHibernate\\Hql\\Ast\\ANTLR\\Hql.g:74:8: ( 'descending' ) - // C:\\Users\\Steve\\Documents\\NHibernate\\nhibernate\\src\\NHibernate\\Hql\\Ast\\ANTLR\\Hql.g:74:10: 'descending' + // Hql.g:74:8: ( 'descending' ) + // Hql.g:74:10: 'descending' { Match("descending"); if (state.failed) return ; @@ -1760,8 +1760,8 @@ { int _type = EQ; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Steve\\Documents\\NHibernate\\nhibernate\\src\\NHibernate\\Hql\\Ast\\ANTLR\\Hql.g:672:3: ( '=' ) - // C:\\Users\\Steve\\Documents\\NHibernate\\nhibernate\\src\\NHibernate\\Hql\\Ast\\ANTLR\\Hql.g:672:5: '=' + // Hql.g:672:3: ( '=' ) + // Hql.g:672:5: '=' { Match('='); if (state.failed) return ; @@ -1783,8 +1783,8 @@ { int _type = LT; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Steve\\Documents\\NHibernate\\nhibernate\\src\\NHibernate\\Hql\\Ast\\ANTLR\\Hql.g:673:3: ( '<' ) - // C:\\Users\\Steve\\Documents\\NHibernate\\nhibernate\\src\\NHibernate\\Hql\\Ast\\ANTLR\\Hql.g:673:5: '<' + // Hql.g:673:3: ( '<' ) + // Hql.g:673:5: '<' { Match('<'); if (state.failed) return ; @@ -1806,8 +1806,8 @@ { int _type = GT; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Steve\\Documents\\NHibernate\\nhibernate\\src\\NHibernate\\Hql\\Ast\\ANTLR\\Hql.g:674:3: ( '>' ) - // C:\\Users\\Steve\\Documents\\NHibernate\\nhibernate\\src\\NHibernate\\Hql\\Ast\\ANTLR\\Hql.g:674:5: '>' + // Hql.g:674:3: ( '>' ) + // Hql.g:674:5: '>' { Match('>'); if (state.failed) return ; @@ -1829,8 +1829,8 @@ { int _type = SQL_NE; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Steve\\Documents\\NHibernate\\nhibernate\\src\\NHibernate\\Hql\\Ast\\ANTLR\\Hql.g:675:7: ( '<>' ) - // C:\\Users\\Steve\\Documents\\NHibernate\\nhibernate\\src\\NHibernate\\Hql\\Ast\\ANTLR\\Hql.g:675:9: '<>' + // Hql.g:675:7: ( '<>' ) + // Hql.g:675:9: '<>' { Match("<>"); if (state.failed) return ; @@ -1853,7 +1853,7 @@ { int _type = NE; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Steve\\Documents\\NHibernate\\nhibernate\\src\\NHibernate\\Hql\\Ast\\ANTLR\\Hql.g:676:3: ( '!=' | '^=' ) + // Hql.g:676:3: ( '!=' | '^=' ) int alt1 = 2; int LA1_0 = input.LA(1); @@ -1876,7 +1876,7 @@ switch (alt1) { case 1 : - // C:\\Users\\Steve\\Documents\\NHibernate\\nhibernate\\src\\NHibernate\\Hql\\Ast\\ANTLR\\Hql.g:676:5: '!=' + // Hql.g:676:5: '!=' { Match("!="); if (state.failed) return ; @@ -1884,7 +1884,7 @@ } break; case 2 : - // C:\\Users\\Steve\\Documents\\NHibernate\\nhibernate\\src\\NHibernate\\Hql\\Ast\\ANTLR\\Hql.g:676:12: '^=' + // Hql.g:676:12: '^=' { Match("^="); if (state.failed) return ; @@ -1909,8 +1909,8 @@ { int _type = LE; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Steve\\Documents\\NHibernate\\nhibernate\\src\\NHibernate\\Hql\\Ast\\ANTLR\\Hql.g:677:3: ( '<=' ) - // C:\\Users\\Steve\\Documents\\NHibernate\\nhibernate\\src\\NHibernate\\Hql\\Ast\\ANTLR\\Hql.g:677:5: '<=' + // Hql.g:677:3: ( '<=' ) + // Hql.g:677:5: '<=' { Match("<="); if (state.failed) return ; @@ -1933,8 +1933,8 @@ { int _type = GE; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Steve\\Documents\\NHibernate\\nhibernate\\src\\NHibernate\\Hql\\Ast\\ANTLR\\Hql.g:678:3: ( '>=' ) - // C:\\Users\\Steve\\Documents\\NHibernate\\nhibernate\\src\\NHibernate\\Hql\\Ast\\ANTLR\\Hql.g:678:5: '>=' + // Hql.g:678:3: ( '>=' ) + // Hql.g:678:5: '>=' { Match(">="); if (state.failed) return ; @@ -1957,8 +1957,8 @@ { int _type = BOR; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Steve\\Documents\\NHibernate\\nhibernate\\src\\NHibernate\\Hql\\Ast\\ANTLR\\Hql.g:680:5: ( '|' ) - // C:\\Users\\Steve\\Documents\\NHibernate\\nhibernate\\src\\NHibernate\\Hql\\Ast\\ANTLR\\Hql.g:680:8: '|' + // Hql.g:680:5: ( '|' ) + // Hql.g:680:8: '|' { Match('|'); if (state.failed) return ; @@ -1980,8 +1980,8 @@ { int _type = BXOR; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Steve\\Documents\\NHibernate\\nhibernate\\src\\NHibernate\\Hql\\Ast\\ANTLR\\Hql.g:681:6: ( '^' ) - // C:\\Users\\Steve\\Documents\\NHibernate\\nhibernate\\src\\NHibernate\\Hql\\Ast\\ANTLR\\Hql.g:681:8: '^' + // Hql.g:681:6: ( '^' ) + // Hql.g:681:8: '^' { Match('^'); if (state.failed) return ; @@ -2003,8 +2003,8 @@ { int _type = BAND; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Steve\\Documents\\NHibernate\\nhibernate\\src\\NHibernate\\Hql\\Ast\\ANTLR\\Hql.g:682:6: ( '&' ) - // C:\\Users\\Steve\\Documents\\NHibernate\\nhibernate\\src\\NHibernate\\Hql\\Ast\\ANTLR\\Hql.g:682:8: '&' + // Hql.g:682:6: ( '&' ) + // Hql.g:682:8: '&' { Match('&'); if (state.failed) return ; @@ -2026,8 +2026,8 @@ { int _type = BNOT; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Steve\\Documents\\NHibernate\\nhibernate\\src\\NHibernate\\Hql\\Ast\\ANTLR\\Hql.g:683:6: ( '!' ) - // C:\\Users\\Steve\\Documents\\NHibernate\\nhibernate\\src\\NHibernate\\Hql\\Ast\\ANTLR\\Hql.g:683:8: '!' + // Hql.g:683:6: ( '!' ) + // Hql.g:683:8: '!' { Match('!'); if (state.failed) return ; @@ -2049,8 +2049,8 @@ { int _type = COMMA; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Steve\\Documents\\NHibernate\\nhibernate\\src\\NHibernate\\Hql\\Ast\\ANTLR\\Hql.g:685:6: ( ',' ) - // C:\\Users\\Steve\\Documents\\NHibernate\\nhibernate\\src\\NHibernate\\Hql\\Ast\\ANTLR\\Hql.g:685:8: ',' + // Hql.g:685:6: ( ',' ) + // Hql.g:685:8: ',' { Match(','); if (state.failed) return ; @@ -2072,8 +2072,8 @@ { int _type = OPEN; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Steve\\Documents\\NHibernate\\nhibernate\\src\\NHibernate\\Hql\\Ast\\ANTLR\\Hql.g:687:5: ( '(' ) - // C:\\Users\\Steve\\Documents\\NHibernate\\nhibernate\\src\\NHibernate\\Hql\\Ast\\ANTLR\\Hql.g:687:7: '(' + // Hql.g:687:5: ( '(' ) + // Hql.g:687:7: '(' { Match('('); if (state.failed) return ; @@ -2095,8 +2095,8 @@ { int _type = CLOSE; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Steve\\Documents\\NHibernate\\nhibernate\\src\\NHibernate\\Hql\\Ast\\ANTLR\\Hql.g:688:6: ( ')' ) - // C:\\Users\\Steve\\Documents\\NHibernate\\nhibernate\\src\\NHibernate\\Hql\\Ast\\ANTLR\\Hql.g:688:8: ')' + // Hql.g:688:6: ( ')' ) + // Hql.g:688:8: ')' { Match(')'); if (state.failed) return ; @@ -2118,8 +2118,8 @@ { int _type = OPEN_BRACKET; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Steve\\Documents\\NHibernate\\nhibernate\\src\\NHibernate\\Hql\\Ast\\ANTLR\\Hql.g:689:13: ( '[' ) - // C:\\Users\\Steve\\Documents\\NHibernate\\nhibernate\\src\\NHibernate\\Hql\\Ast\\ANTLR\\Hql.g:689:15: '[' + // Hql.g:689:13: ( '[' ) + // Hql.g:689:15: '[' { Match('['); if (state.failed) return ; @@ -2141,8 +2141,8 @@ { int _type = CLOSE_BRACKET; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Steve\\Documents\\NHibernate\\nhibernate\\src\\NHibernate\\Hql\\Ast\\ANTLR\\Hql.g:690:14: ( ']' ) - // C:\\Users\\Steve\\Documents\\NHibernate\\nhibernate\\src\\NHibernate\\Hql\\Ast\\ANTLR\\Hql.g:690:16: ']' + // Hql.g:690:14: ( ']' ) + // Hql.g:690:16: ']' { Match(']'); if (state.failed) return ; @@ -2164,8 +2164,8 @@ { int _type = CONCAT; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Steve\\Documents\\NHibernate\\nhibernate\\src\\NHibernate\\Hql\\Ast\\ANTLR\\Hql.g:692:7: ( '||' ) - // C:\\Users\\Steve\\Documents\\NHibernate\\nhibernate\\src\\NHibernate\\Hql\\Ast\\ANTLR\\Hql.g:692:9: '||' + // Hql.g:692:7: ( '||' ) + // Hql.g:692:9: '||' { Match("||"); if (state.failed) return ; @@ -2188,8 +2188,8 @@ { int _type = PLUS; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Steve\\Documents\\NHibernate\\nhibernate\\src\\NHibernate\\Hql\\Ast\\ANTLR\\Hql.g:693:5: ( '+' ) - // C:\\Users\\Steve\\Documents\\NHibernate\\nhibernate\\src\\NHibernate\\Hql\\Ast\\ANTLR\\Hql.g:693:7: '+' + // Hql.g:693:5: ( '+' ) + // Hql.g:693:7: '+' { Match('+'); if (state.failed) return ; @@ -2211,8 +2211,8 @@ { int _type = MINUS; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Steve\\Documents\\NHibernate\\nhibernate\\src\\NHibernate\\Hql\\Ast\\ANTLR\\Hql.g:694:6: ( '-' ) - // C:\\Users\\Steve\\Documents\\NHibernate\\nhibernate\\src\\NHibernate\\Hql\\Ast\\ANTLR\\Hql.g:694:8: '-' + // Hql.g:694:6: ( '-' ) + // Hql.g:694:8: '-' { Match('-'); if (state.failed) return ; @@ -2234,8 +2234,8 @@ { int _type = STAR; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Steve\\Documents\\NHibernate\\nhibernate\\src\\NHibernate\\Hql\\Ast\\ANTLR\\Hql.g:695:5: ( '*' ) - // C:\\Users\\Steve\\Documents\\NHibernate\\nhibernate\\src\\NHibernate\\Hql\\Ast\\ANTLR\\Hql.g:695:7: '*' + // Hql.g:695:5: ( '*' ) + // Hql.g:695:7: '*' { Match('*'); if (state.failed) return ; @@ -2257,8 +2257,8 @@ { int _type = DIV; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Steve\\Documents\\NHibernate\\nhibernate\\src\\NHibernate\\Hql\\Ast\\ANTLR\\Hql.g:696:4: ( '/' ) - // C:\\Users\\Steve\\Documents\\NHibernate\\nhibernate\\src\\NHibernate\\Hql\\Ast\\ANTLR\\Hql.g:696:6: '/' + // Hql.g:696:4: ( '/' ) + // Hql.g:696:6: '/' { Match('/'); if (state.failed) return ; @@ -2280,8 +2280,8 @@ { int _type = COLON; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Steve\\Documents\\NHibernate\\nhibernate\\src\\NHibernate\\Hql\\Ast\\ANTLR\\Hql.g:697:6: ( ':' ) - // C:\\Users\\Steve\\Documents\\NHibernate\\nhibernate\\src\\NHibernate\\Hql\\Ast\\ANTLR\\Hql.g:697:8: ':' + // Hql.g:697:6: ( ':' ) + // Hql.g:697:8: ':' { Match(':'); if (state.failed) return ; @@ -2303,8 +2303,8 @@ { int _type = PARAM; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Steve\\Documents\\NHibernate\\nhibernate\\src\\NHibernate\\Hql\\Ast\\ANTLR\\Hql.g:698:6: ( '?' ) - // C:\\Users\\Steve\\Documents\\NHibernate\\nhibernate\\src\\NHibernate\\Hql\\Ast\\ANTLR\\Hql.g:698:8: '?' + // Hql.g:698:6: ( '?' ) + // Hql.g:698:8: '?' { Match('?'); if (state.failed) return ; @@ -2326,11 +2326,11 @@ { int _type = IDENT; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Steve\\Documents\\NHibernate\\nhibernate\\src\\NHibernate\\Hql\\Ast\\ANTLR\\Hql.g:701:2: ( ID_START_LETTER ( ID_LETTER )* ) - // C:\\Users\\Steve\\Documents\\NHibernate\\nhibernate\\src\\NHibernate\\Hql\\Ast\\ANTLR\\Hql.g:701:4: ID_START_LETTER ( ID_LETTER )* + // Hql.g:701:2: ( ID_START_LETTER ( ID_LETTER )* ) + // Hql.g:701:4: ID_START_LETTER ( ID_LETTER )* { mID_START_LETTER(); if (state.failed) return ; - // C:\\Users\\Steve\\Documents\\NHibernate\\nhibernate\\src\\NHibernate\\Hql\\Ast\\ANTLR\\Hql.g:701:20: ( ID_LETTER )* + // Hql.g:701:20: ( ID_LETTER )* do { int alt2 = 2; @@ -2345,7 +2345,7 @@ switch (alt2) { case 1 : - // C:\\Users\\Steve\\Documents\\NHibernate\\nhibernate\\src\\NHibernate\\Hql\\Ast\\ANTLR\\Hql.g:701:22: ID_LETTER + // Hql.g:701:22: ID_LETTER { mID_LETTER(); if (state.failed) return ; @@ -2377,8 +2377,8 @@ { try { - // C:\\Users\\Steve\\Documents\\NHibernate\\nhibernate\\src\\NHibernate\\Hql\\Ast\\ANTLR\\Hql.g:706:5: ( '_' | '$' | 'a' .. 'z' | 'A' .. 'Z' | '\\u0080' .. '\\ufffe' ) - // C:\\Users\\Steve\\Documents\\NHibernate\\nhibernate\\src\\NHibernate\\Hql\\Ast\\ANTLR\\Hql.g: + // Hql.g:706:5: ( '_' | '$' | 'a' .. 'z' | 'A' .. 'Z' | '\\u0080' .. '\\ufffe' ) + // Hql.g: { if ( input.LA(1) == '$' || (input.LA(1) >= 'A' && input.LA(1) <= 'Z') || input.LA(1) == '_' || (input.LA(1) >= 'a' && input.LA(1) <= 'z') || (input.LA(1) >= '\u0080' && input.LA(1) <= '\uFFFE') ) { @@ -2407,8 +2407,8 @@ { try { - // C:\\Users\\Steve\\Documents\\NHibernate\\nhibernate\\src\\NHibernate\\Hql\\Ast\\ANTLR\\Hql.g:715:5: ( ID_START_LETTER | '0' .. '9' ) - // C:\\Users\\Steve\\Documents\\NHibernate\\nhibernate\\src\\NHibernate\\Hql\\Ast\\ANTLR\\Hql.g: + // Hql.g:715:5: ( ID_START_LETTER | '0' .. '9' ) + // Hql.g: { if ( input.LA(1) == '$' || (input.LA(1) >= '0' && input.LA(1) <= '9') || (input.LA(1) >= 'A' && input.LA(1) <= 'Z') || input.LA(1) == '_' || (input.LA(1) >= 'a' && input.LA(1) <= 'z') || (input.LA(1) >= '\u0080' && input.LA(1) <= '\uFFFE') ) { @@ -2439,11 +2439,11 @@ { int _type = QUOTED_String; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Steve\\Documents\\NHibernate\\nhibernate\\src\\NHibernate\\Hql\\Ast\\ANTLR\\Hql.g:720:4: ( '\\'' ( ( ESCqs )=> ESCqs | ~ '\\'' )* '\\'' ) - // C:\\Users\\Steve\\Documents\\NHibernate\\nhibernate\\src\\NHibernate\\Hql\\Ast\\ANTLR\\Hql.g:720:6: '\\'' ( ( ESCqs )=> ESCqs | ~ '\\'' )* '\\'' + // Hql.g:720:4: ( '\\'' ( ( ESCqs )=> ESCqs | ~ '\\'' )* '\\'' ) + // Hql.g:720:6: '\\'' ( ( ESCqs )=> ESCqs | ~ '\\'' )* '\\'' { Match('\''); if (state.failed) return ; - // C:\\Users\\Steve\\Documents\\NHibernate\\nhibernate\\src\\NHibernate\\Hql\\Ast\\ANTLR\\Hql.g:720:11: ( ( ESCqs )=> ESCqs | ~ '\\'' )* + // Hql.g:720:11: ( ( ESCqs )=> ESCqs | ~ '\\'' )* do { int alt3 = 3; @@ -2469,14 +2469,14 @@ switch (alt3) { case 1 : - // C:\\Users\\Steve\\Documents\\NHibernate\\nhibernate\\src\\NHibernate\\Hql\\Ast\\ANTLR\\Hql.g:720:13: ( ESCqs )=> ESCqs + // Hql.g:720:13: ( ESCqs )=> ESCqs { mESCqs(); if (state.failed) return ; } break; case 2 : - // C:\\Users\\Steve\\Documents\\NHibernate\\nhibernate\\src\\NHibernate\\Hql\\Ast\\ANTLR\\Hql.g:720:31: ~ '\\'' + // Hql.g:720:31: ~ '\\'' { if ( (input.LA(1) >= '\u0000' && input.LA(1) <= '&') || (input.LA(1) >= '(' && input.LA(1) <= '\uFFFF') ) { @@ -2520,8 +2520,8 @@ { try { - // C:\\Users\\Steve\\Documents\\NHibernate\\nhibernate\\src\\NHibernate\\Hql\\Ast\\ANTLR\\Hql.g:725:2: ( '\\'' '\\'' ) - // C:\\Users\\Steve\\Documents\\NHibernate\\nhibernate\\src\\NHibernate\\Hql\\Ast\\ANTLR\\Hql.g:726:3: '\\'' '\\'' + // Hql.g:725:2: ( '\\'' '\\'' ) + // Hql.g:726:3: '\\'' '\\'' { Match('\''); if (state.failed) return ; Match('\''); if (state.failed) return ; @@ -2542,10 +2542,10 @@ { int _type = WS; int _channel = DEFAULT_TOKEN_CHANNEL; - // C:\\Users\\Steve\\Documents\\NHibernate\\nhibernate\\src\\NHibernate\\Hql\\Ast\\ANTLR\\Hql.g:729:5: ( ( ' ' | '\\t' | '\\r' '\\n' | '\\n' | '\\r' ) ) - // C:\\Users\\Steve\\Documents\\NHibernate\\nhibernate\\src\\NHibernate\\Hql\\Ast\\ANTLR\\Hql.g:729:9: ( ' ' | '\\t' | '\\r' '\\n' | '\\n' | '\\r' ) + // Hql.g:729:5: ( ( ' ' | '\\t' | '\\r' '\\n' | '\\n' | '\\r' ) ) + // Hql.g:729:9: ( ' ' | '\\t' | '\\r' '\\n' | '\\n' | '\\r' ) { - // C:\\Users\\Steve\\Documents\\NHibernate\\nhibernate\\src\\NHibernate\\Hql\\Ast\\ANTLR\\Hql.g:729:9: ( ' ' | '\\t' | '\\r' '\\n' | '\\n' | '\\r' ) + // Hql.g:729:9: ( ' ' | '\\t' | '\\r' '\\n' | '\\n' | '\\r' ) int alt4 = 5; switch ( input.LA(1) ) { @@ -2588,21 +2588,21 @@ switch (alt4) { case 1 : - // C:\\Users\\Steve\\Documents\\NHibernate\\nhibernate\\src\\NHibernate\\Hql\\Ast\\ANTLR\\Hql.g:729:13: ' ' + // Hql.g:729:13: ' ' { Match(' '); if (state.failed) return ; } break; case 2 : - // C:\\Users\\Steve\\Documents\\NHibernate\\nhibernate\\src\\NHibernate\\Hql\\Ast\\ANTLR\\Hql.g:730:7: '\\t' + // Hql.g:730:7: '\\t' { Match('\t'); if (state.failed) return ; } break; case 3 : - // C:\\Users\\Steve\\Documents\\NHibernate\\nhibernate\\src\\NHibernate\\Hql\\Ast\\ANTLR\\Hql.g:731:7: '\\r' '\\n' + // Hql.g:731:7: '\\r' '\\n' { Match('\r'); if (state.failed) return ; Match('\n'); if (state.failed) return ; @@ -2610,14 +2610,14 @@ } break; case 4 : - // C:\\Users\\Steve\\Documents\\NHibernate\\nhibernate\\src\\NHibernate\\Hql\\Ast\\ANTLR\\Hql.g:732:7: '\\n' + // Hql.g:732:7: '\\n' { Match('\n'); if (state.failed) return ; } break; case 5 : - // C:\\Users\\Steve\\Documents\\NHibernate\\nhibernate\\src\\NHibernate\\Hql\\Ast\\ANTLR\\Hql.g:733:7: '\\r' + // Hql.g:733:7: '\\r' { Match('\r'); if (state.failed) return ; @@ -2655,7 +2655,7 @@ IToken f4 = null; bool isDecimal=false; IToken t=null; - // C:\\Users\\Steve\\Documents\\NHibernate\\nhibernate\\src\\NHibernate\\Hql\\Ast\\ANTLR\\Hql.g:742:2: ( '.' ( ( '0' .. '9' )+ ( EXPONENT )? (f1= FLOAT_SUFFIX )? )? | ( '0' ( ( 'x' ) ( HEX_DIGIT )+ | ( '0' .. '7' )+ )? | ( '1' .. '9' ) ( '0' .. '9' )* ) ( ( 'l' ) | {...}? ( '.' ( '0' .. '9' )* ( EXPONENT )? (f2= FLOAT_SUFFIX )? | EXPONENT (f3= FLOAT_SUFFIX )? | f4= FLOAT_SUFFIX ) )? ) + // Hql.g:742:2: ( '.' ( ( '0' .. '9' )+ ( EXPONENT )? (f1= FLOAT_SUFFIX )? )? | ( '0' ( ( 'x' ) ( HEX_DIGIT )+ | ( '0' .. '7' )+ )? | ( '1' .. '9' ) ( '0' .. '9' )* ) ( ( 'l' ) | {...}? ( '.' ( '0' .. '9' )* ( EXPONENT )? (f2= FLOAT_SUFFIX )? | EXPONENT (f3= FLOAT_SUFFIX )? | f4= FLOAT_SUFFIX ) )? ) int alt20 = 2; int LA20_0 = input.LA(1); @@ -2678,14 +2678,14 @@ switch (alt20) { case 1 : - // C:\\Users\\Steve\\Documents\\NHibernate\\nhibernate\\src\\NHibernate\\Hql\\Ast\\ANTLR\\Hql.g:742:6: '.' ( ( '0' .. '9' )+ ( EXPONENT )? (f1= FLOAT_SUFFIX )? )? + // Hql.g:742:6: '.' ( ( '0' .. '9' )+ ( EXPONENT )? (f1= FLOAT_SUFFIX )? )? { Match('.'); if (state.failed) return ; if ( (state.backtracking==0) ) { _type = DOT; } - // C:\\Users\\Steve\\Documents\\NHibernate\\nhibernate\\src\\NHibernate\\Hql\\Ast\\ANTLR\\Hql.g:743:4: ( ( '0' .. '9' )+ ( EXPONENT )? (f1= FLOAT_SUFFIX )? )? + // Hql.g:743:4: ( ( '0' .. '9' )+ ( EXPONENT )? (f1= FLOAT_SUFFIX )? )? int alt8 = 2; int LA8_0 = input.LA(1); @@ -2696,9 +2696,9 @@ switch (alt8) { case 1 : - // C:\\Users\\Steve\\Documents\\NHibernate\\nhibernate\\src\\NHibernate\\Hql\\Ast\\ANTLR\\Hql.g:743:6: ( '0' .. '9' )+ ( EXPONENT )? (f1= FLOAT_SUFFIX )? + // Hql.g:743:6: ( '0' .. '9' )+ ( EXPONENT )? (f1= FLOAT_SUFFIX )? { - // C:\\Users\\Steve\\Documents\\NHibernate\\nhibernate\\src\\NHibernate\\Hql\\Ast\\ANTLR\\Hql.g:743:6: ( '0' .. '9' )+ + // Hql.g:743:6: ( '0' .. '9' )+ int cnt5 = 0; do { @@ -2714,7 +2714,7 @@ switch (alt5) { case 1 : - // C:\\Users\\Steve\\Documents\\NHibernate\\nhibernate\\src\\NHibernate\\Hql\\Ast\\ANTLR\\Hql.g:743:7: '0' .. '9' + // Hql.g:743:7: '0' .. '9' { MatchRange('0','9'); if (state.failed) return ; @@ -2734,7 +2734,7 @@ loop5: ; // Stops C# compiler whining that label 'loop5' has no statements - // C:\\Users\\Steve\\Documents\\NHibernate\\nhibernate\\src\\NHibernate\\Hql\\Ast\\ANTLR\\Hql.g:743:18: ( EXPONENT )? + // Hql.g:743:18: ( EXPONENT )? int alt6 = 2; int LA6_0 = input.LA(1); @@ -2745,7 +2745,7 @@ ... [truncated message content] |
From: <pa...@us...> - 2011-01-13 01:12:41
|
Revision: 5344 http://nhibernate.svn.sourceforge.net/nhibernate/?rev=5344&view=rev Author: patearl Date: 2011-01-13 01:12:33 +0000 (Thu, 13 Jan 2011) Log Message: ----------- Use loop to compare binary arrays rather than enumerators for roughly 5x performance increase. Modified Paths: -------------- trunk/nhibernate/src/NHibernate/Type/AbstractBinaryType.cs trunk/nhibernate/src/NHibernate/Util/ArrayHelper.cs Modified: trunk/nhibernate/src/NHibernate/Type/AbstractBinaryType.cs =================================================================== --- trunk/nhibernate/src/NHibernate/Type/AbstractBinaryType.cs 2010-12-31 03:23:40 UTC (rev 5343) +++ trunk/nhibernate/src/NHibernate/Type/AbstractBinaryType.cs 2011-01-13 01:12:33 UTC (rev 5344) @@ -46,7 +46,7 @@ if (x == null || y == null) return false; - return CollectionHelper.CollectionEquals<byte>(ToInternalFormat(x), ToInternalFormat(y)); + return ArrayHelper.ArrayEquals(ToInternalFormat(x), ToInternalFormat(y)); } public IComparer Comparator Modified: trunk/nhibernate/src/NHibernate/Util/ArrayHelper.cs =================================================================== --- trunk/nhibernate/src/NHibernate/Util/ArrayHelper.cs 2010-12-31 03:23:40 UTC (rev 5343) +++ trunk/nhibernate/src/NHibernate/Util/ArrayHelper.cs 2011-01-13 01:12:33 UTC (rev 5344) @@ -378,5 +378,25 @@ return true; } + + public static bool ArrayEquals(byte[] a, byte[] b) + { + if (a.Length != b.Length) + { + return false; + } + + int i = 0; + int len = a.Length; + while(i < len) + { + if (a[i] != b[i]) + { + return false; + } + i++; + } + return true; + } } } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <jul...@us...> - 2010-12-31 03:23:46
|
Revision: 5343 http://nhibernate.svn.sourceforge.net/nhibernate/?rev=5343&view=rev Author: julian-maughan Date: 2010-12-31 03:23:40 +0000 (Fri, 31 Dec 2010) Log Message: ----------- Port of Hibernate <properties> documentation, by Roger Kratz (ref. NH-2478) Modified Paths: -------------- trunk/nhibernate/doc/reference/modules/basic_mapping.xml Modified: trunk/nhibernate/doc/reference/modules/basic_mapping.xml =================================================================== --- trunk/nhibernate/doc/reference/modules/basic_mapping.xml 2010-12-31 03:20:16 UTC (rev 5342) +++ trunk/nhibernate/doc/reference/modules/basic_mapping.xml 2010-12-31 03:23:40 UTC (rev 5343) @@ -225,7 +225,7 @@ <callout arearefs="class2"> <para> <literal>table</literal>(optional - defaults to the unqualified class name): The name of its database table. - </para> + </para> </callout> <callout arearefs="class3"> <para> @@ -1739,8 +1739,7 @@ insert="true|false" upate="true|false" access="field|property|nosetter|ClassName" - optimistic-lock="true|false" -> + optimistic-lock="true|false"> <property ...../> <many-to-one .... /> @@ -1805,6 +1804,113 @@ </sect2> + <sect2 id="mapping-declaration-properties"> + <title>properties</title> + + <para> + The <literal><properties></literal> element allows the + definition of a named, logical grouping of the properties of a class. + The most important use of the construct is that it allows a combination + of properties to be the target of a <literal>property-ref</literal>. It + is also a convenient way to define a multi-column unique constraint. For + example: + </para> + + <programlistingco> + <areaspec> + <area coords="2 60" id="properties1" /> + <area coords="3 60" id="properties2" /> + <area coords="4 60" id="properties3" /> + <area coords="5 60" id="properties4" /> + <area coords="6 60" id="properties5" /> + </areaspec> + + <programlisting><![CDATA[<properties + name="logicalName" + insert="true|false" + update="true|false" + optimistic-lock="true|false" + unique="true|false"> + + <property .../> + <many-to-one .../> + ........ +</properties>]]></programlisting> + + <calloutlist> + <callout arearefs="properties1"> + <para> + <literal>name</literal>: the logical name of the grouping. + It is <emphasis>not</emphasis> an actual property name. + </para> + </callout> + + <callout arearefs="properties2"> + <para> + <literal>insert</literal>: do the mapped columns appear in + SQL <literal>INSERTs</literal>? + </para> + </callout> + + <callout arearefs="properties3"> + <para> + <literal>update</literal>: do the mapped columns appear in + SQL <literal>UPDATEs</literal>? + </para> + </callout> + + <callout arearefs="properties4"> + <para> + <literal>optimistic-lock</literal> (optional - defaults to + <literal>true</literal>): specifies that updates to these + properties either do or do not require acquisition of the + optimistic lock. It determines if a version increment should occur + when these properties are dirty. + </para> + </callout> + + <callout arearefs="properties5"> + <para> + <literal>unique</literal> (optional - defaults to + <literal>false</literal>): specifies that a unique constraint + exists upon all mapped columns of the component. + </para> + </callout> + </calloutlist> + </programlistingco> + + <para> + For example, if we have the following + <literal><![CDATA[<properties>]]></literal> mapping: + </para> + + <programlisting role="XML"><![CDATA[<class name="Person"> + <id name="personNumber" /> + <properties name="name" unique="true" update="false"> + <property name="firstName" /> + <property name="lastName" /> + <property name="initial" /> + </properties> +</class>]]></programlisting> + + <para> + You might have some legacy data association that refers to this + unique key of the <literal>Person</literal> table, instead of to the + primary key: + </para> + + <programlisting role="XML"><![CDATA[<many-to-one name="owner" class="Person" property-ref="name"> + <column name="firstName" /> + <column name="lastName" /> + <column name="initial" /> +</many-to-one>]]></programlisting> + + <para> + The use of this outside the context of mapping legacy data is not + recommended. + </para> + </sect2> + <sect2 id="mapping-declaration-subclass"> <title>subclass</title> @@ -1830,6 +1936,7 @@ dynamic-insert="true|false"> <property .... /> + <properties .... /> ..... </subclass>]]></programlisting> <calloutlist> @@ -1899,6 +2006,7 @@ <key .... > <property .... /> + <properties .... /> ..... </joined-subclass>]]></programlisting> <calloutlist> @@ -2003,6 +2111,7 @@ node="element-name"> <property .... /> + <properties .... /> ..... </union-subclass>]]></programlisting> <calloutlist> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <jul...@us...> - 2010-12-31 03:20:23
|
Revision: 5342 http://nhibernate.svn.sourceforge.net/nhibernate/?rev=5342&view=rev Author: julian-maughan Date: 2010-12-31 03:20:16 +0000 (Fri, 31 Dec 2010) Log Message: ----------- Mapping schema correction: added missing 'properties' element to 'subclass' element (ref. NH-2474). Modified Paths: -------------- trunk/nhibernate/src/NHibernate/Cfg/MappingSchema/Hbm.generated.cs trunk/nhibernate/src/NHibernate/nhibernate-mapping.xsd Modified: trunk/nhibernate/src/NHibernate/Cfg/MappingSchema/Hbm.generated.cs =================================================================== --- trunk/nhibernate/src/NHibernate/Cfg/MappingSchema/Hbm.generated.cs 2010-12-27 14:12:24 UTC (rev 5341) +++ trunk/nhibernate/src/NHibernate/Cfg/MappingSchema/Hbm.generated.cs 2010-12-31 03:20:16 UTC (rev 5342) @@ -2,7 +2,7 @@ /// <remarks/> - [System.CodeDom.Compiler.GeneratedCodeAttribute("HbmXsd", "3.0.0.1001")] + [System.CodeDom.Compiler.GeneratedCodeAttribute("HbmXsd", "3.0.0.4000")] [System.SerializableAttribute()] [System.Diagnostics.DebuggerStepThroughAttribute()] [System.ComponentModel.DesignerCategoryAttribute("code")] @@ -83,7 +83,7 @@ } /// <remarks/> - [System.CodeDom.Compiler.GeneratedCodeAttribute("HbmXsd", "3.0.0.1001")] + [System.CodeDom.Compiler.GeneratedCodeAttribute("HbmXsd", "3.0.0.4000")] [System.SerializableAttribute()] [System.Diagnostics.DebuggerStepThroughAttribute()] [System.ComponentModel.DesignerCategoryAttribute("code")] @@ -110,7 +110,7 @@ } /// <remarks/> - [System.CodeDom.Compiler.GeneratedCodeAttribute("HbmXsd", "3.0.0.1001")] + [System.CodeDom.Compiler.GeneratedCodeAttribute("HbmXsd", "3.0.0.4000")] [System.SerializableAttribute()] [System.Diagnostics.DebuggerStepThroughAttribute()] [System.ComponentModel.DesignerCategoryAttribute("code")] @@ -128,7 +128,7 @@ } /// <remarks/> - [System.CodeDom.Compiler.GeneratedCodeAttribute("HbmXsd", "3.0.0.1001")] + [System.CodeDom.Compiler.GeneratedCodeAttribute("HbmXsd", "3.0.0.4000")] [System.SerializableAttribute()] [System.Diagnostics.DebuggerStepThroughAttribute()] [System.ComponentModel.DesignerCategoryAttribute("code")] @@ -193,7 +193,7 @@ } /// <remarks/> - [System.CodeDom.Compiler.GeneratedCodeAttribute("HbmXsd", "3.0.0.1001")] + [System.CodeDom.Compiler.GeneratedCodeAttribute("HbmXsd", "3.0.0.4000")] [System.SerializableAttribute()] [System.Diagnostics.DebuggerStepThroughAttribute()] [System.ComponentModel.DesignerCategoryAttribute("code")] @@ -207,7 +207,7 @@ } /// <remarks/> - [System.CodeDom.Compiler.GeneratedCodeAttribute("HbmXsd", "3.0.0.1001")] + [System.CodeDom.Compiler.GeneratedCodeAttribute("HbmXsd", "3.0.0.4000")] [System.SerializableAttribute()] [System.Diagnostics.DebuggerStepThroughAttribute()] [System.ComponentModel.DesignerCategoryAttribute("code")] @@ -372,7 +372,7 @@ } /// <remarks/> - [System.CodeDom.Compiler.GeneratedCodeAttribute("HbmXsd", "3.0.0.1001")] + [System.CodeDom.Compiler.GeneratedCodeAttribute("HbmXsd", "3.0.0.4000")] [System.SerializableAttribute()] [System.Diagnostics.DebuggerStepThroughAttribute()] [System.ComponentModel.DesignerCategoryAttribute("code")] @@ -386,7 +386,7 @@ } /// <remarks/> - [System.CodeDom.Compiler.GeneratedCodeAttribute("HbmXsd", "3.0.0.1001")] + [System.CodeDom.Compiler.GeneratedCodeAttribute("HbmXsd", "3.0.0.4000")] [System.SerializableAttribute()] [System.Diagnostics.DebuggerStepThroughAttribute()] [System.ComponentModel.DesignerCategoryAttribute("code")] @@ -413,7 +413,7 @@ } /// <remarks/> - [System.CodeDom.Compiler.GeneratedCodeAttribute("HbmXsd", "3.0.0.1001")] + [System.CodeDom.Compiler.GeneratedCodeAttribute("HbmXsd", "3.0.0.4000")] [System.SerializableAttribute()] [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="urn:nhibernate-mapping-2.2")] public enum HbmCacheUsage { @@ -436,7 +436,7 @@ } /// <remarks/> - [System.CodeDom.Compiler.GeneratedCodeAttribute("HbmXsd", "3.0.0.1001")] + [System.CodeDom.Compiler.GeneratedCodeAttribute("HbmXsd", "3.0.0.4000")] [System.SerializableAttribute()] [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="urn:nhibernate-mapping-2.2")] public enum HbmCacheInclude { @@ -451,7 +451,7 @@ } /// <remarks/> - [System.CodeDom.Compiler.GeneratedCodeAttribute("HbmXsd", "3.0.0.1001")] + [System.CodeDom.Compiler.GeneratedCodeAttribute("HbmXsd", "3.0.0.4000")] [System.SerializableAttribute()] [System.Diagnostics.DebuggerStepThroughAttribute()] [System.ComponentModel.DesignerCategoryAttribute("code")] @@ -465,7 +465,7 @@ } /// <remarks/> - [System.CodeDom.Compiler.GeneratedCodeAttribute("HbmXsd", "3.0.0.1001")] + [System.CodeDom.Compiler.GeneratedCodeAttribute("HbmXsd", "3.0.0.4000")] [System.SerializableAttribute()] [System.Diagnostics.DebuggerStepThroughAttribute()] [System.ComponentModel.DesignerCategoryAttribute("code")] @@ -524,7 +524,7 @@ } /// <remarks/> - [System.CodeDom.Compiler.GeneratedCodeAttribute("HbmXsd", "3.0.0.1001")] + [System.CodeDom.Compiler.GeneratedCodeAttribute("HbmXsd", "3.0.0.4000")] [System.SerializableAttribute()] [System.Xml.Serialization.XmlTypeAttribute(Namespace="urn:nhibernate-mapping-2.2")] public enum HbmOndelete { @@ -539,7 +539,7 @@ } /// <remarks/> - [System.CodeDom.Compiler.GeneratedCodeAttribute("HbmXsd", "3.0.0.1001")] + [System.CodeDom.Compiler.GeneratedCodeAttribute("HbmXsd", "3.0.0.4000")] [System.SerializableAttribute()] [System.Diagnostics.DebuggerStepThroughAttribute()] [System.ComponentModel.DesignerCategoryAttribute("code")] @@ -565,7 +565,7 @@ } /// <remarks/> - [System.CodeDom.Compiler.GeneratedCodeAttribute("HbmXsd", "3.0.0.1001")] + [System.CodeDom.Compiler.GeneratedCodeAttribute("HbmXsd", "3.0.0.4000")] [System.SerializableAttribute()] [System.Diagnostics.DebuggerStepThroughAttribute()] [System.ComponentModel.DesignerCategoryAttribute("code")] @@ -586,7 +586,7 @@ } /// <remarks/> - [System.CodeDom.Compiler.GeneratedCodeAttribute("HbmXsd", "3.0.0.1001")] + [System.CodeDom.Compiler.GeneratedCodeAttribute("HbmXsd", "3.0.0.4000")] [System.SerializableAttribute()] [System.Diagnostics.DebuggerStepThroughAttribute()] [System.ComponentModel.DesignerCategoryAttribute("code")] @@ -618,7 +618,7 @@ } /// <remarks/> - [System.CodeDom.Compiler.GeneratedCodeAttribute("HbmXsd", "3.0.0.1001")] + [System.CodeDom.Compiler.GeneratedCodeAttribute("HbmXsd", "3.0.0.4000")] [System.SerializableAttribute()] [System.Diagnostics.DebuggerStepThroughAttribute()] [System.ComponentModel.DesignerCategoryAttribute("code")] @@ -636,7 +636,7 @@ } /// <remarks/> - [System.CodeDom.Compiler.GeneratedCodeAttribute("HbmXsd", "3.0.0.1001")] + [System.CodeDom.Compiler.GeneratedCodeAttribute("HbmXsd", "3.0.0.4000")] [System.SerializableAttribute()] [System.Diagnostics.DebuggerStepThroughAttribute()] [System.ComponentModel.DesignerCategoryAttribute("code")] @@ -774,7 +774,7 @@ } /// <remarks/> - [System.CodeDom.Compiler.GeneratedCodeAttribute("HbmXsd", "3.0.0.1001")] + [System.CodeDom.Compiler.GeneratedCodeAttribute("HbmXsd", "3.0.0.4000")] [System.SerializableAttribute()] [System.Diagnostics.DebuggerStepThroughAttribute()] [System.ComponentModel.DesignerCategoryAttribute("code")] @@ -788,7 +788,7 @@ } /// <remarks/> - [System.CodeDom.Compiler.GeneratedCodeAttribute("HbmXsd", "3.0.0.1001")] + [System.CodeDom.Compiler.GeneratedCodeAttribute("HbmXsd", "3.0.0.4000")] [System.SerializableAttribute()] [System.Xml.Serialization.XmlTypeAttribute(Namespace="urn:nhibernate-mapping-2.2")] public enum HbmOuterJoinStrategy { @@ -807,7 +807,7 @@ } /// <remarks/> - [System.CodeDom.Compiler.GeneratedCodeAttribute("HbmXsd", "3.0.0.1001")] + [System.CodeDom.Compiler.GeneratedCodeAttribute("HbmXsd", "3.0.0.4000")] [System.SerializableAttribute()] [System.Xml.Serialization.XmlTypeAttribute(Namespace="urn:nhibernate-mapping-2.2")] public enum HbmFetchMode { @@ -822,7 +822,7 @@ } /// <remarks/> - [System.CodeDom.Compiler.GeneratedCodeAttribute("HbmXsd", "3.0.0.1001")] + [System.CodeDom.Compiler.GeneratedCodeAttribute("HbmXsd", "3.0.0.4000")] [System.SerializableAttribute()] [System.Xml.Serialization.XmlTypeAttribute(Namespace="urn:nhibernate-mapping-2.2")] public enum HbmLaziness { @@ -841,7 +841,7 @@ } /// <remarks/> - [System.CodeDom.Compiler.GeneratedCodeAttribute("HbmXsd", "3.0.0.1001")] + [System.CodeDom.Compiler.GeneratedCodeAttribute("HbmXsd", "3.0.0.4000")] [System.SerializableAttribute()] [System.Xml.Serialization.XmlTypeAttribute(Namespace="urn:nhibernate-mapping-2.2")] public enum HbmNotFoundMode { @@ -856,7 +856,7 @@ } /// <remarks/> - [System.CodeDom.Compiler.GeneratedCodeAttribute("HbmXsd", "3.0.0.1001")] + [System.CodeDom.Compiler.GeneratedCodeAttribute("HbmXsd", "3.0.0.4000")] [System.SerializableAttribute()] [System.Diagnostics.DebuggerStepThroughAttribute()] [System.ComponentModel.DesignerCategoryAttribute("code")] @@ -892,7 +892,7 @@ } /// <remarks/> - [System.CodeDom.Compiler.GeneratedCodeAttribute("HbmXsd", "3.0.0.1001")] + [System.CodeDom.Compiler.GeneratedCodeAttribute("HbmXsd", "3.0.0.4000")] [System.SerializableAttribute()] [System.Diagnostics.DebuggerStepThroughAttribute()] [System.ComponentModel.DesignerCategoryAttribute("code")] @@ -1009,7 +1009,7 @@ } /// <remarks/> - [System.CodeDom.Compiler.GeneratedCodeAttribute("HbmXsd", "3.0.0.1001")] + [System.CodeDom.Compiler.GeneratedCodeAttribute("HbmXsd", "3.0.0.4000")] [System.SerializableAttribute()] [System.Diagnostics.DebuggerStepThroughAttribute()] [System.ComponentModel.DesignerCategoryAttribute("code")] @@ -1027,7 +1027,7 @@ } /// <remarks/> - [System.CodeDom.Compiler.GeneratedCodeAttribute("HbmXsd", "3.0.0.1001")] + [System.CodeDom.Compiler.GeneratedCodeAttribute("HbmXsd", "3.0.0.4000")] [System.SerializableAttribute()] [System.Diagnostics.DebuggerStepThroughAttribute()] [System.ComponentModel.DesignerCategoryAttribute("code")] @@ -1045,7 +1045,7 @@ } /// <remarks/> - [System.CodeDom.Compiler.GeneratedCodeAttribute("HbmXsd", "3.0.0.1001")] + [System.CodeDom.Compiler.GeneratedCodeAttribute("HbmXsd", "3.0.0.4000")] [System.SerializableAttribute()] [System.Xml.Serialization.XmlTypeAttribute(Namespace="urn:nhibernate-mapping-2.2")] public enum HbmPropertyGeneration { @@ -1064,7 +1064,7 @@ } /// <remarks/> - [System.CodeDom.Compiler.GeneratedCodeAttribute("HbmXsd", "3.0.0.1001")] + [System.CodeDom.Compiler.GeneratedCodeAttribute("HbmXsd", "3.0.0.4000")] [System.SerializableAttribute()] [System.Diagnostics.DebuggerStepThroughAttribute()] [System.ComponentModel.DesignerCategoryAttribute("code")] @@ -1125,7 +1125,7 @@ } /// <remarks/> - [System.CodeDom.Compiler.GeneratedCodeAttribute("HbmXsd", "3.0.0.1001")] + [System.CodeDom.Compiler.GeneratedCodeAttribute("HbmXsd", "3.0.0.4000")] [System.SerializableAttribute()] [System.Diagnostics.DebuggerStepThroughAttribute()] [System.ComponentModel.DesignerCategoryAttribute("code")] @@ -1155,7 +1155,7 @@ } /// <remarks/> - [System.CodeDom.Compiler.GeneratedCodeAttribute("HbmXsd", "3.0.0.1001")] + [System.CodeDom.Compiler.GeneratedCodeAttribute("HbmXsd", "3.0.0.4000")] [System.SerializableAttribute()] [System.Diagnostics.DebuggerStepThroughAttribute()] [System.ComponentModel.DesignerCategoryAttribute("code")] @@ -1259,7 +1259,7 @@ } /// <remarks/> - [System.CodeDom.Compiler.GeneratedCodeAttribute("HbmXsd", "3.0.0.1001")] + [System.CodeDom.Compiler.GeneratedCodeAttribute("HbmXsd", "3.0.0.4000")] [System.SerializableAttribute()] [System.Diagnostics.DebuggerStepThroughAttribute()] [System.ComponentModel.DesignerCategoryAttribute("code")] @@ -1281,7 +1281,7 @@ } /// <remarks/> - [System.CodeDom.Compiler.GeneratedCodeAttribute("HbmXsd", "3.0.0.1001")] + [System.CodeDom.Compiler.GeneratedCodeAttribute("HbmXsd", "3.0.0.4000")] [System.SerializableAttribute()] [System.Xml.Serialization.XmlTypeAttribute(Namespace="urn:nhibernate-mapping-2.2")] public enum HbmRestrictedLaziness { @@ -1296,7 +1296,7 @@ } /// <remarks/> - [System.CodeDom.Compiler.GeneratedCodeAttribute("HbmXsd", "3.0.0.1001")] + [System.CodeDom.Compiler.GeneratedCodeAttribute("HbmXsd", "3.0.0.4000")] [System.SerializableAttribute()] [System.Diagnostics.DebuggerStepThroughAttribute()] [System.ComponentModel.DesignerCategoryAttribute("code")] @@ -1333,7 +1333,7 @@ } /// <remarks/> - [System.CodeDom.Compiler.GeneratedCodeAttribute("HbmXsd", "3.0.0.1001")] + [System.CodeDom.Compiler.GeneratedCodeAttribute("HbmXsd", "3.0.0.4000")] [System.SerializableAttribute()] [System.Diagnostics.DebuggerStepThroughAttribute()] [System.ComponentModel.DesignerCategoryAttribute("code")] @@ -1347,7 +1347,7 @@ } /// <remarks/> - [System.CodeDom.Compiler.GeneratedCodeAttribute("HbmXsd", "3.0.0.1001")] + [System.CodeDom.Compiler.GeneratedCodeAttribute("HbmXsd", "3.0.0.4000")] [System.SerializableAttribute()] [System.Diagnostics.DebuggerStepThroughAttribute()] [System.ComponentModel.DesignerCategoryAttribute("code")] @@ -1377,7 +1377,7 @@ } /// <remarks/> - [System.CodeDom.Compiler.GeneratedCodeAttribute("HbmXsd", "3.0.0.1001")] + [System.CodeDom.Compiler.GeneratedCodeAttribute("HbmXsd", "3.0.0.4000")] [System.SerializableAttribute()] [System.Xml.Serialization.XmlTypeAttribute(Namespace="urn:nhibernate-mapping-2.2")] public enum HbmCustomSQLCheck { @@ -1396,7 +1396,7 @@ } /// <remarks/> - [System.CodeDom.Compiler.GeneratedCodeAttribute("HbmXsd", "3.0.0.1001")] + [System.CodeDom.Compiler.GeneratedCodeAttribute("HbmXsd", "3.0.0.4000")] [System.SerializableAttribute()] [System.Xml.Serialization.XmlTypeAttribute(Namespace="urn:nhibernate-mapping-2.2")] public enum HbmCollectionFetchMode { @@ -1415,7 +1415,7 @@ } /// <remarks/> - [System.CodeDom.Compiler.GeneratedCodeAttribute("HbmXsd", "3.0.0.1001")] + [System.CodeDom.Compiler.GeneratedCodeAttribute("HbmXsd", "3.0.0.4000")] [System.SerializableAttribute()] [System.Diagnostics.DebuggerStepThroughAttribute()] [System.ComponentModel.DesignerCategoryAttribute("code")] @@ -1595,7 +1595,7 @@ } /// <remarks/> - [System.CodeDom.Compiler.GeneratedCodeAttribute("HbmXsd", "3.0.0.1001")] + [System.CodeDom.Compiler.GeneratedCodeAttribute("HbmXsd", "3.0.0.4000")] [System.SerializableAttribute()] [System.Xml.Serialization.XmlTypeAttribute(Namespace="urn:nhibernate-mapping-2.2")] public enum HbmCollectionLazy { @@ -1614,7 +1614,7 @@ } /// <remarks/> - [System.CodeDom.Compiler.GeneratedCodeAttribute("HbmXsd", "3.0.0.1001")] + [System.CodeDom.Compiler.GeneratedCodeAttribute("HbmXsd", "3.0.0.4000")] [System.SerializableAttribute()] [System.Diagnostics.DebuggerStepThroughAttribute()] [System.ComponentModel.DesignerCategoryAttribute("code")] @@ -1833,7 +1833,7 @@ } /// <remarks/> - [System.CodeDom.Compiler.GeneratedCodeAttribute("HbmXsd", "3.0.0.1001")] + [System.CodeDom.Compiler.GeneratedCodeAttribute("HbmXsd", "3.0.0.4000")] [System.SerializableAttribute()] [System.Diagnostics.DebuggerStepThroughAttribute()] [System.ComponentModel.DesignerCategoryAttribute("code")] @@ -1855,7 +1855,7 @@ } /// <remarks/> - [System.CodeDom.Compiler.GeneratedCodeAttribute("HbmXsd", "3.0.0.1001")] + [System.CodeDom.Compiler.GeneratedCodeAttribute("HbmXsd", "3.0.0.4000")] [System.SerializableAttribute()] [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="urn:nhibernate-mapping-2.2")] public enum HbmTuplizerEntitymode { @@ -1874,7 +1874,7 @@ } /// <remarks/> - [System.CodeDom.Compiler.GeneratedCodeAttribute("HbmXsd", "3.0.0.1001")] + [System.CodeDom.Compiler.GeneratedCodeAttribute("HbmXsd", "3.0.0.4000")] [System.SerializableAttribute()] [System.Diagnostics.DebuggerStepThroughAttribute()] [System.ComponentModel.DesignerCategoryAttribute("code")] @@ -1924,7 +1924,7 @@ } /// <remarks/> - [System.CodeDom.Compiler.GeneratedCodeAttribute("HbmXsd", "3.0.0.1001")] + [System.CodeDom.Compiler.GeneratedCodeAttribute("HbmXsd", "3.0.0.4000")] [System.SerializableAttribute()] [System.Diagnostics.DebuggerStepThroughAttribute()] [System.ComponentModel.DesignerCategoryAttribute("code")] @@ -1983,7 +1983,7 @@ } /// <remarks/> - [System.CodeDom.Compiler.GeneratedCodeAttribute("HbmXsd", "3.0.0.1001")] + [System.CodeDom.Compiler.GeneratedCodeAttribute("HbmXsd", "3.0.0.4000")] [System.SerializableAttribute()] [System.Diagnostics.DebuggerStepThroughAttribute()] [System.ComponentModel.DesignerCategoryAttribute("code")] @@ -2028,7 +2028,7 @@ } /// <remarks/> - [System.CodeDom.Compiler.GeneratedCodeAttribute("HbmXsd", "3.0.0.1001")] + [System.CodeDom.Compiler.GeneratedCodeAttribute("HbmXsd", "3.0.0.4000")] [System.SerializableAttribute()] [System.Xml.Serialization.XmlTypeAttribute(Namespace="urn:nhibernate-mapping-2.2")] public enum HbmUnsavedValueType { @@ -2047,7 +2047,7 @@ } /// <remarks/> - [System.CodeDom.Compiler.GeneratedCodeAttribute("HbmXsd", "3.0.0.1001")] + [System.CodeDom.Compiler.GeneratedCodeAttribute("HbmXsd", "3.0.0.4000")] [System.SerializableAttribute()] [System.Diagnostics.DebuggerStepThroughAttribute()] [System.ComponentModel.DesignerCategoryAttribute("code")] @@ -2099,7 +2099,7 @@ } /// <remarks/> - [System.CodeDom.Compiler.GeneratedCodeAttribute("HbmXsd", "3.0.0.1001")] + [System.CodeDom.Compiler.GeneratedCodeAttribute("HbmXsd", "3.0.0.4000")] [System.SerializableAttribute()] [System.Diagnostics.DebuggerStepThroughAttribute()] [System.ComponentModel.DesignerCategoryAttribute("code")] @@ -2117,7 +2117,7 @@ } /// <remarks/> - [System.CodeDom.Compiler.GeneratedCodeAttribute("HbmXsd", "3.0.0.1001")] + [System.CodeDom.Compiler.GeneratedCodeAttribute("HbmXsd", "3.0.0.4000")] [System.SerializableAttribute()] [System.Diagnostics.DebuggerStepThroughAttribute()] [System.ComponentModel.DesignerCategoryAttribute("code")] @@ -2171,7 +2171,7 @@ } /// <remarks/> - [System.CodeDom.Compiler.GeneratedCodeAttribute("HbmXsd", "3.0.0.1001")] + [System.CodeDom.Compiler.GeneratedCodeAttribute("HbmXsd", "3.0.0.4000")] [System.SerializableAttribute()] [System.Diagnostics.DebuggerStepThroughAttribute()] [System.ComponentModel.DesignerCategoryAttribute("code")] @@ -2198,7 +2198,7 @@ } /// <remarks/> - [System.CodeDom.Compiler.GeneratedCodeAttribute("HbmXsd", "3.0.0.1001")] + [System.CodeDom.Compiler.GeneratedCodeAttribute("HbmXsd", "3.0.0.4000")] [System.SerializableAttribute()] [System.Diagnostics.DebuggerStepThroughAttribute()] [System.ComponentModel.DesignerCategoryAttribute("code")] @@ -2284,7 +2284,7 @@ } /// <remarks/> - [System.CodeDom.Compiler.GeneratedCodeAttribute("HbmXsd", "3.0.0.1001")] + [System.CodeDom.Compiler.GeneratedCodeAttribute("HbmXsd", "3.0.0.4000")] [System.SerializableAttribute()] [System.Diagnostics.DebuggerStepThroughAttribute()] [System.ComponentModel.DesignerCategoryAttribute("code")] @@ -2348,7 +2348,7 @@ } /// <remarks/> - [System.CodeDom.Compiler.GeneratedCodeAttribute("HbmXsd", "3.0.0.1001")] + [System.CodeDom.Compiler.GeneratedCodeAttribute("HbmXsd", "3.0.0.4000")] [System.SerializableAttribute()] [System.Diagnostics.DebuggerStepThroughAttribute()] [System.ComponentModel.DesignerCategoryAttribute("code")] @@ -2533,7 +2533,7 @@ } /// <remarks/> - [System.CodeDom.Compiler.GeneratedCodeAttribute("HbmXsd", "3.0.0.1001")] + [System.CodeDom.Compiler.GeneratedCodeAttribute("HbmXsd", "3.0.0.4000")] [System.SerializableAttribute()] [System.Diagnostics.DebuggerStepThroughAttribute()] [System.ComponentModel.DesignerCategoryAttribute("code")] @@ -2727,7 +2727,7 @@ } /// <remarks/> - [System.CodeDom.Compiler.GeneratedCodeAttribute("HbmXsd", "3.0.0.1001")] + [System.CodeDom.Compiler.GeneratedCodeAttribute("HbmXsd", "3.0.0.4000")] [System.SerializableAttribute()] [System.Diagnostics.DebuggerStepThroughAttribute()] [System.ComponentModel.DesignerCategoryAttribute("code")] @@ -2746,7 +2746,7 @@ } /// <remarks/> - [System.CodeDom.Compiler.GeneratedCodeAttribute("HbmXsd", "3.0.0.1001")] + [System.CodeDom.Compiler.GeneratedCodeAttribute("HbmXsd", "3.0.0.4000")] [System.SerializableAttribute()] [System.Diagnostics.DebuggerStepThroughAttribute()] [System.ComponentModel.DesignerCategoryAttribute("code")] @@ -2765,7 +2765,7 @@ } /// <remarks/> - [System.CodeDom.Compiler.GeneratedCodeAttribute("HbmXsd", "3.0.0.1001")] + [System.CodeDom.Compiler.GeneratedCodeAttribute("HbmXsd", "3.0.0.4000")] [System.SerializableAttribute()] [System.Diagnostics.DebuggerStepThroughAttribute()] [System.ComponentModel.DesignerCategoryAttribute("code")] @@ -2791,7 +2791,7 @@ } /// <remarks/> - [System.CodeDom.Compiler.GeneratedCodeAttribute("HbmXsd", "3.0.0.1001")] + [System.CodeDom.Compiler.GeneratedCodeAttribute("HbmXsd", "3.0.0.4000")] [System.SerializableAttribute()] [System.Diagnostics.DebuggerStepThroughAttribute()] [System.ComponentModel.DesignerCategoryAttribute("code")] @@ -2821,7 +2821,7 @@ } /// <remarks/> - [System.CodeDom.Compiler.GeneratedCodeAttribute("HbmXsd", "3.0.0.1001")] + [System.CodeDom.Compiler.GeneratedCodeAttribute("HbmXsd", "3.0.0.4000")] [System.SerializableAttribute()] [System.Diagnostics.DebuggerStepThroughAttribute()] [System.ComponentModel.DesignerCategoryAttribute("code")] @@ -2856,7 +2856,7 @@ } /// <remarks/> - [System.CodeDom.Compiler.GeneratedCodeAttribute("HbmXsd", "3.0.0.1001")] + [System.CodeDom.Compiler.GeneratedCodeAttribute("HbmXsd", "3.0.0.4000")] [System.SerializableAttribute()] [System.Diagnostics.DebuggerStepThroughAttribute()] [System.ComponentModel.DesignerCategoryAttribute("code")] @@ -2891,7 +2891,7 @@ } /// <remarks/> - [System.CodeDom.Compiler.GeneratedCodeAttribute("HbmXsd", "3.0.0.1001")] + [System.CodeDom.Compiler.GeneratedCodeAttribute("HbmXsd", "3.0.0.4000")] [System.SerializableAttribute()] [System.Diagnostics.DebuggerStepThroughAttribute()] [System.ComponentModel.DesignerCategoryAttribute("code")] @@ -2984,7 +2984,7 @@ } /// <remarks/> - [System.CodeDom.Compiler.GeneratedCodeAttribute("HbmXsd", "3.0.0.1001")] + [System.CodeDom.Compiler.GeneratedCodeAttribute("HbmXsd", "3.0.0.4000")] [System.SerializableAttribute()] [System.Diagnostics.DebuggerStepThroughAttribute()] [System.ComponentModel.DesignerCategoryAttribute("code")] @@ -3126,7 +3126,7 @@ } /// <remarks/> - [System.CodeDom.Compiler.GeneratedCodeAttribute("HbmXsd", "3.0.0.1001")] + [System.CodeDom.Compiler.GeneratedCodeAttribute("HbmXsd", "3.0.0.4000")] [System.SerializableAttribute()] [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="urn:nhibernate-mapping-2.2")] public enum HbmPrimitivearrayOuterjoin { @@ -3145,7 +3145,7 @@ } /// <remarks/> - [System.CodeDom.Compiler.GeneratedCodeAttribute("HbmXsd", "3.0.0.1001")] + [System.CodeDom.Compiler.GeneratedCodeAttribute("HbmXsd", "3.0.0.4000")] [System.SerializableAttribute()] [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="urn:nhibernate-mapping-2.2")] public enum HbmPrimitivearrayFetch { @@ -3164,7 +3164,7 @@ } /// <remarks/> - [System.CodeDom.Compiler.GeneratedCodeAttribute("HbmXsd", "3.0.0.1001")] + [System.CodeDom.Compiler.GeneratedCodeAttribute("HbmXsd", "3.0.0.4000")] [System.SerializableAttribute()] [System.Diagnostics.DebuggerStepThroughAttribute()] [System.ComponentModel.DesignerCategoryAttribute("code")] @@ -3348,7 +3348,7 @@ } /// <remarks/> - [System.CodeDom.Compiler.GeneratedCodeAttribute("HbmXsd", "3.0.0.1001")] + [System.CodeDom.Compiler.GeneratedCodeAttribute("HbmXsd", "3.0.0.4000")] [System.SerializableAttribute()] [System.Diagnostics.DebuggerStepThroughAttribute()] [System.ComponentModel.DesignerCategoryAttribute("code")] @@ -3531,7 +3531,7 @@ } /// <remarks/> - [System.CodeDom.Compiler.GeneratedCodeAttribute("HbmXsd", "3.0.0.1001")] + [System.CodeDom.Compiler.GeneratedCodeAttribute("HbmXsd", "3.0.0.4000")] [System.SerializableAttribute()] [System.Diagnostics.DebuggerStepThroughAttribute()] [System.ComponentModel.DesignerCategoryAttribute("code")] @@ -3564,7 +3564,7 @@ } /// <remarks/> - [System.CodeDom.Compiler.GeneratedCodeAttribute("HbmXsd", "3.0.0.1001")] + [System.CodeDom.Compiler.GeneratedCodeAttribute("HbmXsd", "3.0.0.4000")] [System.SerializableAttribute()] [System.Diagnostics.DebuggerStepThroughAttribute()] [System.ComponentModel.DesignerCategoryAttribute("code")] @@ -3617,7 +3617,7 @@ } /// <remarks/> - [System.CodeDom.Compiler.GeneratedCodeAttribute("HbmXsd", "3.0.0.1001")] + [System.CodeDom.Compiler.GeneratedCodeAttribute("HbmXsd", "3.0.0.4000")] [System.SerializableAttribute()] [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="urn:nhibernate-mapping-2.2")] public enum HbmTimestampUnsavedvalue { @@ -3632,7 +3632,7 @@ } /// <remarks/> - [System.CodeDom.Compiler.GeneratedCodeAttribute("HbmXsd", "3.0.0.1001")] + [System.CodeDom.Compiler.GeneratedCodeAttribute("HbmXsd", "3.0.0.4000")] [System.SerializableAttribute()] [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="urn:nhibernate-mapping-2.2")] public enum HbmTimestampSource { @@ -3647,7 +3647,7 @@ } /// <remarks/> - [System.CodeDom.Compiler.GeneratedCodeAttribute("HbmXsd", "3.0.0.1001")] + [System.CodeDom.Compiler.GeneratedCodeAttribute("HbmXsd", "3.0.0.4000")] [System.SerializableAttribute()] [System.Xml.Serialization.XmlTypeAttribute(Namespace="urn:nhibernate-mapping-2.2")] public enum HbmVersionGeneration { @@ -3662,7 +3662,7 @@ } /// <remarks/> - [System.CodeDom.Compiler.GeneratedCodeAttribute("HbmXsd", "3.0.0.1001")] + [System.CodeDom.Compiler.GeneratedCodeAttribute("HbmXsd", "3.0.0.4000")] [System.SerializableAttribute()] [System.Diagnostics.DebuggerStepThroughAttribute()] [System.ComponentModel.DesignerCategoryAttribute("code")] @@ -3723,7 +3723,7 @@ } /// <remarks/> - [System.CodeDom.Compiler.GeneratedCodeAttribute("HbmXsd", "3.0.0.1001")] + [System.CodeDom.Compiler.GeneratedCodeAttribute("HbmXsd", "3.0.0.4000")] [System.SerializableAttribute()] [System.Diagnostics.DebuggerStepThroughAttribute()] [System.ComponentModel.DesignerCategoryAttribute("code")] @@ -3775,7 +3775,7 @@ } /// <remarks/> - [System.CodeDom.Compiler.GeneratedCodeAttribute("HbmXsd", "3.0.0.1001")] + [System.CodeDom.Compiler.GeneratedCodeAttribute("HbmXsd", "3.0.0.4000")] [System.SerializableAttribute()] [System.Diagnostics.DebuggerStepThroughAttribute()] [System.ComponentModel.DesignerCategoryAttribute("code")] @@ -3858,7 +3858,7 @@ } /// <remarks/> - [System.CodeDom.Compiler.GeneratedCodeAttribute("HbmXsd", "3.0.0.1001")] + [System.CodeDom.Compiler.GeneratedCodeAttribute("HbmXsd", "3.0.0.4000")] [System.SerializableAttribute()] [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="urn:nhibernate-mapping-2.2")] public enum HbmJoinFetch { @@ -3873,7 +3873,7 @@ } /// <remarks/> - [System.CodeDom.Compiler.GeneratedCodeAttribute("HbmXsd", "3.0.0.1001")] + [System.CodeDom.Compiler.GeneratedCodeAttribute("HbmXsd", "3.0.0.4000")] [System.SerializableAttribute()] [System.Diagnostics.DebuggerStepThroughAttribute()] [System.ComponentModel.DesignerCategoryAttribute("code")] @@ -4034,7 +4034,7 @@ } /// <remarks/> - [System.CodeDom.Compiler.GeneratedCodeAttribute("HbmXsd", "3.0.0.1001")] + [System.CodeDom.Compiler.GeneratedCodeAttribute("HbmXsd", "3.0.0.4000")] [System.SerializableAttribute()] [System.Diagnostics.DebuggerStepThroughAttribute()] [System.ComponentModel.DesignerCategoryAttribute("code")] @@ -4055,7 +4055,7 @@ } /// <remarks/> - [System.CodeDom.Compiler.GeneratedCodeAttribute("HbmXsd", "3.0.0.1001")] + [System.CodeDom.Compiler.GeneratedCodeAttribute("HbmXsd", "3.0.0.4000")] [System.SerializableAttribute()] [System.Diagnostics.DebuggerStepThroughAttribute()] [System.ComponentModel.DesignerCategoryAttribute("code")] @@ -4086,7 +4086,7 @@ } /// <remarks/> - [System.CodeDom.Compiler.GeneratedCodeAttribute("HbmXsd", "3.0.0.1001")] + [System.CodeDom.Compiler.GeneratedCodeAttribute("HbmXsd", "3.0.0.4000")] [System.SerializableAttribute()] [System.Diagnostics.DebuggerStepThroughAttribute()] [System.ComponentModel.DesignerCategoryAttribute("code")] @@ -4108,7 +4108,7 @@ } /// <remarks/> - [System.CodeDom.Compiler.GeneratedCodeAttribute("HbmXsd", "3.0.0.1001")] + [System.CodeDom.Compiler.GeneratedCodeAttribute("HbmXsd", "3.0.0.4000")] [System.SerializableAttribute()] [System.Diagnostics.DebuggerStepThroughAttribute()] [System.ComponentModel.DesignerCategoryAttribute("code")] @@ -4122,7 +4122,7 @@ } /// <remarks/> - [System.CodeDom.Compiler.GeneratedCodeAttribute("HbmXsd", "3.0.0.1001")] + [System.CodeDom.Compiler.GeneratedCodeAttribute("HbmXsd", "3.0.0.4000")] [System.SerializableAttribute()] [System.Xml.Serialization.XmlTypeAttribute(Namespace="urn:nhibernate-mapping-2.2")] public enum HbmLockMode { @@ -4149,7 +4149,7 @@ } /// <remarks/> - [System.CodeDom.Compiler.GeneratedCodeAttribute("HbmXsd", "3.0.0.1001")] + [System.CodeDom.Compiler.GeneratedCodeAttribute("HbmXsd", "3.0.0.4000")] [System.SerializableAttribute()] [System.Diagnostics.DebuggerStepThroughAttribute()] [System.ComponentModel.DesignerCategoryAttribute("code")] @@ -4188,7 +4188,7 @@ } /// <remarks/> - [System.CodeDom.Compiler.GeneratedCodeAttribute("HbmXsd", "3.0.0.1001")] + [System.CodeDom.Compiler.GeneratedCodeAttribute("HbmXsd", "3.0.0.4000")] [System.SerializableAttribute()] [System.Diagnostics.DebuggerStepThroughAttribute()] [System.ComponentModel.DesignerCategoryAttribute("code")] @@ -4202,7 +4202,7 @@ } /// <remarks/> - [System.CodeDom.Compiler.GeneratedCodeAttribute("HbmXsd", "3.0.0.1001")] + [System.CodeDom.Compiler.GeneratedCodeAttribute("HbmXsd", "3.0.0.4000")] [System.SerializableAttribute()] [System.Diagnostics.DebuggerStepThroughAttribute()] [System.ComponentModel.DesignerCategoryAttribute("code")] @@ -4233,7 +4233,7 @@ } /// <remarks/> - [System.CodeDom.Compiler.GeneratedCodeAttribute("HbmXsd", "3.0.0.1001")] + [System.CodeDom.Compiler.GeneratedCodeAttribute("HbmXsd", "3.0.0.4000")] [System.SerializableAttribute()] [System.Diagnostics.DebuggerStepThroughAttribute()] [System.ComponentModel.DesignerCategoryAttribute("code")] @@ -4251,7 +4251,7 @@ } /// <remarks/> - [System.CodeDom.Compiler.GeneratedCodeAttribute("HbmXsd", "3.0.0.1001")] + [System.CodeDom.Compiler.GeneratedCodeAttribute("HbmXsd", "3.0.0.4000")] [System.SerializableAttribute()] [System.Diagnostics.DebuggerStepThroughAttribute()] [System.ComponentModel.DesignerCategoryAttribute("code")] @@ -4326,7 +4326,7 @@ } /// <remarks/> - [System.CodeDom.Compiler.GeneratedCodeAttribute("HbmXsd", "3.0.0.1001")] + [System.CodeDom.Compiler.GeneratedCodeAttribute("HbmXsd", "3.0.0.4000")] [System.SerializableAttribute()] [System.Diagnostics.DebuggerStepThroughAttribute()] [System.ComponentModel.DesignerCategoryAttribute("code")] @@ -4344,7 +4344,7 @@ } /// <remarks/> - [System.CodeDom.Compiler.GeneratedCodeAttribute("HbmXsd", "3.0.0.1001")] + [System.CodeDom.Compiler.GeneratedCodeAttribute("HbmXsd", "3.0.0.4000")] [System.SerializableAttribute()] [System.Xml.Serialization.XmlTypeAttribute(Namespace="urn:nhibernate-mapping-2.2")] public enum HbmFlushMode { @@ -4363,7 +4363,7 @@ } /// <remarks/> - [System.CodeDom.Compiler.GeneratedCodeAttribute("HbmXsd", "3.0.0.1001")] + [System.CodeDom.Compiler.GeneratedCodeAttribute("HbmXsd", "3.0.0.4000")] [System.SerializableAttribute()] [System.Xml.Serialization.XmlTypeAttribute(Namespace="urn:nhibernate-mapping-2.2")] public enum HbmCacheMode { @@ -4390,7 +4390,7 @@ } /// <remarks/> - [System.CodeDom.Compiler.GeneratedCodeAttribute("HbmXsd", "3.0.0.1001")] + [System.CodeDom.Compiler.GeneratedCodeAttribute("HbmXsd", "3.0.0.4000")] [System.SerializableAttribute()] [System.Diagnostics.DebuggerStepThroughAttribute()] [System.ComponentModel.DesignerCategoryAttribute("code")] @@ -4480,7 +4480,7 @@ } /// <remarks/> - [System.CodeDom.Compiler.GeneratedCodeAttribute("HbmXsd", "3.0.0.1001")] + [System.CodeDom.Compiler.GeneratedCodeAttribute("HbmXsd", "3.0.0.4000")] [System.SerializableAttribute()] [System.Diagnostics.DebuggerStepThroughAttribute()] [System.ComponentModel.DesignerCategoryAttribute("code")] @@ -4512,6 +4512,7 @@ [System.Xml.Serialization.XmlElementAttribute("map", typeof(HbmMap))] [System.Xml.Serialization.XmlElementAttribute("one-to-one", typeof(HbmOneToOne))] [System.Xml.Serialization.XmlElementAttribute("primitive-array", typeof(HbmPrimitiveArray))] + [System.Xml.Serialization.XmlElementAttribute("properties", typeof(HbmProperties))] [System.Xml.Serialization.XmlElementAttribute("property", typeof(HbmProperty))] [System.Xml.Serialization.XmlElementAttribute("set", typeof(HbmSet))] public object[] Items; @@ -4619,7 +4620,7 @@ } /// <remarks/> - [System.CodeDom.Compiler.GeneratedCodeAttribute("HbmXsd", "3.0.0.1001")] + [System.CodeDom.Compiler.GeneratedCodeAttribute("HbmXsd", "3.0.0.4000")] [System.SerializableAttribute()] [System.Diagnostics.DebuggerStepThroughAttribute()] [System.ComponentModel.DesignerCategoryAttribute("code")] @@ -4777,7 +4778,7 @@ } /// <remarks/> - [System.CodeDom.Compiler.GeneratedCodeAttribute("HbmXsd", "3.0.0.1001")] + [System.CodeDom.Compiler.GeneratedCodeAttribute("HbmXsd", "3.0.0.4000")] [System.SerializableAttribute()] [System.Xml.Serialization.XmlTypeAttribute(Namespace="urn:nhibernate-mapping-2.2")] public enum HbmPolymorphismType { @@ -4792,7 +4793,7 @@ } /// <remarks/> - [System.CodeDom.Compiler.GeneratedCodeAttribute("HbmXsd", "3.0.0.1001")] + [System.CodeDom.Compiler.GeneratedCodeAttribute("HbmXsd", "3.0.0.4000")] [System.SerializableAttribute()] [System.Xml.Serialization.XmlTypeAttribute(Namespace="urn:nhibernate-mapping-2.2")] public enum HbmOptimisticLockMode { @@ -4815,7 +4816,7 @@ } /// <remarks/> - [System.CodeDom.Compiler.GeneratedCodeAttribute("HbmXsd", "3.0.0.1001")] + [System.CodeDom.Compiler.GeneratedCodeAttribute("HbmXsd", "3.0.0.4000")] [System.SerializableAttribute()] [System.Diagnostics.DebuggerStepThroughAttribute()] [System.ComponentModel.DesignerCategoryAttribute("code")] @@ -4829,7 +4830,7 @@ } /// <remarks/> - [System.CodeDom.Compiler.GeneratedCodeAttribute("HbmXsd", "3.0.0.1001")] + [System.CodeDom.Compiler.GeneratedCodeAttribute("HbmXsd", "3.0.0.4000")] [System.SerializableAttribute()] [System.Diagnostics.DebuggerStepThroughAttribute()] [System.ComponentModel.DesignerCategoryAttribute("code")] @@ -4849,7 +4850,7 @@ } /// <remarks/> - [System.CodeDom.Compiler.GeneratedCodeAttribute("HbmXsd", "3.0.0.1001")] + [System.CodeDom.Compiler.GeneratedCodeAttribute("HbmXsd", "3.0.0.4000")] [System.SerializableAttribute()] [System.Diagnostics.DebuggerStepThroughAttribute()] [System.ComponentModel.DesignerCategoryAttribute("code")] @@ -4867,7 +4868,7 @@ } /// <remarks/> - [System.CodeDom.Compiler.GeneratedCodeAttribute("HbmXsd", "3.0.0.1001")] + [System.CodeDom.Compiler.GeneratedCodeAttribute("HbmXsd", "3.0.0.4000")] [System.SerializableAttribute()] [System.Diagnostics.DebuggerStepThroughAttribute()] [System.ComponentModel.DesignerCategoryAttribute("code")] @@ -4881,7 +4882,7 @@ } /// <remarks/> - [System.CodeDom.Compiler.GeneratedCodeAttribute("HbmXsd", "3.0.0.1001")] + [System.CodeDom.Compiler.GeneratedCodeAttribute("HbmXsd", "3.0.0.4000")] [System.SerializableAttribute()] [System.Diagnostics.DebuggerStepThroughAttribute()] [System.ComponentModel.DesignerCategoryAttribute("code")] @@ -4899,7 +4900,7 @@ } /// <remarks/> - [System.CodeDom.Compiler.GeneratedCodeAttribute("HbmXsd", "3.0.0.1001")] + [System.CodeDom.Compiler.GeneratedCodeAttribute("HbmXsd", "3.0.0.4000")] [System.SerializableAttribute()] [System.Diagnostics.DebuggerStepThroughAttribute()] [System.ComponentModel.DesignerCategoryAttribute("code")] @@ -4934,7 +4935,7 @@ } /// <remarks/> - [System.CodeDom.Compiler.GeneratedCodeAttribute("HbmXsd", "3.0.0.1001")] + [System.CodeDom.Compiler.GeneratedCodeAttribute("HbmXsd", "3.0.0.4000")] [System.SerializableAttribute()] [System.Diagnostics.DebuggerStepThroughAttribute()] [System.ComponentModel.DesignerCategoryAttribute("code")] @@ -4952,7 +4953,7 @@ } /// <remarks/> - [System.CodeDom.Compiler.GeneratedCodeAttribute("HbmXsd", "3.0.0.1001")] + [System.CodeDom.Compiler.GeneratedCodeAttribute("HbmXsd", "3.0.0.4000")] [System.SerializableAttribute()] [System.Diagnostics.DebuggerStepThroughAttribute()] [System.ComponentModel.DesignerCategoryAttribute("code")] @@ -5041,7 +5042,7 @@ } /// <remarks/> - [System.CodeDom.Compiler.GeneratedCodeAttribute("HbmXsd", "3.0.0.1001")] + [System.CodeDom.Compiler.GeneratedCodeAttribute("HbmXsd", "3.0.0.4000")] [System.SerializableAttribute()] [System.Diagnostics.DebuggerStepThroughAttribute()] [System.ComponentModel.DesignerCategoryAttribute("code")] @@ -5063,7 +5064,7 @@ } /// <remarks/> - [System.CodeDom.Compiler.GeneratedCodeAttribute("HbmXsd", "3.0.0.1001")] + [System.CodeDom.Compiler.GeneratedCodeAttribute("HbmXsd", "3.0.0.4000")] [System.SerializableAttribute()] [System.Diagnostics.DebuggerStepThroughAttribute()] [System.ComponentModel.DesignerCategoryAttribute("code")] Modified: trunk/nhibernate/src/NHibernate/nhibernate-mapping.xsd =================================================================== --- trunk/nhibernate/src/NHibernate/nhibernate-mapping.xsd 2010-12-27 14:12:24 UTC (rev 5341) +++ trunk/nhibernate/src/NHibernate/nhibernate-mapping.xsd 2010-12-31 03:20:16 UTC (rev 5342) @@ -1342,6 +1342,7 @@ <xs:element ref="one-to-one" /> <xs:element ref="component" /> <xs:element ref="dynamic-component" /> + <xs:element ref="properties" /> <xs:element ref="any" /> <xs:element ref="map" /> <xs:element ref="set" /> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <aye...@us...> - 2010-12-27 14:12:30
|
Revision: 5341 http://nhibernate.svn.sourceforge.net/nhibernate/?rev=5341&view=rev Author: ayenderahien Date: 2010-12-27 14:12:24 +0000 (Mon, 27 Dec 2010) Log Message: ----------- Fixing an issue where filters would not be considered for extra lazy collection queries Modified Paths: -------------- trunk/nhibernate/src/NHibernate/Persister/Collection/AbstractCollectionPersister.cs trunk/nhibernate/src/NHibernate.Test/NHibernate.Test.csproj Added Paths: ----------- trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/BagWithLazyExtraAndFilter/ trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/BagWithLazyExtraAndFilter/Domain.cs trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/BagWithLazyExtraAndFilter/Fixture.cs trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/BagWithLazyExtraAndFilter/Mappings.hbm.xml Modified: trunk/nhibernate/src/NHibernate/Persister/Collection/AbstractCollectionPersister.cs =================================================================== --- trunk/nhibernate/src/NHibernate/Persister/Collection/AbstractCollectionPersister.cs 2010-12-26 15:53:13 UTC (rev 5340) +++ trunk/nhibernate/src/NHibernate/Persister/Collection/AbstractCollectionPersister.cs 2010-12-27 14:12:24 UTC (rev 5341) @@ -42,7 +42,6 @@ private readonly SqlCommandInfo sqlInsertRowString; private readonly SqlCommandInfo sqlUpdateRowString; private readonly SqlCommandInfo sqlDeleteRowString; - private readonly SqlString sqlSelectSizeString; private readonly SqlString sqlSelectRowByIndexString; private readonly SqlString sqlDetectRowByIndexString; private readonly SqlString sqlDetectRowByElementString; @@ -478,7 +477,7 @@ deleteAllCheckStyle = ExecuteUpdateResultCheckStyle.None; } - sqlSelectSizeString = GenerateSelectSizeString(collection.IsIndexed && !collection.IsMap); + isCollectionIntegerIndex = collection.IsIndexed && !collection.IsMap; sqlDetectRowByIndexString = GenerateDetectRowByIndexString(); sqlDetectRowByElementString = GenerateDetectRowByElementString(); sqlSelectRowByIndexString = GenerateSelectRowByIndexString(); @@ -840,21 +839,21 @@ { if (!hasWhere) return sql; - var sqlStringBuilder = new SqlStringBuilder(sql); - sqlStringBuilder.Add(" and ").Add(sqlWhereString); - return sqlStringBuilder.ToSqlString(); + return sql.Append(" and ").Append(sqlWhereString); } - private SqlString GenerateSelectSizeString(bool isIntegerIndexed) + + private SqlString GenerateSelectSizeString(ISessionImplementor sessionImplementor) { - string selectValue = isIntegerIndexed + string selectValue = isCollectionIntegerIndex ? "max(" + IndexColumnNames[0] + ") + 1" : "count(" + ElementColumnNames[0] + ")"; //sets, maps, bags - - var sqlString=new SqlSimpleSelectBuilder(dialect, factory) - .SetTableName(TableName) - .AddWhereFragment(KeyColumnNames, KeyType, "=") - .AddColumn(selectValue).ToSqlString(); - return AddWhereFragment(sqlString); + + return new SqlSimpleSelectBuilder(dialect, factory) + .SetTableName(TableName) + .AddWhereFragment(KeyColumnNames, KeyType, "=") + .AddColumn(selectValue) + .ToSqlString() + .Append(FilterFragment(TableName, sessionImplementor.EnabledFilters)); } private SqlString GenerateDetectRowByIndexString() @@ -1507,7 +1506,12 @@ using(new SessionIdLoggingContext(session.SessionId)) try { - IDbCommand st = session.Batcher.PrepareCommand(CommandType.Text, sqlSelectSizeString, KeyType.SqlTypes(factory)); + if(session.EnabledFilters.Count > 0) + { + + } + + IDbCommand st = session.Batcher.PrepareCommand(CommandType.Text, GenerateSelectSizeString(session), KeyType.SqlTypes(factory)); IDataReader rs = null; try { @@ -1524,7 +1528,7 @@ { throw ADOExceptionHelper.Convert(Factory.SQLExceptionConverter, sqle, "could not retrieve collection size: " - + MessageHelper.InfoString(this, key, Factory), sqlSelectSizeString); + + MessageHelper.InfoString(this, key, Factory), GenerateSelectSizeString(session)); } } @@ -1575,7 +1579,7 @@ { throw ADOExceptionHelper.Convert(Factory.SQLExceptionConverter, sqle, "could not check row existence: " + MessageHelper.InfoString(this, key, Factory), - sqlSelectSizeString); + GenerateSelectSizeString(session)); } } @@ -1618,7 +1622,7 @@ { throw ADOExceptionHelper.Convert(Factory.SQLExceptionConverter, sqle, "could not read row: " + MessageHelper.InfoString(this, key, Factory), - sqlSelectSizeString); + GenerateSelectSizeString(session)); } } @@ -2006,8 +2010,9 @@ #region IPostInsertIdentityPersister Members private string identitySelectString; + private bool isCollectionIntegerIndex; - public string IdentitySelectString + public string IdentitySelectString { get { Added: trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/BagWithLazyExtraAndFilter/Domain.cs =================================================================== --- trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/BagWithLazyExtraAndFilter/Domain.cs (rev 0) +++ trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/BagWithLazyExtraAndFilter/Domain.cs 2010-12-27 14:12:24 UTC (rev 5341) @@ -0,0 +1,17 @@ +using System.Collections.Generic; + +namespace NHibernate.Test.NHSpecificTest.BagWithLazyExtraAndFilter +{ + public class Env + { + public virtual long Id { get; set; } + public virtual IList<MachineRequest> RequestsFailed { get; set; } + } + + public class MachineRequest + { + public virtual long Id { get; set; } + public virtual int MachineRequestCompletionStatusInt { get; set; } + public virtual long EnvId { get; set; } + } +} Added: trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/BagWithLazyExtraAndFilter/Fixture.cs =================================================================== --- trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/BagWithLazyExtraAndFilter/Fixture.cs (rev 0) +++ trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/BagWithLazyExtraAndFilter/Fixture.cs 2010-12-27 14:12:24 UTC (rev 5341) @@ -0,0 +1,50 @@ +using System.Collections.Generic; +using NUnit.Framework; + +namespace NHibernate.Test.NHSpecificTest.BagWithLazyExtraAndFilter +{ + [TestFixture] + public class Fixture: BugTestCase + { + [Test] + public void CanUseFilterForLazyExtra() + { + using (var s = OpenSession()) + { + s.BeginTransaction(); + var machineRequest = new MachineRequest { EnvId = 1L, Id = 2L }; + s.Save(new Env + { + Id = 1L, + RequestsFailed = new List<MachineRequest> + { + machineRequest + } + }); + s.Save(machineRequest); + s.Transaction.Commit(); + } + + using (var s = OpenSession()) + { + var env = s.Load<Env>(1L); + Assert.AreEqual(1, env.RequestsFailed.Count); + } + + using (var s = OpenSession()) + { + s.EnableFilter("CurrentOnly"); + var env = s.Load<Env>(1L); + Assert.AreEqual(0, env.RequestsFailed.Count); + } + + using (var s = OpenSession()) + { + s.BeginTransaction(); + s.Delete(s.Load<MachineRequest>(2L)); + s.Delete(s.Load<Env>(1L)); + s.Transaction.Commit(); + } + } + } +} Added: trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/BagWithLazyExtraAndFilter/Mappings.hbm.xml =================================================================== --- trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/BagWithLazyExtraAndFilter/Mappings.hbm.xml (rev 0) +++ trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/BagWithLazyExtraAndFilter/Mappings.hbm.xml 2010-12-27 14:12:24 UTC (rev 5341) @@ -0,0 +1,30 @@ +<?xml version="1.0" encoding="utf-8" ?> +<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2" + namespace="NHibernate.Test.NHSpecificTest.BagWithLazyExtraAndFilter" + assembly="NHibernate.Test"> + + <class name="Env" table="Envs" discriminator-value="null"> + <id name="Id" type="Int64" unsaved-value="none"> + <generator class="assigned"/> + </id> + <bag name="RequestsFailed" inverse="true" cascade="none" lazy="extra" + optimistic-lock="false" + where="MachineRequestCompletionStatusInt != 1"> + <key column="EnvId"/> + <one-to-many class="MachineRequest"/> + <filter name="CurrentOnly"/> + </bag> + + </class> + + + <class name="MachineRequest" table="MachineRequests" discriminator-value="null"> + <id name="Id" type="Int64" unsaved-value="none"> + <generator class="assigned"/> + </id> + <property name="EnvId"/> + <property name="MachineRequestCompletionStatusInt"/> + </class> + + <filter-def name="CurrentOnly" condition="1 = 0"/> +</hibernate-mapping> Modified: trunk/nhibernate/src/NHibernate.Test/NHibernate.Test.csproj =================================================================== --- trunk/nhibernate/src/NHibernate.Test/NHibernate.Test.csproj 2010-12-26 15:53:13 UTC (rev 5340) +++ trunk/nhibernate/src/NHibernate.Test/NHibernate.Test.csproj 2010-12-27 14:12:24 UTC (rev 5341) @@ -457,6 +457,8 @@ <Compile Include="Linq\SumTests.cs" /> <Compile Include="Logging\Log4NetLoggerTest.cs" /> <Compile Include="Logging\LoggerProviderTest.cs" /> + <Compile Include="NHSpecificTest\BagWithLazyExtraAndFilter\Domain.cs" /> + <Compile Include="NHSpecificTest\BagWithLazyExtraAndFilter\Fixture.cs" /> <Compile Include="NHSpecificTest\EntityNameAndCompositeId\Fixture.cs" /> <Compile Include="NHSpecificTest\EntityNameWithFullName\Fixture.cs" /> <Compile Include="NHSpecificTest\Futures\LinqFutureFixture.cs" /> @@ -2369,6 +2371,7 @@ <EmbeddedResource Include="NHSpecificTest\NH1291AnonExample\Mappings.hbm.xml" /> </ItemGroup> <ItemGroup> + <EmbeddedResource Include="NHSpecificTest\BagWithLazyExtraAndFilter\Mappings.hbm.xml" /> <EmbeddedResource Include="NHSpecificTest\NH2470\Mappings.hbm.xml" /> <EmbeddedResource Include="NHSpecificTest\NH2056\Mappings.hbm.xml" /> <EmbeddedResource Include="NHSpecificTest\NH2043\Mappings.hbm.xml" /> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <fab...@us...> - 2010-12-26 15:53:20
|
Revision: 5340 http://nhibernate.svn.sourceforge.net/nhibernate/?rev=5340&view=rev Author: fabiomaulo Date: 2010-12-26 15:53:13 +0000 (Sun, 26 Dec 2010) Log Message: ----------- Fix NH-2470 Modified Paths: -------------- trunk/nhibernate/src/NHibernate/Collection/PersistentIdentifierBag.cs trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2470/Mappings.hbm.xml Modified: trunk/nhibernate/src/NHibernate/Collection/PersistentIdentifierBag.cs =================================================================== --- trunk/nhibernate/src/NHibernate/Collection/PersistentIdentifierBag.cs 2010-12-25 20:55:56 UTC (rev 5339) +++ trunk/nhibernate/src/NHibernate/Collection/PersistentIdentifierBag.cs 2010-12-26 15:53:13 UTC (rev 5340) @@ -3,6 +3,8 @@ using System.Collections.Generic; using System.Data; using System.Diagnostics; +using System.Linq; +using Iesi.Collections.Generic; using NHibernate.DebugHelpers; using NHibernate.Engine; using NHibernate.Id; @@ -31,6 +33,48 @@ [DebuggerTypeProxy(typeof (CollectionProxy))] public class PersistentIdentifierBag : AbstractPersistentCollection, IList { + [Serializable] + private class SnapshotElement : IEquatable<SnapshotElement> + { + public object Id { get; set; } + public object Value { get; set; } + + public bool Equals(SnapshotElement other) + { + if (ReferenceEquals(null, other)) + { + return false; + } + if (ReferenceEquals(this, other)) + { + return true; + } + return Equals(other.Id, Id); + } + + public override bool Equals(object obj) + { + if (ReferenceEquals(null, obj)) + { + return false; + } + if (ReferenceEquals(this, obj)) + { + return true; + } + if (obj.GetType() != typeof (SnapshotElement)) + { + return false; + } + return Equals((SnapshotElement) obj); + } + + public override int GetHashCode() + { + return (Id != null ? Id.GetHashCode() : 0); + } + } + protected IList values; //element protected Dictionary<int, object> identifiers; //index -> id @@ -77,7 +121,7 @@ private object GetIdentifier(int index) { // NH specific : To emulate IDictionary behavior but using Dictionary<int, object> (without boxing/unboxing for index) - object result = null; + object result; identifiers.TryGetValue(index, out result); return result; } @@ -131,7 +175,7 @@ public override bool EqualsSnapshot(ICollectionPersister persister) { IType elementType = persister.ElementType; - IDictionary snap = (IDictionary) GetSnapshot(); + var snap = (ISet<SnapshotElement>) GetSnapshot(); if (snap.Count != values.Count) { return false; @@ -140,12 +184,7 @@ { object val = values[i]; object id = GetIdentifier(i); - if (id == null) - { - return false; - } - - object old = snap[id]; + object old = snap.Where(x=> Equals(x.Id, id)).Select(x=> x.Value).FirstOrDefault(); if (elementType.IsDirty(old, val, Session)) { return false; @@ -157,13 +196,13 @@ public override bool IsSnapshotEmpty(object snapshot) { - return ((IDictionary) snapshot).Count == 0; + return ((ICollection) snapshot).Count == 0; } public override IEnumerable GetDeletes(ICollectionPersister persister, bool indexIsFormula) { - IDictionary snap = (IDictionary) GetSnapshot(); - ArrayList deletes = new ArrayList(snap.Keys); + var snap = (ISet<SnapshotElement>)GetSnapshot(); + ArrayList deletes = new ArrayList(snap.Select(x=> x.Id).ToArray()); for (int i = 0; i < values.Count; i++) { if (values[i] != null) @@ -186,17 +225,18 @@ public override object GetSnapshotElement(object entry, int i) { - IDictionary snap = (IDictionary) GetSnapshot(); + var snap = (ISet<SnapshotElement>)GetSnapshot(); object id = GetIdentifier(i); - return snap[id]; + return snap.Where(x => Equals(x.Id, id)).Select(x => x.Value).FirstOrDefault(); } public override bool NeedsInserting(object entry, int i, IType elemType) { - IDictionary snap = (IDictionary) GetSnapshot(); + var snap = (ISet<SnapshotElement>)GetSnapshot(); object id = GetIdentifier(i); + object valueFound = snap.Where(x => Equals(x.Id, id)).Select(x => x.Value).FirstOrDefault(); - return entry != null && (id == null || snap[id] == null); + return entry != null && (id == null || valueFound == null); } public override bool NeedsUpdating(object entry, int i, IType elemType) @@ -205,7 +245,7 @@ { return false; } - IDictionary snap = (IDictionary) GetSnapshot(); + var snap = (ISet<SnapshotElement>)GetSnapshot(); object id = GetIdentifier(i); if (id == null) @@ -213,7 +253,7 @@ return false; } - object old = snap[id]; + object old = snap.Where(x => Equals(x.Id, id)).Select(x => x.Value).FirstOrDefault(); return old != null && elemType.IsDirty(old, entry, Session); } @@ -235,26 +275,22 @@ { EntityMode entityMode = Session.EntityMode; - Hashtable map = new Hashtable(values.Count); + var map = new HashedSet<SnapshotElement>(); int i = 0; foreach (object value in values) { - // NH Different behavior : in Hb they use directly identifiers[i++] - // probably we have some different behavior in some other place because a Snapshot before save the collection - // when the identifiers dictionary is empty (in this case the Snapshot is unneeded before save) object id; - if (identifiers.TryGetValue(i++, out id)) - { - map[id] = persister.ElementType.DeepCopy(value, entityMode, persister.Factory); - } + identifiers.TryGetValue(i++, out id); + var valueCopy = persister.ElementType.DeepCopy(value, entityMode, persister.Factory); + map.Add(new SnapshotElement { Id = id, Value = valueCopy }); } return map; } public override ICollection GetOrphans(object snapshot, string entityName) { - IDictionary sn = (IDictionary) snapshot; - return GetOrphans(sn.Values, values, entityName, Session); + var sn = (ISet<SnapshotElement>)GetSnapshot(); + return GetOrphans(sn.Select(x=> x.Value).ToArray(), values, entityName, Session); } public override void PreInsert(ICollectionPersister persister) Modified: trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2470/Mappings.hbm.xml =================================================================== --- trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2470/Mappings.hbm.xml 2010-12-25 20:55:56 UTC (rev 5339) +++ trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2470/Mappings.hbm.xml 2010-12-26 15:53:13 UTC (rev 5340) @@ -12,7 +12,7 @@ <version name="EntityVersion"/> <!-- NH2470 - I used to have inverse="true" here --> - <idbag name="Class2List" table="Class1_Class2" access="field.camelcase-underscore"> + <idbag name="Class2List" table="Class1_Class2" inverse="true" access="field.camelcase-underscore"> <collection-id column="ID" type="Guid"> <generator class="guid.comb" /> </collection-id> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <pa...@us...> - 2010-12-25 20:56:05
|
Revision: 5339 http://nhibernate.svn.sourceforge.net/nhibernate/?rev=5339&view=rev Author: patearl Date: 2010-12-25 20:55:56 +0000 (Sat, 25 Dec 2010) Log Message: ----------- Relinq updated to build 1.13.88. Modified Paths: -------------- trunk/nhibernate/lib/net/3.5/Remotion.Data.Linq.dll Added Paths: ----------- trunk/nhibernate/lib/net/3.5/Remotion.Data.Linq.pdb trunk/nhibernate/lib/net/3.5/Remotion.Data.Linq.xml Modified: trunk/nhibernate/lib/net/3.5/Remotion.Data.Linq.dll =================================================================== (Binary files differ) Added: trunk/nhibernate/lib/net/3.5/Remotion.Data.Linq.pdb =================================================================== (Binary files differ) Property changes on: trunk/nhibernate/lib/net/3.5/Remotion.Data.Linq.pdb ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: trunk/nhibernate/lib/net/3.5/Remotion.Data.Linq.xml =================================================================== --- trunk/nhibernate/lib/net/3.5/Remotion.Data.Linq.xml (rev 0) +++ trunk/nhibernate/lib/net/3.5/Remotion.Data.Linq.xml 2010-12-25 20:55:56 UTC (rev 5339) @@ -0,0 +1,1253 @@ +<?xml version="1.0" encoding="utf-8"?><doc><assembly> + <name>Remotion.Data.Linq</name> + </assembly><members><member name="T:Remotion.Data.Linq.DefaultQueryProvider"><summary> + Represents a default implementation of <see cref="T:Remotion.Data.Linq.QueryProviderBase" /> that is automatically used by <see cref="T:Remotion.Data.Linq.QueryableBase`1" /> + unless a custom <see cref="T:System.Linq.IQueryProvider" /> is specified. The <see cref="T:Remotion.Data.Linq.DefaultQueryProvider" /> executes queries by parsing them into + an instance of type <see cref="T:Remotion.Data.Linq.QueryModel" />, which is then passed to an implementation of <see cref="T:Remotion.Data.Linq.IQueryExecutor" /> to obtain the + result set. + </summary></member><member name="T:Remotion.Data.Linq.QueryProviderBase"><summary> + Provides a default implementation of <see cref="T:System.Linq.IQueryProvider" /> that executes queries (subclasses of <see cref="T:Remotion.Data.Linq.QueryableBase`1" />) by + first parsing them into a <see cref="T:Remotion.Data.Linq.QueryModel" /> and then passing that to a given implementation of <see cref="T:Remotion.Data.Linq.IQueryExecutor" />. + Usually, <see cref="T:Remotion.Data.Linq.DefaultQueryProvider" /> should be used unless <see cref="M:Remotion.Data.Linq.QueryProviderBase.CreateQuery``1(System.Linq.Expressions.Expression)" /> must be manually implemented. + </summary></member><member name="M:Remotion.Data.Linq.QueryProviderBase.#ctor(Remotion.Data.Linq.IQueryExecutor)"><summary> + Initializes a new instance of <see cref="T:Remotion.Data.Linq.QueryProviderBase" /> using the default <see cref="T:Remotion.Data.Linq.Parsing.Structure.MethodCallExpressionNodeTypeRegistry" />. + </summary><param name="executor">The <see cref="T:Remotion.Data.Linq.IQueryExecutor" /> used to execute queries against a specific query backend.</param></member><member name="M:Remotion.Data.Linq.QueryProviderBase.#ctor(Remotion.Data.Linq.IQueryExecutor,Remotion.Data.Linq.Parsing.Structure.MethodCallExpressionNodeTypeRegistry)"><summary> + Initializes a new instance of <see cref="T:Remotion.Data.Linq.QueryProviderBase" /> using a custom <see cref="T:Remotion.Data.Linq.Parsing.Structure.MethodCallExpressionNodeTypeRegistry" />. Use this + constructor to specify a specific set of parsers to use when analyzing the query. + </summary><param name="executor">The <see cref="T:Remotion.Data.Linq.IQueryExecutor" /> used to execute queries against a specific query backend.</param><param name="nodeTypeRegistry">The <see cref="T:Remotion.Data.Linq.Parsing.Structure.MethodCallExpressionNodeTypeRegistry" /> containing the <see cref="T:System.Linq.Expressions.MethodCallExpression" /> + parsers that should be used when parsing queries.</param></member><member name="M:Remotion.Data.Linq.QueryProviderBase.CreateQuery(System.Linq.Expressions.Expression)"><summary> + Constructs an <see cref="T:System.Linq.IQueryable" /> object that can evaluate the query represented by a specified expression tree. This + method delegates to <see cref="M:Remotion.Data.Linq.QueryProviderBase.CreateQuery``1(System.Linq.Expressions.Expression)" />. + </summary><param name="expression">An expression tree that represents a LINQ query.</param></member><member name="M:Remotion.Data.Linq.QueryProviderBase.CreateQuery``1(System.Linq.Expressions.Expression)"><summary> + Constructs an <see cref="T:System.Linq.IQueryable`1" /> object that can evaluate the query represented by a specified expression tree. This method is + called by the standard query operators defined by the <see cref="T:System.Linq.Queryable" /> class. + </summary><param name="expression">An expression tree that represents a LINQ query.</param></member><member name="M:Remotion.Data.Linq.QueryProviderBase.Execute``1(System.Linq.Expressions.Expression)"><summary> + Executes the query defined by the specified expression by parsing it with a + <see cref="T:Remotion.Data.Linq.Parsing.Structure.QueryParser" /> and then running it through the <see cref="P:Remotion.Data.Linq.QueryProviderBase.Executor" />. + This method is invoked through the <see cref="T:System.Linq.IQueryProvider" /> interface by methods such as + <see cref="M:System.Linq.Queryable.First``1(System.Linq.IQueryable{``0})" /> and + <see cref="M:System.Linq.Queryable.Count``1(System.Linq.IQueryable{``0})" />, and it's also invoked by <see cref="T:Remotion.Data.Linq.QueryableBase`1" /> + when the <see cref="T:System.Linq.IQueryable`1" /> is enumerated. + </summary></member><member name="M:Remotion.Data.Linq.QueryProviderBase.GenerateQueryModel(System.Linq.Expressions.Expression)"><summary> + The method generates a <see cref="T:Remotion.Data.Linq.QueryModel" />. + </summary><param name="expression">The query as expression chain.</param></member><member name="P:Remotion.Data.Linq.QueryProviderBase.Executor"><summary> + Gets or sets the implementation of <see cref="T:Remotion.Data.Linq.IQueryExecutor" /> used to execute queries created via <see cref="M:Remotion.Data.Linq.QueryProviderBase.CreateQuery``1(System.Linq.Expressions.Expression)" />. + </summary></member><member name="P:Remotion.Data.Linq.QueryProviderBase.ExpressionTreeParser"><summary> + Gets the <see cref="P:Remotion.Data.Linq.QueryProviderBase.ExpressionTreeParser" /> used by this <see cref="T:Remotion.Data.Linq.QueryProviderBase" /> to parse LINQ <see cref="T:System.Linq.Expressions.Expression" /> + trees. + </summary></member><member name="M:Remotion.Data.Linq.DefaultQueryProvider.CreateQuery``1(System.Linq.Expressions.Expression)"><summary> + Creates a new <see cref="T:System.Linq.IQueryable" /> (of type <see cref="P:Remotion.Data.Linq.DefaultQueryProvider.QueryableType" /> with <typeparamref name="T" /> as its generic argument) that + represents the query defined by <paramref name="expression" /> and is able to enumerate its results. + </summary><param name="expression">An expression representing the query for which a <see cref="T:System.Linq.IQueryable`1" /> should be created.</param></member><member name="P:Remotion.Data.Linq.DefaultQueryProvider.QueryableType"><summary> + Gets the type of queryable created by this provider. This is the generic type definition of an implementation of <see cref="T:System.Linq.IQueryable`1" /> + (usually a subclass of <see cref="T:Remotion.Data.Linq.QueryableBase`1" />) with exactly one type argument. + </summary></member><member name="T:Remotion.Data.Linq.IQueryExecutor"><summary> + Constitutes the bridge between re-linq and a concrete query provider implementation. Concrete providers implement this interface + and <see cref="T:Remotion.Data.Linq.QueryProviderBase" /> calls the respective method of the interface implementation when a query is to be executed. + </summary></member><member name="M:Remotion.Data.Linq.IQueryExecutor.ExecuteScalar``1(Remotion.Data.Linq.QueryModel)"><summary> + Executes the given <paramref name="queryModel" /> as a scalar query, i.e. as a query returning a scalar value of type <typeparamref name="T" />. + The query ends with a scalar result operator, for example a <see cref="T:Remotion.Data.Linq.Clauses.ResultOperators.CountResultOperator" /> or a <see cref="T:Remotion.Data.Linq.Clauses.ResultOperators.SumResultOperator" />. + </summary><param name="queryModel">The <see cref="T:Remotion.Data.Linq.QueryModel" /> representing the query to be executed. Analyze this via an + <see cref="T:Remotion.Data.Linq.IQueryModelVisitor" />.</param></member><member name="M:Remotion.Data.Linq.IQueryExecutor.ExecuteSingle``1(Remotion.Data.Linq.QueryModel,System.Boolean)"><summary> + Executes the given <paramref name="queryModel" /> as a single object query, i.e. as a query returning a single object of type + <typeparamref name="T" />. + The query ends with a single result operator, for example a <see cref="T:Remotion.Data.Linq.Clauses.ResultOperators.FirstResultOperator" /> or a <see cref="T:Remotion.Data.Linq.Clauses.ResultOperators.SingleResultOperator" />. + </summary><param name="queryModel">The <see cref="T:Remotion.Data.Linq.QueryModel" /> representing the query to be executed. Analyze this via an + <see cref="T:Remotion.Data.Linq.IQueryModelVisitor" />.</param><param name="returnDefaultWhenEmpty">If <see langword="true" />, the executor must return a default value when its result set is empty; + if <see langword="false" />, it should throw an <see cref="T:System.InvalidOperationException" /> when its result set is empty.</param></member><member name="M:Remotion.Data.Linq.IQueryExecutor.ExecuteCollection``1(Remotion.Data.Linq.QueryModel)"><summary> + Executes the given <paramref name="queryModel" /> as a collection query, i.e. as a query returning objects of type <typeparamref name="T" />. + The query does not end with a scalar result operator, but it can end with a single result operator, for example + <see cref="T:Remotion.Data.Linq.Clauses.ResultOperators.SingleResultOperator" /> or <see cref="T:Remotion.Data.Linq.Clauses.ResultOperators.FirstResultOperator" />. In such a case, the returned enumerable must yield exactly + one object (or none if the last result operator allows empty result sets). + </summary><param name="queryModel">The <see cref="T:Remotion.Data.Linq.QueryModel" /> representing the query to be executed. Analyze this via an + <see cref="T:Remotion.Data.Linq.IQueryModelVisitor" />.</param></member><member name="T:Remotion.Data.Linq.IQueryModelVisitor"><summary> + Defines an interface for visiting the clauses of a <see cref="T:Remotion.Data.Linq.QueryModel" />. + </summary></member><member name="T:Remotion.Data.Linq.QueryableBase`1"><summary> + Acts as a common base class for <see cref="T:System.Linq.IQueryable`1" /> implementations based on re-linq. In a specific LINQ provider, a custom queryable + class should be derived from <see cref="T:Remotion.Data.Linq.QueryableBase`1" /> which supplies an implementation of <see cref="T:Remotion.Data.Linq.IQueryExecutor" /> that is used to + execute the query. This is then used as an entry point (the main data source) of a LINQ query. + </summary></member><member name="M:Remotion.Data.Linq.QueryableBase`1.#ctor(Remotion.Data.Linq.IQueryExecutor)"><summary> + Initializes a new instance of the <see cref="T:Remotion.Data.Linq.QueryableBase`1" /> class with a <see cref="T:Remotion.Data.Linq.DefaultQueryProvider" /> and the given + <paramref name="executor" />. This constructor should be used by subclasses to begin a new query. The <see cref="P:Remotion.Data.Linq.QueryableBase`1.Expression" /> generated by + this constructor is a <see cref="T:System.Linq.Expressions.ConstantExpression" /> pointing back to this <see cref="T:Remotion.Data.Linq.QueryableBase`1" />. + </summary><param name="executor">The <see cref="T:Remotion.Data.Linq.IQueryExecutor" /> used to execute the query represented by this <see cref="T:Remotion.Data.Linq.QueryableBase`1" />.</param></member><member name="M:Remotion.Data.Linq.QueryableBase`1.#ctor(System.Linq.IQueryProvider)"><summary> + Initializes a new instance of the <see cref="T:Remotion.Data.Linq.QueryableBase`1" /> class with a specific <see cref="T:System.Linq.IQueryProvider" />. This constructor + should only be used to begin a query when <see cref="T:Remotion.Data.Linq.DefaultQueryProvider" /> does not fit the requirements. + </summary><param name="provider">The provider used to execute the query represented by this <see cref="T:Remotion.Data.Linq.QueryableBase`1" /> and to construct + queries around this <see cref="T:Remotion.Data.Linq.QueryableBase`1" />.</param></member><member name="M:Remotion.Data.Linq.QueryableBase`1.#ctor(System.Linq.IQueryProvider,System.Linq.Expressions.Expression)"><summary> + Initializes a new instance of the <see cref="T:Remotion.Data.Linq.QueryableBase`1" /> class with a given <paramref name="provider" /> and + <paramref name="expression" />. A constructor with a matching signature must be exposed on subclasses because it is used by + <see cref="T:Remotion.Data.Linq.DefaultQueryProvider" /> to construct queries around this <see cref="T:Remotion.Data.Linq.QueryableBase`1" /> when a query method (e.g. of the + <see cref="T:System.Linq.Queryable" /> class) is called. + </summary><param name="provider">The provider used to execute the query represented by this <see cref="T:Remotion.Data.Linq.QueryableBase`1" /> and to construct + queries around this <see cref="T:Remotion.Data.Linq.QueryableBase`1" />.</param><param name="expression">The expression representing the query.</param></member><member name="M:Remotion.Data.Linq.QueryableBase`1.GetEnumerator"><summary> + Executes the query via the <see cref="P:Remotion.Data.Linq.QueryableBase`1.Provider" /> and returns an enumerator that iterates through the items returned by the query. + </summary></member><member name="P:Remotion.Data.Linq.QueryableBase`1.Expression"><summary> + Gets the expression tree that is associated with the instance of <see cref="T:System.Linq.IQueryable" />. This expression describes the + query represented by this <see cref="T:Remotion.Data.Linq.QueryableBase`1" />. + </summary></member><member name="P:Remotion.Data.Linq.QueryableBase`1.Provider"><summary> + Gets the query provider that is associated with this data source. The provider is used to execute the query. By default, a + <see cref="T:Remotion.Data.Linq.DefaultQueryProvider" /> is used that parses the query and passes it on to an implementation of <see cref="T:Remotion.Data.Linq.IQueryExecutor" />. + </summary></member><member name="P:Remotion.Data.Linq.QueryableBase`1.ElementType"><summary> + Gets the type of the element(s) that are returned when the expression tree associated with this instance of <see cref="T:System.Linq.IQueryable" /> is executed. + </summary></member><member name="T:Remotion.Data.Linq.QueryModel"><summary> + Provides an abstraction of an expression tree created for a LINQ query. <see cref="T:Remotion.Data.Linq.QueryModel" /> instances are passed to LINQ providers based + on re-linq via <see cref="T:Remotion.Data.Linq.IQueryExecutor" />, but you can also use <see cref="T:Remotion.Data.Linq.Parsing.Structure.QueryParser" /> to parse an expression tree by hand or construct + a <see cref="T:Remotion.Data.Linq.QueryModel" /> manually via its constructor. + </summary></member><member name="M:Remotion.Data.Linq.QueryModel.#ctor(Remotion.Data.Linq.Clauses.MainFromClause,Remotion.Data.Linq.Clauses.SelectClause)"><summary> + Initializes a new instance of <see cref="T:Remotion.Data.Linq.QueryModel" /> + </summary><param name="mainFromClause">The <see cref="T:Remotion.Data.Linq.Clauses.MainFromClause" /> of the query. This is the starting point of the query, generating items + that are filtered and projected by the query.</param><param name="selectClause">The <see cref="P:Remotion.Data.Linq.QueryModel.SelectClause" /> of the query. This is the end point of + the query, it defines what is actually returned for each of the items coming from the <see cref="P:Remotion.Data.Linq.QueryModel.MainFromClause" /> and passing the + <see cref="P:Remotion.Data.Linq.QueryModel.BodyClauses" />. After it, only the <see cref="P:Remotion.Data.Linq.QueryModel.ResultOperators" /> modify the result of the query.</param></member><member name="M:Remotion.Data.Linq.QueryModel.GetOutputDataInfo"><summary> + Gets an <see cref="T:Remotion.Data.Linq.Clauses.StreamedData.IStreamedDataInfo" /> object describing the data streaming out of this <see cref="T:Remotion.Data.Linq.QueryModel" />. If a query ends with + the <see cref="P:Remotion.Data.Linq.QueryModel.SelectClause" />, this corresponds to <see cref="M:Remotion.Data.Linq.Clauses.SelectClause.GetOutputDataInfo" />. If a query has + <see cref="P:Remotion.Data.Linq.QueryModel.ResultOperators" />, the data is further modified by those operators. + </summary></member><member name="M:Remotion.Data.Linq.QueryModel.GetUniqueIdentfierGenerator"><summary> + Gets the <see cref="T:Remotion.Data.Linq.UniqueIdentifierGenerator" /> which is used by the <see cref="T:Remotion.Data.Linq.QueryModel" />. + </summary></member><member name="M:Remotion.Data.Linq.QueryModel.Accept(Remotion.Data.Linq.IQueryModelVisitor)"><summary> + Accepts an implementation of <see cref="T:Remotion.Data.Linq.IQueryModelVisitor" /> or <see cref="T:Remotion.Data.Linq.QueryModelVisitorBase" />, as defined by the Visitor pattern. + </summary></member><member name="M:Remotion.Data.Linq.QueryModel.ToString"><summary> + Returns a <see cref="T:System.String" /> representation of this <see cref="T:Remotion.Data.Linq.QueryModel" />. + </summary></member><member name="M:Remotion.Data.Linq.QueryModel.Clone"><summary> + Clones this <see cref="T:Remotion.Data.Linq.QueryModel" />, returning a new <see cref="T:Remotion.Data.Linq.QueryModel" /> equivalent to this instance, but with its clauses being + clones of this instance's clauses. Any <see cref="T:Remotion.Data.Linq.Clauses.Expressions.QuerySourceReferenceExpression" /> in the cloned clauses that points back to another clause + in this <see cref="T:Remotion.Data.Linq.QueryModel" /> (including its subqueries) is adjusted to point to the respective clones in the cloned + <see cref="T:Remotion.Data.Linq.QueryModel" />. Any subquery nested in the <see cref="T:Remotion.Data.Linq.QueryModel" /> is also cloned. + </summary></member><member name="M:Remotion.Data.Linq.QueryModel.Clone(Remotion.Data.Linq.Clauses.QuerySourceMapping)"><summary> + Clones this <see cref="T:Remotion.Data.Linq.QueryModel" />, returning a new <see cref="T:Remotion.Data.Linq.QueryModel" /> equivalent to this instance, but with its clauses being + clones of this instance's clauses. Any <see cref="T:Remotion.Data.Linq.Clauses.Expressions.QuerySourceReferenceExpression" /> in the cloned clauses that points back to another clause + in this <see cref="T:Remotion.Data.Linq.QueryModel" /> (including its subqueries) is adjusted to point to the respective clones in the cloned + <see cref="T:Remotion.Data.Linq.QueryModel" />. Any subquery nested in the <see cref="T:Remotion.Data.Linq.QueryModel" /> is also cloned. + </summary><param name="querySourceMapping">The <see cref="T:Remotion.Data.Linq.Clauses.QuerySourceMapping" /> defining how to adjust instances of + <see cref="T:Remotion.Data.Linq.Clauses.Expressions.QuerySourceReferenceExpression" /> in the cloned <see cref="T:Remotion.Data.Linq.QueryModel" />. If there is a <see cref="T:Remotion.Data.Linq.Clauses.Expressions.QuerySourceReferenceExpression" /> + that points out of the <see cref="T:Remotion.Data.Linq.QueryModel" /> being cloned, specify its replacement via this parameter. At the end of the cloning process, + this object maps all the clauses in this original <see cref="T:Remotion.Data.Linq.QueryModel" /> to the clones created in the process. + </param></member><member name="M:Remotion.Data.Linq.QueryModel.TransformExpressions(System.Func{System.Linq.Expressions.Expression,System.Linq.Expressions.Expression})"><summary> + Transforms all the expressions in this <see cref="T:Remotion.Data.Linq.QueryModel" />'s clauses via the given <paramref name="transformation" /> delegate. + </summary><param name="transformation">The transformation object. This delegate is called for each <see cref="T:System.Linq.Expressions.Expression" /> within this + <see cref="T:Remotion.Data.Linq.QueryModel" />, and those expressions will be replaced with what the delegate returns.</param></member><member name="M:Remotion.Data.Linq.QueryModel.GetNewName(System.String)"><summary> + Returns a new name with the given prefix. The name is different from that of any <see cref="T:Remotion.Data.Linq.Clauses.FromClauseBase" /> added + in the <see cref="T:Remotion.Data.Linq.QueryModel" />. Note that clause names that are changed after the clause is added as well as names of other clauses + than from clauses are not considered when determining "unique" names. Use names only for readability and debugging, not + for uniquely identifying clauses. + </summary></member><member name="M:Remotion.Data.Linq.QueryModel.Execute(Remotion.Data.Linq.IQueryExecutor)"><summary> + Executes this <see cref="T:Remotion.Data.Linq.QueryModel" /> via the given <see cref="T:Remotion.Data.Linq.IQueryExecutor" />. By default, this indirectly calls + <see cref="M:Remotion.Data.Linq.IQueryExecutor.ExecuteCollection``1(Remotion.Data.Linq.QueryModel)" />, but this can be modified by the <see cref="P:Remotion.Data.Linq.QueryModel.ResultOperators" />. + </summary><param name="executor">The <see cref="T:Remotion.Data.Linq.IQueryExecutor" /> to use for executing this query.</param></member><member name="M:Remotion.Data.Linq.QueryModel.IsIdentityQuery"><summary> + Determines whether this <see cref="T:Remotion.Data.Linq.QueryModel" /> represents an identity query. An identity query is a query without any body clauses + whose <see cref="P:Remotion.Data.Linq.QueryModel.SelectClause" /> selects exactly the items produced by its <see cref="P:Remotion.Data.Linq.QueryModel.MainFromClause" />. An identity query can have + <see cref="P:Remotion.Data.Linq.QueryModel.ResultOperators" />. + </summary></member><member name="P:Remotion.Data.Linq.QueryModel.MainFromClause"><summary> + Gets or sets the query's <see cref="T:Remotion.Data.Linq.Clauses.MainFromClause" />. This is the starting point of the query, generating items that are processed by + the <see cref="P:Remotion.Data.Linq.QueryModel.BodyClauses" /> and projected or grouped by the <see cref="P:Remotion.Data.Linq.QueryModel.SelectClause" />. + </summary></member><member name="P:Remotion.Data.Linq.QueryModel.SelectClause"><summary> + Gets or sets the query's select clause. This is the end point of the query, it defines what is actually returned for each of the + items coming from the <see cref="P:Remotion.Data.Linq.QueryModel.MainFromClause" /> and passing the <see cref="P:Remotion.Data.Linq.QueryModel.BodyClauses" />. After it, only the <see cref="P:Remotion.Data.Linq.QueryModel.ResultOperators" /> + modify the result of the query. + </summary></member><member name="P:Remotion.Data.Linq.QueryModel.BodyClauses"><summary> + Gets a collection representing the query's body clauses. Body clauses take the items generated by the <see cref="P:Remotion.Data.Linq.QueryModel.MainFromClause" />, + filtering (<see cref="T:Remotion.Data.Linq.Clauses.WhereClause" />), ordering (<see cref="T:Remotion.Data.Linq.Clauses.OrderByClause" />), augmenting (<see cref="T:Remotion.Data.Linq.Clauses.AdditionalFromClause" />), or otherwise + processing them before they are passed to the <see cref="P:Remotion.Data.Linq.QueryModel.SelectClause" />. + </summary></member><member name="P:Remotion.Data.Linq.QueryModel.ResultOperators"><summary> + Gets the result operators attached to this <see cref="P:Remotion.Data.Linq.QueryModel.SelectClause" />. Result operators modify the query's result set, aggregating, + filtering, or otherwise processing the result before it is returned. + </summary></member><member name="T:Remotion.Data.Linq.QueryModelBuilder"><summary> + Collects clauses and creates a <see cref="T:Remotion.Data.Linq.QueryModel" /> from them. This provides a simple way to first add all the clauses and then + create the <see cref="T:Remotion.Data.Linq.QueryModel" /> rather than the two-step approach (first <see cref="P:Remotion.Data.Linq.QueryModelBuilder.SelectClause" /> and <see cref="P:Remotion.Data.Linq.QueryModelBuilder.MainFromClause" />, + then the <see cref="T:Remotion.Data.Linq.Clauses.IBodyClause" />s) required by <see cref="T:Remotion.Data.Linq.QueryModel" />'s constructor. + </summary></member><member name="T:Remotion.Data.Linq.QueryModelVisitorBase"><summary> + Provides a default implementation of <see cref="T:Remotion.Data.Linq.IQueryModelVisitor" /> which automatically visits child items. That is, the default + implementation of <see cref="M:Remotion.Data.Linq.QueryModelVisitorBase.VisitQueryModel(Remotion.Data.Linq.QueryModel)" /> automatically calls <c>Accept</c> on all clauses in the <see cref="T:Remotion.Data.Linq.QueryModel" /> + and the default implementation of <see cref="M:Remotion.Data.Linq.QueryModelVisitorBase.VisitOrderByClause(Remotion.Data.Linq.Clauses.OrderByClause,Remotion.Data.Linq.QueryModel,System.Int32)" /> automatically calls <see cref="M:Remotion.Data.Linq.Clauses.Ordering.Accept(Remotion.Data.Linq.IQueryModelVisitor,Remotion.Data.Linq.QueryModel,Remotion.Data.Linq.Clauses.OrderByClause,System.Int32)" /> on the + <see cref="T:Remotion.Data.Linq.Clauses.Ordering" /> instances in its <see cref="P:Remotion.Data.Linq.Clauses.OrderByClause.Orderings" /> collection, and so on. + </summary></member><member name="T:Remotion.Data.Linq.UniqueIdentifierGenerator"><summary> + Generates unique identifiers based on a set of known identifiers. + An identifier is generated by appending a number to a given prefix. The identifier is considered unique when no known identifier + exists which equals the prefix/number combination. + </summary></member><member name="M:Remotion.Data.Linq.UniqueIdentifierGenerator.AddKnownIdentifier(System.String)"><summary> + Adds the given <paramref name="identifier" /> to the set of known identifiers. + </summary><param name="identifier">The identifier to add.</param></member><member name="M:Remotion.Data.Linq.UniqueIdentifierGenerator.GetUniqueIdentifier(System.String)"><summary> + Gets a unique identifier starting with the given <paramref name="prefix" />. The identifier is generating by appending a number to the + prefix so that the resulting string does not match a known identifier. + </summary><param name="prefix">The prefix to use for the identifier.</param></member><member name="T:Remotion.Data.Linq.UnmappedItemException"><summary> + TODO: add summary + </summary></member><member name="T:Remotion.Data.Linq.Clauses.Expressions.ExtensionExpression"><summary> + Acts as a base class for custom extension expressions, providing advanced visitor support. Also allows extension expressions to be reduced to + a tree of standard expressions with equivalent semantics. + </summary></member><member name="F:Remotion.Data.Linq.Clauses.Expressions.ExtensionExpression.ExtensionExpressionNodeType"><summary> + Defines a standard <see cref="T:System.Linq.Expressions.ExpressionType" /> value that is used by all <see cref="T:Remotion.Data.Linq.Clauses.Expressions.ExtensionExpression" /> subclasses. + </summary></member><member name="M:Remotion.Data.Linq.Clauses.Expressions.ExtensionExpression.#ctor(System.Type)"><summary> + Initializes a new instance of the <see cref="T:Remotion.Data.Linq.Clauses.Expressions.ExtensionExpression" /> class. + </summary><param name="type">The type of the value represented by the <see cref="T:Remotion.Data.Linq.Clauses.Expressions.ExtensionExpression" />.</param></member><member name="M:Remotion.Data.Linq.Clauses.Expressions.ExtensionExpression.Reduce"><summary> + Reduces this instance to a tree of standard expressions. If this instance cannot be reduced, the same <see cref="T:Remotion.Data.Linq.Clauses.Expressions.ExtensionExpression" /> + is returned. + </summary></member><member name="M:Remotion.Data.Linq.Clauses.Expressions.ExtensionExpression.ReduceAndCheck"><summary> + Calls the <see cref="M:Remotion.Data.Linq.Clauses.Expressions.ExtensionExpression.Reduce" /> method and checks certain invariants before returning the result. This method can only be called when + <see cref="P:Remotion.Data.Linq.Clauses.Expressions.ExtensionExpression.CanReduce" /> returns <see langword="true" />. + </summary></member><member name="M:Remotion.Data.Linq.Clauses.Expressions.ExtensionExpression.Accept(Remotion.Data.Linq.Parsing.ExpressionTreeVisitor)"><summary> + Accepts the specified visitor, by default dispatching to <see cref="M:Remotion.Data.Linq.Parsing.ExpressionTreeVisitor.VisitExtensionExpression(Remotion.Data.Linq.Clauses.Expressions.ExtensionExpression)" />. + Inheritors of the <see cref="T:Remotion.Data.Linq.Clauses.Expressions.ExtensionExpression" /> class can override this method in order to dispatch to a specific Visit method. + </summary><param name="visitor">The visitor whose Visit method should be invoked.</param></member><member name="M:Remotion.Data.Linq.Clauses.Expressions.ExtensionExpression.VisitChildren(Remotion.Data.Linq.Parsing.ExpressionTreeVisitor)"><summary> + Must be overridden by <see cref="T:Remotion.Data.Linq.Clauses.Expressions.ExtensionExpression" /> subclasses by calling <see cref="M:Remotion.Data.Linq.Parsing.ExpressionTreeVisitor.VisitExpression(System.Linq.Expressions.Expression)" /> on all + children of this extension node. + </summary><param name="visitor">The visitor to visit the child nodes with.</param></member><member name="P:Remotion.Data.Linq.Clauses.Expressions.ExtensionExpression.CanReduce"><summary> + Gets a value indicating whether this instance can be reduced to a tree of standard expressions. + </summary></member><member name="T:Remotion.Data.Linq.Clauses.Expressions.IVBSpecificExpressionVisitor"><summary> + This interface should be implemented by visitors that handle VB-specific expressions. + </summary></member><member name="T:Remotion.Data.Linq.Clauses.Expressions.QuerySourceReferenceExpression"><summary> + Represents an expression tree node that points to a query source represented by a <see cref="T:Remotion.Data.Linq.Clauses.FromClauseBase" />. These expressions should always + point back, to a clause defined prior to the clause holding a <see cref="T:Remotion.Data.Linq.Clauses.Expressions.QuerySourceReferenceExpression" />. Otherwise, exceptions might be + thrown at runtime. + </summary></member><member name="M:Remotion.Data.Linq.Clauses.Expressions.QuerySourceReferenceExpression.Equals(System.Object)"><summary> + Determines whether the specified <see cref="T:System.Object" /> is equal to the current <see cref="T:Remotion.Data.Linq.Clauses.Expressions.QuerySourceReferenceExpression" /> by + comparing the <see cref="P:Remotion.Data.Linq.Clauses.Expressions.QuerySourceReferenceExpression.ReferencedQuerySource" /> properties for reference equality. + </summary><param name="obj">The <see cref="T:System.Object" /> to compare with the current <see cref="T:Remotion.Data.Linq.Clauses.Expressions.QuerySourceReferenceExpression" />.</param></member><member name="P:Remotion.Data.Linq.Clauses.Expressions.QuerySourceReferenceExpression.ReferencedQuerySource"><summary> + Gets the query source referenced by this expression. + </summary></member><member name="T:Remotion.Data.Linq.Clauses.Expressions.SubQueryExpression"><summary> + Represents an <see cref="T:System.Linq.Expressions.Expression" /> that holds a subquery. The subquery is held by <see cref="P:Remotion.Data.Linq.Clauses.Expressions.SubQueryExpression.QueryModel" /> in its parsed form. + </summary></member><member name="T:Remotion.Data.Linq.Clauses.Expressions.VBStringComparisonExpression"><summary> + Represents a VB-specific comparison expression. To explicitly support this expression type, implement <see cref="T:Remotion.Data.Linq.Clauses.Expressions.IVBSpecificExpressionVisitor" />. + To treat this expression as if it were an ordinary <see cref="T:System.Linq.Expressions.BinaryExpression" />, call its <see cref="M:Remotion.Data.Linq.Clauses.Expressions.VBStringComparisonExpression.Reduce" /> method and visit the result. + </summary></member><member name="T:Remotion.Data.Linq.Clauses.ExpressionTreeVisitors.AccessorFindingExpressionTreeVisitor"><summary> + Constructs a <see cref="T:System.Linq.Expressions.LambdaExpression" /> that is able to extract a specific simple expression from a complex <see cref="T:System.Linq.Expressions.NewExpression" /> + or <see cref="T:System.Linq.Expressions.MemberInitExpression" />. + </summary></member><member name="T:Remotion.Data.Linq.Parsing.ExpressionTreeVisitor"><summary> + Provides a base class that can be used for visiting and optionally transforming each node of an <see cref="T:System.Linq.Expressions.Expression" /> tree in a + strongly typed fashion. + This is the base class of many transformation classes. + </summary></member><member name="M:Remotion.Data.Linq.Clauses.ExpressionTreeVisitors.AccessorFindingExpressionTreeVisitor.FindAccessorLambda(System.Linq.Expressions.Expression,System.Linq.Expressions.Expression,System.Linq.Expressions.ParameterExpression)"><summary> + Constructs a <see cref="T:System.Linq.Expressions.LambdaExpression" /> that is able to extract a specific simple <paramref name="searchedExpression" /> from a + complex <paramref name="fullExpression" />. + </summary><param name="searchedExpression">The expression an accessor to which should be created.</param><param name="fullExpression">The full expression containing the <paramref name="searchedExpression" />.</param><param name="inputParameter">The input parameter to be used by the resulting lambda. Its type must match the type of <paramref name="fullExpression" />.</param></member><member name="T:Remotion.Data.Linq.Clauses.ExpressionTreeVisitors.CloningExpressionTreeVisitor"><summary> + Visits an <see cref="T:System.Linq.Expressions.Expression" /> tree, replacing all <see cref="T:Remotion.Data.Linq.Clauses.Expressions.QuerySourceReferenceExpression" /> instances with references to cloned clauses, + as defined by a <see cref="T:Remotion.Data.Linq.Clauses.QuerySourceMapping" />. In addition, all <see cref="T:Remotion.Data.Linq.QueryModel" /> instances in + <see cref="T:Remotion.Data.Linq.Clauses.Expressions.SubQueryExpression">SubQueryExpressions</see> are cloned, and their references also replaces. All referenced clauses must be mapped + to cloned clauses in the given <see cref="T:Remotion.Data.Linq.Clauses.QuerySourceMapping" />, otherwise an expression is thrown. This is used by <see cref="M:Remotion.Data.Linq.QueryModel.Clone" /> + to adjust references to the old <see cref="T:Remotion.Data.Linq.QueryModel" /> with references to the new <see cref="T:Remotion.Data.Linq.QueryModel" />. + </summary></member><member name="T:Remotion.Data.Linq.Clauses.ExpressionTreeVisitors.ReferenceReplacingExpressionTreeVisitor"><summary> + Takes an expression and replaces all <see cref="T:Remotion.Data.Linq.Clauses.Expressions.QuerySourceReferenceExpression" /> instances, as defined by a given <see cref="P:Remotion.Data.Linq.Clauses.ExpressionTreeVisitors.ReferenceReplacingExpressionTreeVisitor.QuerySourceMapping" />. + This is used whenever references to query sources should be replaced by a transformation. + </summary></member><member name="M:Remotion.Data.Linq.Clauses.ExpressionTreeVisitors.ReferenceReplacingExpressionTreeVisitor.ReplaceClauseReferences(System.Linq.Expressions.Expression,Remotion.Data.Linq.Clauses.QuerySourceMapping,System.Boolean)"><summary> + Takes an expression and replaces all <see cref="T:Remotion.Data.Linq.Clauses.Expressions.QuerySourceReferenceExpression" /> instances, as defined by a given + <paramref name="querySourceMapping" />. + </summary><param name="expression">The expression to be scanned for references.</param><param name="querySourceMapping">The clause mapping to be used for replacing <see cref="T:Remotion.Data.Linq.Clauses.Expressions.QuerySourceReferenceExpression" /> instances.</param><param name="throwOnUnmappedReferences">If <see langword="true" />, the visitor will throw an exception when + <see cref="T:Remotion.Data.Linq.Clauses.Expressions.QuerySourceReferenceExpression" /> not mapped in the <paramref name="querySourceMapping" /> is encountered. If <see langword="false" />, + the visitor will ignore such expressions.</param></member><member name="M:Remotion.Data.Linq.Clauses.ExpressionTreeVisitors.CloningExpressionTreeVisitor.AdjustExpressionAfterCloning(System.Linq.Expressions.Expression,Remotion.Data.Linq.Clauses.QuerySourceMapping)"><summary> + Adjusts the given expression for cloning, that is replaces <see cref="T:Remotion.Data.Linq.Clauses.Expressions.QuerySourceReferenceExpression" /> and <see cref="T:Remotion.Data.Linq.Clauses.Expressions.SubQueryExpression" /> + instances. All referenced clauses must be mapped to clones in the given <paramref name="querySourceMapping" />, otherwise an exception is thrown. + </summary><param name="expression">The expression to be adjusted.</param><param name="querySourceMapping">The clause mapping to be used for replacing <see cref="T:Remotion.Data.Linq.Clauses.Expressions.QuerySourceReferenceExpression" /> instances.</param></member><member name="T:Remotion.Data.Linq.Clauses.ExpressionTreeVisitors.FormattingExpressionTreeVisitor"><summary> + Transforms an expression tree into a human-readable string, taking all the custom expression nodes into account. + It does so by replacing all instances of custom expression nodes by parameters that have the desired string as their names. This is done + to circumvent a limitation in the <see cref="T:System.Linq.Expressions.Expression" /> class, where overriding <see cref="M:System.Linq.Expressions.Expression.ToString" /> in custom expressions + will not work. + </summary></member><member name="T:Remotion.Data.Linq.Clauses.ExpressionTreeVisitors.ReverseResolvingExpressionTreeVisitor"><summary> + Performs a reverse <see cref="M:Remotion.Data.Linq.Parsing.Structure.IntermediateModel.IExpressionNode.Resolve(System.Linq.Expressions.ParameterExpression,System.Linq.Expressions.Expression,Remotion.Data.Linq.Parsing.Structure.IntermediateModel.ClauseGenerationContext)" /> operation, i.e. creates a <see cref="T:System.Linq.Expressions.LambdaExpression" /> from a given resolved expression, + substituting all <see cref="T:Remotion.Data.Linq.Clauses.Expressions.QuerySourceReferenceExpression" /> objects by getting the referenced objects from the lambda's input parameter. + </summary></member><member name="M:Remotion.Data.Linq.Clauses.ExpressionTreeVisitors.ReverseResolvingExpressionTreeVisitor.ReverseResolve(System.Linq.Expressions.Expression,System.Linq.Expressions.Expression)"><summary> + Performs a reverse <see cref="M:Remotion.Data.Linq.Parsing.Structure.IntermediateModel.IExpressionNode.Resolve(System.Linq.Expressions.ParameterExpression,System.Linq.Expressions.Expression,Remotion.Data.Linq.Parsing.Structure.IntermediateModel.ClauseGenerationContext)" /> operation, i.e. creates a <see cref="T:System.Linq.Expressions.LambdaExpression" /> from a given resolved expression, + substituting all <see cref="T:Remotion.Data.Linq.Clauses.Expressions.QuerySourceReferenceExpression" /> objects by getting the referenced objects from the lambda's input parameter. + </summary><param name="itemExpression">The item expression representing the items passed to the generated <see cref="T:System.Linq.Expressions.LambdaExpression" /> via its input + parameter.</param><param name="resolvedExpression">The resolved expression for which to generate a reverse resolved <see cref="T:System.Linq.Expressions.LambdaExpression" />.</param></member><member name="M:Remotion.Data.Linq.Clauses.ExpressionTreeVisitors.ReverseResolvingExpressionTreeVisitor.ReverseResolveLambda(System.Linq.Expressions.Expression,System.Linq.Expressions.LambdaExpression,System.Int32)"><summary> + Performs a reverse <see cref="M:Remotion.Data.Linq.Parsing.Structure.IntermediateModel.IExpressionNode.Resolve(System.Linq.Expressions.ParameterExpression,System.Linq.Expressions.Expression,Remotion.Data.Linq.Parsing.Structure.IntermediateModel.ClauseGenerationContext)" /> operation on a <see cref="T:System.Linq.Expressions.LambdaExpression" />, i.e. creates a new + <see cref="T:System.Linq.Expressions.LambdaExpression" /> with an additional parameter from a given resolved <see cref="T:System.Linq.Expressions.LambdaExpression" />, + substituting all <see cref="T:Remotion.Data.Linq.Clauses.Expressions.QuerySourceReferenceExpression" /> objects by getting the referenced objects from the new input parameter. + </summary><param name="itemExpression">The item expression representing the items passed to the generated <see cref="T:System.Linq.Expressions.LambdaExpression" /> via its new + input parameter.</param><param name="resolvedExpression">The resolved <see cref="T:System.Linq.Expressions.LambdaExpression" /> for which to generate a reverse resolved <see cref="T:System.Linq.Expressions.LambdaExpression" />.</param><param name="parameterInsertionPosition">The position at which to insert the new parameter.</param></member><member name="T:Remotion.Data.Linq.Clauses.ResultOperators.AggregateFromSeedResultOperator"><summary> + Represents aggregating the items returned by a query into a single value with an initial seeding value. + This is a result operator, operating on the whole result set of a query. + </summary></member><member name="T:Remotion.Data.Linq.Clauses.ResultOperators.ValueFromSequenceResultOperatorBase"><summary> + Represents a <see cref="T:Remotion.Data.Linq.Clauses.ResultOperatorBase" /> that is executed on a sequence, returning a scalar value or single item as its result. + </summary></member><member name="T:Remotion.Data.Linq.Clauses.ResultOperatorBase"><summary> + Represents an operation that is executed on the result set of the query, aggregating, filtering, or restricting the number of result items + before the query result is returned. + </summary></member><member name="M:Remotion.Data.Linq.Clauses.ResultOperatorBase.ExecuteInMemory(Remotion.Data.Linq.Clauses.StreamedData.IStreamedData)"><summary> + Executes this result operator in memory, on a given input. Executing result operators in memory should only be + performed if the target query system does not support the operator. + </summary><param name="input">The input for the result operator. This must match the type of <see cref="T:Remotion.Data.Linq.Clauses.StreamedData.IStreamedData" /> expected by the operator.</param></member><member name="M:Remotion.Data.Linq.Clauses.ResultOperatorBase.GetOutputDataInfo(Remotion.Data.Linq.Clauses.StreamedData.IStreamedDataInfo)"><summary> + Gets information about the data streamed out of this <see cref="T:Remotion.Data.Linq.Clauses.ResultOperatorBase" />. This contains the result type a query would have if + it ended with this <see cref="T:Remotion.Data.Linq.Clauses.ResultOperatorBase" />, and it optionally includes an <see cref="P:Remotion.Data.Linq.Clauses.StreamedData.StreamedSequenceInfo.ItemExpression" /> describing + the streamed sequence's items. + </summary><param name="inputInfo">Information about the data produced by the preceding <see cref="T:Remotion.Data.Linq.Clauses.ResultOperatorBase" />, or the <see cref="T:Remotion.Data.Linq.Clauses.SelectClause" /> + of the query if no previous <see cref="T:Remotion.Data.Linq.Clauses.ResultOperatorBase" /> exists.</param></member><member name="M:Remotion.Data.Linq.Clauses.ResultOperatorBase.Clone(Remotion.Data.Linq.Clauses.CloneContext)"><summary> + Clones this item, registering its clone with the <paramref name="cloneContext" /> if it is a query source clause. + </summary><param name="cloneContext">The clones of all query source clauses are registered with this <see cref="T:Remotion.Data.Linq.Clauses.CloneContext" />.</param></member><member name="M:Remotion.Data.Linq.Clauses.ResultOperatorBase.Accept(Remotion.Data.Linq.IQueryModelVisitor,Remotion.Data.Linq.QueryModel,System.Int32)"><summary> + Accepts the specified visitor by calling its <see cref="M:Remotion.Data.Linq.IQueryModelVisitor.VisitResultOperator(Remotion.Data.Linq.Clauses.ResultOperatorBase,Remotion.Data.Linq.QueryModel,System.Int32)" /> method. + </summary><param name="visitor">The visitor to accept.</param><param name="queryModel">The query model in whose context this clause is visited.</param><param name="index">The index of this item in the <paramref name="queryModel" />'s <see cref="P:Remotion.Data.Linq.QueryModel.ResultOperators" /> collection.</param></member><member name="M:Remotion.Data.Linq.Clauses.ResultOperatorBase.TransformExpressions(System.Func{System.Linq.Expressions.Expression,System.Linq.Expressions.Expression})"><summary> + Transforms all the expressions in this item via the given <paramref name="transformation" /> delegate. Subclasses must apply the + <paramref name="transformation" /> to any expressions they hold. If a subclass does not hold any expressions, it shouldn't do anything + in the implementation of this method. + </summary><param name="transformation">The transformation object. This delegate is called for each <see cref="T:System.Linq.Expressions.Expression" /> within this + item, and those expressions will be replaced with what the delegate returns.</param></member><member name="M:Remotion.Data.Linq.Clauses.ResultOperatorBase.InvokeGenericExecuteMethod``2(Remotion.Data.Linq.Clauses.StreamedData.IStreamedData,System.Func{``0,``1})"><summary> + Invokes a given generic method on an <see cref="T:Remotion.Data.Linq.Clauses.StreamedData.IStreamedData" /> input via Reflection. Use this to implement + <see cref="M:Remotion.Data.Linq.Clauses.ResultOperatorBase.ExecuteInMemory(Remotion.Data.Linq.Clauses.StreamedData.IStreamedData)" /> by defining a strongly typed, generic variant + of <see cref="M:Remotion.Data.Linq.Clauses.ResultOperatorBase.ExecuteInMemory(Remotion.Data.Linq.Clauses.StreamedData.IStreamedData)" />; then invoke that strongly typed + variant via <see cref="M:Remotion.Data.Linq.Clauses.ResultOperatorBase.InvokeGenericExecuteMethod``2(Remotion.Data.Linq.Clauses.StreamedData.IStreamedData,System.Func{``0,``1})" />. + </summary><param name="input">The input <see cref="T:Remotion.Data.Linq.Clauses.StreamedData.IStreamedData" /> object to invoke the method on..</param><param name="genericExecuteCaller">A delegate holding exactly one public generic method with exactly one generic argument. This method is + called via Reflection on the given <paramref name="input" /> argument.</param></member><member name="M:Remotion.Data.Linq.Clauses.ResultOperatorBase.InvokeExecuteMethod(System.Reflection.MethodInfo,System.Object)"><summary> + Invokes the given <paramref name="method" /> via reflection on the given <paramref name="input" />. + </summary><param name="input">The input to invoke the method with.</param><param name="method">The method to be invoked.</param></member><member name="M:Remotion.Data.Linq.Clauses.ResultOperatorBase.CheckSequenceItemType(Remotion.Data.Linq.Clauses.StreamedData.StreamedSequenceInfo,System.Type)"><summary> + Checks the type of the items retrieved by the sequence, throwing an <see cref="T:Remotion.Data.Linq.Utilities.ArgumentTypeException" /> if the items don't match the + expected type. + </summary><param name="sequenceInfo">The <see cref="T:Remotion.Data.Linq.Clauses.StreamedData.StreamedSequenceInfo" /> object describing the sequence.</param><param name="expectedItemType">The expected item type.</param></member><member name="M:Remotion.Data.Linq.Clauses.ResultOperatorBase.GetConstantValueFromExpression``1(System.String,System.Linq.Expressions.Expression)"><summary> + Gets the constant value of the given expression, assuming it is a <see cref="T:System.Linq.Expressions.ConstantExpression" />. If it is + not, an <see cref="T:System.InvalidOperationException" /> is thrown. + </summary><param name="expressionName">A string describing the value; this will be included in the exception message if an exception is thrown.</param><param name="expression">The expression whose value to get.</param></member><member name="M:Remotion.Data.Linq.Clauses.ResultOperators.AggregateFromSeedResultOperator.#ctor(System.Linq.Expressions.Expression,System.Linq.Expressions.LambdaExpression,System.Linq.Expressions.LambdaExpression)"><summary> + Initializes a new instance of the <see cref="T:Remotion.Data.Linq.Clauses.ResultOperators.AggregateFromSeedResultOperator" /> class. + </summary><param name="seed">The seed expression.</param><param name="func">The aggregating function. This is a <see cref="T:System.Linq.Expressions.LambdaExpression" /> taking a parameter that represents the value accumulated so + far and returns a new accumulated value. This is a resolved expression, i.e. items streaming in from prior clauses and result operators + are represented as expressions containing <see cref="T:Remotion.Data.Linq.Clauses.Expressions.QuerySourceReferenceExpression" /> nodes.</param><param name="optionalResultSelector">The result selector, can be <see langword="null" />.</param></member><member name="M:Remotion.Data.Linq.Clauses.ResultOperators.AggregateFromSeedResultOperator.GetConstantSeed``1"><summary> + Gets the constant value of the <see cref="P:Remotion.Data.Linq.Clauses.ResultOperators.AggregateFromSeedResultOperator.Seed" /> property, assuming it is a <see cref="T:System.Linq.Expressions.ConstantExpression" />. If it is + not, an <see cref="T:System.InvalidOperationException" /> is thrown. + </summary></member><member name="M:Remotion.Data.Linq.Clauses.ResultOperators.AggregateFromSeedResultOperator.ExecuteInMemory``1(Remotion.Data.Linq.Clauses.StreamedData.StreamedSequence)"></member><member name="M:Remotion.Data.Linq.Clauses.ResultOperators.AggregateFromSeedResultOperator.ExecuteAggregateInMemory``3(Remotion.Data.Linq.Clauses.StreamedData.StreamedSequence)"><summary> + Executes the aggregating operation in memory. + </summary><param name="input">The input sequence.</param></member><member name="M:Remotion.Data.Linq.Clauses.ResultOperators.AggregateFromSeedResultOperator.Clone(Remotion.Data.Linq.Clauses.CloneContext)"></member><member name="M:Remotion.Data.Linq.Clauses.ResultOperators.AggregateFromSeedResultOperator.GetOutputDataInfo(Remotion.Data.Linq.Clauses.StreamedData.IStreamedDataInfo)"></member><member name="M:Remotion.Data.Linq.Clauses.ResultOperators.AggregateFromSeedResultOperator.ToString"></member><member name="P:Remotion.Data.Linq.Clauses.ResultOperators.AggregateFromSeedResultOperator.Func"><summary> + Gets or sets the aggregating function. This is a <see cref="T:System.Linq.Expressions.LambdaExpression" /> taking a parameter that represents the value accumulated so + far and returns a new accumulated value. This is a resolved expression, i.e. items streaming in from prior clauses and result operators + are represented as expressions containing <see cref="T:Remotion.Data.Linq.Clauses.Expressions.QuerySourceReferenceExpression" /> nodes. + </summary></member><member name="P:Remotion.Data.Linq.Clauses.ResultOperators.AggregateFromSeedResultOperator.Seed"><summary> + Gets or sets the seed of the accumulation. This is an <see cref="T:System.Linq.Expressions.Expression" /> denoting the starting value of the aggregation. + </summary></member><member name="P:Remotion.Data.Linq.Clauses.ResultOperators.AggregateFromSeedResultOperator.OptionalResultSelector"><summary> + Gets or sets the result selector. This is a <see cref="T:System.Linq.Expressions.LambdaExpression" /> applied after the aggregation to select the final value. + Can be <see langword="null" />. + </summary></member><member name="T:Remotion.Data.Linq.Clauses.ResultOperators.AggregateResultOperator"><summary> + Represents aggregating the items returned by a query into a single value. The first item is used as the seeding value for the aggregating + function. + This is a result operator, operating on the whole result set of a query. + </summary></member><member name="M:Remotion.Data.Linq.Clauses.ResultOperators.AggregateResultOperator.#ctor(System.Linq.Expressions.LambdaExpression)"><summary> + Initializes a new instance of the <see cref="T:Remotion.Data.Linq.Clauses.ResultOperators.AggregateResultOperator" /> class. + </summary><param name="func">The aggregating function. This is a <see cref="T:System.Linq.Expressions.LambdaExpression" /> taking a parameter that represents the value accumulated so + far and returns a new accumulated value. This is a resolved expression, i.e. items streaming in from prior clauses and result operators + are represented as expressions containing <see cref="T:Remotion.Data.Linq.Clauses.Expressions.QuerySourceReferenceExpression" /> nodes.</param></member><member name="M:Remotion.Data.Linq.Clauses.ResultOperators.AggregateResultOperator.ExecuteInMemory``1(Remotion.Data.Linq.Clauses.StreamedData.StreamedSequence)"></member><member name="M:Remotion.Data.Linq.Clauses.ResultOperators.AggregateResultOperator.Clone(Remotion.Data.Linq.Clauses.CloneContext)"></member><member name="M:Remotion.Data.Linq.Clauses.ResultOperators.AggregateResultOperator.GetOutputDataInfo(Remotion.Data.Linq.Clauses.StreamedData.IStreamedDataInfo)"></member><member name="M:Remotion.Data.Linq.Clauses.ResultOperators.AggregateResultOperator.ToString"></member><member name="P:Remotion.Data.Linq.Clauses.ResultOperators.AggregateResultOperator.Func"><summary> + Gets or sets the aggregating function. This is a <see cref="T:System.Linq.Expressions.LambdaExpression" /> taking a parameter that represents the value accumulated so + far and returns a new accumulated value. This is a resolved expression, i.e. items streaming in from prior clauses and result operators + are represented as expressions containing <see cref="T:Remotion.Data.Linq.Clauses.Expressions.QuerySourceReferenceExpression" /> nodes. + </summary></member><member name="T:Remotion.Data.Linq.Clauses.ResultOperators.AllResultOperator"><summary> + Represents a check whether all items returned by a query satisfy a predicate. + This is a result operator, operating on the whole result set of a query. + </summary></member><member name="M:Remotion.Data.Linq.Clauses.ResultOperators.AllResultOperator.#ctor(System.Linq.Expressions.Expression)"><summary> + Initializes a new instance of the <see cref="T:Remotion.Data.Linq.Clauses.ResultOperators.AllResultOperator" /> class. + </summary><param name="predicate">The predicate to evaluate. This is a resolved version of the body of the <see cref="T:System.Linq.Expressions.LambdaExpression" /> that would be + passed to <see cref="M:System.Linq.Queryable.All``1(System.Linq.IQueryable{``0},System.Linq.Expressions.Expression{System.Func{``0,System.Boolean}})" />.</param></member><member name="M:Remotion.Data.Linq.Clauses.ResultOperators.AllResultOperator.ExecuteInMemory``1(Remotion.Data.Linq.Clauses.StreamedData.StreamedSequence)"></member><member name="M:Remotion.Data.Linq.Clauses.ResultOperators.AllResultOperator.Clone(Remotion.Data.Linq.Clauses.CloneContext)"></member><member name="M:Remotion.Data.Linq.Clauses.ResultOperators.AllResultOperator.TransformExpressions(System.Func{System.Linq.Expressions.Expression,System.Linq.Expressions.Expression})"></member><member name="M:Remotion.Data.Linq.Clauses.ResultOperators.AllResultOperator.GetOutputDataInfo(Remotion.Data.Linq.Clauses.StreamedData.IStreamedDataInfo)"></member><member name="M:Remotion.Data.Linq.Clauses.ResultOperators.AllResultOperator.ToString"></member><member name="P:Remotion.Data.Linq.Clauses.ResultOperators.AllResultOperator.Predicate"><summary> + Gets or sets the predicate to evaluate on all items in the sequence. + This is a resolved version of the body of the <see cref="T:System.Linq.Expressions.LambdaExpression" /> that would be + passed to <see cref="M:System.Linq.Queryable.All``1(System.Linq.IQueryable{``0},System.Linq.Expressions.Expression{System.Func{``0,System.Boolean}})" />. + </summary></member><member name="T:Remotion.Data.Linq.Clauses.ResultOperators.AnyResultOperator"><summary> + Represents a check whether any items are returned by a query. + This is a result operator, operating on the whole result set of a query. + </summary></member><member name="M:Remotion.Data.Linq.Clauses.ResultOperators.AnyResultOperator.ExecuteInMemory``1(Remotion.Data.Linq.Clauses.StreamedData.StreamedSequence)"></member><member name="M:Remotion.Data.Linq.Clauses.ResultOperators.AnyResultOperator.Clone(Remotion.Data.Linq.Clauses.CloneContext)"></me... [truncated message content] |
From: <pa...@us...> - 2010-12-25 04:48:31
|
Revision: 5338 http://nhibernate.svn.sourceforge.net/nhibernate/?rev=5338&view=rev Author: patearl Date: 2010-12-25 04:48:25 +0000 (Sat, 25 Dec 2010) Log Message: ----------- Fixed spacing in an error message. Modified Paths: -------------- trunk/nhibernate/src/NHibernate/PropertyValueException.cs Modified: trunk/nhibernate/src/NHibernate/PropertyValueException.cs =================================================================== --- trunk/nhibernate/src/NHibernate/PropertyValueException.cs 2010-12-25 00:40:50 UTC (rev 5337) +++ trunk/nhibernate/src/NHibernate/PropertyValueException.cs 2010-12-25 04:48:25 UTC (rev 5338) @@ -38,7 +38,7 @@ { get { - return base.Message + + return base.Message + " " + StringHelper.Qualify(entityName, propertyName); } } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <pa...@us...> - 2010-12-25 00:40:56
|
Revision: 5337 http://nhibernate.svn.sourceforge.net/nhibernate/?rev=5337&view=rev Author: patearl Date: 2010-12-25 00:40:50 +0000 (Sat, 25 Dec 2010) Log Message: ----------- Added a workaround for a .NET bug (pre 4.0) to support adding null to a List<Nullable<T>>. This was required to fix a bug in nullable linq sums. Added more tests for linq sums. Modified Paths: -------------- trunk/nhibernate/src/NHibernate/Util/ArrayHelper.cs trunk/nhibernate/src/NHibernate.Test/NHibernate.Test.csproj Added Paths: ----------- trunk/nhibernate/src/NHibernate.Test/Linq/SumTests.cs Modified: trunk/nhibernate/src/NHibernate/Util/ArrayHelper.cs =================================================================== --- trunk/nhibernate/src/NHibernate/Util/ArrayHelper.cs 2010-12-25 00:35:58 UTC (rev 5336) +++ trunk/nhibernate/src/NHibernate/Util/ArrayHelper.cs 2010-12-25 00:40:50 UTC (rev 5337) @@ -1,6 +1,7 @@ using System; using System.Collections; using System.Data; +using System.Reflection; using System.Text; using NHibernate.SqlTypes; using NHibernate.Type; @@ -196,9 +197,41 @@ // NH-specific public static void AddAll(IList to, IList from) { + System.Action addNull = null; foreach (object obj in from) { - to.Add(obj); + // There is bug in .NET, before version 4, where adding null to a List<Nullable<T>> through the non-generic IList interface throws an exception. + // TODO: Everything but the to.Add(obj) should should be conditionally compiled only for versions of .NET earlier than 4. + if (obj == null) + { + if (addNull == null) + { + if (to.GetType().IsGenericType && + to.GetType().GetGenericTypeDefinition() == typeof(List<>) && + to.GetType().GetGenericArguments()[0].IsGenericType && + to.GetType().GetGenericArguments()[0].GetGenericTypeDefinition() == typeof(Nullable<>)) + { + MethodInfo addMethod = to.GetType().GetMethod("Add"); + System.Linq.Expressions.MethodCallExpression addMethodCall = + System.Linq.Expressions.Expression.Call(System.Linq.Expressions.Expression.Constant(to), + addMethod, + System.Linq.Expressions.Expression.Constant(null, to.GetType().GetGenericArguments()[0])); + System.Linq.Expressions.LambdaExpression addLambda = + System.Linq.Expressions.Expression.Lambda(addMethodCall); + + addNull = (System.Action) addLambda.Compile(); + } + else + { + addNull = () => to.Add(null); + } + } + addNull(); + } + else + { + to.Add(obj); + } } } Added: trunk/nhibernate/src/NHibernate.Test/Linq/SumTests.cs =================================================================== --- trunk/nhibernate/src/NHibernate.Test/Linq/SumTests.cs (rev 0) +++ trunk/nhibernate/src/NHibernate.Test/Linq/SumTests.cs 2010-12-25 00:40:50 UTC (rev 5337) @@ -0,0 +1,47 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using NUnit.Framework; + +namespace NHibernate.Test.Linq +{ + [TestFixture] + public class SumTests : LinqTestCase + { + [Test] + [ExpectedException] + public void EmptySumDecimal() + { + db.OrderLines.Where(ol => false).Sum(ol => ol.Discount); + } + + [Test] + public void EmptySumCastNullableDecimal() + { + decimal total = db.OrderLines.Where(ol => false).Sum(ol => (decimal?)ol.Discount) ?? 0; + Assert.AreEqual(0, total); + } + + [Test] + public void SumDecimal() + { + decimal total = db.OrderLines.Sum(ol => ol.Discount); + Assert.Greater(total, 0); + } + + [Test] + public void EmptySumNullableDecimal() + { + decimal total = db.Orders.Where(ol => false).Sum(ol => ol.Freight) ?? 0; + Assert.AreEqual(0, total); + } + + [Test] + public void SumNullableDecimal() + { + decimal? total = db.Orders.Sum(ol => ol.Freight); + Assert.Greater(total, 0); + } + } +} Modified: trunk/nhibernate/src/NHibernate.Test/NHibernate.Test.csproj =================================================================== --- trunk/nhibernate/src/NHibernate.Test/NHibernate.Test.csproj 2010-12-25 00:35:58 UTC (rev 5336) +++ trunk/nhibernate/src/NHibernate.Test/NHibernate.Test.csproj 2010-12-25 00:40:50 UTC (rev 5337) @@ -454,6 +454,7 @@ <Compile Include="Linq\QueryReuseTests.cs" /> <Compile Include="Linq\ReadonlyTestCase.cs" /> <Compile Include="Linq\StatelessSessionQueringTest.cs" /> + <Compile Include="Linq\SumTests.cs" /> <Compile Include="Logging\Log4NetLoggerTest.cs" /> <Compile Include="Logging\LoggerProviderTest.cs" /> <Compile Include="NHSpecificTest\EntityNameAndCompositeId\Fixture.cs" /> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <pa...@us...> - 2010-12-25 00:36:04
|
Revision: 5336 http://nhibernate.svn.sourceforge.net/nhibernate/?rev=5336&view=rev Author: patearl Date: 2010-12-25 00:35:58 +0000 (Sat, 25 Dec 2010) Log Message: ----------- ShowBuildMenu.bat: Use set /p if choice is not available. This is needed for Windows XP. Modified Paths: -------------- trunk/nhibernate/ShowBuildMenu.bat Modified: trunk/nhibernate/ShowBuildMenu.bat =================================================================== --- trunk/nhibernate/ShowBuildMenu.bat 2010-12-24 20:24:43 UTC (rev 5335) +++ trunk/nhibernate/ShowBuildMenu.bat 2010-12-25 00:35:58 UTC (rev 5336) @@ -17,8 +17,13 @@ echo F. Build NHibernate (Release) echo G. Build Release Package (Also runs tests and creates documentation) echo. -choice /C abcdefg +if exist %SYSTEMROOT%\System32\choice.exe ( goto prompt-choice ) +goto prompt-set + +:prompt-choice +choice /C:abcdefg + if errorlevel 255 goto end if errorlevel 7 goto build-release-package if errorlevel 6 goto build-release @@ -29,6 +34,18 @@ if errorlevel 1 goto build-visual-studio if errorlevel 0 goto end +:prompt-set +set /p OPT=[A, B, C, D, E, F, G]? + +if /I "%OPT%"=="A" goto build-visual-studio +if /I "%OPT%"=="B" goto help-test-setup +if /I "%OPT%"=="C" goto help-larger-window +if /I "%OPT%"=="D" goto build-test +if /I "%OPT%"=="E" goto build-debug +if /I "%OPT%"=="F" goto build-release +if /I "%OPT%"=="G" goto build-release-package +goto prompt-set + :help-test-setup echo. echo 1. Install SQL Server 2008 (or use the database included with VS). This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <fab...@us...> - 2010-12-24 20:24:50
|
Revision: 5335 http://nhibernate.svn.sourceforge.net/nhibernate/?rev=5335&view=rev Author: fabiomaulo Date: 2010-12-24 20:24:43 +0000 (Fri, 24 Dec 2010) Log Message: ----------- Test for NH-2470 (does not fail) Modified Paths: -------------- trunk/nhibernate/src/NHibernate.Test/NHibernate.Test.csproj Added Paths: ----------- trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2470/ trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2470/Class1Class2Classes.cs trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2470/Class1Class2DTOs.cs trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2470/Class1Class2Tests.cs trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2470/DTO.cs trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2470/DomainObject.cs trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2470/Mappings.hbm.xml Added: trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2470/Class1Class2Classes.cs =================================================================== --- trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2470/Class1Class2Classes.cs (rev 0) +++ trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2470/Class1Class2Classes.cs 2010-12-24 20:24:43 UTC (rev 5335) @@ -0,0 +1,43 @@ +using System.Collections.Generic; +using System.Collections.ObjectModel; + +namespace NHibernate.Test.NHSpecificTest.NH2470 +{ + public class Class1 : DomainObject + { + private IList<Class2> _class2List = new List<Class2>(); + + public virtual void AddClass2(Class2 toAdd) + { + if (false == _class2List.Contains(toAdd)) + { + _class2List.Add(toAdd); + toAdd.AddClass1(this); + } + } + + public virtual ReadOnlyCollection<Class2> Class2List + { + get { return new ReadOnlyCollection<Class2>(_class2List); } + } + } + + public class Class2 : DomainObject + { + private IList<Class1> _class1List = new List<Class1>(); + + public virtual void AddClass1(Class1 toAdd) + { + if (false == _class1List.Contains(toAdd)) + { + _class1List.Add(toAdd); + toAdd.AddClass2(this); + } + } + + public virtual ReadOnlyCollection<Class1> Class1List + { + get { return new ReadOnlyCollection<Class1>(_class1List); } + } + } +} \ No newline at end of file Added: trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2470/Class1Class2DTOs.cs =================================================================== --- trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2470/Class1Class2DTOs.cs (rev 0) +++ trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2470/Class1Class2DTOs.cs 2010-12-24 20:24:43 UTC (rev 5335) @@ -0,0 +1,9 @@ +namespace NHibernate.Test.NHSpecificTest.NH2470 +{ + public class Class2DTO : DTO { } + + public class Class1DTO : DTO + { + public Class2DTO[] Class2Ary { get; set; } + } +} \ No newline at end of file Added: trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2470/Class1Class2Tests.cs =================================================================== --- trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2470/Class1Class2Tests.cs (rev 0) +++ trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2470/Class1Class2Tests.cs 2010-12-24 20:24:43 UTC (rev 5335) @@ -0,0 +1,286 @@ +using System; +using System.Linq; +using NUnit.Framework; + +namespace NHibernate.Test.NHSpecificTest.NH2470 +{ + [TestFixture] + public class Class1_Class2_Tests : BugTestCase + { + public void Clean() + { + using (ISession s = OpenSession()) + { + using (ITransaction tx = s.BeginTransaction()) + { + s.Delete("from Class1"); + s.Delete("from Class2"); + tx.Commit(); + } + } + } + + [Test] + public void Test0() + { + Class1 c1; + Class2 c2; + Class1DTO class1dto; + + using (ISession s = OpenSession()) + { + using (ITransaction tx = s.BeginTransaction()) + { + c1 = new Class1(); + c2 = new Class2(); + + c1.AddClass2(c2); + + s.Save(c2); + s.Save(c1); + + class1dto = new Class1DTO {ID = c1.ID, EntityVersion = c1.EntityVersion}; + + class1dto.Class2Ary = c1.Class2List.Select(cl2 => new Class2DTO {ID = cl2.ID, EntityVersion = cl2.EntityVersion}).ToArray(); + + tx.Commit(); + } + + Assert.AreEqual(1, c1.EntityVersion); + Assert.AreEqual(1, c2.EntityVersion); + Assert.AreEqual(1, class1dto.EntityVersion); + } + + Assert.AreEqual(1, c1.EntityVersion); + Assert.AreEqual(1, c2.EntityVersion); + Assert.AreEqual(1, class1dto.EntityVersion); + Clean(); + } + + [Test] + public void Test1() + { + Class1 c1; + Class2 c2; + Class1DTO dto; + using (ISession s = OpenSession()) + { + using (ITransaction tx = s.BeginTransaction()) + { + c1 = new Class1(); + c2 = new Class2(); + + c1.AddClass2(c2); + + s.Save(c2); + s.Save(c1); + + tx.Commit(); + } + + using (ITransaction tx = s.BeginTransaction()) + { + // NH-2470 If inverse="true" in Class1.hbm.xml you must add the next line to prevent erroneous version increment + // s.Refresh(c1, LockMode.None); + dto = new Class1DTO {ID = c1.ID, EntityVersion = c1.EntityVersion}; + tx.Commit(); + } + + Assert.AreEqual(1, c1.EntityVersion); + Assert.AreEqual(1, c2.EntityVersion); + Assert.AreEqual(1, dto.EntityVersion); + } + + Assert.AreEqual(1, c1.EntityVersion); + Assert.AreEqual(1, c2.EntityVersion); + Assert.AreEqual(1, dto.EntityVersion); + Clean(); + } + + [Test] + public void Test2() + { + Class1 c1; + Class2 c2; + Class1DTO dto; + using (ISession s = OpenSession()) + { + using (ITransaction tx = s.BeginTransaction()) + { + c1 = new Class1(); + c2 = new Class2(); + + c1.AddClass2(c2); + + s.Save(c2); + + s.Save(c1); + + dto = new Class1DTO {ID = c1.ID, EntityVersion = c1.EntityVersion}; + + tx.Commit(); + } + + Assert.AreEqual(1, c1.EntityVersion); + Assert.AreEqual(1, c2.EntityVersion); + Assert.AreEqual(c1.ID, dto.ID); + Assert.AreEqual(1, dto.EntityVersion); + } + + Assert.AreEqual(1, c1.EntityVersion); + Assert.AreEqual(1, c2.EntityVersion); + Assert.AreEqual(c1.ID, dto.ID); + Assert.AreEqual(1, dto.EntityVersion); + Clean(); + } + + [Test] + public void Test3() + { + Class1 c1; + Class2 c2; + using (ISession s = OpenSession()) + { + using (ITransaction tx = s.BeginTransaction()) + { + c1 = new Class1(); + c2 = new Class2(); + + c1.AddClass2(c2); + + s.Save(c2); + s.Save(c1); + + tx.Commit(); + } + + Assert.AreEqual(1, c1.EntityVersion); + Assert.AreEqual(1, c2.EntityVersion); + + using (ITransaction tx = s.BeginTransaction()) + { + // NH-2470 If inverse="true" in Class1.hbm.xml you must add the next line to prevent erroneous version increment + // s.Refresh(c1, LockMode.None); + var class1dto = new Class1DTO {ID = c1.ID, EntityVersion = c1.EntityVersion}; + class1dto.Class2Ary = c1.Class2List.Select(cl2 => new Class2DTO {ID = cl2.ID, EntityVersion = cl2.EntityVersion}).ToArray(); + tx.Commit(); + } + Assert.AreEqual(1, c1.EntityVersion); + Assert.AreEqual(1, c2.EntityVersion); + } + Assert.AreEqual(1, c1.EntityVersion); + Assert.AreEqual(1, c2.EntityVersion); + Clean(); + } + + [Test] + public void Test4() + { + Guid c1id; + int c1ev, c2ev; + Class1DTO class1dto; + using (ISession s = OpenSession()) + { + Class1 c1; + using (ITransaction tx = s.BeginTransaction()) + { + Class2 c2; + + c1 = new Class1(); + c2 = new Class2(); + + c1.AddClass2(c2); + + s.Save(c2); + + s.Save(c1); + + tx.Commit(); + + c1id = c1.ID; + c1ev = c1.EntityVersion; + c2ev = c2.EntityVersion; + } + + Assert.AreEqual(1, c1ev); + Assert.AreEqual(1, c2ev); + + using (ITransaction tx = s.BeginTransaction()) + { + // NH-2470 If inverse="true" in Class1.hbm.xml you must add the next line to prevent erroneous version increment + // s.Refresh(c1); + class1dto = new Class1DTO {ID = c1.ID, EntityVersion = c1.EntityVersion}; + class1dto.Class2Ary = c1.Class2List.Select(cl2 => new Class2DTO {ID = cl2.ID, EntityVersion = cl2.EntityVersion}).ToArray(); + tx.Commit(); + c1ev = c1.EntityVersion; + Assert.AreEqual(1, c1ev); + } + Assert.AreEqual(1, c1.EntityVersion); + } + + Assert.AreEqual(1, c1ev); + Assert.AreEqual(1, class1dto.EntityVersion); + Assert.IsTrue(class1dto.Class2Ary.All(cl2 => cl2.EntityVersion == 1)); + + Class1 cl1; + using (ISession s = OpenSession()) + { + cl1 = s.Get<Class1>(c1id); + } + Assert.AreEqual(1, cl1.EntityVersion); + Clean(); + } + + [Test] + public void Test5() + { + Guid c1id; + using (ISession s = OpenSession()) + { + Class1 c1; + Class2 c2; + + using (ITransaction tx = s.BeginTransaction()) + { + c1 = new Class1(); + c2 = new Class2(); + + c1.AddClass2(c2); + + s.Save(c2); + + s.Save(c1); + + tx.Commit(); + } + + Assert.AreEqual(1, c1.EntityVersion); + Assert.AreEqual(1, c2.EntityVersion); + + c1id = c1.ID; + } + + // NH-2470 Since we're using a totally separate session, this test always passes. + Class1 cl1; + Class1DTO class1dto; + using (ISession s = OpenSession()) + { + using (ITransaction tx = s.BeginTransaction()) + { + cl1 = s.Get<Class1>(c1id); + + class1dto = new Class1DTO {ID = cl1.ID, EntityVersion = cl1.EntityVersion}; + class1dto.Class2Ary = cl1.Class2List.Select(cl2 => new Class2DTO {ID = cl2.ID, EntityVersion = cl2.EntityVersion}).ToArray(); + + tx.Commit(); + } + + Assert.AreEqual(1, cl1.EntityVersion); + } + + Assert.AreEqual(1, cl1.EntityVersion); + Assert.IsTrue(class1dto.Class2Ary.All(cl2 => cl2.EntityVersion == 1)); + Clean(); + } + } +} \ No newline at end of file Added: trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2470/DTO.cs =================================================================== --- trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2470/DTO.cs (rev 0) +++ trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2470/DTO.cs 2010-12-24 20:24:43 UTC (rev 5335) @@ -0,0 +1,10 @@ +using System; + +namespace NHibernate.Test.NHSpecificTest.NH2470 +{ + public abstract class DTO + { + public Guid ID; + public int EntityVersion; + } +} \ No newline at end of file Added: trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2470/DomainObject.cs =================================================================== --- trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2470/DomainObject.cs (rev 0) +++ trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2470/DomainObject.cs 2010-12-24 20:24:43 UTC (rev 5335) @@ -0,0 +1,10 @@ +using System; + +namespace NHibernate.Test.NHSpecificTest.NH2470 +{ + public abstract class DomainObject + { + public virtual Guid ID { get; set; } + public virtual int EntityVersion { get; set; } + } +} \ No newline at end of file Added: trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2470/Mappings.hbm.xml =================================================================== --- trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2470/Mappings.hbm.xml (rev 0) +++ trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2470/Mappings.hbm.xml 2010-12-24 20:24:43 UTC (rev 5335) @@ -0,0 +1,42 @@ +<?xml version="1.0" encoding="utf-8" ?> +<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2" + assembly="NHibernate.Test" + namespace="NHibernate.Test.NHSpecificTest.NH2470"> + + <class name="Class1"> + + <id name="ID"> + <generator class="guid.comb"/> + </id> + + <version name="EntityVersion"/> + + <!-- NH2470 - I used to have inverse="true" here --> + <idbag name="Class2List" table="Class1_Class2" access="field.camelcase-underscore"> + <collection-id column="ID" type="Guid"> + <generator class="guid.comb" /> + </collection-id> + <key column="Class1ID" foreign-key="FK_Class2_Class1" /> + <many-to-many class="Class2" column="Class2ID" foreign-key="FK_Class1_Class2" /> + </idbag> + + </class> + <class name="Class2"> + + <id name="ID"> + <generator class="guid.comb"/> + </id> + + <version name="EntityVersion"/> + + <idbag name="Class1List" table="Class1_Class2" access="field.camelcase-underscore"> + <collection-id column="ID" type="Guid"> + <generator class="guid.comb" /> + </collection-id> + <key column="Class2ID" foreign-key="FK_Class1_Class2" /> + <many-to-many class="Class1" column="Class1ID" foreign-key="FK_Class2_Class1" /> + </idbag> + + </class> + +</hibernate-mapping> Modified: trunk/nhibernate/src/NHibernate.Test/NHibernate.Test.csproj =================================================================== --- trunk/nhibernate/src/NHibernate.Test/NHibernate.Test.csproj 2010-12-22 17:30:48 UTC (rev 5334) +++ trunk/nhibernate/src/NHibernate.Test/NHibernate.Test.csproj 2010-12-24 20:24:43 UTC (rev 5335) @@ -574,6 +574,11 @@ <Compile Include="NHSpecificTest\NH2420\MyTable.cs" /> <Compile Include="NHSpecificTest\NH2441\Fixture.cs" /> <Compile Include="NHSpecificTest\NH2441\Model.cs" /> + <Compile Include="NHSpecificTest\NH2470\Class1Class2Classes.cs" /> + <Compile Include="NHSpecificTest\NH2470\Class1Class2DTOs.cs" /> + <Compile Include="NHSpecificTest\NH2470\Class1Class2Tests.cs" /> + <Compile Include="NHSpecificTest\NH2470\DomainObject.cs" /> + <Compile Include="NHSpecificTest\NH2470\DTO.cs" /> <Compile Include="NHSpecificTest\Properties\CompositePropertyRefTest.cs" /> <Compile Include="NHSpecificTest\Properties\DynamicEntityTest.cs" /> <Compile Include="NHSpecificTest\Properties\Model.cs" /> @@ -2363,6 +2368,7 @@ <EmbeddedResource Include="NHSpecificTest\NH1291AnonExample\Mappings.hbm.xml" /> </ItemGroup> <ItemGroup> + <EmbeddedResource Include="NHSpecificTest\NH2470\Mappings.hbm.xml" /> <EmbeddedResource Include="NHSpecificTest\NH2056\Mappings.hbm.xml" /> <EmbeddedResource Include="NHSpecificTest\NH2043\Mappings.hbm.xml" /> <EmbeddedResource Include="NHSpecificTest\NH2037\Mappings.hbm.xml" /> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <fab...@us...> - 2010-12-22 17:30:54
|
Revision: 5334 http://nhibernate.svn.sourceforge.net/nhibernate/?rev=5334&view=rev Author: fabiomaulo Date: 2010-12-22 17:30:48 +0000 (Wed, 22 Dec 2010) Log Message: ----------- Fix NH-2457 (thanks to Maximilian Haru Raditya for the implementation without tests) Modified Paths: -------------- trunk/nhibernate/src/NHibernate/Criterion/DetachedCriteria.cs trunk/nhibernate/src/NHibernate/IStatelessSession.cs trunk/nhibernate/src/NHibernate/Impl/StatelessSessionImpl.cs trunk/nhibernate/src/NHibernate.Test/Stateless/StatelessSessionFixture.cs Modified: trunk/nhibernate/src/NHibernate/Criterion/DetachedCriteria.cs =================================================================== --- trunk/nhibernate/src/NHibernate/Criterion/DetachedCriteria.cs 2010-12-19 18:40:07 UTC (rev 5333) +++ trunk/nhibernate/src/NHibernate/Criterion/DetachedCriteria.cs 2010-12-22 17:30:48 UTC (rev 5334) @@ -71,7 +71,7 @@ /// to actually run the query.</summary> public ICriteria GetExecutableCriteria(IStatelessSession session) { - impl.Session = (ISessionImplementor)session; + impl.Session = session.GetSessionImplementation(); return impl; } Modified: trunk/nhibernate/src/NHibernate/IStatelessSession.cs =================================================================== --- trunk/nhibernate/src/NHibernate/IStatelessSession.cs 2010-12-19 18:40:07 UTC (rev 5333) +++ trunk/nhibernate/src/NHibernate/IStatelessSession.cs 2010-12-22 17:30:48 UTC (rev 5334) @@ -1,6 +1,8 @@ using System; using System.Data; +using NHibernate.Engine; + namespace NHibernate { /// <summary> @@ -24,6 +26,18 @@ /// <summary> Get the current Hibernate transaction.</summary> ITransaction Transaction { get;} + /// <summary> + /// Gets the stateless session implementation. + /// </summary> + /// <remarks> + /// This method is provided in order to get the <b>NHibernate</b> implementation of the session from wrapper implementations. + /// Implementors of the <seealso cref="IStatelessSession"/> interface should return the NHibernate implementation of this method. + /// </remarks> + /// <returns> + /// An NHibernate implementation of the <seealso cref="ISessionImplementor"/> interface + /// </returns> + ISessionImplementor GetSessionImplementation(); + /// <summary> Close the stateless session and release the ADO.NET connection.</summary> void Close(); Modified: trunk/nhibernate/src/NHibernate/Impl/StatelessSessionImpl.cs =================================================================== --- trunk/nhibernate/src/NHibernate/Impl/StatelessSessionImpl.cs 2010-12-19 18:40:07 UTC (rev 5333) +++ trunk/nhibernate/src/NHibernate/Impl/StatelessSessionImpl.cs 2010-12-22 17:30:48 UTC (rev 5334) @@ -543,6 +543,21 @@ set { } } + /// <summary> + /// Gets the stateless session implementation. + /// </summary> + /// <remarks> + /// This method is provided in order to get the <b>NHibernate</b> implementation of the session from wrapper implementations. + /// Implementors of the <seealso cref="IStatelessSession"/> interface should return the NHibernate implementation of this method. + /// </remarks> + /// <returns> + /// An NHibernate implementation of the <seealso cref="ISessionImplementor"/> interface + /// </returns> + public ISessionImplementor GetSessionImplementation() + { + return this; + } + /// <summary> Close the stateless session and release the ADO.NET connection.</summary> public void Close() { Modified: trunk/nhibernate/src/NHibernate.Test/Stateless/StatelessSessionFixture.cs =================================================================== --- trunk/nhibernate/src/NHibernate.Test/Stateless/StatelessSessionFixture.cs 2010-12-19 18:40:07 UTC (rev 5333) +++ trunk/nhibernate/src/NHibernate.Test/Stateless/StatelessSessionFixture.cs 2010-12-22 17:30:48 UTC (rev 5334) @@ -1,6 +1,7 @@ using System; using System.Collections; using System.Threading; +using NHibernate.Criterion; using NHibernate.Engine; using NUnit.Framework; using SharpTestsEx; @@ -189,5 +190,26 @@ impl.Batcher.BatchSize.Should().Be(37); } } + + [Test] + public void CanGetImplementor() + { + using (IStatelessSession ss = sessions.OpenStatelessSession()) + { + ss.GetSessionImplementation().Should().Be.SameInstanceAs(ss); + } + } + + [Test] + public void HavingDetachedCriteriaThenCanGetExecutableCriteriaFromStatelessSession() + { + var dc = DetachedCriteria.For<Paper>(); + using (IStatelessSession ss = sessions.OpenStatelessSession()) + { + ICriteria criteria = null; + Executing.This(()=> criteria = dc.GetExecutableCriteria(ss)).Should().NotThrow(); + criteria.Executing(c => c.List()).NotThrows(); + } + } } } \ No newline at end of file This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <fab...@us...> - 2010-12-19 18:40:15
|
Revision: 5333 http://nhibernate.svn.sourceforge.net/nhibernate/?rev=5333&view=rev Author: fabiomaulo Date: 2010-12-19 18:40:07 +0000 (Sun, 19 Dec 2010) Log Message: ----------- Fix NH-2023 Modified Paths: -------------- trunk/nhibernate/src/NHibernate/IStatelessSession.cs trunk/nhibernate/src/NHibernate/Impl/StatelessSessionImpl.cs trunk/nhibernate/src/NHibernate.Test/Stateless/StatelessSessionFixture.cs Modified: trunk/nhibernate/src/NHibernate/IStatelessSession.cs =================================================================== --- trunk/nhibernate/src/NHibernate/IStatelessSession.cs 2010-12-19 17:46:48 UTC (rev 5332) +++ trunk/nhibernate/src/NHibernate/IStatelessSession.cs 2010-12-19 18:40:07 UTC (rev 5333) @@ -210,5 +210,12 @@ /// application should not close the connection. /// </remarks> IDbConnection Connection { get; } + + /// <summary> + /// Sets the batch size of the session + /// </summary> + /// <param name="batchSize">The batch size.</param> + /// <returns>The same instance of the session for mthods chain.</returns> + IStatelessSession SetBatchSize(int batchSize); } } Modified: trunk/nhibernate/src/NHibernate/Impl/StatelessSessionImpl.cs =================================================================== --- trunk/nhibernate/src/NHibernate/Impl/StatelessSessionImpl.cs 2010-12-19 17:46:48 UTC (rev 5332) +++ trunk/nhibernate/src/NHibernate/Impl/StatelessSessionImpl.cs 2010-12-19 18:40:07 UTC (rev 5333) @@ -490,6 +490,12 @@ get { return connectionManager.GetConnection(); } } + public IStatelessSession SetBatchSize(int batchSize) + { + Batcher.BatchSize = batchSize; + return this; + } + public override void Flush() { using (new SessionIdLoggingContext(SessionId)) Modified: trunk/nhibernate/src/NHibernate.Test/Stateless/StatelessSessionFixture.cs =================================================================== --- trunk/nhibernate/src/NHibernate.Test/Stateless/StatelessSessionFixture.cs 2010-12-19 17:46:48 UTC (rev 5332) +++ trunk/nhibernate/src/NHibernate.Test/Stateless/StatelessSessionFixture.cs 2010-12-19 18:40:07 UTC (rev 5333) @@ -1,7 +1,9 @@ using System; using System.Collections; using System.Threading; +using NHibernate.Engine; using NUnit.Framework; +using SharpTestsEx; namespace NHibernate.Test.Stateless { @@ -176,5 +178,16 @@ } } } + + [Test] + public void WhenSetTheBatchSizeThenSetTheBatchSizeOfTheBatcher() + { + using (IStatelessSession ss = sessions.OpenStatelessSession()) + { + ss.SetBatchSize(37); + var impl = (ISessionImplementor)ss; + impl.Batcher.BatchSize.Should().Be(37); + } + } } } \ No newline at end of file This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <fab...@us...> - 2010-12-19 17:46:54
|
Revision: 5332 http://nhibernate.svn.sourceforge.net/nhibernate/?rev=5332&view=rev Author: fabiomaulo Date: 2010-12-19 17:46:48 +0000 (Sun, 19 Dec 2010) Log Message: ----------- "Fix" of NH-2153 Modified Paths: -------------- trunk/nhibernate/src/NHibernate/Driver/DriverBase.cs Modified: trunk/nhibernate/src/NHibernate/Driver/DriverBase.cs =================================================================== --- trunk/nhibernate/src/NHibernate/Driver/DriverBase.cs 2010-12-19 16:52:03 UTC (rev 5331) +++ trunk/nhibernate/src/NHibernate/Driver/DriverBase.cs 2010-12-19 17:46:48 UTC (rev 5332) @@ -129,14 +129,14 @@ IDbCommand cmd = CreateCommand(); cmd.CommandType = type; - SetCommandTimeout(cmd, PropertiesHelper.GetInt32(Environment.CommandTimeout, Environment.Properties, -1)); + SetCommandTimeout(cmd); SetCommandText(cmd, sqlString); SetCommandParameters(cmd, parameterTypes); return cmd; } - private void SetCommandTimeout(IDbCommand cmd, object envTimeout) + private void SetCommandTimeout(IDbCommand cmd) { if (commandTimeout >= 0) { This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <fab...@us...> - 2010-12-19 16:52:10
|
Revision: 5331 http://nhibernate.svn.sourceforge.net/nhibernate/?rev=5331&view=rev Author: fabiomaulo Date: 2010-12-19 16:52:03 +0000 (Sun, 19 Dec 2010) Log Message: ----------- Test for NH-2056 (work with MsSQL have to check Oracle) Modified Paths: -------------- trunk/nhibernate/src/NHibernate.Test/NHibernate.Test.csproj Added Paths: ----------- trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2056/ trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2056/Fixture.cs trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2056/Mappings.hbm.xml Added: trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2056/Fixture.cs =================================================================== --- trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2056/Fixture.cs (rev 0) +++ trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2056/Fixture.cs 2010-12-19 16:52:03 UTC (rev 5331) @@ -0,0 +1,69 @@ +using System.Collections; +using System.Collections.Generic; +using NUnit.Framework; +using SharpTestsEx; + +namespace NHibernate.Test.NHSpecificTest.NH2056 +{ + public class Fixture:BugTestCase + { + [Test] + public void CanUpdateInheritedClass() + { + object savedId; + using (ISession session = sessions.OpenSession()) + { + using (ITransaction t = session.BeginTransaction()) + { + IDictionary address = new Dictionary<string, object>(); + address["BaseF1"] = "base1"; + address["BaseF2"] = "base2"; + address["AddressF1"] = "addressF1"; + address["AddressF2"] = "addressF2"; + savedId = session.Save("Address", address); + t.Commit(); + } + } + + using (ISession session = sessions.OpenSession()) + { + using (ITransaction t = session.BeginTransaction()) + { + + IQuery query = session.CreateQuery("Update Address address set address.AddressF1 = :val1, address.AddressF2 = :val2 where ID=:theID"); + + // The following works properly + //IQuery query = session.CreateQuery("Update Address address set address.AddressF1 = :val1, address.BaseF1 = :val2 where ID=:theID"); + query.SetParameter("val1", "foo"); + query.SetParameter("val2", "bar"); + query.SetParameter("theID", savedId); + query.ExecuteUpdate(); + + t.Commit(); + } + } + using (ISession session = sessions.OpenSession()) + { + using (ITransaction t = session.BeginTransaction()) + { + + var updated = (IDictionary)session.Get("Address", savedId); + updated["BaseF1"].Should().Be("base1"); + updated["BaseF2"].Should().Be("base2"); + updated["AddressF1"].Should().Be("foo"); + updated["AddressF2"].Should().Be("bar"); + + t.Commit(); + } + } + using (ISession session = sessions.OpenSession()) + { + using (ITransaction t = session.BeginTransaction()) + { + session.CreateQuery("delete from Base").ExecuteUpdate(); + t.Commit(); + } + } + } + } +} \ No newline at end of file Added: trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2056/Mappings.hbm.xml =================================================================== --- trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2056/Mappings.hbm.xml (rev 0) +++ trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2056/Mappings.hbm.xml 2010-12-19 16:52:03 UTC (rev 5331) @@ -0,0 +1,19 @@ +<?xml version="1.0" encoding="utf-8" ?> +<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2" + assembly="NHibernate.Test" + namespace="NHibernate.Test.NHSpecificTest.NH2056"> + + <class entity-name="Base" table="tbl_base"> + <id name="ID" type="long"> + <generator class="hilo" /> + </id> + <property name="BaseF1" type="string"/> + <property name="BaseF2" type="string"/> + </class> + <joined-subclass entity-name="Address" extends="Base"> + <key column="ID2"/> + <property name="AddressF1" type="string"/> + <property name="AddressF2" type="string"/> + </joined-subclass> + +</hibernate-mapping> Modified: trunk/nhibernate/src/NHibernate.Test/NHibernate.Test.csproj =================================================================== --- trunk/nhibernate/src/NHibernate.Test/NHibernate.Test.csproj 2010-12-19 14:41:59 UTC (rev 5330) +++ trunk/nhibernate/src/NHibernate.Test/NHibernate.Test.csproj 2010-12-19 16:52:03 UTC (rev 5331) @@ -480,6 +480,7 @@ <Compile Include="NHSpecificTest\NH2037\Fixture.cs" /> <Compile Include="NHSpecificTest\NH2043\Domain.cs" /> <Compile Include="NHSpecificTest\NH2043\Fixture.cs" /> + <Compile Include="NHSpecificTest\NH2056\Fixture.cs" /> <Compile Include="NHSpecificTest\NH2111\A.cs" /> <Compile Include="NHSpecificTest\NH2111\Fixture.cs" /> <Compile Include="NHSpecificTest\NH2112\Fixture.cs" /> @@ -2362,6 +2363,7 @@ <EmbeddedResource Include="NHSpecificTest\NH1291AnonExample\Mappings.hbm.xml" /> </ItemGroup> <ItemGroup> + <EmbeddedResource Include="NHSpecificTest\NH2056\Mappings.hbm.xml" /> <EmbeddedResource Include="NHSpecificTest\NH2043\Mappings.hbm.xml" /> <EmbeddedResource Include="NHSpecificTest\NH2037\Mappings.hbm.xml" /> <EmbeddedResource Include="NHSpecificTest\NH2118\Mappings.hbm.xml" /> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <fab...@us...> - 2010-12-19 14:42:05
|
Revision: 5330 http://nhibernate.svn.sourceforge.net/nhibernate/?rev=5330&view=rev Author: fabiomaulo Date: 2010-12-19 14:41:59 +0000 (Sun, 19 Dec 2010) Log Message: ----------- Test for NH-2043 (the test pass but with don't have a specific test for this usecase so..) Modified Paths: -------------- trunk/nhibernate/src/NHibernate.Test/NHibernate.Test.csproj Added Paths: ----------- trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2043/ trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2043/Domain.cs trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2043/Fixture.cs trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2043/Mappings.hbm.xml Added: trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2043/Domain.cs =================================================================== --- trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2043/Domain.cs (rev 0) +++ trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2043/Domain.cs 2010-12-19 14:41:59 UTC (rev 5330) @@ -0,0 +1,26 @@ +namespace NHibernate.Test.NHSpecificTest.NH2043 +{ + public class A + { + public virtual int Id { get; set; } + public virtual string Name { get; set; } + + public virtual B B { get; set; } + } + + public class AImpl : A + { + } + + public class B + { + public virtual int Id { get; set; } + public virtual string Name { get; set; } + + public virtual A A { get; set; } + } + + public class BImpl : B + { + } +} Added: trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2043/Fixture.cs =================================================================== --- trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2043/Fixture.cs (rev 0) +++ trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2043/Fixture.cs 2010-12-19 14:41:59 UTC (rev 5330) @@ -0,0 +1,52 @@ +using NUnit.Framework; + +namespace NHibernate.Test.NHSpecificTest.NH2043 +{ + [TestFixture] + public class Fixture : BugTestCase + { + public class Namer : EmptyInterceptor + { + public override string GetEntityName(object entity) + { + if (entity.GetType().Name.EndsWith("Impl")) + return entity.GetType().BaseType.FullName; + + return base.GetEntityName(entity); + } + } + + protected override void BuildSessionFactory() + { + cfg.SetInterceptor(new Namer()); + base.BuildSessionFactory(); + } + + [Test] + public void Test() + { + try + { + using (ISession s = OpenSession()) + { + var a = new AImpl {Id = 1, Name = "A1"}; + var b = new BImpl {Id = 1, Name = "B1", A = a }; + a.B = b; + + s.Save(a); + s.Save(b); + s.Flush(); + } + } + finally + { + using (ISession s = OpenSession()) + { + s.Delete("from B"); + s.Delete("from A"); + s.Flush(); + } + } + } + } +} Added: trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2043/Mappings.hbm.xml =================================================================== --- trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2043/Mappings.hbm.xml (rev 0) +++ trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2043/Mappings.hbm.xml 2010-12-19 14:41:59 UTC (rev 5330) @@ -0,0 +1,24 @@ +<?xml version="1.0" encoding="utf-8" ?> +<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2" + namespace="NHibernate.Test.NHSpecificTest.NH2043" + assembly="NHibernate.Test"> + + <class name="A"> + <id name="Id"> + <generator class="identity" /> + </id> + <property name="Name" /> + <one-to-one class="B" name="B" /> + </class> + + <class name="B"> + <id name="Id"> + <generator class="foreign"> + <param name="property">A</param> + </generator> + </id> + <property name="Name" /> + <one-to-one class="A" name="A" /> + </class> + +</hibernate-mapping> Modified: trunk/nhibernate/src/NHibernate.Test/NHibernate.Test.csproj =================================================================== --- trunk/nhibernate/src/NHibernate.Test/NHibernate.Test.csproj 2010-12-18 22:29:06 UTC (rev 5329) +++ trunk/nhibernate/src/NHibernate.Test/NHibernate.Test.csproj 2010-12-19 14:41:59 UTC (rev 5330) @@ -478,6 +478,8 @@ <Compile Include="NHSpecificTest\NH1869\Fixture.cs" /> <Compile Include="NHSpecificTest\NH2037\Domain.cs" /> <Compile Include="NHSpecificTest\NH2037\Fixture.cs" /> + <Compile Include="NHSpecificTest\NH2043\Domain.cs" /> + <Compile Include="NHSpecificTest\NH2043\Fixture.cs" /> <Compile Include="NHSpecificTest\NH2111\A.cs" /> <Compile Include="NHSpecificTest\NH2111\Fixture.cs" /> <Compile Include="NHSpecificTest\NH2112\Fixture.cs" /> @@ -2360,6 +2362,7 @@ <EmbeddedResource Include="NHSpecificTest\NH1291AnonExample\Mappings.hbm.xml" /> </ItemGroup> <ItemGroup> + <EmbeddedResource Include="NHSpecificTest\NH2043\Mappings.hbm.xml" /> <EmbeddedResource Include="NHSpecificTest\NH2037\Mappings.hbm.xml" /> <EmbeddedResource Include="NHSpecificTest\NH2118\Mappings.hbm.xml" /> <EmbeddedResource Include="NHSpecificTest\NH2362\Mappings.hbm.xml" /> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <fab...@us...> - 2010-12-18 22:29:13
|
Revision: 5329 http://nhibernate.svn.sourceforge.net/nhibernate/?rev=5329&view=rev Author: fabiomaulo Date: 2010-12-18 22:29:06 +0000 (Sat, 18 Dec 2010) Log Message: ----------- Fix NH-2037 (by Jose F. Romaniello) Modified Paths: -------------- trunk/nhibernate/src/NHibernate/Persister/Entity/AbstractEntityPersister.cs trunk/nhibernate/src/NHibernate.Test/NHibernate.Test.csproj Added Paths: ----------- trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2037/ trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2037/Domain.cs trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2037/Fixture.cs trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2037/Mappings.hbm.xml Modified: trunk/nhibernate/src/NHibernate/Persister/Entity/AbstractEntityPersister.cs =================================================================== --- trunk/nhibernate/src/NHibernate/Persister/Entity/AbstractEntityPersister.cs 2010-12-18 16:26:47 UTC (rev 5328) +++ trunk/nhibernate/src/NHibernate/Persister/Entity/AbstractEntityPersister.cs 2010-12-18 22:29:06 UTC (rev 5329) @@ -4066,6 +4066,10 @@ { snapshot[i] = extractionTypes[i].Hydrate(rs, GetPropertyAliases(string.Empty, naturalIdPropertyIndexes[i]), session, null); + if (extractionTypes[i].IsEntityType) + { + snapshot[i] = extractionTypes[i].ResolveIdentifier(snapshot[i], session, null); + } } return snapshot; } Added: trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2037/Domain.cs =================================================================== --- trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2037/Domain.cs (rev 0) +++ trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2037/Domain.cs 2010-12-18 22:29:06 UTC (rev 5329) @@ -0,0 +1,36 @@ +namespace NHibernate.Test.NHSpecificTest.NH2037 +{ + public class Country + { + public virtual int Id { get; set; } + public virtual string Name { get; set; } + + public virtual bool Equals(Country other) + { + if (ReferenceEquals(null, other)) return false; + if (ReferenceEquals(this, other)) return true; + return other.Id == Id; + } + + public override bool Equals(object obj) + { + if (ReferenceEquals(null, obj)) return false; + if (ReferenceEquals(this, obj)) return true; + if (!(obj is Country)) return false; + return Equals((Country) obj); + } + + public override int GetHashCode() + { + return Id; + } + } + + public class City + { + public virtual int Id { get; set; } + public virtual Country Country { get; set; } + public virtual int CityCode { get; set; } + public virtual string Name { get; set; } + } +} Added: trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2037/Fixture.cs =================================================================== --- trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2037/Fixture.cs (rev 0) +++ trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2037/Fixture.cs 2010-12-18 22:29:06 UTC (rev 5329) @@ -0,0 +1,56 @@ + using NUnit.Framework; +namespace NHibernate.Test.NHSpecificTest.NH2037 +{ + [TestFixture] + public class Fixture : BugTestCase + { + [Test] + public void Test() + { + var country = new Country {Name = "Argentina"}; + + var city = new City + { + CityCode = 5, + Country = country, + Name = "Cordoba" + }; + + + using (ISession session = OpenSession()) + using(var tx = session.BeginTransaction()) + { + session.Save(city.Country); + session.Save(city); + tx.Commit(); + } + + using(ISession session = OpenSession()) + using (var tx = session.BeginTransaction()) + { + //THROW + session.SaveOrUpdate(city); + tx.Commit(); + } + + using (var session = OpenSession()) + using (var tx = session.BeginTransaction()) + { + Assert.IsNotNull(session.Get<City>(city.Id)); + tx.Commit(); + } + } + + protected override void OnTearDown() + { + using(var session = OpenSession()) + using(var tx = session.BeginTransaction()) + { + session.Delete("from City"); + session.Delete("from Country"); + tx.Commit(); + } + } + + } + } Added: trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2037/Mappings.hbm.xml =================================================================== --- trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2037/Mappings.hbm.xml (rev 0) +++ trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2037/Mappings.hbm.xml 2010-12-18 22:29:06 UTC (rev 5329) @@ -0,0 +1,24 @@ +<?xml version="1.0" encoding="utf-8" ?> +<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2" + assembly="NHibernate.Test" namespace="NHibernate.Test.NHSpecificTest.NH2037"> + + <class name="Country" table="Countries"> + <id name="Id"> + <generator class="identity"/> + </id> + <property name="Name" /> + </class> + + <class name="City" table="Cities"> + <id name="Id"> + <generator class="identity"/> + </id> + <natural-id> + <many-to-one name="Country" class="Country" /> + <property name="CityCode" /> + + </natural-id> + <property name="Name" /> + </class> + +</hibernate-mapping> Modified: trunk/nhibernate/src/NHibernate.Test/NHibernate.Test.csproj =================================================================== --- trunk/nhibernate/src/NHibernate.Test/NHibernate.Test.csproj 2010-12-18 16:26:47 UTC (rev 5328) +++ trunk/nhibernate/src/NHibernate.Test/NHibernate.Test.csproj 2010-12-18 22:29:06 UTC (rev 5329) @@ -476,6 +476,8 @@ <Compile Include="NHSpecificTest\NH1836\Fixture.cs" /> <Compile Include="NHSpecificTest\NH1869\Entities.cs" /> <Compile Include="NHSpecificTest\NH1869\Fixture.cs" /> + <Compile Include="NHSpecificTest\NH2037\Domain.cs" /> + <Compile Include="NHSpecificTest\NH2037\Fixture.cs" /> <Compile Include="NHSpecificTest\NH2111\A.cs" /> <Compile Include="NHSpecificTest\NH2111\Fixture.cs" /> <Compile Include="NHSpecificTest\NH2112\Fixture.cs" /> @@ -2358,6 +2360,7 @@ <EmbeddedResource Include="NHSpecificTest\NH1291AnonExample\Mappings.hbm.xml" /> </ItemGroup> <ItemGroup> + <EmbeddedResource Include="NHSpecificTest\NH2037\Mappings.hbm.xml" /> <EmbeddedResource Include="NHSpecificTest\NH2118\Mappings.hbm.xml" /> <EmbeddedResource Include="NHSpecificTest\NH2362\Mappings.hbm.xml" /> <EmbeddedResource Include="NHSpecificTest\NH2244\Mappings.hbm.xml" /> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |