summaryrefslogtreecommitdiff
path: root/src/pl/plpython
diff options
context:
space:
mode:
Diffstat (limited to 'src/pl/plpython')
-rw-r--r--src/pl/plpython/plpy_elog.c2
-rw-r--r--src/pl/plpython/plpy_exec.c12
2 files changed, 9 insertions, 5 deletions
diff --git a/src/pl/plpython/plpy_elog.c b/src/pl/plpython/plpy_elog.c
index 461d68c546..15406d60b9 100644
--- a/src/pl/plpython/plpy_elog.c
+++ b/src/pl/plpython/plpy_elog.c
@@ -97,7 +97,7 @@ PLy_elog(int elevel, const char *fmt,...)
PG_TRY();
{
ereport(elevel,
- (errcode(sqlerrcode ? sqlerrcode : ERRCODE_INTERNAL_ERROR),
+ (errcode(sqlerrcode ? sqlerrcode : ERRCODE_EXTERNAL_ROUTINE_EXCEPTION),
errmsg_internal("%s", primary ? primary : "no exception data"),
(detail) ? errdetail_internal("%s", detail) : 0,
(tb_depth > 0 && tbmsg) ? errcontext("%s", tbmsg) : 0,
diff --git a/src/pl/plpython/plpy_exec.c b/src/pl/plpython/plpy_exec.c
index 8c525c932a..3ccebe403e 100644
--- a/src/pl/plpython/plpy_exec.c
+++ b/src/pl/plpython/plpy_exec.c
@@ -662,11 +662,13 @@ PLy_modify_tuple(PLyProcedure *proc, PyObject *pltd, TriggerData *tdata,
{
if ((plntup = PyDict_GetItemString(pltd, "new")) == NULL)
ereport(ERROR,
- (errmsg("TD[\"new\"] deleted, cannot modify row")));
+ (errcode(ERRCODE_UNDEFINED_OBJECT),
+ errmsg("TD[\"new\"] deleted, cannot modify row")));
Py_INCREF(plntup);
if (!PyDict_Check(plntup))
ereport(ERROR,
- (errmsg("TD[\"new\"] is not a dictionary")));
+ (errcode(ERRCODE_DATATYPE_MISMATCH),
+ errmsg("TD[\"new\"] is not a dictionary")));
plkeys = PyDict_Keys(plntup);
natts = PyList_Size(plkeys);
@@ -690,13 +692,15 @@ PLy_modify_tuple(PLyProcedure *proc, PyObject *pltd, TriggerData *tdata,
else
{
ereport(ERROR,
- (errmsg("TD[\"new\"] dictionary key at ordinal position %d is not a string", i)));
+ (errcode(ERRCODE_DATATYPE_MISMATCH),
+ errmsg("TD[\"new\"] dictionary key at ordinal position %d is not a string", i)));
plattstr = NULL; /* keep compiler quiet */
}
attn = SPI_fnumber(tupdesc, plattstr);
if (attn == SPI_ERROR_NOATTRIBUTE)
ereport(ERROR,
- (errmsg("key \"%s\" found in TD[\"new\"] does not exist as a column in the triggering row",
+ (errcode(ERRCODE_UNDEFINED_COLUMN),
+ errmsg("key \"%s\" found in TD[\"new\"] does not exist as a column in the triggering row",
plattstr)));
atti = attn - 1;