summaryrefslogtreecommitdiff
path: root/odoo/sql_db.py
AgeCommit message (Collapse)Author
2017-09-28[IMP] core: allow to connect to database server with a secure SSL TCP/IP ↵Christophe Simonis
connection
2017-09-11[FIX] sql_db: use pycompat string_typesJulien Legros
2017-08-20[FIX] P3: remove pycompat.{keys,items,values} helpersOlivier Dony
Now that we're closer to switching to P3 for good, these helpers have outlived their usefulness, and mostly add noise. All remaining dict.iter*() or dict.view*() must be converted to the normal keys(), values() or items() calls. Whenever the result is likely to be used for more than the scope of a loop, or when the dict needs to be modified during iteration, the calls must be wrapped in a ``list()``, to protect the new P3 semantics. Those cases are very exceptional. Also removed some dead code or improved the API to remove unnecessary conversions.
2017-07-26[MERGE] forward port branch saas-16 up to 46e1104ce12Christophe Simonis
2017-07-26[MERGE] forward port branch saas-15 up to 681f03e3097Christophe Simonis
2017-07-26[IMP] core: log bad queries as ERRORChristophe Simonis
Also adapt default config and config mapping.
2017-06-26[FIX] P3: __nonzero__ -> __bool__Xavier Morel
Also ~removed bool-testing on cursors
2017-06-15[MERGE] forward port branch saas-16 up to acfebff8807Christophe Simonis
2017-06-15[FIX] *: correct PY3 compatibility introduced by previous forward-portsChristophe Simonis
2017-06-15[MERGE] forward port branch saas-16 up to 1b50c829ef3Christophe Simonis
2017-06-15[MERGE] forward port branch saas-15 up to 9713dc2e1f5Christophe Simonis
2017-06-15[MERGE] forward port branch 10.0 up to dc8b473a033Christophe Simonis
2017-06-15[FIX] sql_db: port fix from psycopg/psycopg2#459Olivier Dony
NUL characters must not be used in query parameters, as they will be ignored by libpq, being end-of-string characters. Preventing NULs avoids unexpected results from queries. It is only necessary with psycopg2 versions before 2.7, which includes the upstream fix.
2017-05-15[FIX] P3: urllib, urllib2 and urlparseXavier Morel
In Python 3, all of these were "consolidated" under urllib(.request, .parse, .errors) which is inconvenient. Since we already have hard dependencies on requests and werkzeug(.urls, which is a backport of Python 3's unicode-aware urllib.parse) migrate *everything* to that. A sticking point is urllib2.URLError, those were (mostly) replaced by the slightly more general IOError which URLError extends.
2017-05-10[FIX] P3: list -> iterable builtins (#16811)xmo-odoo
In Python 3: * various builtins and dict methods were changed to return view/iterable objects rather than lists * and the separate Python 2 view/iterable builtins and methods were removed altogether This is problematic when using these items as list (which the happens repeatedly in Odoo), but more viciously when iterating *multiple times* over them (which also happens, which I've messed up multiple times while writing this, and which is a pain to debug even when you've just created the issue). Convert all code using these to semantics-matching cross-version helper functions to get the LCD behaviour between P2 and P3, and forbid the builtins via lint. issue #8530
2017-04-28[FIX] Various P3-related import changesxmo-odoo
* LDAP import: python-ldap is not python3-compatible, pyldap is Warning: only supported from debian Stretch (current testing)? https://packages.debian.org/search?searchon=names&keywords=pyldap * implicitly relative imports * imports of moved or removed stdlib modules issue #8530
2017-04-27[FIX] builtins removed from Python 3xmo-odoo
* Reverse wrapper courtesy of @rco-odoo's original P3 branch * thin compat module stripped down from werkzeug (to augment as needed) issue 8530
2016-11-17[IMP] sql_db: Improve error message logging on database querriesDevendra Kavthekar
Purpose: When we have a SQL error, it's not very easy to identify the root of the crash. For example if a mandatory field is not set on a row creation, it difficult to see which field isn't correctly set as a lot of fields are not required and a lot a NULL values are present in the INSERT querry. Specification: Show a proper log message, with the reason (cause) of the sql error. Behavior Modification Examples: Some sample log after applied fix. The new line are those beginning by '+' 2016-10-25 09:59:40,208 21161 INFO ent_master odoo.sql_db: bad query: INSERT INTO "res_partner_category" ("id", "active", "color", "create_uid", "write_uid", "create_date", "write_date") VALUES(nextval('res_partner_category_id_seq'), true, 10, 1, 1, (now() at time zone 'UTC'), (now() at time zone 'UTC')) RETURNING id +REASON: null value in column "name" violates not-null constraint +DETAIL: Failing row contains (27, null, null, 1, null, 10, 1, null, 2016-10-25 09:59:40.207202, t, 2016-10-25 09:59:40.207202). 2016-10-25 10:00:29,710 21161 INFO ent_master odoo.sql_db: bad query: UPDATE "res_partner" SET "parent_id"=1001,"type"='contact',"name"='Course Script',"company_name"=NULL,"write_uid"=1,"write_date"=(now() at time zone 'UTC') WHERE id IN (1) +REASON: insert or update on table "res_partner" violates foreign key constraint "res_partner_parent_id_fkey" +DETAIL: Key (parent_id)=(1001) is not present in table "res_partner". 2016-10-25 10:23:28,690 21336 INFO ent_master odoo.sql_db: bad query: DELETE FROM res_country WHERE id IN (235) +REASON: null value in column "country_id" violates not-null constraint +DETAIL: Failing row contains (9, 1, AL, Alabama, null, 1, 2016-10-24 10:19:58.765552, 2016-10-21 09:32:26.939607). +CONTEXT: SQL statement "UPDATE ONLY "public"."res_country_state" SET "country_id" = NULL WHERE $1 OPERATOR(pg_catalog.=) "country_id""
2016-09-02[FIX] odoo: rename imports and adapt import hooksRaphael Collet
2016-09-02[REF] openerp: move `openerp` to `odoo`Raphael Collet