in latest trunk, _lastsql on GAE is a string but only says "select" ,
"delete", "insert" etc. Better than nothing for now.

Massimo

On Dec 23, 12:14 am, Jonathan Benn <jonathan.b...@gmail.com> wrote:
> Hi all,
>
> On Dec 22, 12:43 pm, mdipierro <mdipie...@cs.depaul.edu> wrote:
>
> > db=SQLDB(...)
> > def timer(db,f):
> >       import time,os
> >       import gluon.portalocker
> >       myfile=open(os.path.join
> > (request.folder,'databases','sql.log'),'a')
> >       gluon.portalocker,lock(myfile, gluon.portalocker.LOCK_EX)
> >       t0=time.time()
> >       f()
> >       t0=time.time()-t0
> >       gluon.portalocker,unlock(myfile)
> >       myfile.wriite('%s: %s\n' % (t0,db._lastsql)
> > db._execute=lambda *a,**b: timer(db,lambda:db._execute(*a,**b))
>
> Unfortunately the above code doesn't work for for GAE. I tried the
> following solution in my model:
>
> import time, logging
> class DatabaseDecorator(GQLDB):
>     def __timer(self, where):
>         if not self._lastsql:
>             value = GQLDB.__call__(self, where)
>         else:
>             t0 = time.time()
>             value = GQLDB.__call__(self, where)
>             t1 = time.time() - t0
>             logging.critical('%s : %.0f ms' % (self._lastsql, t1))
>         return value
>
>     def __call__(self, where=''):
>         return self.__timer(where)
>
> db=DatabaseDecorator()  # connect to Google BigTable
>
> There's only one big problem: GQLDB._lastsql gives you Google's
> "Query" object, which doesn't have a string representation.  I wonder
> if there's an easy way to store the query string in GQLDB, as
> GQLDB._lastsqlstring or something?
>
> Sincerely,
>
> --Jonathan
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"web2py Web Framework" group.
To post to this group, send email to web2py@googlegroups.com
To unsubscribe from this group, send email to 
web2py+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/web2py?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to