In [1]: import sqlite3
In [2]: con = sqlite3.connect(':memory:')
In [3]: con.execute('SELECT f()')
---------------------------------------------------------------------------
OperationalError Traceback (most recent call last)
<ipython-input-3-e3bab2096896> in <module>()
----> 1 con.execute('SELECT f()')
OperationalError: no such function: f
In [4]: con.create_function('f', 0, [])
---------------------------------------------------------------------------
TypeError Traceback (most recent call last)
<ipython-input-4-452e7d2028ac> in <module>()
----> 1 con.create_function('f', 0, [])
TypeError: unhashable type: 'list'
In [5]: con.execute('SELECT f()')
---------------------------------------------------------------------------
OperationalError Traceback (most recent call last)
<ipython-input-5-e3bab2096896> in <module>()
----> 1 con.execute('SELECT f()')
OperationalError: user-defined function raised exception
It seems that something like this cause segmentation fault, but I can't reproduce it.
Some other similar sqlite functions also affected. They can be easily modified to accept unhashable objects, but probably it should be done in another issue. |