openerp-india team mailing list archive
-
openerp-india team
-
Mailing list archive
-
Message #14493
[Bug 1037497] [NEW] ORM searching for calculated fields replaces query with 'True' with no warning
Public bug reported:
If I make an or query like this with partner_ref as part of the search
the ORM silently replaces the partner_ref part with an expression that
evaluates to true. Since this is in an OR expression, this makes that
whole part of the query redundant since anything OR TRUE is TRUE.
At the very least it would be useful if there was some debug output
saying what the ORM is doing.
2012-08-16 10:49:00,507 12436 DEBUG ? openerp.netsvc.rpc.request: object.execute('openerp',
2012-08-16 10:49:00,508 12436 DEBUG ? openerp.netsvc.rpc.request: 1,
2012-08-16 10:49:00,508 12436 DEBUG ? openerp.netsvc.rpc.request: '*',
2012-08-16 10:49:00,508 12436 DEBUG ? openerp.netsvc.rpc.request: 'product.product',
2012-08-16 10:49:00,508 12436 DEBUG ? openerp.netsvc.rpc.request: 'search',
2012-08-16 10:49:00,508 12436 DEBUG ? openerp.netsvc.rpc.request: ['|',
2012-08-16 10:49:00,508 12436 DEBUG ? openerp.netsvc.rpc.request: '|',
2012-08-16 10:49:00,508 12436 DEBUG ? openerp.netsvc.rpc.request: '|',
2012-08-16 10:49:00,508 12436 DEBUG ? openerp.netsvc.rpc.request: '|',
2012-08-16 10:49:00,508 12436 DEBUG ? openerp.netsvc.rpc.request: ['description', 'ilike', '%description%'],
2012-08-16 10:49:00,509 12436 DEBUG ? openerp.netsvc.rpc.request: ['description_sale', 'ilike', '%description_sale%'],
2012-08-16 10:49:00,509 12436 DEBUG ? openerp.netsvc.rpc.request: ['name', 'ilike', '%name%'],
2012-08-16 10:49:00,509 12436 DEBUG ? openerp.netsvc.rpc.request: ['default_code', 'ilike', '%default_code%'],
2012-08-16 10:49:00,509 12436 DEBUG ? openerp.netsvc.rpc.request: ['partner_ref', 'ilike', '%partner_ref%'],
2012-08-16 10:49:00,509 12436 DEBUG ? openerp.netsvc.rpc.request: ['active', '=', 1]])
The code that does the replacement is in osv/expression.py and the code
looks something like this,
# the function field doesn't provide a search function and doesn't store
# values in the database, so we must ignore it : we generate a dummy leaf
self.__exp[i] = TRUE_LEAF
It's actually done in a couple of places and I'm not entirely sure which
one I'm hitting.
** Affects: openobject-addons
Importance: Undecided
Status: New
--
You received this bug notification because you are a member of OpenERP
Indian Team, which is subscribed to OpenERP Addons.
https://bugs.launchpad.net/bugs/1037497
Title:
ORM searching for calculated fields replaces query with 'True' with no
warning
Status in OpenERP Addons (modules):
New
Bug description:
If I make an or query like this with partner_ref as part of the search
the ORM silently replaces the partner_ref part with an expression that
evaluates to true. Since this is in an OR expression, this makes that
whole part of the query redundant since anything OR TRUE is TRUE.
At the very least it would be useful if there was some debug output
saying what the ORM is doing.
2012-08-16 10:49:00,507 12436 DEBUG ? openerp.netsvc.rpc.request: object.execute('openerp',
2012-08-16 10:49:00,508 12436 DEBUG ? openerp.netsvc.rpc.request: 1,
2012-08-16 10:49:00,508 12436 DEBUG ? openerp.netsvc.rpc.request: '*',
2012-08-16 10:49:00,508 12436 DEBUG ? openerp.netsvc.rpc.request: 'product.product',
2012-08-16 10:49:00,508 12436 DEBUG ? openerp.netsvc.rpc.request: 'search',
2012-08-16 10:49:00,508 12436 DEBUG ? openerp.netsvc.rpc.request: ['|',
2012-08-16 10:49:00,508 12436 DEBUG ? openerp.netsvc.rpc.request: '|',
2012-08-16 10:49:00,508 12436 DEBUG ? openerp.netsvc.rpc.request: '|',
2012-08-16 10:49:00,508 12436 DEBUG ? openerp.netsvc.rpc.request: '|',
2012-08-16 10:49:00,508 12436 DEBUG ? openerp.netsvc.rpc.request: ['description', 'ilike', '%description%'],
2012-08-16 10:49:00,509 12436 DEBUG ? openerp.netsvc.rpc.request: ['description_sale', 'ilike', '%description_sale%'],
2012-08-16 10:49:00,509 12436 DEBUG ? openerp.netsvc.rpc.request: ['name', 'ilike', '%name%'],
2012-08-16 10:49:00,509 12436 DEBUG ? openerp.netsvc.rpc.request: ['default_code', 'ilike', '%default_code%'],
2012-08-16 10:49:00,509 12436 DEBUG ? openerp.netsvc.rpc.request: ['partner_ref', 'ilike', '%partner_ref%'],
2012-08-16 10:49:00,509 12436 DEBUG ? openerp.netsvc.rpc.request: ['active', '=', 1]])
The code that does the replacement is in osv/expression.py and the
code looks something like this,
# the function field doesn't provide a search function and doesn't store
# values in the database, so we must ignore it : we generate a dummy leaf
self.__exp[i] = TRUE_LEAF
It's actually done in a couple of places and I'm not entirely sure
which one I'm hitting.
To manage notifications about this bug go to:
https://bugs.launchpad.net/openobject-addons/+bug/1037497/+subscriptions
Follow ups
References