MonetDBLite-Python icon indicating copy to clipboard operation
MonetDBLite-Python copied to clipboard

monetdblite.insert does not take into account serials

Open kutsurak opened this issue 7 years ago • 0 comments

Minimal example:

import monetdblite as mdbl

mdbl.init('/tmp/db')
mdbl.sql('CREATE TABLE foo (i serial, j int)')
mdbl.insert('foo', {'j': 12})

Output:

Traceback (most recent call last):
  File "/tmp/tst12.py", line 5, in <module>
    mdbl.insert('foo', {'j': 12})
  File "/<PATH>/virtualenvs/MonetDBLite-Python-4i82Dmc7/lib/python3.6/site-packages/monetdblite/__init__.py", line 51, in insert
    return embeddedmonetdb.insert(*args, **kwargs)
  File "/<PATH>/virtualenvs/MonetDBLite-Python-4i82Dmc7/lib/python3.6/site-packages/monetdblite/embeddedmonetdb.py", line 175, in insert
    raise __throw_exception(str(retval))
  File "/<PATH>/virtualenvs/MonetDBLite-Python-4i82Dmc7/lib/python3.6/site-packages/monetdblite/embeddedmonetdb.py", line 94, in __throw_exception
    raise exceptions.DatabaseError(str.replace('MALException:', ''))
monetdblite.exceptions.DatabaseError: could not find required key i

A work around is

mdbl.sql("INSERT INTO foo(j) VALUES (12)")

that works as expected.

kutsurak avatar Aug 07 '18 15:08 kutsurak