Project

General

Profile

1
#!/bin/bash
2
# Creates analytical DB
3

    
4
selfDir="$(dirname -- "$0")"
5

    
6
. "$selfDir/vegbien_dest"
7

    
8
exec 2>>"$selfDir/../inputs/analytical_db/logs/make_analytical_db.log.sql" >&2
9

    
10
(set -x; date)
11

    
12
sleep 5 # wait for tnrs.make to acquire the lock if being run right after import
13
"$selfDir/waitself" "$selfDir/../inputs/.TNRS/tnrs/tnrs.make"
14

    
15
mk_analytical_table ()
16
{
17
    local table="$1"
18
    local public_table="\"$public\".$table" analyt_table="analytical_db.$table"
19
    cat <<EOF
20
-- Create $table
21
TRUNCATE $public_table;
22
INSERT INTO $public_table SELECT * FROM ${public_table}_view;
23
ANALYZE $public_table;
24

    
25
-- Create $analyt_table view pointing to table in $public
26
DROP VIEW IF EXISTS $analyt_table;
27
CREATE VIEW $analyt_table AS
28
SELECT * FROM $public_table;
29
GRANT SELECT ON TABLE $analyt_table TO bien_read;
30
EOF
31
}
32

    
33
((set -x; "$selfDir/psql_verbose_vegbien") <<EOF
34
GRANT USAGE ON SCHEMA analytical_db TO bien_read;
35
GRANT USAGE ON SCHEMA analytical_db TO public_;
36

    
37
TRUNCATE geoscrub_input;
38
INSERT INTO geoscrub_input SELECT * FROM geoscrub_input_view;
39

    
40
SELECT make_family_higher_plant_group();
41
TRUNCATE threatened_taxonlabel;
42
INSERT INTO threatened_taxonlabel SELECT * FROM threatened_taxonlabel_view;
43

    
44
$(mk_analytical_table taxon_trait)
45
$(mk_analytical_table analytical_stem)
46
$(mk_analytical_table provider_count)
47
GRANT SELECT ON TABLE analytical_db.provider_count TO public_;
48
$(mk_analytical_table analytical_aggregate)
49
EOF
50
) || exit
51

    
52
"$selfDir/export_analytical_db"
(38-38/80)