[Biopython-dev] [Bug 2506] New: SELECT problems on _get_seqfeature_dbxref in Loader.py with postgresql
bugzilla-daemon at portal.open-bio.org
bugzilla-daemon at portal.open-bio.org
Wed May 28 12:17:25 UTC 2008
http://bugzilla.open-bio.org/show_bug.cgi?id=2506
Summary: SELECT problems on _get_seqfeature_dbxref in Loader.py
with postgresql
Product: Biopython
Version: 1.45
Platform: PC
OS/Version: Linux
Status: NEW
Severity: blocker
Priority: P2
Component: BioSQL
AssignedTo: biopython-dev at biopython.org
ReportedBy: andrea at biodec.com
CC: andrea at biodec.com
Using:
- postgres 8.3 or less # the version is not important
- BioSQL 1.0.0 installed on a postgresql database (on Linux) # the version is
not important
- python-psycopg 1.1.21-14 or less
- python-psycopg2 2.0.5.1-6 or less
- python 2.4.4-2 # not important
- Biopython CVS version 28/05/08,
- Loader.py version 1.30
- "psycopg" or "psycopg2" as BioSeqDatabase.open_database drivers
During insertion in the BioSQL database of a seq_record object derived from a
GenBank Iterator, the procedure _get_seqfeature_dbxref fails with the errror:
Traceback (most recent call last):
File "<stdin>", line 1, in ?
File "/var/lib/python-support/python2.4/BioSQL/BioSeqDatabase.py", line 420,
in load
db_loader.load_seqrecord(cur_record)
File "/var/lib/python-support/python2.4/BioSQL/Loader.py", line 50, in
load_seqrecord
self._load_seqfeature(seq_feature, seq_feature_num, bioentry_id)
File "/var/lib/python-support/python2.4/BioSQL/Loader.py", line 542, in
_load_seqfeature
self._load_seqfeature_qualifiers(feature.qualifiers, seqfeature_id)
File "/var/lib/python-support/python2.4/BioSQL/Loader.py", line 641, in
_load_seqfeature_qualifiers
seqfeature_id)
File "/var/lib/python-support/python2.4/BioSQL/Loader.py", line 679, in
_load_seqfeature_dbxref
self._get_seqfeature_dbxref(seqfeature_id, dbxref_id, rank+1)
File "/var/lib/python-support/python2.4/BioSQL/Loader.py", line 712, in
_get_seqfeature_dbxref
result = self.adaptor.execute_and_fetch_col0(sql, (seqfeature_id,
File "/var/lib/python-support/python2.4/BioSQL/BioSeqDatabase.py", line 295,
in execute_and_fetch_col0
self.cursor.execute(sql, args or ())
psycopg.ProgrammingError: ERROR: column "195" does not exist
SELECT seqfeature_id, dbxref_id FROM seqfeature_dbxref WHERE seqfeature_id =
"195" AND dbxref_id = "207739"
The problem is that there is an error in the query format at rows 710 and 711
of the Loader.py in Biopyton/BioSQL:
709 # Check for an existing record
710 sql = r'SELECT seqfeature_id, dbxref_id FROM seqfeature_dbxref ' \
711 r'WHERE seqfeature_id = "%s" AND dbxref_id = "%s"'
because the query has double quotes (") around the values, and
postgres interprets them as Column names and not values.
If you correct the query with single quotes, you correct the error.
709 # Check for an existing record
710 sql = r"SELECT seqfeature_id, dbxref_id FROM seqfeature_dbxref " \
711 r"WHERE seqfeature_id = '%s' AND dbxref_id = '%s'"
--
Configure bugmail: http://bugzilla.open-bio.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug, or are watching the assignee.
More information about the Biopython-dev
mailing list