Salve a tutti,
ho un dilemma sull’estensione di una tabella spatialite.
Il caso: ho una serie di geometrie disegnate in vari punti d’Italia, nella fattispecie nel Lazio e in Romagna. Se in Qgis faccio una interrogazione per chiamare solo le geometrie del Lazio e clicco su zoom all’estensione del layer, il canvas di Qgis non si aggiorna e solo dopo aver selezionato qualche riga dalla tabella del subset, posso fare zoom alla selezione.
E’ possibile che la mia tabella spatialite sia “corrotta” e che non riesca più a capire bene la propria estensione a seconda della query attiva?
Qualcuno ha una mezza idea di dove mettere le mani?
Grazie mille
Luca
On Mon, 17 Nov 2014 15:41:22 +0100, Luca Mandolesi wrote:
E' possibile che la mia tabella spatialite sia "corrotta" e che non
riesca più a capire bene la propria estensione a seconda della query
attiva?
non e' affatto impossibile che lo Spatial Index si corrompa.
in genere accase quando:
- la tavola non ha nessuna Primary Key, oppure ha una Primary Key
che non e' composta da un'unica colonna INTEGER
- e' stato fatto un VACUUM che ha riordinato fisicamente tutte le
righe facendo cosi' impazzire i ROWIDs
Qualcuno ha una mezza idea di dove mettere le mani?
prima verifica se hai tavole senza ROWID o com shadowed-ROWID:
SELECT f_table_name, CheckShadowedRowid(f_table_name),
CheckWithoutRowid(f_table_name)
FROM geometry_columns;
se tutto va bene vedrai tutto a ZERO; se vedi qualche 1 invece
significa che hai problemi.
poi vai a verificare se ci sono Spatial Index corrotti:
SELECT CheckSpatialIndex();
qua funziona all'inverso: se torna 1 tutto bene, altrimenti
se torna ZERO ci sono problemi. in quest'ultimo caso per
rimettere tutto a posto:
SELECT RecoverSpatialIndex();
ciao Sandro
Ciao Alessandro,
ho fatto tutte le verifiche del caso…nulla pare essere tutto ok…la cosa stranissima è che dentro Qgis ho una vista,
che, anche se settata con una query verso un certo pacchetto di geometrie collocate tutte vicine,
l’estensione al layer a cui va qgis è quella delle geometrie di tutta la tabella geometrica che contiene il campo geom.
A questo punto mi faccio tale domanda: provo a sbatterci la testa per trovare un eventuale bachetto…magari in Qgis nel leggere la mia
view ipoteticamente corrotta, oppure meglio che butto via la tabella e la view e rifaccio tutto pulito e verificare se il problema
persiste?
Il DB è quello distribuito col plugin pyarchinit, quindi va sempre sputato fuori vuoto o al massimo col
dataset del tutorial…quindi danni non ne faccio…ma ovvio che così se scrivo che facendo una query e poi zoom all’estensione del layer si
dovrebbe zoomare alle geometrie verrei smentito dal canvas di Qgis che se ne starebbe immobile nel nulla! 
Grazie per i suggerimenti
Luca
···
Il giorno 17 novembre 2014 15:55, <a.furieri@lqt.it> ha scritto:
On Mon, 17 Nov 2014 15:41:22 +0100, Luca Mandolesi wrote:
E’ possibile che la mia tabella spatialite sia “corrotta” e che non
riesca più a capire bene la propria estensione a seconda della query
attiva?
non e’ affatto impossibile che lo Spatial Index si corrompa.
in genere accase quando:
- la tavola non ha nessuna Primary Key, oppure ha una Primary Key
che non e’ composta da un’unica colonna INTEGER
- e’ stato fatto un VACUUM che ha riordinato fisicamente tutte le
righe facendo cosi’ impazzire i ROWIDs
Qualcuno ha una mezza idea di dove mettere le mani?
prima verifica se hai tavole senza ROWID o com shadowed-ROWID:
SELECT f_table_name, CheckShadowedRowid(f_table_name),
CheckWithoutRowid(f_table_name)
FROM geometry_columns;
se tutto va bene vedrai tutto a ZERO; se vedi qualche 1 invece
significa che hai problemi.
poi vai a verificare se ci sono Spatial Index corrotti:
SELECT CheckSpatialIndex();
qua funziona all’inverso: se torna 1 tutto bene, altrimenti
se torna ZERO ci sono problemi. in quest’ultimo caso per
rimettere tutto a posto:
SELECT RecoverSpatialIndex();
ciao Sandro
Gfoss@lists.gfoss.it
http://lists.gfoss.it/cgi-bin/mailman/listinfo/gfoss
Questa e’ una lista di discussione pubblica aperta a tutti.
I messaggi di questa lista non hanno relazione diretta con le posizioni dell’Associazione GFOSS.it.
666+40 iscritti al 5.6.2014