2
0
mirror of https://github.com/openvswitch/ovs synced 2025-10-25 15:07:05 +00:00

python: Fix writing to non-"alert" column for newly inserted row.

When 'alert' was turned off on a column, the code was erroring out when
value for that column was being set in a newly inserted row. This is
because the row._data was None at this time.

It seems that new rows are not initialized to defaults and that's why the
NULL error happens.  IMO a newly inserted row should automatically get
intialized to default values.  This new behavior can be implemented as a
separate improvement sometime in the future.

For now, I don't see an issue with adding the additional check. This new
check can continue as-is even after the new behavior is implemented.

Signed-off-by: Sumit Garg <sumit@extremenetworks.com>
Signed-off-by: Ben Pfaff <blp@nicira.com>
This commit is contained in:
Sumit Garg
2015-06-25 08:51:42 -07:00
committed by Ben Pfaff
parent 9614403da9
commit 7a5568826f

View File

@@ -1074,7 +1074,7 @@ class Transaction(object):
# transaction only does writes of existing values, without making any
# real changes, we will drop the whole transaction later in
# ovsdb_idl_txn_commit().)
if not column.alert and row._data.get(column.name) == datum:
if not column.alert and row._data and row._data.get(column.name) == datum:
new_value = row._changes.get(column.name)
if new_value is None or new_value == datum:
return