Martijn de Munnik <martijndemunnik@xxxxxxxxxxxxxx> writes: > The error is caused by the jsonb_build_object function, is there any > reason why this function is not IMMUTABLE? It can invoke arbitrary datatype output functions, some of which are not immutable. We unfortunately lack any infrastructure that would allow reasoning that "all the types used in this specific invocation have immutable output functions, so it'd be OK to consider this invocation immutable". So we have to assume the worst when labeling jsonb_build_object. (Even if we had such infrastructure, I doubt it would save you in this use-case, because it looks like some of the values you're converting are timestamps, which respond to the DateStyle and TimeZone settings.) You could, on these grounds, argue that jsonb_build_object and other functions with this problem actually need to be VOLATILE. But we've established a project convention that I/O functions should be at worst STABLE, allowing calling functions to be STABLE as well. regards, tom lane