Skip to content

Instantly share code, notes, and snippets.

View MarHoff's full-sized avatar

Martin Hoffmann MarHoff

View GitHub Profile
@MarHoff
MarHoff / 0_retours_integration_20170419_RES.md
Last active June 22, 2017 13:05
Retour d'intégration des fiches RES 20170419

Le dessin de fichier semble avoir changé et la fiche descriptive fournie ne décrit pas les champs dans l'ordre ou ils apparaissent dans le CSV.

En complément j'ai noté trois éléments de formatage qui viennent compliquer l'intégration.

  • Les champs varchar utilisent une chaine vide pour décrire les null, alors que les "bit" (booleéns) emploient le mot-clé NULL, cela peut perturber certains parseurs lors de l'intégration
  • Dans le fichier équipements les champ booléens utilisent deux valeurs "-1" et "0" or la plupart des parseur n'accepent qu'un entier positif pour représenter un "vrai". C'est rédhibitoire puisque incohérent avec le fichier installation, cela nécessite d'intégerer les données comme entier signé puis de le convertir ultérieurement en booléen.
  • Plusieurs champs de type decimal sont injustement décris comme des entiers dans la doc (EquNatLongueurBassin, EquNatLargeurBassin, EquNatSurfaceBassin)

Plus grave, des erreurs logiques empêchent de valider facilement les données via des clés relationell

-- SELECT s as id, lpad(s::text,4,'0'::text) code, s+100 A, s*2 B , s/25.C INTO pivotdata FROM generate_series(1,100) s
-- SELECT (select row_to_json(_) from (select id, code) as _)::jsonb pivotid, 'a'::text pivotkey, a::text pivotvalue FROM pivotdata;
-- DROP FUNCTION unpivot_table(regclass,text[],text[],boolean);
CREATE OR REPLACE FUNCTION unpivot_table ( in tableid regclass, in pivotids text[], in pivotkeys text[] DEFAULT NULL::text[], checkfor boolean DEFAULT true,
out pivotid jsonb , out pivotkey text, out pivotvalue text) RETURNS setof record
AS
$BODY$
//
// Regular Expression for URL validation
//
// Author: Diego Perini
// Updated: 2010/12/05
// License: MIT
//
// Copyright (c) 2010-2013 Diego Perini (http://www.iport.it)
//
// Permission is hereby granted, free of charge, to any person