[Gfoss] Export PostGIS - SpatiaLITE

Andrea Peri aperi2007 a gmail.com
Dom 25 Feb 2018 12:00:41 CET


Hai fatot bene a correggermi.
In effetti mi ero sbagliato. Per qualche strana ragione mi e' rimasto in
testa che la tua CastToSimple ritornasse sempre il primo. Forse faceva
cosi' nelle prime versioni ?

Ad ogni modo la prudenza e' sempre d'obbligo perche' se ritorna NUL uno le
perde tutte anziche' tutte meno una.

Invece interessante lo spunto sul ritorno del NULL anziche' l'eccezione.

Charisco quindimeglio il mio punto di vista.

La ragione per cui io preferirei l'eccezione e' legata a due considerazioni:

la prima e' che cosi' mi accorgo subito che li vi e' un errore.
Mentre se faccio una elaborazione diqualche ora e parecchie funzioni.
Se alla fine manca qualcosa devo fare un step by step di ogni funzione per
capire dove sta il problema.

ma su questo ci si tira su le maniche e si fa'.


Il vero problema sorge quando si fanno delle elaborazioni che ritornano
NULL in alcuni casi.

Mi spiego con un esempio a parole.

Se io faccio delle intersezioni e voglio alla fine estrarre i records da
cui queste intersezioni restituiscono un valore non nullo.

Io ottengo dei risultati, MA NON HO CERTEZZA che quelle escluse perche'
NULLE lo sono perche' realmente deve essere NULLO (ovvero nessuna
intersezione) o perche' vi era intersezione, ma a causa di un problema
della geometria ha generato una eccezione che e' stata trasformata in NULLO.

Quindi ho sempre una ambiguita nel risultato in certe situazioni.

Forse sarebbe stato meglio introdurre una codifica differente dal NULLO per
gestire l'eccezione ? Boh.
in ogni caso ora anche cio' comporterebbe una perdita di compatibilita' e
quindi e' una disquisizione inutile.

Ma ci tenevo a chiarire il mio punto di vista perche' piu' si conoscono gli
strumenti che si usa e meglio e'.

A.


Il giorno 25 febbraio 2018 11:06, <a.furieri a lqt.it> ha scritto:

> 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
>



-- 
-----------------
Andrea Peri
. . . . . . . . .
qwerty àèìòù
-----------------


Maggiori informazioni sulla lista Gfoss