Issue 769 created. Thanks.
On Thursday, 19 April 2012 23:22:53 UTC+10, Massimo Di Pierro wrote: > > Can you please open a ticket about this? > > On Thursday, 19 April 2012 06:43:24 UTC-5, Douglas Ross wrote: >> >> Massimo, >> >> Sorry for the delayed response.... took me a while to get trunk, unzip >> correctly, etc.... although I know now. >> >> I used the trunk version. >> >> If I put in: >> >> http://localhost:8080/hosp/api/calldatasmart.json?search=call.start is >> greater than "2010-03-14" >> I still get the same error... >> >> If I put in: >> http://localhost:8080/hosp/api/calldatasmart.json?search=call.start is >> greater than "2010-03-14 20:58:54" >> IT WORKS PERFECTLY. >> >> I expect that this is an error from your perspective in the trunk still, >> however I am happy to put in the full date and time, and get it to work, so >> thanks very much. >> >> Doug >> >> On Tuesday, 10 April 2012 00:21:51 UTC+10, Massimo Di Pierro wrote: >>> >>> This is actually not a GAE issue. This is a smartgrid issue. Because you >>> are comparing with a datetime issue, it expects the time as part of the >>> date. I just change the parsing routine in trunk to fix this problem. Give >>> it a try. >>> >>> Massimo >>> >>> On Sunday, 8 April 2012 22:36:34 UTC-5, Douglas Ross wrote: >>>> >>>> Hi, >>>> >>>> I know the documentation explains that you cannot do 'complex' datetime >>>> queries in web2py with GAE, however I am hoping that this does not qualify >>>> as 'complex'. >>>> >>>> I am trying to use the smartquery (experimental) functionality that it >>>> works really well in the SQLlite db. >>>> >>>> Unfortunately, the same call fails in GAE. >>>> >>>> I am using Version 1.99.7, and the latest GAE. >>>> >>>> To reproduce the problem, I have a table with a datetime field: >>>> >>>> db.define_table('call', >>>> Field('start', 'datetime'), >>>> Field('end', 'datetime'), >>>> Field('created_on','datetime',default=request.now, >>>> label=T('Created On'),writable=False,readable=False), >>>> Field('modified_on','datetime',default=request.now, >>>> label=T('Modified On'),writable=False,readable=False, >>>> update=request.now)) >>>> >>>> I have created an REST interface using the smartquery functionality, >>>> that works well on SQL lite: >>>> >>>> @request.restful() >>>> #@auth.requires_login() >>>> def calldatasmart(): >>>> response.view = 'generic.'+request.extension >>>> def GET(search): >>>> try: >>>> rows = db.smart_query([db.call],search).select() >>>> return dict(result=rows) >>>> except RuntimeError: >>>> raise HTTP(400,"Invalid search string") >>>> return locals() >>>> >>>> Now if I do the following I get the correct response from SQLLite and >>>> an error from GAE. (Note: I created the data using the default=request.now >>>> function, so it should be a datetime in the datastore. >>>> >>>> http://localhost:8080/api/calldatasmart.json?search=call.created_on is >>>> greater than "2012-03-20" >>>> >>>> Error in GAE: >>>> >>>> File "/........./gluon/dal.py", line 3396, in represent >>>> >>>> time_items = map(int,str(obj)[11:].strip().split(':')[:3]) >>>> >>>> ValueError: invalid literal for int() with base 10: '' >>>> Question: >>>> 1. Is this a bug in the experimental smartquery functionality? >>>> 2. Does all datetime comparisons not work with GAE? >>>> 3. Can I use a GQL call to do it, or is there a way in Web2py to do it >>>> nicely? >>>> >>>> BTW: I have not coded as much as this for 15 years, and I have not had >>>> so much fun in getting back into it. So thankyou all for the work you have >>>> done to create web2py... >>>> >>>> Doug >>>> >>>> On Thursday, 19 April 2012 23:22:53 UTC+10, Massimo Di Pierro wrote: > > Can you please open a ticket about this? > > On Thursday, 19 April 2012 06:43:24 UTC-5, Douglas Ross wrote: >> >> Massimo, >> >> Sorry for the delayed response.... took me a while to get trunk, unzip >> correctly, etc.... although I know now. >> >> I used the trunk version. >> >> If I put in: >> >> http://localhost:8080/hosp/api/calldatasmart.json?search=call.start is >> greater than "2010-03-14" >> I still get the same error... >> >> If I put in: >> http://localhost:8080/hosp/api/calldatasmart.json?search=call.start is >> greater than "2010-03-14 20:58:54" >> IT WORKS PERFECTLY. >> >> I expect that this is an error from your perspective in the trunk still, >> however I am happy to put in the full date and time, and get it to work, so >> thanks very much. >> >> Doug >> >> On Tuesday, 10 April 2012 00:21:51 UTC+10, Massimo Di Pierro wrote: >>> >>> This is actually not a GAE issue. This is a smartgrid issue. Because you >>> are comparing with a datetime issue, it expects the time as part of the >>> date. I just change the parsing routine in trunk to fix this problem. Give >>> it a try. >>> >>> Massimo >>> >>> On Sunday, 8 April 2012 22:36:34 UTC-5, Douglas Ross wrote: >>>> >>>> Hi, >>>> >>>> I know the documentation explains that you cannot do 'complex' datetime >>>> queries in web2py with GAE, however I am hoping that this does not qualify >>>> as 'complex'. >>>> >>>> I am trying to use the smartquery (experimental) functionality that it >>>> works really well in the SQLlite db. >>>> >>>> Unfortunately, the same call fails in GAE. >>>> >>>> I am using Version 1.99.7, and the latest GAE. >>>> >>>> To reproduce the problem, I have a table with a datetime field: >>>> >>>> db.define_table('call', >>>> Field('start', 'datetime'), >>>> Field('end', 'datetime'), >>>> Field('created_on','datetime',default=request.now, >>>> label=T('Created On'),writable=False,readable=False), >>>> Field('modified_on','datetime',default=request.now, >>>> label=T('Modified On'),writable=False,readable=False, >>>> update=request.now)) >>>> >>>> I have created an REST interface using the smartquery functionality, >>>> that works well on SQL lite: >>>> >>>> @request.restful() >>>> #@auth.requires_login() >>>> def calldatasmart(): >>>> response.view = 'generic.'+request.extension >>>> def GET(search): >>>> try: >>>> rows = db.smart_query([db.call],search).select() >>>> return dict(result=rows) >>>> except RuntimeError: >>>> raise HTTP(400,"Invalid search string") >>>> return locals() >>>> >>>> Now if I do the following I get the correct response from SQLLite and >>>> an error from GAE. (Note: I created the data using the default=request.now >>>> function, so it should be a datetime in the datastore. >>>> >>>> http://localhost:8080/api/calldatasmart.json?search=call.created_on is >>>> greater than "2012-03-20" >>>> >>>> Error in GAE: >>>> >>>> File "/........./gluon/dal.py", line 3396, in represent >>>> >>>> time_items = map(int,str(obj)[11:].strip().split(':')[:3]) >>>> >>>> ValueError: invalid literal for int() with base 10: '' >>>> Question: >>>> 1. Is this a bug in the experimental smartquery functionality? >>>> 2. Does all datetime comparisons not work with GAE? >>>> 3. Can I use a GQL call to do it, or is there a way in Web2py to do it >>>> nicely? >>>> >>>> BTW: I have not coded as much as this for 15 years, and I have not had >>>> so much fun in getting back into it. So thankyou all for the work you have >>>> done to create web2py... >>>> >>>> Doug >>>> >>>>

