AddressForAll / LIXO-digital-preservation-BR

Preservação digital das principais fontes digitais do AddressForAll-Brasil
2 stars 0 forks source link

Araucária #20

Closed crebollobr closed 2 years ago

crebollobr commented 3 years ago

/opt/carlos/digital-preservation-BR/data/in/PR/Araucaria/_pk067$ make via pg_db=ingest2 orig=/tmp psql postgres://postgres@localhost/ingest2 -c "SELECT ingest.any_load('shp2sql','/tmp/sandbox/_pk67_001/Sistema Vi rio','via_full','pk67_001_p1_via','67_001','39cfe0ef43045a9bfaf872ffc648b8294151f73d431607220141cd248b45e260.zip',array['gid', 'endereço AS via_name', 'geom'])" ERROR: integer out of range CONTEXT: SQL function "feature_asis_assign_volume" statement 1 SQL function "feature_asis_assign" statement 1 SQL statement "UPDATE ingest.layer_file SET proc_step=2, -- if insert process occurs after q_query. feature_asis_summary= ingest.feature_asis_assign(q_file_id) WHERE file_id=q_file_id" PL/pgSQL function ingest.any_load(text,text,text,text,real,text,text[],text,boolean) line 78 at SQL statement make: *** [makefile:125: via] Error 1

0e1 commented 2 years ago

O problema aqui é por causa de::int em

WHEN 'line' THEN round( ST_Length(geom,true)/1000.0)::int

Para 1631 feições, ST_Length(geom,true) retorna o comprimento de 1.6000000000000003e+101.

Removendo o cast ::int a ingestão acontece. Mas acho que isso não é solução. Não descobri o por quê dessa ordem de grandeza, retornada pela ST_Length.

0e1 commented 2 years ago

Uma sugestão: corrigir a codificação dos nomes dos arquivos 'Sistema Viário.*' para utf-8. Da forma como está não atrapalha ingestão, mas corre o risco de Vi rio em orig_filename: Sistema Vi rio no arquivo de configuração ser entendido como um espaço, que ocasiona a não extração do arquivo durante o processo de ingestão.