Le code actuel utilise UNNEST(ARRAY[pt.name,pt.tags->'alt_name',pt.tags->'old_name']) pour récupérer les noms depuis les tags OSM. Contraintement à un COALESCE, le UNNEST peut récupérer plusieurs noms.
Dans le cas où l'on a plusieurs noms les traitements suivant récupère un nom OSM en priorité, sans garantie duquel.
Ce PR garde le nom du tag OSM duquel est issue le nom en parallèle du nom.
Ce qui permet ensuite de prioriser le nom par défaut (tag OSM name) aux autres noms issues d'OSM.
C'est attribut osm_tag pourrait ensuite être utilisé dans d'autres PR pour connaître la langue du nom (et pourquoi pas l’indiquer dans le fichier de sortie).
J'ai découvert ce problème en travaillant sur des noms multilingues, ou l'on n'était plus en capacité d'identifier le nom par défaut. Mais ce bug existe dans le code actuel, même si je n'ai pas d'exemple de sortie erronée à fournir.
PR base sur le PR #418 - a merger avant.
Le code actuel utilise
UNNEST(ARRAY[pt.name,pt.tags->'alt_name',pt.tags->'old_name'])
pour récupérer les noms depuis les tags OSM. Contraintement à unCOALESCE
, leUNNEST
peut récupérer plusieurs noms.Dans le cas où l'on a plusieurs noms les traitements suivant récupère un nom OSM en priorité, sans garantie duquel.
Ce PR garde le nom du tag OSM duquel est issue le nom en parallèle du nom.
Ce qui permet ensuite de prioriser le nom par défaut (tag OSM
name
) aux autres noms issues d'OSM.C'est attribut
osm_tag
pourrait ensuite être utilisé dans d'autres PR pour connaître la langue du nom (et pourquoi pas l’indiquer dans le fichier de sortie).J'ai découvert ce problème en travaillant sur des noms multilingues, ou l'on n'était plus en capacité d'identifier le nom par défaut. Mais ce bug existe dans le code actuel, même si je n'ai pas d'exemple de sortie erronée à fournir.