From 7248d2eb9cc9ebe4e7aef6302c54c700f97b0cc6 Mon Sep 17 00:00:00 2001 From: Bertrand Chenal Date: Wed, 15 Oct 2008 16:43:44 +0200 Subject: [PATCH] Do not try to insert default values on empty table --- trytond/sql_db.py | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) diff --git a/trytond/sql_db.py b/trytond/sql_db.py index 1308711681..1ee63fd441 100644 --- a/trytond/sql_db.py +++ b/trytond/sql_db.py @@ -378,13 +378,17 @@ class table_handler: column_type = column_type[1] 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, {}) - self.cursor.execute('UPDATE "' + self.table_name + '" '\ - 'SET "' + column_name + '" = ' + symbol_set[0], - (symbol_set[1](default),)) + + # check if table is non-empty: + self.cursor.execute('SELECT 1 FROM %s limit 1' % self.table_name) + if self.cursor.rowcount: + # Populate column with default values: + default = None + if default_fun is not None: + default = default_fun(self.cursor, 0, {}) + self.cursor.execute('UPDATE "' + self.table_name + '" '\ + 'SET "' + column_name + '" = ' + symbol_set[0], + (symbol_set[1](default),)) self.update_definitions()