That's kinda overkill at the moment, but good information to know for the future.. I was just wondering if Castle/NHibernate had a built in way for doing this. Sounds like a HQL expression using SimpleQuery is the best way. I've looked at the SQL it generates and it's fine.
On Sun, Jun 13, 2010 at 3:11 AM, Tuna Toksoz <[email protected]> wrote: > If you want, you can implement your own function and the corresponding > criteria. Inherit from a dialect and register the function and using > SqlFunctionCriteria it is possible. (not sure about the names and the like, > because it's been more than 1 year) > Tuna Toksöz > Eternal sunshine of the open source mind. > > http://devlicio.us/blogs/tuna_toksoz > http://tunatoksoz.com > http://twitter.com/tehlike > > > > > On Sun, Jun 13, 2010 at 10:43 AM, Mike Christensen <[email protected]> > wrote: >> >> So something like this? >> >> return (new Castle.ActiveRecord.Queries.SimpleQuery<User>("FROM User u >> WHERE LOWER(u.Alias) = ?", a)).Execute().Length != 0; >> >> This seems to work, thanks!! >> >> Mike >> >> On Sat, Jun 12, 2010 at 8:15 PM, Gauthier Segay >> <[email protected]> wrote: >> > Hi, >> > >> > I don't have an answer for criteria API, but I'm pretty sure hql query >> > would allow you to use any vendor specific function (lower being >> > supported by most of the sql databases) >> > >> > from User u where u.Alias = lower(:alias) >> > >> > last sample on this post describe this: >> > >> > >> > http://ayende.com/Blog/archive/2006/10/01/UsingSQLFunctionsInNHibernate.aspx >> > >> > On Jun 12, 7:17 pm, Mike Christensen <[email protected]> wrote: >> >> For the sake of the question, let's just assume my DB is >> >> case-sensitive. FYI, I'm using Postgres 8.3.4 which is always >> >> case-sensitive (as far as I know).. >> >> >> >> Mike >> >> >> >> On Sat, Jun 12, 2010 at 7:14 PM, Patrick Steele >> >> >> >> >> >> >> >> <[email protected]> wrote: >> >> > It depends on the server. Well, in MS SQL Server 6 and I think up to >> >> > 7 it was server-specific (you could define case sensitive or >> >> > case-insensitive). Starting with SQL 2000, it could be done on a >> >> > per-database setting. >> >> >> >> > --- >> >> > Patrick Steele >> >> >http://weblogs.asp.net/psteele >> >> >> >> > On Sat, Jun 12, 2010 at 8:41 PM, Tuna Toksoz <[email protected]> >> >> > wrote: >> >> >> isn't sql case insensitie most of the time? >> >> >> Tuna Toksöz >> >> >> Eternal sunshine of the open source mind. >> >> >> >> >>http://devlicio.us/blogs/tuna_toksoz >> >> >>http://tunatoksoz.com >> >> >>http://twitter.com/tehlike >> >> >> >> >> On Sun, Jun 13, 2010 at 2:39 AM, Mike Christensen >> >> >> <[email protected]> >> >> >> wrote: >> >> >> >> >>> I need to lookup a user by Alias, however I need this to be case >> >> >>> insensitive. Basically I just need to know if the row exists or >> >> >>> not. >> >> >>> Here's what I'm doing now: >> >> >> >> >>> return (User.FindFirst(new >> >> >>> NHibernate.Criterion.InsensitiveLikeExpression("Alias", alias)) != >> >> >>> null); >> >> >> >> >>> However, I don't like this because it's not gonna use any indexes. >> >> >>> I've created an index on LOWER(Alias), thus I want the query >> >> >>> generated >> >> >>> to be: >> >> >> >> >>> SELECT COUNT(*) FROM Users WHERE LOWER(Alias) = 'myvalue'; --This >> >> >>> will >> >> >>> be very very fast. >> >> >> >> >>> Any ideas on how to generate this query with ActiveRecord? >> >> >>> Thanks!! >> >> >> >> >>> Mike >> >> >> >> >>> -- >> >> >>> You received this message because you are subscribed to the Google >> >> >>> Groups >> >> >>> "Castle Project Users" 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/castle-project-users?hl=en. >> >> >> >> >> -- >> >> >> You received this message because you are subscribed to the Google >> >> >> Groups >> >> >> "Castle Project Users" 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/castle-project-users?hl=en. >> >> >> >> > -- >> >> > You received this message because you are subscribed to the Google >> >> > Groups "Castle Project Users" 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 >> >> > athttp://groups.google.com/group/castle-project-users?hl=en. >> > >> > -- >> > You received this message because you are subscribed to the Google >> > Groups "Castle Project Users" 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/castle-project-users?hl=en. >> > >> > >> >> -- >> You received this message because you are subscribed to the Google Groups >> "Castle Project Users" 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/castle-project-users?hl=en. >> > > -- > You received this message because you are subscribed to the Google Groups > "Castle Project Users" 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/castle-project-users?hl=en. > -- You received this message because you are subscribed to the Google Groups "Castle Project Users" 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/castle-project-users?hl=en.
