details: https://code.tryton.org/tryton/commit/e277a4c8d43b
branch: default
user: Cédric Krier <[email protected]>
date: Sat Dec 13 14:31:19 2025 +0100
description:
Implement setnextid for SQLite database
diffstat:
trytond/trytond/backend/sqlite/database.py | 19 +++++++++++++++++++
1 files changed, 19 insertions(+), 0 deletions(-)
diffs (29 lines):
diff -r aa1bb0828ed1 -r e277a4c8d43b trytond/trytond/backend/sqlite/database.py
--- a/trytond/trytond/backend/sqlite/database.py Sat Dec 13 12:56:46
2025 +0100
+++ b/trytond/trytond/backend/sqlite/database.py Sat Dec 13 14:31:19
2025 +0100
@@ -717,6 +717,25 @@
return False
return True
+ def setnextid(self, connection, table, value):
+ cursor = connection.cursor()
+ sequence = Table('sqlite_sequence')
+ cursor.execute(*sequence.select(
+ sequence.seq,
+ where=sequence.name == table))
+ rows = cursor.fetchall()
+ if rows:
+ if rows[0][0] >= value:
+ return
+ cursor.execute(*sequence.update(
+ [sequence.seq],
+ [value - 1],
+ where=sequence.name == table))
+ else:
+ cursor.execute(*sequence.insert(
+ [sequence.name, sequence.seq],
+ [[table, value - 1]]))
+
def lastid(self, cursor):
# This call is not thread safe
return cursor.lastrowid