Re: proposal: searching in array function - array_position - Mailing list pgsql-hackers

From Pavel Stehule
Subject Re: proposal: searching in array function - array_position
Date
Msg-id CAFj8pRC63RFJ-UhjrwkHekwtbVQ43A7FEQWMUCXoQAM=Vk0teQ@mail.gmail.com
Whole thread Raw
In response to Re: proposal: searching in array function - array_position  (Jim Nasby <Jim.Nasby@BlueTreble.com>)
Responses Re: proposal: searching in array function - array_position
List pgsql-hackers


2015-01-28 0:01 GMT+01:00 Jim Nasby <Jim.Nasby@bluetreble.com>:
On 1/27/15 4:36 AM, Pavel Stehule wrote:
2015-01-26 23:29 GMT+01:00 Jim Nasby <Jim.Nasby@bluetreble.com <mailto:Jim.Nasby@bluetreble.com>>:

    On 1/26/15 4:17 PM, Pavel Stehule wrote:

             Any way to reduce the code duplication between the array and non-array versions? Maybe factor out the operator caching code?


        I though about it - but there is different checks, different result processing, different result type.

        I didn't find any readable and reduced form :(


    Yeah, that's why I was thinking specifically of the operator caching code... isn't that identical? That would at least remove a dozen lines...


It is only partially identical - I would to use cache for array_offset, but it is not necessary for array_offsets .. depends how we would to modify current API to support externally cached data.

Externally cached data?

Some from these functions has own caches for minimize access to typcache (array_map, array_cmp is example). And in first case, I am trying to push these information from fn_extra, in second case I don't do it, because I don't expect a repeated call (and I am expecting so type cache will be enough).

I plan to do some benchmark to calculate if we have to do, or we can use type cache only.

Pavel
 

--
Jim Nasby, Data Architect, Blue Treble Consulting
Data in Trouble? Get it in Treble! http://BlueTreble.com

pgsql-hackers by date:

Previous
From: Heikki Linnakangas
Date:
Subject: Re: Parallel Seq Scan
Next
From: Pavel Stehule
Date:
Subject: Re: proposal: row_to_array function