diff --git a/src/pl/plpython/expected/plpython_error_0.out b/src/pl/plpython/expected/plpython_error_0.out index 5323906..19b1a9b 100644 --- a/src/pl/plpython/expected/plpython_error_0.out +++ b/src/pl/plpython/expected/plpython_error_0.out @@ -422,3 +422,65 @@ EXCEPTION WHEN SQLSTATE 'SILLY' THEN -- NOOP END $$ LANGUAGE plpgsql; +/* the possibility to set fields of custom exception + */ +DO $$ +raise plpy.SPIError('This is message text.', + detail = 'This is detail text', + hint = 'This is hint text.') +$$ LANGUAGE plpythonu; +ERROR: plpy.SPIError: This is message text. +DETAIL: This is detail text +HINT: This is hint text. +CONTEXT: Traceback (most recent call last): + PL/Python anonymous code block, line 4, in + hint = 'This is hint text.') +PL/Python anonymous code block +\set VERBOSITY verbose +DO $$ +raise plpy.SPIError('This is message text.', + detail = 'This is detail text', + hint = 'This is hint text.', + sqlstate = 'SILLY', + schema = 'any info about schema', + table = 'any info about table', + column = 'any info about column', + datatype = 'any info about datatype', + constraint = 'any info about constraint') +$$ LANGUAGE plpythonu; +ERROR: SILLY: plpy.SPIError: This is message text. +DETAIL: This is detail text +HINT: This is hint text. +CONTEXT: Traceback (most recent call last): + PL/Python anonymous code block, line 10, in + constraint = 'any info about constraint') +PL/Python anonymous code block +SCHEMA NAME: any info about schema +TABLE NAME: any info about table +COLUMN NAME: any info about column +DATATYPE NAME: any info about datatype +CONSTRAINT NAME: any info about constraint +LOCATION: PLy_elog, plpy_elog.c:122 +\set VERBOSITY default +DO $$ +raise plpy.SPIError(detail = 'This is detail text') +$$ LANGUAGE plpythonu; +ERROR: plpy.SPIError: unknown +DETAIL: This is detail text +CONTEXT: Traceback (most recent call last): + PL/Python anonymous code block, line 2, in + raise plpy.SPIError(detail = 'This is detail text') +PL/Python anonymous code block +DO $$ +raise plpy.SPIError(); +$$ LANGUAGE plpythonu; +ERROR: plpy.SPIError: unknown +CONTEXT: Traceback (most recent call last): + PL/Python anonymous code block, line 2, in + raise plpy.SPIError(); +PL/Python anonymous code block +DO $$ +raise plpy.SPIError(sqlstate = 'wrong sql state'); +$$ LANGUAGE plpythonu; +ERROR: could not create SPIError object (invalid SQLSTATE code) +CONTEXT: PL/Python anonymous code block