public inbox for [email protected]
help / color / mirror / Atom feedFrom: Tatsuo Ishii <[email protected]>
To: [email protected]
Cc: [email protected]
Cc: [email protected]
Cc: [email protected]
Cc: [email protected]
Cc: [email protected]
Cc: [email protected]
Cc: [email protected]
Cc: [email protected]
Cc: [email protected]
Subject: Re: Add RESPECT/IGNORE NULLS and FROM FIRST/LAST options
Date: Sat, 11 Oct 2025 14:42:18 +0900 (JST)
Message-ID: <[email protected]> (raw)
In-Reply-To: <[email protected]>
References: <[email protected]>
<[email protected]>
<[email protected]>
>> Also the error is certainly user-facing,
>> so using elog() was quite inappropriate. It should be ereport with an
>> errcode of (probably) ERRCODE_FEATURE_NOT_SUPPORTED. Rolling your
>> own implementation of get_func_name() wasn't great either.
>
> I overlooked the elog() call and "own implementation of
> get_func_name()". Will fix.
Attached is a trivial patch to fix that. I am going to push it if
there's no objection.
Best regards,
--
Tatsuo Ishii
SRA OSS K.K.
English: http://www.sraoss.co.jp/index_en/
Japanese:http://www.sraoss.co.jp
Attachments:
[application/octet-stream] v1-0001-Use-ereport-rather-than-elog-in-WinCheckAndInitia.patch (1.9K, ../[email protected]/2-v1-0001-Use-ereport-rather-than-elog-in-WinCheckAndInitia.patch)
download | inline diff:
From 61b4393bd12ad286e735a3bdf793443ecbf3b1aa Mon Sep 17 00:00:00 2001
From: Tatsuo Ishii <[email protected]>
Date: Sat, 11 Oct 2025 14:31:12 +0900
Subject: [PATCH v1] Use ereport rather than elog in
WinCheckAndInitializeNullTreatment.
Previously WinCheckAndInitializeNullTreatment() used elog() to emit an
error message. ereport() should be used instead because it's a
user-facing error.
Also fix WinCheckAndInitializeNullTreatment() to use existing
get_func_name() to get a function's name, rather than own
implementation.
Reported-by: Tom Lane <[email protected]>
Author: Tatsuo Ishii <[email protected]>
Discussion: https://postgr.es/m/2952409.1760023154%40sss.pgh.pa.us
---
src/backend/executor/nodeWindowAgg.c | 19 ++++++-------------
1 file changed, 6 insertions(+), 13 deletions(-)
diff --git a/src/backend/executor/nodeWindowAgg.c b/src/backend/executor/nodeWindowAgg.c
index e6a53f95391..892bdbd5ef5 100644
--- a/src/backend/executor/nodeWindowAgg.c
+++ b/src/backend/executor/nodeWindowAgg.c
@@ -3540,22 +3540,15 @@ WinCheckAndInitializeNullTreatment(WindowObject winobj,
{
if (winobj->ignore_nulls != NO_NULLTREATMENT && !allowNullTreatment)
{
- HeapTuple proctup;
- Form_pg_proc procform;
- Oid funcid;
-
- funcid = fcinfo->flinfo->fn_oid;
- proctup = SearchSysCache1(PROCOID,
- ObjectIdGetDatum(funcid));
- if (!HeapTupleIsValid(proctup))
- elog(ERROR, "cache lookup failed for function %u", funcid);
- procform = (Form_pg_proc) GETSTRUCT(proctup);
- elog(ERROR, "function %s does not allow RESPECT/IGNORE NULLS",
- NameStr(procform->proname));
+ char *funcname = get_func_name(fcinfo->flinfo->fn_oid);
+
+ ereport(ERROR,
+ (errcode(ERRCODE_FEATURE_NOT_SUPPORTED),
+ errmsg("function %s does not allow RESPECT/IGNORE NULLS",
+ funcname)));
}
else if (winobj->ignore_nulls == PARSER_IGNORE_NULLS)
winobj->ignore_nulls = IGNORE_NULLS;
-
}
/*
--
2.43.0
view thread (91+ messages) latest in thread
reply
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Reply to all the recipients using the --to and --cc options:
reply via email
To: [email protected]
Cc: [email protected], [email protected], [email protected], [email protected], [email protected], [email protected], [email protected], [email protected], [email protected], [email protected], [email protected]
Subject: Re: Add RESPECT/IGNORE NULLS and FROM FIRST/LAST options
In-Reply-To: <[email protected]>
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
This inbox is served by agora; see mirroring instructions
for how to clone and mirror all data and code used for this inbox