pg.ddx.io  pgsql-hackers@postgresql.org mailing list archive  
help / color / mirror / Atom feed
From: Vik Fearing <vik@postgresfriends.org>
To: Dian Fay <dian.m.fay@gmail.com>
To: pgsql-hackers@lists.postgresql.org
Cc: Vik Fearing <vikreykja@gmail.com>
Subject: Re: TRIM_ARRAY
Date: Tue, 2 Mar 2021 00:53:04 +0100
Message-ID: <b5ee1ac8-e403-6cdf-fcc3-dd5ccd5ceaf8@postgresfriends.org> (raw)
In-Reply-To: <161464047991.29967.8270411748023500393.pgcf@coridan.postgresql.org>
References: <fc92ce17-9655-8ff1-c62a-4dc4c8ccd815@postgresfriends.org>
	<931d94fa-9238-47ba-6f17-01600a845417@postgresfriends.org>
	<161464047991.29967.8270411748023500393.pgcf@coridan.postgresql.org>

On 3/2/21 12:14 AM, Dian Fay wrote:
> The following review has been posted through the commitfest application:
> make installcheck-world:  tested, passed
> Implements feature:       tested, passed
> Spec compliant:           tested, failed
> Documentation:            tested, failed

Thank you for looking at my patch!

> This basically does what it says, and the code looks good. The
> documentation is out of alphabetical order (trim_array should appear
> under cardinality rather than over)) but good otherwise.

Hmm.  It appears between cardinality and unnest in the source code and
also my compiled html.  Can you say more about where you're seeing the
wrong order?

> I was able to
> "break" the function with an untyped null in psql:
> 
> select trim_array(null, 2);
> ERROR:  could not determine polymorphic type because input has type unknown
> 
> I don't know whether there are any circumstances other than manual entry
> in psql where this could happen, since column values and variables will
> always be typed. I don't have access to the standard, but DB2's docs[1]
> note "if any argument is null, the result is the null value", so an
> up-front null check might be preferable to a slightly arcane user-facing
> error, even if it's a silly invocation of a silly function :)
> 
> [1] https://www.ibm.com/support/knowledgecenter/en/SSEPEK_12.0.0/sqlref/src/tpc/db2z_bif_trimarray.html

The standard also says that if either argument is null, the result is
null.  The problem here is that postgres needs to know what the return
type is and it can only determine that from the input.

If you give the function a typed null, it returns null as expected.

> The new status of this patch is: Waiting on Author

I put it back to Needs Review without a new patch because I don't know
what I would change.
-- 
Vik Fearing





view thread (12+ messages)  latest in thread

Message-ID: <b5ee1ac8-e403-6cdf-fcc3-dd5ccd5ceaf8@postgresfriends.org>
Permalink:  ../b5ee1ac8-e403-6cdf-fcc3-dd5ccd5ceaf8@postgresfriends.org/
Also on:    postgresql.org/message-id/b5ee1ac8-e403-6cdf-fcc3-dd5ccd5ceaf8@postgresfriends.org

 · 

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: pgsql-hackers@postgresql.org
  Cc: vik@postgresfriends.org, dian.m.fay@gmail.com, pgsql-hackers@lists.postgresql.org, vikreykja@gmail.com
  Subject: Re: TRIM_ARRAY
  In-Reply-To: <b5ee1ac8-e403-6cdf-fcc3-dd5ccd5ceaf8@postgresfriends.org>

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

This inbox is served by DDX for PostgreSQL; see mirroring instructions
for how to clone and mirror all data and code used for this inbox