Replicação entre servidores

Como recuperar o valor de uma coluna específica nas operações de INSERT e UPDATE do DML_LOG?

RTREPLICATOR.FAQ-143390
Os registros de DML separam o comando dos parâmetros. Caso seja necessário montar um SQL que recupere o valor de uma coluna específica que está sendo alterada, é necessário usar uma expressão complexa usando funções de array.

Exemplo:

(string_to_array((string_to_array(dml_parameters,chr(10)))[
     array_position(
         (string_to_array(replace(replace(replace(substring(dml, length(origin_table_name) + 13),' =', ''), ' where ',''),' , ',''), ' ?'))
         , 'VENDEDOR_ID')
     ],'='))[2]::int8 as VENDEDOR_ID

O exemplo acima foi um caso prático utilizado para montar um histórico de alteração do vendedor em documentos fiscais.
Esta FAQ deve ser melhorada para permitir utilizar este mesmo recurso de forma mais genérica.

O exemplo abaixo é igual ao anterior, mas apresentado de forma mais didática:
select (string_to_array(arr_valores[array_position(arr_colunas, 'VENDEDOR_ID')],'='))[2]::int8 as NOVO_VENDEDOR_ID
from (
   select string_to_array(replace(replace(substring(dml, length(origin_table_name) + 13),' =', ''), ' where ',''), ' ?') as arr_colunas
   , string_to_array(dml_parameters,chr(10)) as arr_valores
   from dml_logs
   where dml like 'update %'
   and dml_parameters is not null
   and origin_table_name = 'DOC_ENTRADAS_SAIDAS'
   and dml like '%VENDEDOR_ID%'
   limit 50
) q