PL/Python: No stack trace for an exception
I am using plpythonu on postgres 9.0.2. One of my python functions was
throwing a TypeError exception. However, I only see the exception in the
database and not the stack trace. It becomes difficult to debug if the
stack trace is absent in Python.
logdb=# select get_words(forminput) from fi;
ERROR: PL/Python: TypeError: an integer is required
CONTEXT: PL/Python function "get_words"
And here is the error if I run that function on the same data in python:
Traceback (most recent call last):
File "valid.py", line 215, in <module>
parse_query(result['forminput'])
File "valid.py", line 132, in parse_query
dateobj = datestr_to_obj(columnHash[column])
File "valid.py", line 37, in datestr_to_obj
dateobj = datetime.date(words[2], words[1], words[0])
TypeError: an integer is required
Is this a known problem or this needs addressing?
Thanks,
Sushant.
On 21/07/11 15:27, Sushant Sinha wrote:
I am using plpythonu on postgres 9.0.2. One of my python functions was
throwing a TypeError exception. However, I only see the exception in the
database and not the stack trace. It becomes difficult to debug if the
stack trace is absent in Python.logdb=# select get_words(forminput) from fi;
ERROR: PL/Python: TypeError: an integer is required
CONTEXT: PL/Python function "get_words"And here is the error if I run that function on the same data in python:
[traceback]
Is this a known problem or this needs addressing?
Yes, traceback support in PL/Python has already been implemented and is
a new feature that will be available in PostgreSQL 9.1.
Cheers,
Jan
On 21 July 2011 14:27, Sushant Sinha <sushant354@gmail.com> wrote:
I am using plpythonu on postgres 9.0.2. One of my python functions was
throwing a TypeError exception. However, I only see the exception in the
database and not the stack trace. It becomes difficult to debug if the
stack trace is absent in Python.logdb=# select get_words(forminput) from fi;
ERROR: PL/Python: TypeError: an integer is required
CONTEXT: PL/Python function "get_words"And here is the error if I run that function on the same data in python:
Traceback (most recent call last):
File "valid.py", line 215, in <module>
parse_query(result['forminput'])
File "valid.py", line 132, in parse_query
dateobj = datestr_to_obj(columnHash[column])
File "valid.py", line 37, in datestr_to_obj
dateobj = datetime.date(words[2], words[1], words[0])
TypeError: an integer is requiredIs this a known problem or this needs addressing?
Traceback information will be added to PL/Python errors in Postgres
9.1, due out in about September.
--
Peter Geoghegan http://www.2ndQuadrant.com/
PostgreSQL Development, 24x7 Support, Training and Services
On Thu, 2011-07-21 at 15:31 +0200, Jan Urbański wrote:
On 21/07/11 15:27, Sushant Sinha wrote:
I am using plpythonu on postgres 9.0.2. One of my python functions was
throwing a TypeError exception. However, I only see the exception in the
database and not the stack trace. It becomes difficult to debug if the
stack trace is absent in Python.logdb=# select get_words(forminput) from fi;
ERROR: PL/Python: TypeError: an integer is required
CONTEXT: PL/Python function "get_words"And here is the error if I run that function on the same data in python:
[traceback]
Is this a known problem or this needs addressing?
Yes, traceback support in PL/Python has already been implemented and is
a new feature that will be available in PostgreSQL 9.1.Cheers,
Jan
Thanks Jan! Just one more reason to try 9.1.