in crashclouseau/models.py [0:0]
def get_id(signature):
sel = db.select(db.literal(signature)).where(
~db.exists().where(Signature.signature == signature)
)
ins = (
db.insert(Signature)
.from_select([Signature.signature], sel)
.returning(Signature.id)
.cte("inserted")
)
rs = (
db.session.query(Signature.id)
.filter(Signature.signature == signature)
.union_all(
db.session.query(Signature.id)
.select_from(ins)
.filter(Signature.id == ins.c.id)
)
)
first = rs.first()
if first is None:
first = rs.first()
id = first[0]
db.session.commit()
return id