[Gfoss] Export PostGIS - SpatiaLITE

a.furieri a lqt.it a.furieri a lqt.it
Dom 25 Feb 2018 11:06:45 CET


On Sun, 25 Feb 2018 06:48:04 +0100, Andrea Peri wrote:
> Sempre esatto e preciso
> ma questa volta sento di dover aggiungere un dettaglio ulteriore.
> :D
>
> L operatore casttomulti te dici che si può sempre applicare.
> Occorre però stare attenti quando si applica per passare da multi a
> simple ovvero usando l operatore casttosimple.
>
> Infatti occorre controllare prima quante parti ha la multi che si
> vuole trasformare.
> Se ne ha una sola, ok, si può fare e tutto funziona bene.
> Se ne ha più di una , su spatialite non si può fare perché si perde
> tutte le parti eccedenti la prima.
> Occorre stare veramente attenti perché spatialite non da errore, ma
> si limita a passare solo la prima parte.
>
> Esempio : se ho il.dataset Delle isole dell' arcipelago toscano con 
> un
> poligono di tipo multipolygon che comprende tutte le isole.
> Se faccio un semplice casttosimple perdo tutte le isole eccetto la
> prima.
>

Andrea,

scusami ma ti devo correggere almeno in parte.
e' verissimo che occorre molta cautela quando si applica un cast da
multi a single, perche' ovviamente il cast funzionera' solo se la
collection contiene un singolo elemento.

ma quando la collection contiene due o piu' elementi non ti torna
affatto il primo elemento; ti torna invece un NULL.

spiegazione per chi non e' al corrente: Andrea sostiene da tempo
che SpatiaLite ha un "brutto vizietto", cioe' quello che moltissime
funzioni (praticamente tutte) ritornaro valori NULL o FALSE quando
riscontrano una condizione di errore, mentre invece sarebbe
preferibile che sollevassero un'eccezione bloccando immediatamente
il flusso di esecuzione.

dal punto di vista teorico non c'e' dubbio che ha ragione Andrea;
nella pratica pero' dovere correggere pesantemete svariate
centinaia di funzioni, oltre ad essere una faticaccia impproba,
implica anche il rischio di introdurre involontariamente un
visibilio di regressioni potenzialmente pericolose.
infine va anche considerato che un cambiamento cosi' radicale
provocherebbe sicuramente molte difficolta' a tantissime
applicazioni gia' esistenti che si basano strutturalmente
sulla logica di funzionamento attuale.

insomma, non escludo che in qualche versione futuribile
SpatiaLite finira' per abbracciare sistematicamente la
logica delle eccezioni bloccanti, ma almeno per ora e'
piu' prudente non allontanarsi troppo da una tradizione
storicamente ben consolidata.

ciao Sandro
che implica un vero e proprio cambiamento


Maggiori informazioni sulla lista Gfoss