Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Ordenação consistente e padronizada #11

Closed
ppKrauss opened this issue Jul 9, 2018 · 1 comment
Closed

Ordenação consistente e padronizada #11

ppKrauss opened this issue Jul 9, 2018 · 1 comment

Comments

@ppKrauss
Copy link
Contributor

ppKrauss commented Jul 9, 2018

Importante que "Brasil" e "Brasil Novo" venha antes de "Brasilândia" numa listagem por ordem alfabética. Ver solução elegante aqui... Importante que a solução seja padronizada e sempre utilizada para não comprometer o git.

Por hora este é o padrão:

CREATE FUNCTION std_collate(text) RETURNS text AS $f$
     -- SELECT name FROM t ORDER BY std_collate(name), name;
    SELECT regexp_replace($1, E'[ \'\-]', '0', 'g')
$f$ language SQL;

Aplicando a reordenação na copia da tabela,

COPY (
  SELECT *
  FROM dataset.vw2_br_city_codes
  ORDER BY std_collate(name), name, state
) TO '/tmp/test.csv' CSV HEADER;
@ppKrauss
Copy link
Contributor Author

ppKrauss commented Aug 27, 2018

Lembretes:

  • a função acima foi revisada, tem agora parâmetros para ordenar sinônimos. Ver step1-lib.sql.
  • A VIEW io.vwexp_citybr de step2-io_lib.sql seria a referência de ordenação. Mas aparentemente não está em uso.

O commit ordenado foi realizado em algum momento, CONFIRMADO que segue a ordenação.

Pode-se opcionalmente usar

COPY (
  select name, state, "wdId", "idIBGE", "lexLabel", creation, extinction,
     "postalCode_ranges", ddd, notes  
   from t ORDER BY std_collate(name), name, state 
) to '/tmp/atualizacao.csv' CSV HEADER

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant