diff --git a/odoo/addons/base/tests/test_expression.py b/odoo/addons/base/tests/test_expression.py index 5b248a502a4..ef19dd5839d 100644 --- a/odoo/addons/base/tests/test_expression.py +++ b/odoo/addons/base/tests/test_expression.py @@ -1105,7 +1105,7 @@ class TestQueries(TransactionCase): Model.search(domain) with self.assertQueries([''' - SELECT "res_partner".id + SELECT "res_partner"."id" FROM "res_partner" WHERE (("res_partner"."active" = %s) AND ( ("res_partner"."name"::text LIKE %s) AND ( @@ -1124,7 +1124,7 @@ class TestQueries(TransactionCase): Model.search([('name', 'like', 'foo')]) with self.assertQueries([''' - SELECT "res_partner".id + SELECT "res_partner"."id" FROM "res_partner" WHERE (("res_partner"."active" = %s) AND ("res_partner"."name"::text LIKE %s)) ORDER BY "res_partner"."display_name", "res_partner"."id" @@ -1132,7 +1132,7 @@ class TestQueries(TransactionCase): Model.search([('name', 'like', 'foo')]) with self.assertQueries([''' - SELECT "res_partner".id + SELECT "res_partner"."id" FROM "res_partner" WHERE (("res_partner"."active" = %s) AND ("res_partner"."name"::text LIKE %s)) ORDER BY "res_partner"."id" @@ -1169,7 +1169,7 @@ class TestQueries(TransactionCase): Model.search([('name', 'ilike', 'foo')]) with self.assertQueries([''' - SELECT "res_partner_title".id + SELECT "res_partner_title"."id" FROM "res_partner_title" WHERE (COALESCE("res_partner_title"."name"->>'fr_FR', "res_partner_title"."name"->>'en_US') like %s) ORDER BY COALESCE("res_partner_title"."name"->>'fr_FR', "res_partner_title"."name"->>'en_US') @@ -1199,7 +1199,7 @@ class TestQueries(TransactionCase): Model.search([]) with self.assertQueries([''' - SELECT "res_users".id + SELECT "res_users"."id" FROM "res_users" LEFT JOIN "res_partner" AS "res_users__partner_id" ON ("res_users"."partner_id" = "res_users__partner_id"."id") @@ -1218,7 +1218,7 @@ class TestQueries(TransactionCase): Model.name_search('partner') with self.assertQueries([''' - SELECT "ir_model".id + SELECT "ir_model"."id" FROM "ir_model" WHERE ( ("ir_model"."name"->>'en_US' ILIKE %s) @@ -1231,7 +1231,7 @@ class TestQueries(TransactionCase): Model.name_search('partner', operator='not ilike') with self.assertQueries([''' - SELECT "ir_model".id + SELECT "ir_model"."id" FROM "ir_model" WHERE ( ("ir_model"."name" is NULL OR "ir_model"."name"->>'en_US' not ilike %s) @@ -1252,7 +1252,7 @@ class TestMany2one(TransactionCase): def test_inherited(self): with self.assertQueries([''' - SELECT "res_users".id + SELECT "res_users"."id" FROM "res_users" LEFT JOIN "res_partner" AS "res_users__partner_id" ON ("res_users"."partner_id" = "res_users__partner_id"."id") @@ -1264,7 +1264,7 @@ class TestMany2one(TransactionCase): # the field supporting the inheritance should be auto_join, too # TODO: use another model, since 'res.users' has explicit auto_join with self.assertQueries([''' - SELECT "res_users".id + SELECT "res_users"."id" FROM "res_users" LEFT JOIN "res_partner" AS "res_users__partner_id" ON ("res_users"."partner_id" = "res_users__partner_id"."id") @@ -1278,7 +1278,7 @@ class TestMany2one(TransactionCase): self.Partner.search([('country_id.code', 'like', 'BE')]) with self.assertQueries([''' - SELECT "res_partner".id + SELECT "res_partner"."id" FROM "res_partner" WHERE ("res_partner"."company_id" = %s) ORDER BY "res_partner"."display_name", "res_partner"."id" @@ -1286,10 +1286,10 @@ class TestMany2one(TransactionCase): self.Partner.search([('company_id', '=', self.company.id)]) with self.assertQueries([''' - SELECT "res_partner".id + SELECT "res_partner"."id" FROM "res_partner" WHERE ("res_partner"."company_id" IN ( - SELECT "res_company".id + SELECT "res_company"."id" FROM "res_company" WHERE ("res_company"."name"::text like %s) )) @@ -1298,13 +1298,13 @@ class TestMany2one(TransactionCase): self.Partner.search([('company_id.name', 'like', self.company.name)]) with self.assertQueries([''' - SELECT "res_partner".id + SELECT "res_partner"."id" FROM "res_partner" WHERE ("res_partner"."company_id" IN ( - SELECT "res_company".id + SELECT "res_company"."id" FROM "res_company" WHERE ("res_company"."partner_id" IN ( - SELECT "res_partner".id + SELECT "res_partner"."id" FROM "res_partner" WHERE ("res_partner"."name"::text LIKE %s) )) @@ -1314,14 +1314,14 @@ class TestMany2one(TransactionCase): self.Partner.search([('company_id.partner_id.name', 'like', self.company.name)]) with self.assertQueries([''' - SELECT "res_partner".id + SELECT "res_partner"."id" FROM "res_partner" WHERE (("res_partner"."company_id" IN ( - SELECT "res_company".id + SELECT "res_company"."id" FROM "res_company" WHERE ("res_company"."name"::text LIKE %s) )) OR ("res_partner"."country_id" IN ( - SELECT "res_country".id + SELECT "res_country"."id" FROM "res_country" WHERE ("res_country"."code"::text LIKE %s) ))) @@ -1337,10 +1337,10 @@ class TestMany2one(TransactionCase): self.Partner.search([('company_id.name', 'like', self.company.name)]) with self.assertQueries([''' - SELECT "res_partner".id + SELECT "res_partner"."id" FROM "res_partner" WHERE ("res_partner"."company_id" IN ( - SELECT "res_company".id + SELECT "res_company"."id" FROM "res_company" WHERE (("res_company"."active" = %s) AND ("res_company"."name"::text like %s)) )) @@ -1351,10 +1351,10 @@ class TestMany2one(TransactionCase): # special case, with a LIMIT to make ORDER BY necessary with self.assertQueries([''' - SELECT "res_partner".id + SELECT "res_partner"."id" FROM "res_partner" WHERE ("res_partner"."company_id" IN ( - SELECT "res_company".id + SELECT "res_company"."id" FROM "res_company" WHERE (("res_company"."active" = %s) AND ("res_company"."name"::text like %s)) ORDER BY "res_company"."id" @@ -1372,7 +1372,7 @@ class TestMany2one(TransactionCase): self.Partner.search([('company_id.partner_id.name', 'like', self.company.name)]) with self.assertQueries([''' - SELECT "res_partner".id + SELECT "res_partner"."id" FROM "res_partner" LEFT JOIN "res_company" AS "res_partner__company_id" ON ("res_partner"."company_id" = "res_partner__company_id"."id") @@ -1382,12 +1382,12 @@ class TestMany2one(TransactionCase): self.Partner.search([('company_id.name', 'like', self.company.name)]) with self.assertQueries([''' - SELECT "res_partner".id + SELECT "res_partner"."id" FROM "res_partner" LEFT JOIN "res_company" AS "res_partner__company_id" ON ("res_partner"."company_id" = "res_partner__company_id"."id") WHERE ("res_partner__company_id"."partner_id" IN ( - SELECT "res_partner".id + SELECT "res_partner"."id" FROM "res_partner" WHERE ("res_partner"."name"::text LIKE %s) )) @@ -1401,10 +1401,10 @@ class TestMany2one(TransactionCase): self.Partner.search([('company_id.partner_id.name', 'like', self.company.name)]) with self.assertQueries([''' - SELECT "res_partner".id + SELECT "res_partner"."id" FROM "res_partner" WHERE ("res_partner"."company_id" IN ( - SELECT "res_company".id + SELECT "res_company"."id" FROM "res_company" LEFT JOIN "res_partner" AS "res_company__partner_id" ON ("res_company"."partner_id" = "res_company__partner_id"."id") @@ -1420,7 +1420,7 @@ class TestMany2one(TransactionCase): self.Partner.search([('company_id.partner_id.name', 'like', self.company.name)]) with self.assertQueries([''' - SELECT "res_partner".id + SELECT "res_partner"."id" FROM "res_partner" LEFT JOIN "res_company" AS "res_partner__company_id" ON ("res_partner"."company_id" = "res_partner__company_id"."id") @@ -1441,7 +1441,7 @@ class TestMany2one(TransactionCase): ]) with self.assertQueries([''' - SELECT "res_partner".id + SELECT "res_partner"."id" FROM "res_partner" LEFT JOIN "res_country" AS "res_partner__country_id" ON ("res_partner"."country_id" = "res_partner__country_id"."id") @@ -1461,10 +1461,10 @@ class TestMany2one(TransactionCase): self.Partner.search([('company_id', 'like', self.company.name)]) with self.assertQueries([''' - SELECT "res_partner".id + SELECT "res_partner"."id" FROM "res_partner" WHERE ("res_partner"."company_id" IN ( - SELECT "res_company".id + SELECT "res_company"."id" FROM "res_company" WHERE ("res_company"."name"::text LIKE %s) )) @@ -1473,14 +1473,14 @@ class TestMany2one(TransactionCase): self.Partner.search([('company_id', 'like', self.company.name)]) with self.assertQueries([''' - SELECT "res_partner".id - FROM "res_partner" - WHERE (("res_partner"."company_id" IN ( - SELECT "res_company".id - FROM "res_company" - WHERE (("res_company"."name"::text not like %s) OR "res_company"."name" IS NULL)) - ) OR "res_partner"."company_id" IS NULL) - ORDER BY "res_partner"."display_name", "res_partner"."id" + SELECT "res_partner"."id" + FROM "res_partner" + WHERE (("res_partner"."company_id" IN ( + SELECT "res_company"."id" + FROM "res_company" + WHERE (("res_company"."name"::text not like %s) OR "res_company"."name" IS NULL)) + ) OR "res_partner"."company_id" IS NULL) + ORDER BY "res_partner"."display_name", "res_partner"."id" ''']): self.Partner.search([('company_id', 'not like', "blablabla")]) @@ -1504,7 +1504,7 @@ class TestOne2many(TransactionCase): self.Partner.search([('child_ids.bank_ids.sanitized_acc_number', 'like', '12')]) with self.assertQueries([''' - SELECT "res_partner".id + SELECT "res_partner"."id" FROM "res_partner" WHERE ("res_partner"."id" IN ( SELECT "partner_id" FROM "res_partner_bank" WHERE "id" IN %s @@ -1514,7 +1514,7 @@ class TestOne2many(TransactionCase): self.Partner.search([('bank_ids', 'in', self.partner.bank_ids.ids)]) with self.assertQueries([''' - SELECT "res_partner".id + SELECT "res_partner"."id" FROM "res_partner" WHERE ("res_partner"."id" IN ( SELECT "res_partner_bank"."partner_id" @@ -1526,7 +1526,7 @@ class TestOne2many(TransactionCase): self.Partner.search([('bank_ids.sanitized_acc_number', 'like', '12')]) with self.assertQueries([''' - SELECT "res_partner".id + SELECT "res_partner"."id" FROM "res_partner" WHERE ("res_partner"."id" IN ( SELECT "res_partner"."parent_id" @@ -1549,7 +1549,7 @@ class TestOne2many(TransactionCase): self.Partner.search([('child_ids.bank_ids.sanitized_acc_number', 'like', '12')]) with self.assertQueries([''' - SELECT "res_partner".id + SELECT "res_partner"."id" FROM "res_partner" WHERE ("res_partner"."id" IN ( SELECT "partner_id" FROM "res_partner_bank" WHERE "id" IN %s @@ -1559,7 +1559,7 @@ class TestOne2many(TransactionCase): self.Partner.search([('bank_ids', 'in', self.partner.bank_ids.ids)]) with self.assertQueries([''' - SELECT "res_partner".id + SELECT "res_partner"."id" FROM "res_partner" WHERE ("res_partner"."id" IN ( SELECT "res_partner_bank"."partner_id" @@ -1571,7 +1571,7 @@ class TestOne2many(TransactionCase): self.Partner.search([('bank_ids.sanitized_acc_number', 'like', '12')]) with self.assertQueries([''' - SELECT "res_partner".id + SELECT "res_partner"."id" FROM "res_partner" WHERE (("res_partner"."id" IN ( SELECT "res_partner_bank"."partner_id" @@ -1590,7 +1590,7 @@ class TestOne2many(TransactionCase): ]) with self.assertQueries([''' - SELECT "res_partner".id + SELECT "res_partner"."id" FROM "res_partner" WHERE ("res_partner"."id" IN ( SELECT "res_partner"."parent_id" @@ -1612,7 +1612,7 @@ class TestOne2many(TransactionCase): lambda self: ['!', ('name', '=', self._name)]) with self.assertQueries([''' - SELECT "res_partner".id + SELECT "res_partner"."id" FROM "res_partner" WHERE ("res_partner"."id" IN ( SELECT "res_partner"."parent_id" @@ -1642,7 +1642,7 @@ class TestOne2many(TransactionCase): self.Partner.search([('child_ids.state_id.country_id.code', 'like', 'US')]) with self.assertQueries([''' - SELECT "res_partner".id + SELECT "res_partner"."id" FROM "res_partner" WHERE ("res_partner"."id" IN ( SELECT "res_partner"."parent_id" @@ -1665,7 +1665,7 @@ class TestOne2many(TransactionCase): self.Partner.search([('bank_ids', 'like', '12')]) with self.assertQueries([''' - SELECT "res_partner".id + SELECT "res_partner"."id" FROM "res_partner" WHERE ("res_partner"."id" IN ( SELECT "res_partner_bank"."partner_id" @@ -1681,7 +1681,7 @@ class TestOne2many(TransactionCase): self.Partner.search([('bank_ids', '=', False)], order='id') with self.assertQueries([''' - SELECT "res_partner".id + SELECT "res_partner"."id" FROM "res_partner" WHERE ("res_partner"."id" IN ( SELECT "partner_id" FROM "res_partner_bank" WHERE "partner_id" IS NOT NULL @@ -1691,7 +1691,7 @@ class TestOne2many(TransactionCase): self.Partner.search([('bank_ids', '!=', False)], order='id') with self.assertQueries([''' - SELECT "res_partner".id + SELECT "res_partner"."id" FROM "res_partner" WHERE ("res_partner"."id" NOT IN ( SELECT "partner_id" FROM "res_partner_bank" WHERE "partner_id" IS NOT NULL @@ -1716,11 +1716,11 @@ class TestMany2many(TransactionCase): self.User.search([('groups_id.rule_groups.name', 'like', rule.name)], order='id') with self.assertQueries([''' - SELECT "res_users".id + SELECT "res_users"."id" FROM "res_users" WHERE EXISTS ( SELECT 1 FROM "res_groups_users_rel" AS "res_users__groups_id" - WHERE "res_users__groups_id"."uid" = "res_users".id + WHERE "res_users__groups_id"."uid" = "res_users"."id" AND "res_users__groups_id"."gid" IN %s ) ORDER BY "res_users"."id" @@ -1729,11 +1729,11 @@ class TestMany2many(TransactionCase): group_color = group.color with self.assertQueries([''' - SELECT "res_users".id + SELECT "res_users"."id" FROM "res_users" WHERE NOT EXISTS ( SELECT 1 FROM "res_groups_users_rel" AS "res_users__groups_id" - WHERE "res_users__groups_id"."uid" = "res_users".id + WHERE "res_users__groups_id"."uid" = "res_users"."id" AND "res_users__groups_id"."gid" IN %s ) ORDER BY "res_users"."id" @@ -1741,13 +1741,13 @@ class TestMany2many(TransactionCase): self.User.search([('groups_id', 'not in', group.ids)], order='id') with self.assertQueries([''' - SELECT "res_users".id + SELECT "res_users"."id" FROM "res_users" WHERE EXISTS ( SELECT 1 FROM "res_groups_users_rel" AS "res_users__groups_id" - WHERE "res_users__groups_id"."uid" = "res_users".id + WHERE "res_users__groups_id"."uid" = "res_users"."id" AND "res_users__groups_id"."gid" IN ( - SELECT "res_groups".id + SELECT "res_groups"."id" FROM "res_groups" WHERE ("res_groups"."color" = %s) ) @@ -1757,19 +1757,19 @@ class TestMany2many(TransactionCase): self.User.search([('groups_id.color', '=', group_color)], order='id') with self.assertQueries([''' - SELECT "res_users".id + SELECT "res_users"."id" FROM "res_users" WHERE EXISTS ( SELECT 1 FROM "res_groups_users_rel" AS "res_users__groups_id" - WHERE "res_users__groups_id"."uid" = "res_users".id + WHERE "res_users__groups_id"."uid" = "res_users"."id" AND "res_users__groups_id"."gid" IN ( - SELECT "res_groups".id + SELECT "res_groups"."id" FROM "res_groups" WHERE EXISTS ( SELECT 1 FROM "rule_group_rel" AS "res_groups__rule_groups" - WHERE "res_groups__rule_groups"."group_id" = "res_groups".id + WHERE "res_groups__rule_groups"."group_id" = "res_groups"."id" AND "res_groups__rule_groups"."rule_group_id" IN ( - SELECT "ir_rule".id + SELECT "ir_rule"."id" FROM "ir_rule" WHERE ("ir_rule"."name"::text LIKE %s) ) @@ -1789,13 +1789,13 @@ class TestMany2many(TransactionCase): self.User.search([('company_ids', 'like', self.company.name)], order='id') with self.assertQueries([''' - SELECT "res_users".id + SELECT "res_users"."id" FROM "res_users" WHERE EXISTS ( SELECT 1 FROM "res_company_users_rel" AS "res_users__company_ids" - WHERE "res_users__company_ids"."user_id" = "res_users".id + WHERE "res_users__company_ids"."user_id" = "res_users"."id" AND "res_users__company_ids"."cid" IN ( - SELECT "res_company".id + SELECT "res_company"."id" FROM "res_company" WHERE ("res_company"."name"::text LIKE %s) ) @@ -1809,22 +1809,22 @@ class TestMany2many(TransactionCase): self.User.search([('groups_id', '=', False)], order='id') with self.assertQueries([''' - SELECT "res_users".id + SELECT "res_users"."id" FROM "res_users" WHERE EXISTS ( SELECT 1 FROM "res_groups_users_rel" AS "res_users__groups_id" - WHERE "res_users__groups_id"."uid" = "res_users".id + WHERE "res_users__groups_id"."uid" = "res_users"."id" ) ORDER BY "res_users"."id" ''']): self.User.search([('groups_id', '!=', False)], order='id') with self.assertQueries([''' - SELECT "res_users".id + SELECT "res_users"."id" FROM "res_users" WHERE NOT EXISTS ( SELECT 1 FROM "res_groups_users_rel" AS "res_users__groups_id" - WHERE "res_users__groups_id"."uid" = "res_users".id + WHERE "res_users__groups_id"."uid" = "res_users"."id" ) ORDER BY "res_users"."id" ''']): diff --git a/odoo/addons/test_new_api/tests/test_properties.py b/odoo/addons/test_new_api/tests/test_properties.py index e3640c6e0af..60c40adea5c 100644 --- a/odoo/addons/test_new_api/tests/test_properties.py +++ b/odoo/addons/test_new_api/tests/test_properties.py @@ -174,13 +174,54 @@ class PropertiesCase(TransactionCase): expected_queries = [ # read the properties field value - 'SELECT "test_new_api_message"."id" AS "id", "test_new_api_message"."attributes" AS "attributes" FROM "test_new_api_message" WHERE "test_new_api_message".id IN %s', - 'SELECT "test_new_api_message"."id" AS "id", "test_new_api_message"."discussion" AS "discussion", "test_new_api_message"."body" AS "body", "test_new_api_message"."author" AS "author", "test_new_api_message"."name" AS "name", "test_new_api_message"."important" AS "important", "test_new_api_message"."label"->>\'en_US\' AS "label", "test_new_api_message"."priority" AS "priority", "test_new_api_message"."create_uid" AS "create_uid", "test_new_api_message"."create_date" AS "create_date", "test_new_api_message"."write_uid" AS "write_uid", "test_new_api_message"."write_date" AS "write_date" FROM "test_new_api_message" WHERE "test_new_api_message".id IN %s', + ''' SELECT "test_new_api_message"."id" AS "id", + "test_new_api_message"."attributes" AS "attributes" + FROM "test_new_api_message" + WHERE "test_new_api_message".id IN %s + ''', + ''' SELECT "test_new_api_message"."id" AS "id", + "test_new_api_message"."discussion" AS "discussion", + "test_new_api_message"."body" AS "body", + "test_new_api_message"."author" AS "author", + "test_new_api_message"."name" AS "name", + "test_new_api_message"."important" AS "important", + "test_new_api_message"."label"->>'en_US' AS "label", + "test_new_api_message"."priority" AS "priority", + "test_new_api_message"."create_uid" AS "create_uid", + "test_new_api_message"."create_date" AS "create_date", + "test_new_api_message"."write_uid" AS "write_uid", + "test_new_api_message"."write_date" AS "write_date" + FROM "test_new_api_message" + WHERE "test_new_api_message".id IN %s + ''', # read the definition on the definition record - 'SELECT "test_new_api_discussion"."id" AS "id", "test_new_api_discussion"."name" AS "name", "test_new_api_discussion"."moderator" AS "moderator", "test_new_api_discussion"."message_concat" AS "message_concat", "test_new_api_discussion"."history" AS "history", "test_new_api_discussion"."attributes_definition" AS "attributes_definition", "test_new_api_discussion"."create_uid" AS "create_uid", "test_new_api_discussion"."create_date" AS "create_date", "test_new_api_discussion"."write_uid" AS "write_uid", "test_new_api_discussion"."write_date" AS "write_date" FROM "test_new_api_discussion" WHERE "test_new_api_discussion".id IN %s', + ''' SELECT "test_new_api_discussion"."id" AS "id", + "test_new_api_discussion"."name" AS "name", + "test_new_api_discussion"."moderator" AS "moderator", + "test_new_api_discussion"."message_concat" AS "message_concat", + "test_new_api_discussion"."history" AS "history", + "test_new_api_discussion"."attributes_definition" AS "attributes_definition", + "test_new_api_discussion"."create_uid" AS "create_uid", + "test_new_api_discussion"."create_date" AS "create_date", + "test_new_api_discussion"."write_uid" AS "write_uid", + "test_new_api_discussion"."write_date" AS "write_date" + FROM "test_new_api_discussion" + WHERE "test_new_api_discussion".id IN %s + ''', # check the many2one existence - 'SELECT "test_new_api_partner".id FROM "test_new_api_partner" WHERE "test_new_api_partner".id IN %s', - 'SELECT "test_new_api_partner"."id" AS "id", "test_new_api_partner"."name" AS "name", "test_new_api_partner"."create_uid" AS "create_uid", "test_new_api_partner"."create_date" AS "create_date", "test_new_api_partner"."write_uid" AS "write_uid", "test_new_api_partner"."write_date" AS "write_date" FROM "test_new_api_partner" WHERE "test_new_api_partner".id IN %s', + ''' SELECT "test_new_api_partner"."id" + FROM "test_new_api_partner" + WHERE "test_new_api_partner".id IN %s + ''', + ''' SELECT "test_new_api_partner"."id" AS "id", + "test_new_api_partner"."name" AS "name", + "test_new_api_partner"."create_uid" AS "create_uid", + "test_new_api_partner"."create_date" AS "create_date", + "test_new_api_partner"."write_uid" AS "write_uid", + "test_new_api_partner"."write_date" AS "write_date" + FROM "test_new_api_partner" + WHERE "test_new_api_partner".id IN %s + ''', ] self.env.invalidate_all() diff --git a/odoo/addons/test_read_group/tests/test_m2m_grouping.py b/odoo/addons/test_read_group/tests/test_m2m_grouping.py index 319121c43ce..53cc655b1a5 100644 --- a/odoo/addons/test_read_group/tests/test_m2m_grouping.py +++ b/odoo/addons/test_read_group/tests/test_m2m_grouping.py @@ -187,7 +187,7 @@ class TestM2MGrouping(common.TransactionCase): ON ( "test_read_group_task"."id" = "test_read_group_task__user_ids"."task_id" AND "test_read_group_task__user_ids"."user_id" IN ( - SELECT "test_read_group_user".id + SELECT "test_read_group_user"."id" FROM "test_read_group_user" WHERE ("test_read_group_user"."id" = %s) ) diff --git a/odoo/osv/expression.py b/odoo/osv/expression.py index 29f899ae770..a5a7e9172cc 100644 --- a/odoo/osv/expression.py +++ b/odoo/osv/expression.py @@ -857,7 +857,7 @@ class expression(object): push_result(f""" {exists} ( SELECT 1 FROM "{rel_table}" AS "{rel_alias}" - WHERE "{rel_alias}"."{rel_id1}" = "{alias}".id + WHERE "{rel_alias}"."{rel_id1}" = "{alias}"."id" AND "{rel_alias}"."{rel_id2}" IN {term_id2} ) """, params) @@ -869,7 +869,7 @@ class expression(object): push_result(f""" {exists} ( SELECT 1 FROM "{rel_table}" AS "{rel_alias}" - WHERE "{rel_alias}"."{rel_id1}" = "{alias}".id + WHERE "{rel_alias}"."{rel_id1}" = "{alias}"."id" ) """, []) diff --git a/odoo/tools/query.py b/odoo/tools/query.py index 522d7c639e3..0e69b004c31 100644 --- a/odoo/tools/query.py +++ b/odoo/tools/query.py @@ -160,7 +160,7 @@ class Query(object): """ Return the SELECT query as a pair ``(query_string, query_params)``. """ from_clause, where_clause, params = self.get_sql() query_str = 'SELECT {} FROM {} WHERE {}{}{}{}'.format( - ", ".join(args or [f'"{next(iter(self._tables))}".id']), + ", ".join(args or [f'"{next(iter(self._tables))}"."id"']), from_clause, where_clause or "TRUE", (" ORDER BY %s" % self.order) if self.order else "", @@ -179,7 +179,7 @@ class Query(object): from_clause, where_clause, params = self.get_sql() query_str = 'SELECT {} FROM {} WHERE {}'.format( - ", ".join(args or [f'"{next(iter(self._tables))}".id']), + ", ".join(args or [f'"{next(iter(self._tables))}"."id"']), from_clause, where_clause or "TRUE", )