On Mon, 2007-11-19 at 13:59 -0800, cesco wrote: > Sorry for the imprecise description of the problem. > > After some filtering statements (which I don't show here) I derive a > qs containing about 1000 objects. > With the following statement I try to filter the query further > new_qs = qs.filter(models.Q(myField__iregex="\\b%s\\b" % myString) > and new_qs comes to have 93 objects. > This happens locally where I'm running sqlite3. > > In the production server (which I currently can't access, so I can't > compare the sql statements) I have the same database (except that I'm > using Postgresql 8.2). > The qs which I have before the "critical" filter statement contains > the same objects (about 1000 of them). After I apply the same > filtering I get a resulting qs which is empty. So no error message or > infinite loop. Just a different unexpected result.
Does the SQL produced by Django make sense for PostgreSQL? Once you know that it's likely to be an SQL selection problem, the next step is to look at the SQL generated and see if it's what you expect. The problem is almost certainly the '\b' in your regex, since that is trying to match "backspace" and I suspect you want '\m' in the first case and '\M' in the second one. SQLite doesn't have native regexp matching, so Django provides an interface to Python's regular expression module. However, this isn't the same as the reg-exp syntax used by PostgreSQL. Regards, Malcolm -- I've got a mind like a... a... what's that thing called? http://www.pointy-stick.com/blog/ --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Django users" group. To post to this group, send email to django-users@googlegroups.com To unsubscribe from this group, send email to [EMAIL PROTECTED] For more options, visit this group at http://groups.google.com/group/django-users?hl=en -~----------~----~----~----~------~----~------~--~---