From: | Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us> |
---|---|
To: | Christoph Berg <myon(at)debian(dot)org> |
Cc: | Michael Banck <mbanck(at)gmx(dot)net>, Tommy Pavlicek <tommypav122(at)gmail(dot)com>, Dagfinn Ilmari Mannsåker <ilmari(at)ilmari(dot)org>, pgsql-hackers(at)lists(dot)postgresql(dot)org, jian(dot)universality(at)gmail(dot)com |
Subject: | Re: Better error reporting from extension scripts (Was: Extend ALTER OPERATOR) |
Date: | 2024-10-08 20:17:58 |
Message-ID: | 2245576.1728418678@sss.pgh.pa.us |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-hackers |
I wrote:
> ... There's still a question
> of whether reporting the whole script as the query is OK when
> we have a syntax error, but I have no good ideas as to how to
> make that terser.
I had an idea about this: we can use a pretty simple heuristic
such as "break at semicolon-newline sequences". That could fail
and show you just a fragment of a statement, but that still seems
better than showing a whole extension script. We can ameliorate
the problem that we might not show enough to clearly identify
what failed by including a separate line number counter.
In the attached v4 I included that in the context line that
reports the script file, eg
+CONTEXT: SQL statement "CREATE OR REPLACE FUNCTION ext_cor_func() RETURNS text
+ AS $$ SELECT 'ext_cor_func: from extension'::text $$ LANGUAGE sql"
+extension script file "test_ext_cor--1.0.sql", near line 8
This way seems a whole lot more usable when dealing with a
large extension script.
regards, tom lane
Attachment | Content-Type | Size |
---|---|---|
v4-0001-Improve-parser-s-reporting-of-statement-start-loc.patch | text/x-diff | 9.1 KB |
v4-0002-Improve-reporting-of-errors-in-extension-script-f.patch | text/x-diff | 19.8 KB |
From | Date | Subject | |
---|---|---|---|
Next Message | Devulapalli, Raghuveer | 2024-10-08 20:19:27 | RE: Proposal for Updating CRC32C with AVX-512 Algorithm. |
Previous Message | Ranier Vilela | 2024-10-08 19:09:00 | Avoid possible overflow (src/port/bsearch_arg.c) |