Tengo una tabla postgresql que tiene una columna con tipo de datos = 'text' en la que necesito crear un índice que involucre a esta columna como tipo fundido en entero []. Sin embargo, siempre que intente hacerlo, me sale el siguiente error:Crear un índice postgresql en la columna de texto casted en el array
ERROR: funciones en la expresión de índice deben estar marcados INMUTABLE
Aquí está el código:
create table test (a integer[], b text);
insert into test values ('{10,20,30}','{40,50,60}');
CREATE INDEX index_test on test USING GIN (( b::integer[] ));
Tenga en cuenta que una potencial solución es crear una función marcada como IMMUTABLE que toma un valor de columna y realiza la conversión de tipo dentro de la función, pero el problema (aparte de agregar sobrecarga) es que tengo muchos tipos de datos de matriz "objetivo" (por ejemplo, texto [], int2 [], int4 [], etc ...), y no sería posible crear una función separada para cada posible conjunto de datos de destino t ype
¿Cuál es su pregunta? ;-) –
Esto también se preguntó en la lista de correo, donde fue respondida. Si hace una pregunta tanto en Stack Overflow como en la lista de correo, * diga que lo hizo * y enlace a la publicación Stack Overflow desde la publicación de la lista de correo y/o enlace a la lista en los archivos de la pregunta de desbordamiento de pila . [Editar: dada la diferencia en las fechas de publicación, probablemente una pregunta casi idéntica por otra persona. Mi error.] –