summaryrefslogtreecommitdiff
path: root/odoo/tools/sql.py
AgeCommit message (Collapse)Author
2017-09-12[MERGE] forward port branch saas-17 up to d08b4407be3Christophe Simonis
2017-09-11[FIX] core: only check table existance in public schemaChristophe Simonis
This allow the use of tables defined in other schemas, like `domains`, already defined in `information_schema`. See #16651
2017-09-06[MERGE] forward port branch saas-17 up to b8dd34fcbb8Christophe Simonis
2017-09-06[MERGE] forward port branch saas-16 up to 64d56995e04Christophe Simonis
2017-09-04[MERGE] forward port branch saas-15 up to 4d4d75709dcChristophe Simonis
2017-09-04[FIX] core: also consider materialized views as existingChristophe Simonis
At the end of registry loading, a check is made on every model to verify its table exists in the database. Materialized views weren't considered during this check. Note that we can't use `information_schema` views in this case because it does include materialized views on purpose [1]. Forward-port of 4ca6945256f9353ab7f9633552872fd1fa7fdaca [1] http://www.postgresql-archive.org/Materialized-views-don-t-show-up-in-information-schema-tp5822643p5822644.html
2017-08-07[IMP] sql: harvest less information from pg's information_schema (Fixes #18490)Fabien Meghazi
Avoid `SELECT *` on `information_schema.columns` because specific access right restrictions in the context of shared hosting (Heroku, OVH, ...) might prevent a postgres user to read this field.
2017-07-10[IMP] registry: check existence of tables with a single SQL queryRaphael Collet
2017-07-05[FIX] sql: Do no consider a table exists if this is a schema table/viewDenis Ledoux
Before this revision, this is not possible to create a model with a `_table` set to `domains`, for instance.
2017-05-03[REF] registry: always perform registry/cache signaling at the end of requestRaphael Collet
Problem: the update of custom models/fields is not fully transactional, and may potentially lead to an inconsistent database. An other problem is creating two custom fields by writing on a model: if the second one fails, the first one has been committed without notice. Retrying the request will give an unexpected error (duplicate field name). Solution: never commit in the middle of a request. If the changes have an impact on the registry, then mark it as invalid (with a new flag), and signal registry invalidation after everything has been committed. If the request fails, reset the registry. Both registry and cache invalidation are handled the same way.
2017-04-28[FIX] tools.sql: correct queries used to rename fieldChristophe Simonis
2017-03-14[FIX] tools/sql: column name in `fix_foreign_key`Raphael Collet
2017-02-22[IMP] tools: use `information_schema` instead of pg-specific tablesRaphael Collet
2017-02-22[REF] models: refactoring of foreign keysRaphael Collet
2017-02-22[REF] tools: add functions for SQL schema manipulationRaphael Collet
This helps factoring out a certain number of similar queries, and removing a few methods from `BaseModel`.
2016-09-16[IMP] models: change API of `_group_by_full`Raphael Collet
The dictionary `_group_by_full` is replaced by a field parameter `group_expand` that is assigned to the method name. The API of the method has been simplified as well: @api.multi def _read_group_stage_ids(self, domain, read_group_order=None, access_rights_uid=None): # the stages are given by self.ids (wrong model); # read_group_order is the order given to read_group() on self; # return stages.name_get(), {stage.id: stage.fold) _group_by_full = {'stage_id': _read_group_stage_ids} is now written: stage_id = fields.Many2one(..., group_expand='_read_group_stage_ids') @api.model def _read_group_stage_ids(self, stages, domain, order): # stages is a recordset; # order is the order to use on stages' model; # return a recordset which is a superset of stages
2016-09-02[REF] openerp: move `openerp` to `odoo`Raphael Collet