On 10/09/2016 08:46 AM, Tom Lane wrote:
Seb <spluque@xxxxxxxxx> writes:
Any thoughts on what has changed that is leading to this failure?
Clearly a bug --- the wrong type OIDs are being passed down to
array_append. It should be told that it's getting called as
(angle_vectors[], angle_vectors) returns angle_vectors[]
but what it's actually getting told is
(vector, angle_vectors) returns vector
which naturally makes it spit up because "vector" isn't an array type.
I don't think control ever reaches your custom finalfunc at all.
For my edification, why does this work?:
test[5442]=# select version();
version
-----------------------------------------------------------------------------------------------------------------------------
PostgreSQL 9.6.0 on i686-pc-linux-gnu, compiled by gcc (SUSE Linux)
4.8.3 20140627 [gcc-4_8-branch revision 212064], 32-bit
(1 row)
test[5442]=# select avg((random(), random())::angle_vectors);
avg
--------------------------------------
(25.0294036061885,0.892887489473068)
(1 row)
Probably somebody fat-fingered this while refactoring code in the
aggregate/windowfunction area. Possibly me :-(. Haven't found
exactly where things are going off the rails, but it's clearly
a PG bug. Thanks for the report!
regards, tom lane
--
Adrian Klaver
adrian.klaver@xxxxxxxxxxx
--
Sent via pgsql-general mailing list (pgsql-general@xxxxxxxxxxxxxx)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-general