Hi,
On 2022-10-15 11:41:08 +0900, Michael Paquier wrote:
> Attached is a patch for HEAD and REL_15_STABLE to switch this stuff with new
> names, with what's needed for ABI compatibility. My plan would be to keep
> the compatibility parts only in 15, and drop them from HEAD. -- Michael
Looks reasonable to me. Thanks for working on this.
> -/* flag bits for SetSingleFuncCall() */
> -#define SRF_SINGLE_USE_EXPECTED 0x01 /* use expectedDesc as tupdesc */
> -#define SRF_SINGLE_BLESS 0x02 /* validate tuple for SRF */
> +/* flag bits for InitMaterializedSRF() */
> +#define MAT_SRF_USE_EXPECTED_DESC 0x01 /* use expectedDesc as tupdesc */
> +#define MAT_SRF_BLESS 0x02 /* complete tuple descriptor, for
> + * a transient RECORD datatype */
I don't really know what "complete tuple descriptor" means. BlessTupleDesc()
does say "make a completed tuple descriptor useful for SRFs" - but I don't
think that means that Bless* makes them complete, but that they *have* to be
complete to be blessed.
> @@ -2164,8 +2164,8 @@ elements_worker_jsonb(FunctionCallInfo fcinfo, const char *funcname,
>
> rsi = (ReturnSetInfo *) fcinfo->resultinfo;
>
> - SetSingleFuncCall(fcinfo,
> - SRF_SINGLE_USE_EXPECTED | SRF_SINGLE_BLESS);
> + InitMaterializedSRF(fcinfo,
> + MAT_SRF_USE_EXPECTED_DESC | MAT_SRF_BLESS);
Already was the case, so maybe not worth mucking with: Why the newline here,
but not in other cases?
Greetings,
Andres Freund