|
From: NHibernate J. <mik...@us...> - 2006-12-25 15:54:27
|
Pagination no longer support for a query that doesn't start with SELECT.
------------------------------------------------------------------------
Key: NH-844
URL: http://jira.nhibernate.org/browse/NH-844
Project: NHibernate
Type: Bug
Components: Core
Versions: 1.2.0.Beta2
Reporter: dB.
Beta2 behavior different from 1.0.3.
This works fine in both 1.0.2 and 1.2.0 Beta 2:
IQuery q = Session.CreateSQLQuery(
"CREATE TABLE #fav ( [Id] [int], [Score] [int] )\n" +
"INSERT INTO #fav ( [Id], [Score] ) " +
" SELECT Place_Id, 1 FROM AccountPlaceFavorite " +
"CREATE TABLE #pl ( [Id] [int], [Score] [int] )\n" +
"INSERT INTO #pl ( [Id], [Score] )" +
" SELECT Id, SUM(Score) AS 'Score' FROM #fav " +
" GROUP BY Id\n" +
"SELECT {Place.*} FROM {Place} INNER JOIN #pl" +
" ON #pl.Id = Place.Place_Id" +
" ORDER BY [Score] DESC\n" +
"DROP TABLE #pl\n" +
"DROP TABLE #fav ",
"Place",
typeof(Place));
IList<Place> places = q.List<Place>();
Add
q.SetMaxResults(10);
q.SetFirstResult(1);
Exception
at NHibernate.Loader.Loader.DoList(ISessionImplementor session, QueryParameters queryParameters) in c:\net\nhibernate\nhibernate\src\NHibernate\Loader\Loader.cs:line 1761
at NHibernate.Loader.Loader.ListIgnoreQueryCache(ISessionImplementor session, QueryParameters queryParameters) in c:\net\nhibernate\nhibernate\src\NHibernate\Loader\Loader.cs:line 1705
at NHibernate.Loader.Loader.List(ISessionImplementor session, QueryParameters queryParameters, ISet querySpaces, IType[] resultTypes) in c:\net\nhibernate\nhibernate\src\NHibernate\Loader\Loader.cs:line 1699
at NHibernate.Loader.Custom.CustomLoader.List(ISessionImplementor session, QueryParameters queryParameters) in c:\net\nhibernate\nhibernate\src\NHibernate\Loader\Custom\CustomLoader.cs:line 290
at NHibernate.Impl.SessionImpl.ListCustomQuery(ICustomQuery customQuery, QueryParameters queryParameters, IList results) in c:\net\nhibernate\nhibernate\src\NHibernate\Impl\SessionImpl.cs:line 5348
at NHibernate.Impl.SessionImpl.List(NativeSQLQuerySpecification spec, QueryParameters queryParameters, IList results) in c:\net\nhibernate\nhibernate\src\NHibernate\Impl\SessionImpl.cs:line 5335
at NHibernate.Impl.SessionImpl.List[T](NativeSQLQuerySpecification spec, QueryParameters queryParameters) in c:\net\nhibernate\nhibernate\src\NHibernate\Impl\SessionImpl.cs:line 5323
at NHibernate.Impl.SqlQueryImpl.List[T]() in c:\net\nhibernate\nhibernate\src\NHibernate\Impl\SqlQueryImpl.cs:line 161
at SnCore.Data.Tests.AccountPlaceFavoriteTest.TestSelectWithTempTable() in C:\source\sncore\SnCore.Data.Tests\AccountPlaceFavoriteTest.cs:line 160
--ADOException
at System.Data.SqlClient.SqlConnection.OnError(SqlException exception, Boolean breakConnection)
at System.Data.SqlClient.SqlInternalConnection.OnError(SqlException exception, Boolean breakConnection)
at System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj)
at System.Data.SqlClient.TdsParser.Run(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj)
at System.Data.SqlClient.SqlDataReader.ConsumeMetaData()
at System.Data.SqlClient.SqlDataReader.get_MetaData()
at System.Data.SqlClient.SqlCommand.FinishExecuteReader(SqlDataReader ds, RunBehavior runBehavior, String resetOptionsString)
at System.Data.SqlClient.SqlCommand.RunExecuteReaderTds(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, Boolean async)
at System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method, DbAsyncResult result)
at System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method)
at System.Data.SqlClient.SqlCommand.ExecuteReader(CommandBehavior behavior, String method)
at System.Data.SqlClient.SqlCommand.ExecuteDbDataReader(CommandBehavior behavior)
at System.Data.Common.DbCommand.System.Data.IDbCommand.ExecuteReader()
at NHibernate.Impl.BatcherImpl.ExecuteReader(IDbCommand cmd) in c:\net\nhibernate\nhibernate\src\NHibernate\Impl\BatcherImpl.cs:line 185
at NHibernate.Loader.Loader.GetResultSet(IDbCommand st, RowSelection selection, ISessionImplementor session) in c:\net\nhibernate\nhibernate\src\NHibernate\Loader\Loader.cs:line 1366
at NHibernate.Loader.Loader.DoQuery(ISessionImplementor session, QueryParameters queryParameters, Boolean returnProxies) in c:\net\nhibernate\nhibernate\src\NHibernate\Loader\Loader.cs:line 392
at NHibernate.Loader.Loader.DoQueryAndInitializeNonLazyCollections(ISessionImplementor session, QueryParameters queryParameters, Boolean returnProxies) in c:\net\nhibernate\nhibernate\src\NHibernate\Loader\Loader.cs:line 183
at NHibernate.Loader.Loader.DoList(ISessionImplementor session, QueryParameters queryParameters) in c:\net\nhibernate\nhibernate\src\NHibernate\Loader\Loader.cs:line 1751
the query must start with SELECT
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
http://jira.nhibernate.org/secure/Administrators.jspa
-
For more information on JIRA, see:
http://www.atlassian.com/software/jira
|
|
From: NHibernate J. <mik...@us...> - 2006-12-25 16:46:26
|
[ http://jira.nhibernate.org/browse/NH-844?page=comments#action_14660 ] Christian Bauer commented on NH-844: ------------------------------------ Stop opening these nonsense issues. > Pagination no longer support for a query that doesn't start with SELECT. > ------------------------------------------------------------------------ > > Key: NH-844 > URL: http://jira.nhibernate.org/browse/NH-844 > Project: NHibernate > Type: Bug > Components: Core > Versions: 1.2.0.Beta2 > Reporter: dB. > > Beta2 behavior different from 1.0.3. > This works fine in both 1.0.2 and 1.2.0 Beta 2: > IQuery q = Session.CreateSQLQuery( > "CREATE TABLE #fav ( [Id] [int], [Score] [int] )\n" + > "INSERT INTO #fav ( [Id], [Score] ) " + > " SELECT Place_Id, 1 FROM AccountPlaceFavorite " + > "CREATE TABLE #pl ( [Id] [int], [Score] [int] )\n" + > "INSERT INTO #pl ( [Id], [Score] )" + > " SELECT Id, SUM(Score) AS 'Score' FROM #fav " + > " GROUP BY Id\n" + > "SELECT {Place.*} FROM {Place} INNER JOIN #pl" + > " ON #pl.Id = Place.Place_Id" + > " ORDER BY [Score] DESC\n" + > "DROP TABLE #pl\n" + > "DROP TABLE #fav ", > "Place", > typeof(Place)); > IList<Place> places = q.List<Place>(); > Add > q.SetMaxResults(10); > q.SetFirstResult(1); > Exception > at NHibernate.Loader.Loader.DoList(ISessionImplementor session, QueryParameters queryParameters) in c:\net\nhibernate\nhibernate\src\NHibernate\Loader\Loader.cs:line 1761 > at NHibernate.Loader.Loader.ListIgnoreQueryCache(ISessionImplementor session, QueryParameters queryParameters) in c:\net\nhibernate\nhibernate\src\NHibernate\Loader\Loader.cs:line 1705 > at NHibernate.Loader.Loader.List(ISessionImplementor session, QueryParameters queryParameters, ISet querySpaces, IType[] resultTypes) in c:\net\nhibernate\nhibernate\src\NHibernate\Loader\Loader.cs:line 1699 > at NHibernate.Loader.Custom.CustomLoader.List(ISessionImplementor session, QueryParameters queryParameters) in c:\net\nhibernate\nhibernate\src\NHibernate\Loader\Custom\CustomLoader.cs:line 290 > at NHibernate.Impl.SessionImpl.ListCustomQuery(ICustomQuery customQuery, QueryParameters queryParameters, IList results) in c:\net\nhibernate\nhibernate\src\NHibernate\Impl\SessionImpl.cs:line 5348 > at NHibernate.Impl.SessionImpl.List(NativeSQLQuerySpecification spec, QueryParameters queryParameters, IList results) in c:\net\nhibernate\nhibernate\src\NHibernate\Impl\SessionImpl.cs:line 5335 > at NHibernate.Impl.SessionImpl.List[T](NativeSQLQuerySpecification spec, QueryParameters queryParameters) in c:\net\nhibernate\nhibernate\src\NHibernate\Impl\SessionImpl.cs:line 5323 > at NHibernate.Impl.SqlQueryImpl.List[T]() in c:\net\nhibernate\nhibernate\src\NHibernate\Impl\SqlQueryImpl.cs:line 161 > at SnCore.Data.Tests.AccountPlaceFavoriteTest.TestSelectWithTempTable() in C:\source\sncore\SnCore.Data.Tests\AccountPlaceFavoriteTest.cs:line 160 > --ADOException > at System.Data.SqlClient.SqlConnection.OnError(SqlException exception, Boolean breakConnection) > at System.Data.SqlClient.SqlInternalConnection.OnError(SqlException exception, Boolean breakConnection) > at System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj) > at System.Data.SqlClient.TdsParser.Run(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj) > at System.Data.SqlClient.SqlDataReader.ConsumeMetaData() > at System.Data.SqlClient.SqlDataReader.get_MetaData() > at System.Data.SqlClient.SqlCommand.FinishExecuteReader(SqlDataReader ds, RunBehavior runBehavior, String resetOptionsString) > at System.Data.SqlClient.SqlCommand.RunExecuteReaderTds(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, Boolean async) > at System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method, DbAsyncResult result) > at System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method) > at System.Data.SqlClient.SqlCommand.ExecuteReader(CommandBehavior behavior, String method) > at System.Data.SqlClient.SqlCommand.ExecuteDbDataReader(CommandBehavior behavior) > at System.Data.Common.DbCommand.System.Data.IDbCommand.ExecuteReader() > at NHibernate.Impl.BatcherImpl.ExecuteReader(IDbCommand cmd) in c:\net\nhibernate\nhibernate\src\NHibernate\Impl\BatcherImpl.cs:line 185 > at NHibernate.Loader.Loader.GetResultSet(IDbCommand st, RowSelection selection, ISessionImplementor session) in c:\net\nhibernate\nhibernate\src\NHibernate\Loader\Loader.cs:line 1366 > at NHibernate.Loader.Loader.DoQuery(ISessionImplementor session, QueryParameters queryParameters, Boolean returnProxies) in c:\net\nhibernate\nhibernate\src\NHibernate\Loader\Loader.cs:line 392 > at NHibernate.Loader.Loader.DoQueryAndInitializeNonLazyCollections(ISessionImplementor session, QueryParameters queryParameters, Boolean returnProxies) in c:\net\nhibernate\nhibernate\src\NHibernate\Loader\Loader.cs:line 183 > at NHibernate.Loader.Loader.DoList(ISessionImplementor session, QueryParameters queryParameters) in c:\net\nhibernate\nhibernate\src\NHibernate\Loader\Loader.cs:line 1751 > the query must start with SELECT -- This message is automatically generated by JIRA. - If you think it was sent incorrectly contact one of the administrators: http://jira.nhibernate.org/secure/Administrators.jspa - For more information on JIRA, see: http://www.atlassian.com/software/jira |
|
From: NHibernate J. <mik...@us...> - 2006-12-25 16:46:28
|
[ http://jira.nhibernate.org/browse/NH-844?page=all ] Christian Bauer resolved NH-844: -------------------------------- Resolution: Not an Issue > Pagination no longer support for a query that doesn't start with SELECT. > ------------------------------------------------------------------------ > > Key: NH-844 > URL: http://jira.nhibernate.org/browse/NH-844 > Project: NHibernate > Type: Bug > Components: Core > Versions: 1.2.0.Beta2 > Reporter: dB. > > Beta2 behavior different from 1.0.3. > This works fine in both 1.0.2 and 1.2.0 Beta 2: > IQuery q = Session.CreateSQLQuery( > "CREATE TABLE #fav ( [Id] [int], [Score] [int] )\n" + > "INSERT INTO #fav ( [Id], [Score] ) " + > " SELECT Place_Id, 1 FROM AccountPlaceFavorite " + > "CREATE TABLE #pl ( [Id] [int], [Score] [int] )\n" + > "INSERT INTO #pl ( [Id], [Score] )" + > " SELECT Id, SUM(Score) AS 'Score' FROM #fav " + > " GROUP BY Id\n" + > "SELECT {Place.*} FROM {Place} INNER JOIN #pl" + > " ON #pl.Id = Place.Place_Id" + > " ORDER BY [Score] DESC\n" + > "DROP TABLE #pl\n" + > "DROP TABLE #fav ", > "Place", > typeof(Place)); > IList<Place> places = q.List<Place>(); > Add > q.SetMaxResults(10); > q.SetFirstResult(1); > Exception > at NHibernate.Loader.Loader.DoList(ISessionImplementor session, QueryParameters queryParameters) in c:\net\nhibernate\nhibernate\src\NHibernate\Loader\Loader.cs:line 1761 > at NHibernate.Loader.Loader.ListIgnoreQueryCache(ISessionImplementor session, QueryParameters queryParameters) in c:\net\nhibernate\nhibernate\src\NHibernate\Loader\Loader.cs:line 1705 > at NHibernate.Loader.Loader.List(ISessionImplementor session, QueryParameters queryParameters, ISet querySpaces, IType[] resultTypes) in c:\net\nhibernate\nhibernate\src\NHibernate\Loader\Loader.cs:line 1699 > at NHibernate.Loader.Custom.CustomLoader.List(ISessionImplementor session, QueryParameters queryParameters) in c:\net\nhibernate\nhibernate\src\NHibernate\Loader\Custom\CustomLoader.cs:line 290 > at NHibernate.Impl.SessionImpl.ListCustomQuery(ICustomQuery customQuery, QueryParameters queryParameters, IList results) in c:\net\nhibernate\nhibernate\src\NHibernate\Impl\SessionImpl.cs:line 5348 > at NHibernate.Impl.SessionImpl.List(NativeSQLQuerySpecification spec, QueryParameters queryParameters, IList results) in c:\net\nhibernate\nhibernate\src\NHibernate\Impl\SessionImpl.cs:line 5335 > at NHibernate.Impl.SessionImpl.List[T](NativeSQLQuerySpecification spec, QueryParameters queryParameters) in c:\net\nhibernate\nhibernate\src\NHibernate\Impl\SessionImpl.cs:line 5323 > at NHibernate.Impl.SqlQueryImpl.List[T]() in c:\net\nhibernate\nhibernate\src\NHibernate\Impl\SqlQueryImpl.cs:line 161 > at SnCore.Data.Tests.AccountPlaceFavoriteTest.TestSelectWithTempTable() in C:\source\sncore\SnCore.Data.Tests\AccountPlaceFavoriteTest.cs:line 160 > --ADOException > at System.Data.SqlClient.SqlConnection.OnError(SqlException exception, Boolean breakConnection) > at System.Data.SqlClient.SqlInternalConnection.OnError(SqlException exception, Boolean breakConnection) > at System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj) > at System.Data.SqlClient.TdsParser.Run(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj) > at System.Data.SqlClient.SqlDataReader.ConsumeMetaData() > at System.Data.SqlClient.SqlDataReader.get_MetaData() > at System.Data.SqlClient.SqlCommand.FinishExecuteReader(SqlDataReader ds, RunBehavior runBehavior, String resetOptionsString) > at System.Data.SqlClient.SqlCommand.RunExecuteReaderTds(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, Boolean async) > at System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method, DbAsyncResult result) > at System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method) > at System.Data.SqlClient.SqlCommand.ExecuteReader(CommandBehavior behavior, String method) > at System.Data.SqlClient.SqlCommand.ExecuteDbDataReader(CommandBehavior behavior) > at System.Data.Common.DbCommand.System.Data.IDbCommand.ExecuteReader() > at NHibernate.Impl.BatcherImpl.ExecuteReader(IDbCommand cmd) in c:\net\nhibernate\nhibernate\src\NHibernate\Impl\BatcherImpl.cs:line 185 > at NHibernate.Loader.Loader.GetResultSet(IDbCommand st, RowSelection selection, ISessionImplementor session) in c:\net\nhibernate\nhibernate\src\NHibernate\Loader\Loader.cs:line 1366 > at NHibernate.Loader.Loader.DoQuery(ISessionImplementor session, QueryParameters queryParameters, Boolean returnProxies) in c:\net\nhibernate\nhibernate\src\NHibernate\Loader\Loader.cs:line 392 > at NHibernate.Loader.Loader.DoQueryAndInitializeNonLazyCollections(ISessionImplementor session, QueryParameters queryParameters, Boolean returnProxies) in c:\net\nhibernate\nhibernate\src\NHibernate\Loader\Loader.cs:line 183 > at NHibernate.Loader.Loader.DoList(ISessionImplementor session, QueryParameters queryParameters) in c:\net\nhibernate\nhibernate\src\NHibernate\Loader\Loader.cs:line 1751 > the query must start with SELECT -- This message is automatically generated by JIRA. - If you think it was sent incorrectly contact one of the administrators: http://jira.nhibernate.org/secure/Administrators.jspa - For more information on JIRA, see: http://www.atlassian.com/software/jira |
|
From: NHibernate J. <mik...@us...> - 2006-12-25 21:03:23
|
[ http://jira.nhibernate.org/browse/NH-844?page=comments#action_14662 ] Sergey Koshcheyev commented on NH-844: -------------------------------------- Just to explain - this kind of usage of native queries was never explicitly supported (i.e. it worked in earlier versions by accident). If you need paging for such queries, implement it yourself. > Pagination no longer support for a query that doesn't start with SELECT. > ------------------------------------------------------------------------ > > Key: NH-844 > URL: http://jira.nhibernate.org/browse/NH-844 > Project: NHibernate > Type: Bug > Components: Core > Versions: 1.2.0.Beta2 > Reporter: dB. > > Beta2 behavior different from 1.0.3. > This works fine in both 1.0.2 and 1.2.0 Beta 2: > IQuery q = Session.CreateSQLQuery( > "CREATE TABLE #fav ( [Id] [int], [Score] [int] )\n" + > "INSERT INTO #fav ( [Id], [Score] ) " + > " SELECT Place_Id, 1 FROM AccountPlaceFavorite " + > "CREATE TABLE #pl ( [Id] [int], [Score] [int] )\n" + > "INSERT INTO #pl ( [Id], [Score] )" + > " SELECT Id, SUM(Score) AS 'Score' FROM #fav " + > " GROUP BY Id\n" + > "SELECT {Place.*} FROM {Place} INNER JOIN #pl" + > " ON #pl.Id = Place.Place_Id" + > " ORDER BY [Score] DESC\n" + > "DROP TABLE #pl\n" + > "DROP TABLE #fav ", > "Place", > typeof(Place)); > IList<Place> places = q.List<Place>(); > Add > q.SetMaxResults(10); > q.SetFirstResult(1); > Exception > at NHibernate.Loader.Loader.DoList(ISessionImplementor session, QueryParameters queryParameters) in c:\net\nhibernate\nhibernate\src\NHibernate\Loader\Loader.cs:line 1761 > at NHibernate.Loader.Loader.ListIgnoreQueryCache(ISessionImplementor session, QueryParameters queryParameters) in c:\net\nhibernate\nhibernate\src\NHibernate\Loader\Loader.cs:line 1705 > at NHibernate.Loader.Loader.List(ISessionImplementor session, QueryParameters queryParameters, ISet querySpaces, IType[] resultTypes) in c:\net\nhibernate\nhibernate\src\NHibernate\Loader\Loader.cs:line 1699 > at NHibernate.Loader.Custom.CustomLoader.List(ISessionImplementor session, QueryParameters queryParameters) in c:\net\nhibernate\nhibernate\src\NHibernate\Loader\Custom\CustomLoader.cs:line 290 > at NHibernate.Impl.SessionImpl.ListCustomQuery(ICustomQuery customQuery, QueryParameters queryParameters, IList results) in c:\net\nhibernate\nhibernate\src\NHibernate\Impl\SessionImpl.cs:line 5348 > at NHibernate.Impl.SessionImpl.List(NativeSQLQuerySpecification spec, QueryParameters queryParameters, IList results) in c:\net\nhibernate\nhibernate\src\NHibernate\Impl\SessionImpl.cs:line 5335 > at NHibernate.Impl.SessionImpl.List[T](NativeSQLQuerySpecification spec, QueryParameters queryParameters) in c:\net\nhibernate\nhibernate\src\NHibernate\Impl\SessionImpl.cs:line 5323 > at NHibernate.Impl.SqlQueryImpl.List[T]() in c:\net\nhibernate\nhibernate\src\NHibernate\Impl\SqlQueryImpl.cs:line 161 > at SnCore.Data.Tests.AccountPlaceFavoriteTest.TestSelectWithTempTable() in C:\source\sncore\SnCore.Data.Tests\AccountPlaceFavoriteTest.cs:line 160 > --ADOException > at System.Data.SqlClient.SqlConnection.OnError(SqlException exception, Boolean breakConnection) > at System.Data.SqlClient.SqlInternalConnection.OnError(SqlException exception, Boolean breakConnection) > at System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj) > at System.Data.SqlClient.TdsParser.Run(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj) > at System.Data.SqlClient.SqlDataReader.ConsumeMetaData() > at System.Data.SqlClient.SqlDataReader.get_MetaData() > at System.Data.SqlClient.SqlCommand.FinishExecuteReader(SqlDataReader ds, RunBehavior runBehavior, String resetOptionsString) > at System.Data.SqlClient.SqlCommand.RunExecuteReaderTds(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, Boolean async) > at System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method, DbAsyncResult result) > at System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method) > at System.Data.SqlClient.SqlCommand.ExecuteReader(CommandBehavior behavior, String method) > at System.Data.SqlClient.SqlCommand.ExecuteDbDataReader(CommandBehavior behavior) > at System.Data.Common.DbCommand.System.Data.IDbCommand.ExecuteReader() > at NHibernate.Impl.BatcherImpl.ExecuteReader(IDbCommand cmd) in c:\net\nhibernate\nhibernate\src\NHibernate\Impl\BatcherImpl.cs:line 185 > at NHibernate.Loader.Loader.GetResultSet(IDbCommand st, RowSelection selection, ISessionImplementor session) in c:\net\nhibernate\nhibernate\src\NHibernate\Loader\Loader.cs:line 1366 > at NHibernate.Loader.Loader.DoQuery(ISessionImplementor session, QueryParameters queryParameters, Boolean returnProxies) in c:\net\nhibernate\nhibernate\src\NHibernate\Loader\Loader.cs:line 392 > at NHibernate.Loader.Loader.DoQueryAndInitializeNonLazyCollections(ISessionImplementor session, QueryParameters queryParameters, Boolean returnProxies) in c:\net\nhibernate\nhibernate\src\NHibernate\Loader\Loader.cs:line 183 > at NHibernate.Loader.Loader.DoList(ISessionImplementor session, QueryParameters queryParameters) in c:\net\nhibernate\nhibernate\src\NHibernate\Loader\Loader.cs:line 1751 > the query must start with SELECT -- This message is automatically generated by JIRA. - If you think it was sent incorrectly contact one of the administrators: http://jira.nhibernate.org/secure/Administrators.jspa - For more information on JIRA, see: http://www.atlassian.com/software/jira |
|
From: NHibernate J. <mik...@us...> - 2006-12-25 22:25:27
|
[ http://jira.nhibernate.org/browse/NH-844?page=comments#action_14663 ] Ayende Rahien commented on NH-844: ---------------------------------- Also, this is far simpler query that does basically the same thing; SELECT {Place.*} from {Place} inner join (SELECT Id, SUM(Score) AS Score FROM AccountPlaceFavorite GROUP BY Id) pl on {Place.Id} = pl.Id order by pl.Score > Pagination no longer support for a query that doesn't start with SELECT. > ------------------------------------------------------------------------ > > Key: NH-844 > URL: http://jira.nhibernate.org/browse/NH-844 > Project: NHibernate > Type: Bug > Components: Core > Versions: 1.2.0.Beta2 > Reporter: dB. > > Beta2 behavior different from 1.0.3. > This works fine in both 1.0.2 and 1.2.0 Beta 2: > IQuery q = Session.CreateSQLQuery( > "CREATE TABLE #fav ( [Id] [int], [Score] [int] )\n" + > "INSERT INTO #fav ( [Id], [Score] ) " + > " SELECT Place_Id, 1 FROM AccountPlaceFavorite " + > "CREATE TABLE #pl ( [Id] [int], [Score] [int] )\n" + > "INSERT INTO #pl ( [Id], [Score] )" + > " SELECT Id, SUM(Score) AS 'Score' FROM #fav " + > " GROUP BY Id\n" + > "SELECT {Place.*} FROM {Place} INNER JOIN #pl" + > " ON #pl.Id = Place.Place_Id" + > " ORDER BY [Score] DESC\n" + > "DROP TABLE #pl\n" + > "DROP TABLE #fav ", > "Place", > typeof(Place)); > IList<Place> places = q.List<Place>(); > Add > q.SetMaxResults(10); > q.SetFirstResult(1); > Exception > at NHibernate.Loader.Loader.DoList(ISessionImplementor session, QueryParameters queryParameters) in c:\net\nhibernate\nhibernate\src\NHibernate\Loader\Loader.cs:line 1761 > at NHibernate.Loader.Loader.ListIgnoreQueryCache(ISessionImplementor session, QueryParameters queryParameters) in c:\net\nhibernate\nhibernate\src\NHibernate\Loader\Loader.cs:line 1705 > at NHibernate.Loader.Loader.List(ISessionImplementor session, QueryParameters queryParameters, ISet querySpaces, IType[] resultTypes) in c:\net\nhibernate\nhibernate\src\NHibernate\Loader\Loader.cs:line 1699 > at NHibernate.Loader.Custom.CustomLoader.List(ISessionImplementor session, QueryParameters queryParameters) in c:\net\nhibernate\nhibernate\src\NHibernate\Loader\Custom\CustomLoader.cs:line 290 > at NHibernate.Impl.SessionImpl.ListCustomQuery(ICustomQuery customQuery, QueryParameters queryParameters, IList results) in c:\net\nhibernate\nhibernate\src\NHibernate\Impl\SessionImpl.cs:line 5348 > at NHibernate.Impl.SessionImpl.List(NativeSQLQuerySpecification spec, QueryParameters queryParameters, IList results) in c:\net\nhibernate\nhibernate\src\NHibernate\Impl\SessionImpl.cs:line 5335 > at NHibernate.Impl.SessionImpl.List[T](NativeSQLQuerySpecification spec, QueryParameters queryParameters) in c:\net\nhibernate\nhibernate\src\NHibernate\Impl\SessionImpl.cs:line 5323 > at NHibernate.Impl.SqlQueryImpl.List[T]() in c:\net\nhibernate\nhibernate\src\NHibernate\Impl\SqlQueryImpl.cs:line 161 > at SnCore.Data.Tests.AccountPlaceFavoriteTest.TestSelectWithTempTable() in C:\source\sncore\SnCore.Data.Tests\AccountPlaceFavoriteTest.cs:line 160 > --ADOException > at System.Data.SqlClient.SqlConnection.OnError(SqlException exception, Boolean breakConnection) > at System.Data.SqlClient.SqlInternalConnection.OnError(SqlException exception, Boolean breakConnection) > at System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj) > at System.Data.SqlClient.TdsParser.Run(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj) > at System.Data.SqlClient.SqlDataReader.ConsumeMetaData() > at System.Data.SqlClient.SqlDataReader.get_MetaData() > at System.Data.SqlClient.SqlCommand.FinishExecuteReader(SqlDataReader ds, RunBehavior runBehavior, String resetOptionsString) > at System.Data.SqlClient.SqlCommand.RunExecuteReaderTds(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, Boolean async) > at System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method, DbAsyncResult result) > at System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method) > at System.Data.SqlClient.SqlCommand.ExecuteReader(CommandBehavior behavior, String method) > at System.Data.SqlClient.SqlCommand.ExecuteDbDataReader(CommandBehavior behavior) > at System.Data.Common.DbCommand.System.Data.IDbCommand.ExecuteReader() > at NHibernate.Impl.BatcherImpl.ExecuteReader(IDbCommand cmd) in c:\net\nhibernate\nhibernate\src\NHibernate\Impl\BatcherImpl.cs:line 185 > at NHibernate.Loader.Loader.GetResultSet(IDbCommand st, RowSelection selection, ISessionImplementor session) in c:\net\nhibernate\nhibernate\src\NHibernate\Loader\Loader.cs:line 1366 > at NHibernate.Loader.Loader.DoQuery(ISessionImplementor session, QueryParameters queryParameters, Boolean returnProxies) in c:\net\nhibernate\nhibernate\src\NHibernate\Loader\Loader.cs:line 392 > at NHibernate.Loader.Loader.DoQueryAndInitializeNonLazyCollections(ISessionImplementor session, QueryParameters queryParameters, Boolean returnProxies) in c:\net\nhibernate\nhibernate\src\NHibernate\Loader\Loader.cs:line 183 > at NHibernate.Loader.Loader.DoList(ISessionImplementor session, QueryParameters queryParameters) in c:\net\nhibernate\nhibernate\src\NHibernate\Loader\Loader.cs:line 1751 > the query must start with SELECT -- This message is automatically generated by JIRA. - If you think it was sent incorrectly contact one of the administrators: http://jira.nhibernate.org/secure/Administrators.jspa - For more information on JIRA, see: http://www.atlassian.com/software/jira |
|
From: NHibernate J. <mik...@us...> - 2006-12-26 03:57:25
|
[ http://jira.nhibernate.org/browse/NH-844?page=comments#action_14664 ] dB. commented on NH-844: ------------------------ Ayende, this only works for the second part, not for the whole thing. AccountPlaceFavorite doesn't have a Score column - it's the sum of appearances in AccountPlaceFavorite. The query wants the places that are "most favorite", that is only places that appear in AccountPlaceFavorite sorted by how many times they appear. I still don't speak SQL fluently enough to write it as one query :) > Pagination no longer support for a query that doesn't start with SELECT. > ------------------------------------------------------------------------ > > Key: NH-844 > URL: http://jira.nhibernate.org/browse/NH-844 > Project: NHibernate > Type: Bug > Components: Core > Versions: 1.2.0.Beta2 > Reporter: dB. > > Beta2 behavior different from 1.0.3. > This works fine in both 1.0.2 and 1.2.0 Beta 2: > IQuery q = Session.CreateSQLQuery( > "CREATE TABLE #fav ( [Id] [int], [Score] [int] )\n" + > "INSERT INTO #fav ( [Id], [Score] ) " + > " SELECT Place_Id, 1 FROM AccountPlaceFavorite " + > "CREATE TABLE #pl ( [Id] [int], [Score] [int] )\n" + > "INSERT INTO #pl ( [Id], [Score] )" + > " SELECT Id, SUM(Score) AS 'Score' FROM #fav " + > " GROUP BY Id\n" + > "SELECT {Place.*} FROM {Place} INNER JOIN #pl" + > " ON #pl.Id = Place.Place_Id" + > " ORDER BY [Score] DESC\n" + > "DROP TABLE #pl\n" + > "DROP TABLE #fav ", > "Place", > typeof(Place)); > IList<Place> places = q.List<Place>(); > Add > q.SetMaxResults(10); > q.SetFirstResult(1); > Exception > at NHibernate.Loader.Loader.DoList(ISessionImplementor session, QueryParameters queryParameters) in c:\net\nhibernate\nhibernate\src\NHibernate\Loader\Loader.cs:line 1761 > at NHibernate.Loader.Loader.ListIgnoreQueryCache(ISessionImplementor session, QueryParameters queryParameters) in c:\net\nhibernate\nhibernate\src\NHibernate\Loader\Loader.cs:line 1705 > at NHibernate.Loader.Loader.List(ISessionImplementor session, QueryParameters queryParameters, ISet querySpaces, IType[] resultTypes) in c:\net\nhibernate\nhibernate\src\NHibernate\Loader\Loader.cs:line 1699 > at NHibernate.Loader.Custom.CustomLoader.List(ISessionImplementor session, QueryParameters queryParameters) in c:\net\nhibernate\nhibernate\src\NHibernate\Loader\Custom\CustomLoader.cs:line 290 > at NHibernate.Impl.SessionImpl.ListCustomQuery(ICustomQuery customQuery, QueryParameters queryParameters, IList results) in c:\net\nhibernate\nhibernate\src\NHibernate\Impl\SessionImpl.cs:line 5348 > at NHibernate.Impl.SessionImpl.List(NativeSQLQuerySpecification spec, QueryParameters queryParameters, IList results) in c:\net\nhibernate\nhibernate\src\NHibernate\Impl\SessionImpl.cs:line 5335 > at NHibernate.Impl.SessionImpl.List[T](NativeSQLQuerySpecification spec, QueryParameters queryParameters) in c:\net\nhibernate\nhibernate\src\NHibernate\Impl\SessionImpl.cs:line 5323 > at NHibernate.Impl.SqlQueryImpl.List[T]() in c:\net\nhibernate\nhibernate\src\NHibernate\Impl\SqlQueryImpl.cs:line 161 > at SnCore.Data.Tests.AccountPlaceFavoriteTest.TestSelectWithTempTable() in C:\source\sncore\SnCore.Data.Tests\AccountPlaceFavoriteTest.cs:line 160 > --ADOException > at System.Data.SqlClient.SqlConnection.OnError(SqlException exception, Boolean breakConnection) > at System.Data.SqlClient.SqlInternalConnection.OnError(SqlException exception, Boolean breakConnection) > at System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj) > at System.Data.SqlClient.TdsParser.Run(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj) > at System.Data.SqlClient.SqlDataReader.ConsumeMetaData() > at System.Data.SqlClient.SqlDataReader.get_MetaData() > at System.Data.SqlClient.SqlCommand.FinishExecuteReader(SqlDataReader ds, RunBehavior runBehavior, String resetOptionsString) > at System.Data.SqlClient.SqlCommand.RunExecuteReaderTds(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, Boolean async) > at System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method, DbAsyncResult result) > at System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method) > at System.Data.SqlClient.SqlCommand.ExecuteReader(CommandBehavior behavior, String method) > at System.Data.SqlClient.SqlCommand.ExecuteDbDataReader(CommandBehavior behavior) > at System.Data.Common.DbCommand.System.Data.IDbCommand.ExecuteReader() > at NHibernate.Impl.BatcherImpl.ExecuteReader(IDbCommand cmd) in c:\net\nhibernate\nhibernate\src\NHibernate\Impl\BatcherImpl.cs:line 185 > at NHibernate.Loader.Loader.GetResultSet(IDbCommand st, RowSelection selection, ISessionImplementor session) in c:\net\nhibernate\nhibernate\src\NHibernate\Loader\Loader.cs:line 1366 > at NHibernate.Loader.Loader.DoQuery(ISessionImplementor session, QueryParameters queryParameters, Boolean returnProxies) in c:\net\nhibernate\nhibernate\src\NHibernate\Loader\Loader.cs:line 392 > at NHibernate.Loader.Loader.DoQueryAndInitializeNonLazyCollections(ISessionImplementor session, QueryParameters queryParameters, Boolean returnProxies) in c:\net\nhibernate\nhibernate\src\NHibernate\Loader\Loader.cs:line 183 > at NHibernate.Loader.Loader.DoList(ISessionImplementor session, QueryParameters queryParameters) in c:\net\nhibernate\nhibernate\src\NHibernate\Loader\Loader.cs:line 1751 > the query must start with SELECT -- This message is automatically generated by JIRA. - If you think it was sent incorrectly contact one of the administrators: http://jira.nhibernate.org/secure/Administrators.jspa - For more information on JIRA, see: http://www.atlassian.com/software/jira |