ppmichalakk@gmail.com writes:
> pmichalak=# create function a() returns setof record as $$
> return { 'a': 2, 'b': 3 }
> $$ language plpythonu;
> CREATE FUNCTION
> pmichalak=# select * from a() as (b integer, c integer);
> ERROR: input of anonymous composite types is not implemented
> CONTEXT: while creating return value
> PL/Python function "a"
> pmichalak=# select * from a() as (b integer, c integer);
> server closed the connection unexpectedly
> This probably means the server terminated abnormally
> before or while processing the request.
> The connection to the server was lost. Attempting reset: Failed.
Hm. Looks like we're trying to free already-freed memory here:
#2 0x00000000007babc9 in ExceptionalCondition (
conditionName=<value optimized out>, errorType=<value optimized out>,
fileName=<value optimized out>, lineNumber=<value optimized out>)
at assert.c:54
#3 0x00000000007dc292 in pfree (pointer=<value optimized out>) at mcxt.c:920
#4 0x00007fbde21a971f in PLy_free (ptr=<value optimized out>)
at plpy_util.c:53
#5 0x00007fbde21a7ad4 in PLy_output_tuple_funcs (arg=0x2cd2a68,
desc=0x2cdb240) at plpy_typeio.c:208
#6 0x00007fbde21a8b72 in PLy_output_record_funcs (arg=0x2cd2a68,
desc=0x2cdb240) at plpy_typeio.c:277
#7 0x00007fbde21a25df in PLy_function_build_args (fcinfo=0x7ffd7f54aa10,
proc=0x2cd2a48) at plpy_exec.c:419
#8 0x00007fbde21a279e in PLy_exec_function (fcinfo=0x7ffd7f54aa10,
proc=0x2cd2a48) at plpy_exec.c:60
#9 0x00007fbde21a3351 in plpython_call_handler (fcinfo=0x7ffd7f54aa10)
at plpy_main.c:232
#10 0x00000000005d96bb in ExecMakeTableFunctionResult (funcexpr=0x2cdaa28,
econtext=0x2cda5b8, argContext=<value optimized out>,
expectedDesc=0x2cdb240, randomAccess=0 '\000') at execQual.c:2189
Thanks for the report!
regards, tom lane