[Gfoss] problemi con indici spaziali sqlite

G. Allegri giohappy a gmail.com
Ven 21 Feb 2014 10:16:37 CET


Il giorno 21 febbraio 2014 10:08, Luca Lanteri <mescal72 a gmail.com> ha
scritto:

> Mi inserisco nella discussione per chiedere una cosa veramente banale.
> Una volta attivati i recursive trigger e le foreign_keys su un database,
> questi rimangono attivi per quel determinato DB e solo per quello, o devo
> riattivarli ad ogni nuova connessione, o ancora peggio rimangono attivati
> su tutti i DB ?
>

Le PRAGMA sono attive per singola connessione (ed eventualmente con effetti
retroattivi secondo le regole più specifiche della singola PRAGMA).
http://www.sqlite.org/pragma.html

giovanni


>
> Immagino che il comportamento corretto sia il primo, ma giusto per
> sicurezza....
> grazie
>
>
> Il giorno 21 febbraio 2014 09:54, <a.furieri a lqt.it> ha scritto:
>
> On Fri, 21 Feb 2014 09:23:49 +0100, Andrea Peri wrote:
>>
>>> Ho dato una lettura al documento che indicavi.
>>>
>>> Riassumendo:
>>> prima della sqlite 3.6.18 i trigger ricorsivi non erano supporti e
>>> quindi vanno eviate versioni di sqlite cosi' vecchie.
>>>
>>> Nelle versioni successive, pero' i trigger ricorsivi erano
>>> disabilitati by-default, ppunto come dicevi te.
>>> Quindi occorre sempre inserire una clausola
>>>
>>> PRAGMA recurvive_triggers=1
>>>
>>> Usando gli applicativi di spatialite:
>>>  CLI e Spatialite-GUI.
>>> Questa clausola
>>> recursive_triggers va settata comunque o è implicita ?
>>>
>>>
>> con tutte le versioni attuali (CLI/GUI) e' sempre disabilitata
>> by default; ma per analogia con quanto gia' implementato per
>> l'analoga "PRAGMA foreign_keys" presumo invece che sarebbe piu'
>> opportuno abilitarla implicitamente.
>>
>>
>>
>>  Detto questo.
>>>
>>> se un disgraziato lavora su QGIS, editando un dataset tramite la
>>> finestra degli attributi, oppure trmaite le form customized che ora
>>> qgis consente, tale clausola "recursive_triggers=1" probabilmente è a
>>> 0 , ma come puo' fare per garantirsi di settarla a 1 ?
>>>
>>>
>> vista l'architettura SQLite, gestire questo tipo di PRAGMA ricade
>> sotto la piena responsabilita' del sw che attiva la connessione:
>> non c'e' nessun modo per renderele permanenti.
>>
>> il problema e' abbastanza facile da affrontare per tutti i tools che
>> gestiscono le connessioni in modo centralizzato (p.es. il data-provider
>> di QGIS, oppure i tool spatialite); ma nel caso p.es. dei plug-in Python
>> ciascun singolo plug-in e' ovviamente libero di comportarsi come meglio
>> crede, e non c'e' nessuna possibilita' di imporre dall'esterno un
>> set di comportamenti predefiniti.
>>
>>
>>
>>  Qui mi sorge un dubbio serio...
>>>
>>> E forse comincio a capire perche' a suo tempo ebbi dei problemi...
>>>
>>>
>> N.B.: ed a questo proposito a me inizia a sorgere anche un ulteriore
>> dubbio; con tutta la proliferazione di tools e di interfacce che
>> iniziano a circolare, siamo sempre sicuri che il supporto per i vincoli
>> relazionali venga attivato in tutti i casi ?
>>
>> perche' se da qualche parte c'e' un tool che apre una connessione per
>> conto proprio al di fuori del data-provider (p.es. in Python) che non
>> cura di impostare correttamente questo parametro di connessione:
>>
>> PRAGMA foreign_keys=1
>>
>> allora potrebbe addirittura accadere che tutti i vincoli Primary/Foreign
>> Key possano venire allegramente violati senza nessuna conseguenza.
>> e naturalmente, in caso di mancata attivazione, non funzionano neppure
>> le sequenze di eventi ON CASCADE ... insomma, le conseguenze potrebbero
>> anche avere un impatto fortemente negativo, anche peggiore di quello
>> dovuto a mancata attivazione del supporto ricursivo per i triggers.
>>
>>
>> ciao Sandro
>> _______________________________________________
>> Gfoss a 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 iscritti al 22.7.2013
>>
>
>
> _______________________________________________
> Gfoss a 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 iscritti al 22.7.2013
>



-- 
Giovanni Allegri
http://about.me/giovanniallegri
Twitter: https://twitter.com/_giohappy_
blog: http://blog.spaziogis.it
GEO+ geomatica in Italia http://bit.ly/GEOplus
-------------- parte successiva --------------
Un allegato HTML ? stato rimosso...
URL: <http://lists.gfoss.it/pipermail/gfoss/attachments/20140221/7036c755/attachment.html>


Maggiori informazioni sulla lista Gfoss