Subversion Repositories eFlore/Projets.eflore-projets

Rev

Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
896 raphael 1
/*
2
 Ceci est une version dérivée de referonosaure.sql dans laquel est postulé que
3
 les nom_ret sont un critère tangible.
4
 En effet, sauf bug, il n'y a pas de raison qu'un num_nom_retenu soit moins fiable qu'un num_nom.
5
 Cependant un taxon peut changer de num_nom_retenu, et auquel cas c'est bien referonosaure.sql
6
 qu'il faut utiliser.
7
 Cependant pour un simple "rafraîchissement" des chaînes de caractères attribuées au noms retenus,
8
 ce script, referonosaure_fromNomRet.sql, doit suffire.
9
 
10
 
11
 Attention, les nom_sel_nn = 0 doivent avoir disparus de cel_obs *AU PRÉALABLE* car le test
12
 n'est pas effectué.
13
 cf: maj-cleanup-201307.sql
14
*/
15
 
16
 
17
/* test:
18
   SELECT c.nom_ret_nn, c.nom_ret, b.nom_sci, b.auteur, c.famille, b.famille, c.nt, b.num_taxonomique
19
   FROM  cel_obs c, tb_eflore.bdtfx_v1_01 b
20
   WHERE (
21
        nom_sel_nn IS NOT NULL AND nom_ret_nn IS NOT NULL AND nom_ret_nn != 0
22
        AND nom_referentiel = 'bdtfx'
23
        AND nom_ret_nn = num_nom
24
        AND (LOWER(c.famille) = LOWER(b.famille) OR c.famille IS NULL)
25
        AND (c.famille != b.famille OR c.nom_ret != CONCAT(b.nom_sci, ' ', b.auteur) OR c.nt != b.num_taxonomique)
26
       );
27
   = 2 taxons: 75134 et 75468 (changement de nt)
28
*/
29
 
30
-- l'update BDTFX avec nom_sel_nn et nom_ret_nn corrects
31
UPDATE `BASEEDIT`.`cel_obs` c, `BASESOURCE`.`TABLEBDTFX` b SET
32
       c.nom_ret = CONCAT(b.nom_sci, ' ', b.auteur),
33
       c.nt = b.num_taxonomique,
34
       c.famille = b.famille
35
   WHERE (
36
        nom_sel_nn IS NOT NULL AND nom_ret_nn IS NOT NULL AND nom_ret_nn != 0
37
        AND nom_referentiel = 'bdtfx'
38
        AND nom_ret_nn = num_nom
39
        AND (c.mots_cles_texte IS NULL OR c.mots_cles_texte NOT LIKE '%WidgetFlorileges Sauvages%') -- TODO: bug transferts multiples + mobile.js
40
        AND (LOWER(c.famille) = LOWER(b.famille) OR c.famille IS NULL OR c.famille = 'Famille inconnue')
41
       );
42
-- 25584
43
SELECT ROW_COUNT() AS "BDTFX upd après correction sur nom_ret_nn + nom_sel_nn";
44
 
45
 
46
 
47
-- l'update BDTXA avec nom_sel_nn et nom_ret_nn corrects
48
UPDATE `BASEEDIT`.`cel_obs` c, `BASESOURCE`.`TABLEBDTXA` a SET
49
       c.nom_ret = CONCAT(a.nom_sci, ' ', a.auteur),
50
       c.nt = a.num_tax,
51
       c.famille = a.famille
52
   WHERE (
53
        nom_sel_nn IS NOT NULL AND nom_ret_nn IS NOT NULL AND nom_ret_nn != 0
54
        AND nom_referentiel = 'bdtxa'
55
        AND nom_ret_nn = num_nom
56
        AND (LOWER(c.famille) = LOWER(a.famille) OR c.famille IS NULL)
57
       );
58
-- 2
59
SELECT ROW_COUNT() AS "BDTXA upd après correction sur nom_ret_nn + nom_sel_nn";
60
 
61
 
62
 
63
 
64
-- l'update ISFAN avec nom_sel_nn et nom_ret_nn corrects  --
65
UPDATE `BASEEDIT`.`cel_obs` c, `BASESOURCE`.`TABLEISFAN` i SET
66
       c.nom_ret = CONCAT(i.nom_sci, ' ', i.auteur),
67
       c.nt = i.num_taxonomique,
68
       c.famille = i.famille
69
   WHERE (
70
        nom_sel_nn IS NOT NULL AND nom_ret_nn IS NOT NULL AND nom_ret_nn != 0
71
        AND nom_referentiel = 'isfan'
72
        AND nom_ret_nn = num_nom
73
        AND (LOWER(c.famille) = LOWER(i.famille) OR c.famille IS NULL)
74
       );
75
-- 2 ou 0
76
SELECT ROW_COUNT() AS "ISFAN upd après correction sur nom_ret_nn + nom_sel_nn";
77
 
78
 
79
 
80
/*
81
Pour observer les différences:
82
wdiff -w '$(tput bold;tput setaf 1)' -x '$(tput sgr0)' -y '$(tput bold;tput setaf 2)' -z '$(tput sgr0)'  pre.log post.log | \
83
      ansi2html.sh --palette=solarized | \
84
      sed '/^[0-9]/{/span/!d}' > diff.html
85
 
86
# extract les familles ayant changé: sed '/^[0-9]/{/<\/span>$/!d}'
87
# lowercase toutes les familles: awk '{ NF=tolower($NF); print }'
88
 
89
 
90
# filtre sed: changements de famille "normaux"
91
/aceraceae.*sapindaceae/d
92
/scrophulariaceae.*plantaginaceae/d
93
/globulariaceae.*plantaginaceae/d
94
/Famille inconnue.*null/d
95
 
96
# changement "anormaux"
97
/rosaceae.*caprifoliaceae/d
98
/valerianaceae.*caprifoliaceae/d
99
 
100
 
101
 
102
SELECT nom_sel, nom_ret FROM cel_obs GROUP BY nom_sel, nom_ret INTO OUTFILE '/tmp/new.csv' ;
103
SELECT id_observation, nom_sel, nom_sel_nn, nom_ret, nom_ret_nn FROM cel_obs INTO OUTFILE '/tmp/id.csv' ;
104
$ wdiff x y|sed -n "/\x1b/p"|less
105
*/