Hi --

I am getting intermittent errors on certain database queries on our
production server.
I am having a hard time duplicating them (most of the time they run
okay, only sometimes on the production server am I receiving exception
messages),
so I want to log the SQL query itself and see what it is, and why it
might be failing.
Is there some way of seeing what SQL statement will be executed by a
QuerySet before actually executing it?
I've also set up logging on the database side, so I can look there as well.
Any other ideas for how I might debug this?  See anything wrong with the
queries?
I do need to know the total number of articles returned, and .count() is
the recommended way of doing that. In most cases I'm slicing the
QuerySet after getting the count.

Any help would be very much appreciated!

 ~Liam

Traceback (most recent call last):

  File "/usr/lib/python2.4/site-packages/django/core/handlers/base.py", line 
86, in get_response
    response = callback(request, *callback_args, **callback_kwargs)

  File "/var/www/vhosts/site.com/django/obsidian/obs/views.py", line 219, in 
index
    radius=radius, order_by='distance')

  File "/var/www/vhosts/site.com/django/obsidian/obs/data_access.py", line 551, 
in search
    art_result_count = art_list.count()

  File "/usr/lib/python2.4/site-packages/django/db/models/query.py", line 296, 
in count
    return self.query.get_count()

  File "/usr/lib/python2.4/site-packages/django/db/models/sql/query.py", line 
237, in get_count
    data = obj.execute_sql(SINGLE)

  File "/usr/lib/python2.4/site-packages/django/db/models/sql/query.py", line 
1734, in execute_sql
    cursor.execute(sql, params)

InternalError: current transaction is aborted, commands ignored until end of 
transaction block



The code looks like this:

 if term:

            if pnt:

                art_list = Article.objects.filter(\

                    status='PUBLISHED')\

                    .extra(where=["title_tsv @@ plainto_tsquery(%s)"], 
params=[term])\

                    .distance(pnt)\
                    .order_by(*order_by)


            else:

                art_list = Article.objects.extra (\

                    where=['title_tsv @@ plainto_tsquery(%s) AND 
status=%s'],params=[term,'PUBLISHED'])\

                    .order_by(*order_by)

        elif search_origin:

            try:

                art_list = Article.objects.filter(status='PUBLISHED',\

                    point__distance_lte=(pnt,D(km=radius))).distance(pnt)\

                    .order_by(*order_by)

            except Exception, e:

                raise

        else:       

            raise


The exception comes when I execute the query by getting the count

 art_result_count = art_list.count()
 if rows:
     art_list = art_list[start:start+rows]




--~--~---------~--~----~------------~-------~--~----~
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 
django-users+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/django-users?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to