Podría permitir que los usuarios especifiquen una ruta dentro del documento JSON y luego parametrizar esa ruta dentro de una llamada a una función como json_extract_path_text
. Es decir, la cláusula WHERE se vería así:
WHERE json_extract_path_text(data, $1) = $2
El argumento de la ruta es solo una cadena, fácilmente parametrizable, que describe las claves para recorrer hasta el valor dado, p. 'foo.bars[0].name'
. El lado derecho de la cláusula se parametrizaría según las mismas reglas que usa para el filtrado de columnas fijas.