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
>>>>
>>>>

Reply via email to