Update em campo do tipo date array

Edelson Regis de Lima <[email protected]> Tue, 16 Jan 2018 12:15:16 -0300
Newsgroups gmane.comp.db.postgresql.brasil
Message-ID <CAHy_SBcS88cWvW-tir+XvUn5wsSaLBGwHCDGf=NBHAm2uqVn7A__37711.5457471975$1516115615$gmane$org@mail.gmail.com>
Boa tarde pessoal.

Estou apanhando um pouco para dar um Replace em uma data dentro de um campo
do tipo date[]

Exemplo: digamos que meu campo occurrencedates date[] tenha as três datas:
[2018-02-01,2018-02-02,2018-02-03]
Quero por exemplo apagar o que for 2018-02-03 em todos os registros em que
a mesma for encontrada.
Para encontrar o registro estou fazendo um cast para string e usando o
ilike.
No select eu consigo retornar já sem a data normalmente.
O problema está na hora de dar o Update, não estou conseguindo converter
corretamente para que o postgre entenda que é um array de data.

Para fazer um select:

select
  occurrencedates as com_a_data,
  string_to_array(replace(array_to_string(occurrencedates, ','),
'2018-02-03', ''), ',') sem_a_data
FROM minha_tabela
where
  (occurrencedates::varchar ilike '%2018-02-03%')

com_a_data | sem_a_data
"{2018-02-01,2018-02-02,2018-02-03}" |  "{2018-02-01,2018-02-02,""}"

Ou seja, o resultado sem_a_data já é um array.

Daí eu tento fazer:

update minha_minha
set occurrencedates =
string_to_array(replace(array_to_string(occurrencedates, ','),
'2018-02-03', ''), ',') where (occurrencedates::varchar ilike
'%2018-02-03%')

E dá o seguinte erro:
column "occurrencedates" is of type date[] but expression is of type text[]

Ou seja, tenho que converter de alguma maneira o text[] para date[]

Se alguém puder ajudar agradeço desde já.

Abraços

-- 
*Edelson Regis de Lima*

_______________________________________________
pgbr-geral mailing list
[email protected]
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral