From 7efebdabdf3d44f160cc17554f370b8c33532a90 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?C=C3=A9dric=20Krier?= Date: Thu, 14 Aug 2008 19:00:40 +0200 Subject: [PATCH] Use symbol_set from fields for default value --- trytond/osv/orm.py | 18 +++++++++++------- trytond/sql_db.py | 26 +++++++++----------------- 2 files changed, 20 insertions(+), 24 deletions(-) diff --git a/trytond/osv/orm.py b/trytond/osv/orm.py index 38ec99b334..76e1b32804 100644 --- a/trytond/osv/orm.py +++ b/trytond/osv/orm.py @@ -402,15 +402,19 @@ class ORM(object): table = table_handler(cursor, self._table, self._name, module_name) if self._log_access: logs = ( - ('create_date', 'timestamp', 'TIMESTAMP'), - ('write_date', 'timestamp', 'TIMESTAMP'), + ('create_date', 'timestamp', 'TIMESTAMP', + fields.DateTime._symbol_set), + ('write_date', 'timestamp', 'TIMESTAMP', + fields.DateTime._symbol_set), ('create_uid', 'int4', - 'INTEGER REFERENCES res_user ON DELETE SET NULL'), + 'INTEGER REFERENCES res_user ON DELETE SET NULL', + fields.Integer._symbol_set), ('write_uid', 'int4', - 'INTEGER REFERENCES res_user ON DELETE SET NULL'), + 'INTEGER REFERENCES res_user ON DELETE SET NULL', + fields.Integer._symbol_set), ) for log in logs: - table.add_raw_column(log[0], (log[1], log[2]), migrate=False) + table.add_raw_column(log[0], (log[1], log[2]), log[3], migrate=False) for field_name, field in self._columns.iteritems(): default_fun = None if field_name in ( @@ -439,8 +443,8 @@ class ORM(object): return unpack_result default_fun = unpack_wrapper(default_fun) - table.add_raw_column( - field_name, field.sql_type(), default_fun, field.size) + table.add_raw_column(field_name, field.sql_type(), + field._symbol_set, default_fun, field.size) if isinstance(field, (fields.Integer, fields.Float)): table.db_default(field_name, 0) diff --git a/trytond/sql_db.py b/trytond/sql_db.py index 78eb64c095..903fe7367b 100644 --- a/trytond/sql_db.py +++ b/trytond/sql_db.py @@ -342,8 +342,8 @@ class table_handler: 'ALTER COLUMN "' + column_name + '" SET DEFAULT %s', (value,)) - def add_raw_column(self, column_name, column_type, default_fun=None, - field_size=None, migrate = True): + def add_raw_column(self, column_name, column_type, symbol_set, + default_fun=None, field_size=None, migrate=True): if column_name in self.table: if not migrate: @@ -383,21 +383,12 @@ class table_handler: self.cursor.execute('ALTER TABLE "%s" ADD COLUMN "%s" %s' % (self.table_name, column_name, column_type)) # Populate column with default values: + default = None if default_fun is not None: default = default_fun(self.cursor, 0, {}) - if (default is not False) and (default is not False): - self.cursor.execute('UPDATE "' + self.table_name + '" '\ - 'SET "' + column_name + '" = %s', - (default,)) - else: - self.cursor.execute('UPDATE "' + self.table_name + '" '\ - 'SET "' + column_name + '" = NULL') - elif column_type == 'bool': - self.cursor.execute('UPDATE "' + self.table_name + '" '\ - 'SET "' + column_name + '" = false') - elif column_type in ('int4', 'float8'): - self.cursor.execute('UPDATE "' + self.table_name + '" '\ - 'SET "' + column_name + '" = 0') + self.cursor.execute('UPDATE "' + self.table_name + '" '\ + 'SET "' + column_name + '" = ' + symbol_set[0], + (symbol_set[1](default),)) self.update_definitions() @@ -407,8 +398,9 @@ class table_handler: rtable = table_handler( self.cursor, relation_table, object_name=None, module_name= self.module_name) - rtable.add_raw_column(rtable_from, ('int4', 'int4')) - rtable.add_raw_column(rtable_to, ('int4', 'int4')) + from osv.fields import Integer + rtable.add_raw_column(rtable_from, ('int4', 'int4'), Integer._symbol_set) + rtable.add_raw_column(rtable_to, ('int4', 'int4'), Integer._symbol_set) rtable.add_fk(rtable_from, self.table_name) rtable.add_fk(rtable_to, other_table) rtable.index_action(rtable_from, 'add')