[Gfoss] QspatiaLite 5.0.3
a.furieri a lqt.it
a.furieri a lqt.it
Gio 26 Gen 2012 15:32:25 CET
On Thu, 26 Jan 2012 14:21:09 +0100, Luca Sigfrido Percich wrote
> Se dopo aver caricato la vista regioni in QGIS ... visualizzi le
> proprietà del layer, noterai che la colonna nro_prov ha Type vuoto.
>
e questa e' una delle anomalie / specificita' tipiche
di SQLite :-D
in questo DBMS le colonne non hanno nessun data-type;
le dichiarazioni di data-type hanno solo un mero
valore "cosmetico", ma non hanno nessuna conseguenza
funzionale (tranne che nel caso delle Primary Keys).
quindi l'unico criterio solido ed affidabile per
determinare il data-type di una colonna e' quello
di farsi una bella query esplorativa basata sui
valori reali, non sulle dichiarazioni.
e.g. (sempre tornando al solito esempio di prima):
SELECT DISTINCT TypeOf(cod_reg),
TypeOf(nome_reg), TypeOf(nro_prov)
FROM regioni;
... e ti lascio immaginare la velocita' quando
la tavola contiene svariati milioni di righe :-P
il data-provider SpatiaLite per QGIS prova semplicemente
a determinare il data-type in via speditiva, cioe'
analizzando la dichiarazione formale della table/view:
PRAGMA table_info(regioni);
ma come puoi facilmente verificare con spatialite_gui,
in questo caso la colonna "nro_prov" non ha nessun
data-type, proprio in quanto corrisponde al risultato
di una funzione di aggregazione.
in altre parole: SQLite e' in grado di andare a
ripescarsi la definizione iniziale della colonna che
appare in una View se la colonna appartiene ad una tavola.
ma se una colonna deriva da un calcolo/espressione e/o
funzione, allora il data-type resta graziosamente
indefinito.
e con questo spero di avere soddisfatto almeno alcune
delle tue piu' morbose curiosita' ;-)
ciao Sandro
Maggiori informazioni sulla lista
Gfoss