R/psql_carf_trigger.R

Defines functions psql_carf_trigger

Documented in psql_carf_trigger

#' Adiciona trigger à tabela julgados do carf
#'
#' @description Esta função adiciona um trigger à base carf para retokenizar
#'     a cada inserção.
#'
#' @param con conexão
#' @param tbl nome da tabela
#' @param config defaults para português
#'
#' @return o resultado do query fica limpo ao final
#' @export
#'

psql_carf_trigger <- function(con,tbl,config="pg_catalog.portuguese"){

  julgado="new.julgado"
  f_name<-paste0(tbl,"_trigger()")

  q<-glue::glue_sql("CREATE FUNCTION {DBI::SQL(f_name)} RETURNS trigger AS $$
begin
  new.document_tokens :=
      to_tsvector({config},coalesce({julgado},''));
  return new;
end
$$ LANGUAGE plpgsql;",.con=con)

  RPostgres::dbExecute(con,q)

  q <- glue::glue_sql("
CREATE TRIGGER tsvectorupdate BEFORE INSERT OR UPDATE
    ON {`tbl`} FOR EACH ROW EXECUTE FUNCTION {DBI::SQL(f_name)}
",.con=con)


  RPostgres::dbExecute(con,q)

}
jjesusfilho/carf documentation built on Nov. 4, 2019, 2:44 p.m.