Fix set_property_atomic() boolean type casting
In set_property_atomic() we pass an integer query filter for the deleted field, since most projects use an integer for this column. However, in glance the column is a boolean, which trips up postgres since the types are different (mysql and sqlite work fine). This minor change to use False instead of 0 should fix that for postgres users. Change-Id: I5149df76943c1c19f3204b904c0e2d3ef846bdf7 Closes-Bug: #1953063
This commit is contained in:
@@ -873,13 +873,13 @@ def image_set_property_atomic(image_id, name, value):
|
|||||||
table = models.ImageProperty.__table__
|
table = models.ImageProperty.__table__
|
||||||
|
|
||||||
# This should be:
|
# This should be:
|
||||||
# UPDATE image_properties SET value=$value, deleted=0
|
# UPDATE image_properties SET value=$value, deleted=False
|
||||||
# WHERE name=$name AND deleted!=0
|
# WHERE name=$name AND deleted!=False
|
||||||
result = connection.execute(table.update().where(
|
result = connection.execute(table.update().where(
|
||||||
sa_sql.and_(table.c.name == name,
|
sa_sql.and_(table.c.name == name,
|
||||||
table.c.image_id == image_id,
|
table.c.image_id == image_id,
|
||||||
table.c.deleted != 0)).values(
|
table.c.deleted != False)).values(
|
||||||
value=value, deleted=0))
|
value=value, deleted=False))
|
||||||
if result.rowcount == 1:
|
if result.rowcount == 1:
|
||||||
# Found and updated a deleted property, so we win
|
# Found and updated a deleted property, so we win
|
||||||
return
|
return
|
||||||
@@ -924,7 +924,7 @@ def image_delete_property_atomic(image_id, name, value):
|
|||||||
sa_sql.and_(table.c.name == name,
|
sa_sql.and_(table.c.name == name,
|
||||||
table.c.value == value,
|
table.c.value == value,
|
||||||
table.c.image_id == image_id,
|
table.c.image_id == image_id,
|
||||||
table.c.deleted == 0)))
|
table.c.deleted == False)))
|
||||||
if result.rowcount == 1:
|
if result.rowcount == 1:
|
||||||
return
|
return
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user