Do not try to insert default values on empty table

This commit is contained in:
Bertrand Chenal
2008-10-15 16:43:44 +02:00
parent e42acf8d8d
commit 7248d2eb9c
+11 -7
View File
@@ -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()