[IMP] core: quote field "id" in SQL queries

Part-of: odoo/odoo#112126
This commit is contained in:
Raphael Collet
2023-03-05 15:12:53 +01:00
parent 637cdc8ffa
commit 537a60ffd1
5 changed files with 121 additions and 80 deletions
+70 -70
View File
@@ -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"
''']):
@@ -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()
@@ -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)
)
+2 -2
View File
@@ -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"
)
""", [])
+2 -2
View File
@@ -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",
)