Попытка получить md5sum поля таблицы в sqlite3 с помощью пользовательской функции.
[Edit] Приведенный ниже код был опробован после прочтения документации по https://docs.python.org/3/library/sqlite3.html#sqlite3 .Connection.create_function
Вкл. python 3.8, следующий код выдает sqlite3.OperationalError: user-defined function raised exception
Как это исправить?
import sqlite3
import hashlib
def md5sum(text):
return hashlib.md5(text).hexdigest()
with sqlite3.connect(":memory:") as conn:
conn.executescript("""
CREATE TABLE project(name);
INSERT INTO project(name) VALUES ('test');
""")
conn.create_function("md5", 1, md5sum)
cursor = conn.cursor()
# cursor.execute("SELECT name from project")
cursor.execute("SELECT md5(name) from project") # Throws error
print(cursor.fetchone()[0])