El problema es que los atributos keys
y values
son métodos de la colección de columnas inmutables sq_objects.c
. Otra solución al problema es utilizar la notación de acceso a elementos para obtener las columnas reales:
func.jsonb_object_agg(
sq_objects.c["keys"],
sq_objects.c["values"]
).over(
partition_by=sq_objects.c.object_id
).label("attributes")