GAE does not allow this query:

  db.words.word.lower()==trans_form.vars.word.lower()

In SQL this would be

  ... WHERE LOWER(words.word) = ' value of
trans_form.vars.word.lower() '

but GAE has no LOWER.

On Dec 31, 4:54 am, "Arun K.Rajeevan" <the1.a...@gmail.com> wrote:
> Once again my application runs fine on supplied server with web2py but on
> GAE there's a problem.
>
> Line of code that shows problem is
> *candidate
> =db(db.words.word.lower()==trans_form.vars.word.lower())(db.words.lang==trans_form.vars.languages).select().first()
> *
>
> where trans_form is a FORM object.
>
> table :
>    *db.define_table('words',  *
> *               Field('word', 'string', length=128, notnull=True,
> required=True), *
> *                Field('lang', db.languages, notnull=True), *
> *                Field('entry_by', db.auth_user, default=auth.user_id,
> readable=False, writable=False), *
> *                 migrate=migration)*
>
> Error shown, when runs over GAE:
>
> ERROR    2002-01-01 05:48:44,608 restricted.py:151] Traceback (most recent
> call last):
>   File "/media/KRA/Evolve/Work/web/google_appengine/VL/gluon/restricted.py",
> line 188, in restricted
>     exec ccode in environment
>   File
> "/media/KRA/Evolve/Work/web/google_appengine/VL/applications/init/controllers/forms.py:addtranslation",
> line 90, in <module>
>   File "/media/KRA/Evolve/Work/web/google_appengine/VL/gluon/globals.py",
> line 95, in <lambda>
>     self._caller = lambda f: f()
>   *File
> "/media/KRA/Evolve/Work/web/google_appengine/VL/applications/init/controllers/forms.py:addtranslation",
> line 31, in addtranslation*
>   File "/media/KRA/Evolve/Work/web/google_appengine/VL/gluon/dal.py", line
> 4499, in select
>     return self.db._adapter.select(self.query,fields,attributes)
>   File "/media/KRA/Evolve/Work/web/google_appengine/VL/gluon/dal.py", line
> 2673, in select
>     (items, tablename, fields) = self.select_raw(query,fields,attributes)
>   File "/media/KRA/Evolve/Work/web/google_appengine/VL/gluon/dal.py", line
> 2633, in select_raw
>     filters = self.expand(query)
>   File "/media/KRA/Evolve/Work/web/google_appengine/VL/gluon/dal.py", line
> 2544, in expand
>     return expression.op(expression.first, expression.second)
>   File "/media/KRA/Evolve/Work/web/google_appengine/VL/gluon/dal.py", line
> 2558, in AND
>     a = self.expand(first)
>   File "/media/KRA/Evolve/Work/web/google_appengine/VL/gluon/dal.py", line
> 2544, in expand
>     return expression.op(expression.first, expression.second)
>   File "/media/KRA/Evolve/Work/web/google_appengine/VL/gluon/dal.py", line
> 2565, in EQ
>     return [GAEF(first.name,'=',self.represent(second,first.type),lambda
> a,b:a==b)]
> *AttributeError: 'Expression' object has no attribute 'name'*
>
> *Where I went wrong?*

Reply via email to