Thanks! I will be checking that out today. On Mon, May 17, 2010 at 2:11 AM, Ayende Rahien <[email protected]> wrote:
> No, the place to look here is the NH MySql Dialect, actually. > Look at GetLimitString, in particular. > > > On Mon, May 17, 2010 at 5:29 AM, Nathan Stott <[email protected]> wrote: > >> I traced it to being caused by the SetMaxResults(1) call >> in GetPermissionQueryInternal in AuthorizationService. >> >> When I remove SetMaxResults(1) things work more as I'd expect them to, but >> looking at the code it looks like this is needed logic. >> >> I suppose that means that problem is again in the NH MySQL Provider? >> Would that be the place to look next? >> >> >> On Mon, May 17, 2010 at 12:05 AM, Nathan Stott <[email protected]> wrote: >> >>> Any ideas on this problem would be greatly appreciated. >>> >>> I'm doing a very simple query. >>> >>> var dc = DetachedCriteria.For<Appointment>(); >>> >>> AuthorizationService.AddPermissionsToQuery(user, "/Appointment/View", >>>> dc); >>> >>> return dc.GetExecutableCriteria(Session).List<Appointment>(); >>> >>> >>> Removing the AddPermissionsToQuery results in a query that works. The >>> SQL generated produces invalid SQL with a variable ?p6 that is simply >>> undefined. The ?p6 variable appears to be completely extraneous. >>> Running the SQL statement manually with this parameter removed results in >>> the exact results I want. >>> >>> This is the exact error: >>> *Exception Details: *MySql.Data.MySqlClient.MySqlException: Parameter >>> '?p6' must be defined. >>> >>> Any suggestions would be most welcome. >>> >>> This is the resulting SQL: >>> >>> SELECT >>> this_.id as id4_0_, >>> this_.appointment_status as appointm2_4_0_, >>> this_.requestor_first_name as requestor3_4_0_, >>> this_.requestor_last_name as requestor4_4_0_, >>> this_.requestor_phone as requestor5_4_0_, >>> this_.requestor_email as requestor6_4_0_, >>> this_.inn_code as inn7_4_0_, >>> this_.start_time as start8_4_0_, >>> this_.end_time as end9_4_0_, >>> this_.consult_reason_description as consult10_4_0_, >>> this_.created_at as created11_4_0_, >>> this_.last_modified_at as last12_4_0_, >>> this_.security_key as security13_4_0_, >>> this_._user as column14_4_0_, >>> this_._time_slot as column15_4_0_ >>> FROM appointment this_ >>> WHERE 1 /* ?p0 */ = ( >>> SELECT >>> this_0_.Allow as y0_ >>> FROM security_Permissions this_0_ inner join security_Operations op1_ >>> on this_0_.Operation=op1_.Id left outer join security_EntitiesGroups >>> entitygrou2_ on this_0_.EntitiesGroup=entitygrou2_.Id left outer join >>> security_EntityReferencesToEntitiesGroups entities7_ on >>> entitygrou2_.Id=entities7_.GroupId left outer join security_EntityReferences >>> entitykey3_ on entities7_.EntityReferenceId=entitykey3_.Id >>> WHERE op1_.Name in ( >>> '/Appointment/View' /* ?p1 */, >>> '/Appointment' /* ?p2 */) >>> and >>> ( >>> this_0_.`User` = 1515 /* ?p3 */ or >>> this_0_.UsersGroup in ( >>> SELECT >>> this_0_0_.Id as y0_ >>> FROM security_UsersGroups this_0_0_ >>> WHERE this_0_0_.Id in ( >>> SELECT >>> this_0_0_0_.Id as y0_ >>> FROM security_UsersGroups this_0_0_0_ left outer join >>> security_UsersToUsersGroups users4_ on this_0_0_0_.Id=users4_.GroupId left >>> outer join users user1_ on users4_.UserId=user1_.id left outer join >>> security_UsersGroupsHierarchy allchildre6_ on >>> this_0_0_0_.Id=allchildre6_.ParentGroup left outer join security_UsersGroups >>> child2_ on allchildre6_.ChildGroup=child2_.Id >>> WHERE ( >>> child2_.Id in ( >>> SELECT >>> this_0_0_0x0_.Id as y0_ >>> FROM security_UsersGroups this_0_0_0x0_ inner join >>> security_UsersToUsersGroups users3_ on this_0_0_0x0_.Id=users3_.GroupId >>> inner join users user1_ on users3_.UserId=user1_.id >>> WHERE user1_.id = 1515 /* ?p4 */) >>> or >>> user1_.id = 1515 /* ?p5 */) >>> ) >>> ) >>> ) >>> and >>> ( >>> ( >>> this_.security_key = this_0_.EntitySecurityKey or >>> this_.security_key = entitykey3_.EntitySecurityKey) >>> or >>> ( >>> this_0_.EntitySecurityKey is null and >>> this_0_.EntitiesGroup is null) >>> ) >>> ORDER BY this_0_.Level desc, >>> this_0_.Allow asc limit ?p6) >>> >> >> -- >> You received this message because you are subscribed to the Google Groups >> "Rhino Tools Dev" group. >> To post to this group, send email to [email protected]. >> To unsubscribe from this group, send email to >> [email protected]<rhino-tools-dev%[email protected]> >> . >> For more options, visit this group at >> http://groups.google.com/group/rhino-tools-dev?hl=en. >> > > -- > You received this message because you are subscribed to the Google Groups > "Rhino Tools Dev" group. > To post to this group, send email to [email protected]. > To unsubscribe from this group, send email to > [email protected]<rhino-tools-dev%[email protected]> > . > For more options, visit this group at > http://groups.google.com/group/rhino-tools-dev?hl=en. > -- You received this message because you are subscribed to the Google Groups "Rhino Tools Dev" group. To post to this group, send email to [email protected]. To unsubscribe from this group, send email to [email protected]. For more options, visit this group at http://groups.google.com/group/rhino-tools-dev?hl=en.
