Segmentation fault on updating a BYTEA field [psycopg2]
George Sakkis
george.sakkis at gmail.com
Wed May 21 18:32:53 EDT 2008
I have a simple DB table that stores md5 signature pairs:
Table "public.duplicate"
Column | Type | Modifiers
----------+-------+-----------
sig | bytea | not null
orig_sig | bytea | not null
Indexes:
"duplicate_pkey" PRIMARY KEY, btree (sig)
"ix_duplicate_orig_sig" btree (orig_sig)
I use SqlAlchemy to interact with it and inserting works fine; update
however crashes hard with a segfault. Sure enough, the crash is
reproducible when using the underlying psycopg2 directly:
>>> import psycopg2
>>> connect_string = ...
>>> conn = psycopg2.connect(connect_string)
>>> cur = conn.cursor()
>>> cur.execute('SELECT sig,orig_sig from duplicate limit 1')
>>> d = cur.fetchone()
>>> d
(<read-only buffer for 0x40209100, size 16, offset 0 at 0x403054e0>,
<read-only buffer for 0x402090f0, size 16, offset 0 at 0x40305580>)
>>> map(str,d)
["\x02#qO\xb0\xcc\xfcx\xb9u\xa5\x83)\xc4'@", '\xa1\xf22\xf6y\xd0\xbc
\xea6\xf0Y\xf1"\xc9(\n']
>>> cur.execute('UPDATE duplicate SET orig_sig=%(orig_sig)s WHERE duplicate.sig = %(duplicate_sig)s',
... dict(orig_sig=d[0], duplicate_sig=d[1]))
Segmentation fault
Am I (and SqlAlchemy) doing something silly or is this a bug in
psycopg2 ?
George
More information about the Python-list
mailing list