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