Skip to content

Commit 65eea36

Browse files
committed
nettoyage de la création des indexes (temporaires ou non) (3liz#505)
toutes les constructions 'DROP INDEX IF EXISTS' suivies de 'CREATE INDEX' sont remplacées par 'CREATE INDEX IF NOT EXISTS', syntaxe supportée par postgresql et sqlite. les indexes temporaires crées juste pour optimiser le remplissage d'une table sont toujours droppés, mais cette fois inconditionnellement (eg sans le IF EXISTS), vu qu'ils ont forcément été crées auparavant.
1 parent 9f7157f commit 65eea36

4 files changed

Lines changed: 99 additions & 151 deletions

File tree

cadastre/cadastre_import.py

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -960,16 +960,14 @@ def endImport(self):
960960

961961
# Add parcelle_info index for postgis only (not capability of that type for spatialite)
962962
if self.dialog.dbType == 'postgis':
963-
sql = 'DROP INDEX IF EXISTS parcelle_info_geo_parcelle_sub;CREATE INDEX parcelle_info_geo_parcelle_sub ON parcelle_info( substr("geo_parcelle", 1, 10));'
963+
sql = 'CREATE INDEX IF NOT EXISTS parcelle_info_geo_parcelle_sub ON parcelle_info( substr("geo_parcelle", 1, 10));'
964964
sql = CadastreCommon.setSearchPath(sql, self.dialog.schema)
965965
self.executeSqlQuery(sql)
966966

967967
# Add index on geo_parcelle and geo_batiment centroids
968968
sql = '''
969-
DROP INDEX IF EXISTS geo_parcelle_centroide_geom_idx;
970-
DROP INDEX IF EXISTS geo_batiment_centroide_geom_idx;
971-
CREATE INDEX geo_parcelle_centroide_geom_idx ON geo_parcelle USING gist (ST_Centroid(geom));
972-
CREATE INDEX geo_batiment_centroide_geom_idx ON geo_batiment USING gist (ST_Centroid(geom));
969+
CREATE INDEX IF NOT EXISTS geo_parcelle_centroide_geom_idx ON geo_parcelle USING gist (ST_Centroid(geom));
970+
CREATE INDEX IF NOT EXISTS geo_batiment_centroide_geom_idx ON geo_batiment USING gist (ST_Centroid(geom));
973971
'''
974972
sql = CadastreCommon.setSearchPath(sql, self.dialog.schema)
975973
self.executeSqlQuery(sql)
Lines changed: 48 additions & 75 deletions
Original file line numberDiff line numberDiff line change
@@ -1,77 +1,50 @@
1-
CREATE INDEX geo_commune_geom_idx ON geo_commune USING gist (geom);
2-
CREATE INDEX geo_section_geom_idx ON geo_section USING gist (geom);
3-
CREATE INDEX geo_subdsect_geom_idx ON geo_subdsect USING gist (geom);
4-
CREATE INDEX geo_parcelle_geom_idx ON geo_parcelle USING gist (geom);
5-
CREATE INDEX geo_subdfisc_geom_idx ON geo_subdfisc USING gist (geom);
6-
CREATE INDEX geo_voiep_geom_idx ON geo_voiep USING gist (geom);
7-
CREATE INDEX geo_numvoie_geom_idx ON geo_numvoie USING gist (geom);
8-
CREATE INDEX geo_lieudit_geom_idx ON geo_lieudit USING gist (geom);
9-
CREATE INDEX geo_batiment_geom_idx ON geo_batiment USING gist (geom);
10-
CREATE INDEX geo_zoncommuni_geom_idx ON geo_zoncommuni USING gist (geom);
11-
CREATE INDEX geo_tronfluv_geom_idx ON geo_tronfluv USING gist (geom);
12-
CREATE INDEX geo_tronroute_geom_idx ON geo_tronroute USING gist (geom);
13-
CREATE INDEX geo_ptcanv_geom_idx ON geo_ptcanv USING gist (geom);
14-
CREATE INDEX geo_borne_geom_idx ON geo_borne USING gist (geom);
15-
CREATE INDEX geo_croix_geom_idx ON geo_croix USING gist (geom);
16-
CREATE INDEX geo_symblim_geom_idx ON geo_symblim USING gist (geom);
17-
CREATE INDEX geo_tpoint_geom_idx ON geo_tpoint USING gist (geom);
18-
CREATE INDEX geo_tline_geom_idx ON geo_tline USING gist (geom);
19-
CREATE INDEX geo_tsurf_geom_idx ON geo_tsurf USING gist (geom);
20-
CREATE INDEX geo_label_geom_idx ON geo_label USING gist (geom);
21-
CREATE INDEX geo_unite_fonciere_geom_idx ON geo_unite_fonciere USING gist (geom);
1+
CREATE INDEX IF NOT EXISTS geo_commune_geom_idx ON geo_commune USING gist (geom);
2+
CREATE INDEX IF NOT EXISTS geo_section_geom_idx ON geo_section USING gist (geom);
3+
CREATE INDEX IF NOT EXISTS geo_subdsect_geom_idx ON geo_subdsect USING gist (geom);
4+
CREATE INDEX IF NOT EXISTS geo_parcelle_geom_idx ON geo_parcelle USING gist (geom);
5+
CREATE INDEX IF NOT EXISTS geo_subdfisc_geom_idx ON geo_subdfisc USING gist (geom);
6+
CREATE INDEX IF NOT EXISTS geo_voiep_geom_idx ON geo_voiep USING gist (geom);
7+
CREATE INDEX IF NOT EXISTS geo_numvoie_geom_idx ON geo_numvoie USING gist (geom);
8+
CREATE INDEX IF NOT EXISTS geo_lieudit_geom_idx ON geo_lieudit USING gist (geom);
9+
CREATE INDEX IF NOT EXISTS geo_batiment_geom_idx ON geo_batiment USING gist (geom);
10+
CREATE INDEX IF NOT EXISTS geo_zoncommuni_geom_idx ON geo_zoncommuni USING gist (geom);
11+
CREATE INDEX IF NOT EXISTS geo_tronfluv_geom_idx ON geo_tronfluv USING gist (geom);
12+
CREATE INDEX IF NOT EXISTS geo_tronroute_geom_idx ON geo_tronroute USING gist (geom);
13+
CREATE INDEX IF NOT EXISTS geo_ptcanv_geom_idx ON geo_ptcanv USING gist (geom);
14+
CREATE INDEX IF NOT EXISTS geo_borne_geom_idx ON geo_borne USING gist (geom);
15+
CREATE INDEX IF NOT EXISTS geo_croix_geom_idx ON geo_croix USING gist (geom);
16+
CREATE INDEX IF NOT EXISTS geo_symblim_geom_idx ON geo_symblim USING gist (geom);
17+
CREATE INDEX IF NOT EXISTS geo_tpoint_geom_idx ON geo_tpoint USING gist (geom);
18+
CREATE INDEX IF NOT EXISTS geo_tline_geom_idx ON geo_tline USING gist (geom);
19+
CREATE INDEX IF NOT EXISTS geo_tsurf_geom_idx ON geo_tsurf USING gist (geom);
20+
CREATE INDEX IF NOT EXISTS geo_label_geom_idx ON geo_label USING gist (geom);
21+
CREATE INDEX IF NOT EXISTS geo_unite_fonciere_geom_idx ON geo_unite_fonciere USING gist (geom);
2222

2323
-- attributes
24-
DROP INDEX IF EXISTS geo_commune_tex2_idx;
25-
CREATE INDEX geo_commune_tex2_idx ON geo_commune (tex2);
26-
DROP INDEX IF EXISTS geo_section_idu_idx;
27-
CREATE INDEX geo_section_idu_idx ON geo_section (idu);
28-
DROP INDEX IF EXISTS geo_parcelle_idu_idx;
29-
CREATE INDEX geo_parcelle_idu_idx ON geo_parcelle (idu);
30-
DROP INDEX IF EXISTS geo_parcelle_geo_parcelle;
31-
CREATE INDEX geo_parcelle_geo_parcelle ON geo_parcelle (geo_parcelle);
32-
DROP INDEX IF EXISTS geo_section_geo_commune_idx;
33-
CREATE INDEX geo_section_geo_commune_idx ON geo_section (geo_commune);
34-
DROP INDEX IF EXISTS geo_parcelle_geo_section_idx;
35-
CREATE INDEX geo_parcelle_geo_section_idx ON geo_parcelle (geo_section);
36-
DROP INDEX IF EXISTS geo_unite_fonciere_comptecommunal_idx;
37-
CREATE INDEX geo_unite_fonciere_comptecommunal_idx ON geo_unite_fonciere (comptecommunal);
38-
DROP INDEX IF EXISTS geo_label_ogc_fid_idx;
39-
CREATE INDEX geo_label_ogc_fid_idx ON geo_label (ogc_fid );
40-
DROP INDEX IF EXISTS geo_label_x_label_idx;
41-
CREATE INDEX geo_label_x_label_idx ON geo_label (x_label );
42-
DROP INDEX IF EXISTS geo_label_y_label_idx;
43-
CREATE INDEX geo_label_y_label_idx ON geo_label (y_label );
44-
DROP INDEX IF EXISTS geo_label_ogr_obj_lnk_layer_idx;
45-
CREATE INDEX geo_label_ogr_obj_lnk_layer_idx ON geo_label (ogr_obj_lnk_layer);
46-
DROP INDEX IF EXISTS idx_proprietaire_ccocom;
47-
CREATE INDEX idx_proprietaire_ccocom ON proprietaire (ccocom);
48-
DROP INDEX IF EXISTS idx_commune_ccocom;
49-
CREATE INDEX idx_commune_ccocom ON commune (ccocom);
50-
DROP INDEX IF EXISTS idx_commune_majic_ccocom;
51-
CREATE INDEX idx_commune_majic_ccocom ON commune_majic (ccocom);
52-
DROP INDEX IF EXISTS idx_proprietaire_ccodro;
53-
CREATE INDEX idx_proprietaire_ccodro ON proprietaire (ccodro);
54-
DROP INDEX IF EXISTS idx_proprietaire_proprietaire;
55-
CREATE INDEX idx_proprietaire_proprietaire ON proprietaire (proprietaire);
56-
DROP INDEX IF EXISTS idx_proprietaire_comptecommunal;
57-
CREATE INDEX idx_proprietaire_comptecommunal ON proprietaire (comptecommunal);
58-
DROP INDEX IF EXISTS idx_local00_parcelle;
59-
CREATE INDEX idx_local00_parcelle ON local00 (parcelle);
60-
DROP INDEX IF EXISTS idx_local00_voie;
61-
CREATE INDEX idx_local00_voie ON local00 (voie);
62-
DROP INDEX IF EXISTS idx_local00_voie_substr;
63-
CREATE INDEX idx_local00_voie_substr ON local00 ((substr(voie, 1, 6) || substr(voie, 12, 4)));
64-
DROP INDEX IF EXISTS idx_local10_local00;
65-
CREATE INDEX idx_local10_local00 ON local10 (local00);
66-
DROP INDEX IF EXISTS idx_local10_comptecommunal;
67-
CREATE INDEX idx_local10_comptecommunal ON local10 (comptecommunal);
68-
DROP INDEX IF EXISTS idx_pevexoneration_pev;
69-
CREATE INDEX idx_pevexoneration_pev ON pevexoneration (pev);
70-
DROP INDEX IF EXISTS idx_pevtaxation_pev;
71-
CREATE INDEX idx_pevtaxation_pev ON pevtaxation (pev);
72-
DROP INDEX IF EXISTS idx_parcelle_voie;
73-
CREATE INDEX idx_parcelle_voie ON parcelle (voie);
74-
DROP INDEX IF EXISTS idx_parcelle_voie_substr;
75-
CREATE INDEX idx_parcelle_voie_substr ON parcelle ((substr(voie, 1, 6) || substr(voie, 12, 4)));
76-
DROP INDEX IF EXISTS idx_parcelle_comptecommunal;
77-
CREATE INDEX idx_parcelle_comptecommunal ON parcelle (comptecommunal);
24+
CREATE INDEX IF NOT EXISTS geo_commune_tex2_idx ON geo_commune (tex2);
25+
CREATE INDEX IF NOT EXISTS geo_section_idu_idx ON geo_section (idu);
26+
CREATE INDEX IF NOT EXISTS geo_parcelle_idu_idx ON geo_parcelle (idu);
27+
CREATE INDEX IF NOT EXISTS geo_parcelle_geo_parcelle ON geo_parcelle (geo_parcelle);
28+
CREATE INDEX IF NOT EXISTS geo_section_geo_commune_idx ON geo_section (geo_commune);
29+
CREATE INDEX IF NOT EXISTS geo_parcelle_geo_section_idx ON geo_parcelle (geo_section);
30+
CREATE INDEX IF NOT EXISTS geo_unite_fonciere_comptecommunal_idx ON geo_unite_fonciere (comptecommunal);
31+
CREATE INDEX IF NOT EXISTS geo_label_ogc_fid_idx ON geo_label (ogc_fid );
32+
CREATE INDEX IF NOT EXISTS geo_label_x_label_idx ON geo_label (x_label );
33+
CREATE INDEX IF NOT EXISTS geo_label_y_label_idx ON geo_label (y_label );
34+
CREATE INDEX IF NOT EXISTS geo_label_ogr_obj_lnk_layer_idx ON geo_label (ogr_obj_lnk_layer);
35+
CREATE INDEX IF NOT EXISTS idx_proprietaire_ccocom ON proprietaire (ccocom);
36+
CREATE INDEX IF NOT EXISTS idx_commune_ccocom ON commune (ccocom);
37+
CREATE INDEX IF NOT EXISTS idx_commune_majic_ccocom ON commune_majic (ccocom);
38+
CREATE INDEX IF NOT EXISTS idx_proprietaire_ccodro ON proprietaire (ccodro);
39+
CREATE INDEX IF NOT EXISTS idx_proprietaire_proprietaire ON proprietaire (proprietaire);
40+
CREATE INDEX IF NOT EXISTS idx_proprietaire_comptecommunal ON proprietaire (comptecommunal);
41+
CREATE INDEX IF NOT EXISTS idx_local00_parcelle ON local00 (parcelle);
42+
CREATE INDEX IF NOT EXISTS idx_local00_voie ON local00 (voie);
43+
CREATE INDEX IF NOT EXISTS idx_local00_voie_substr ON local00 ((substr(voie, 1, 6) || substr(voie, 12, 4)));
44+
CREATE INDEX IF NOT EXISTS idx_local10_local00 ON local10 (local00);
45+
CREATE INDEX IF NOT EXISTS idx_local10_comptecommunal ON local10 (comptecommunal);
46+
CREATE INDEX IF NOT EXISTS idx_pevexoneration_pev ON pevexoneration (pev);
47+
CREATE INDEX IF NOT EXISTS idx_pevtaxation_pev ON pevtaxation (pev);
48+
CREATE INDEX IF NOT EXISTS idx_parcelle_voie ON parcelle (voie);
49+
CREATE INDEX IF NOT EXISTS idx_parcelle_voie_substr ON parcelle ((substr(voie, 1, 6) || substr(voie, 12, 4)));
50+
CREATE INDEX IF NOT EXISTS idx_parcelle_comptecommunal ON parcelle (comptecommunal);

cadastre/scripts/plugin/edigeo_create_table_unite_fonciere.sql

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,5 @@ COMMENT ON COLUMN geo_unite_fonciere.annee IS 'Année';
1616

1717
ALTER TABLE ${PREFIXE}geo_unite_fonciere ADD CONSTRAINT geo_unite_fonciere_pk PRIMARY KEY (id);
1818

19-
CREATE INDEX geo_unite_fonciere_geom_idx ON geo_unite_fonciere USING gist (geom);
20-
DROP INDEX IF EXISTS geo_unite_fonciere_comptecommunal_idx;
21-
CREATE INDEX geo_unite_fonciere_comptecommunal_idx ON geo_unite_fonciere (comptecommunal);
19+
CREATE INDEX IF NOT EXISTS geo_unite_fonciere_geom_idx ON geo_unite_fonciere USING gist (geom);
20+
CREATE INDEX IF NOT EXISTS geo_unite_fonciere_comptecommunal_idx ON geo_unite_fonciere (comptecommunal);

0 commit comments

Comments
 (0)