[Gfoss] problemi con indici spaziali sqlite

Luca Lanteri mescal72 a gmail.com
Ven 21 Feb 2014 10:20:38 CET


Quindi se io metto dei vincoli sulle  foreign keys nel mio DB perché
funzionino devo attivarle ad ogni singola connessione ? Mi sembra un
comportamento un po' strano ?

>L<


Il giorno 21 febbraio 2014 10:16, G. Allegri <giohappy a gmail.com> ha
scritto:

>
>
>
> 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/0fc6b557/attachment-0001.html>


Maggiori informazioni sulla lista Gfoss