Moritz Lennert wrote: > Don't have time to look into this now, but it must be a problem in the > special sqlite implementation in that script: > > if [ "$driver" = "sqlite" ] ; then > #echo "Using special trick for SQLite" > # http://www.sqlite.org/faq.html#q13 > v.info --q -c map=$GIS_OPT_MAP layer=$GIS_OPT_LAYER | cut -d'|' -f1,2 > | grep -v "|${col}$" > "$TMP.coldesc" > # need to revert order: > cat "$TMP.coldesc" | cut -d'|' -f1 > "$TMP.coltypes" > cat "$TMP.coldesc" | cut -d'|' -f2 > "$TMP.colnames" > COLDEF=`paste -d' ' "$TMP.colnames" "$TMP.coltypes" | tr '\n' ',' | > sed 's+,$++g'` > COLNAMES=`cat "$TMP.colnames" | tr '\n' ',' | sed 's+,$++g'` > echo "BEGIN TRANSACTION; > CREATE TEMPORARY TABLE ${table}_backup(${COLDEF}); > INSERT INTO ${table}_backup SELECT ${COLNAMES} FROM ${table}; > DROP TABLE ${table}; > CREATE TABLE ${table}(${COLDEF}); > INSERT INTO ${table} SELECT ${COLNAMES} FROM ${table}_backup; > DROP TABLE ${table}_backup; > COMMIT;" > "$TMP" > db.execute input="$TMP"
My execute statement looks like this: BEGIN TRANSACTION; CREATE TEMPORARY TABLE SBC2_backup(cat INTEGER,LM CHARACTER,WARD INTEGER,CLASS_NAME CHARACTER); INSERT INTO SBC2_backup SELECT cat,LM,WARD,CLASS_NAME FROM SBC2; DROP TABLE SBC2; CREATE TABLE SBC2(cat INTEGER,LM CHARACTER,WARD INTEGER,CLASS_NAME CHARACTER); INSERT INTO SBC2 SELECT cat,LM,WARD,CLASS_NAME FROM SBC2_backup; DROP TABLE SBC2_backup; COMMIT; Why does v.db.dropcol define a type CHARACTER when sqlite3 supports (NULL, INTEGER, REAL, TEXT, BLOB)? Craig _______________________________________________ grass-user mailing list grass-user@lists.osgeo.org http://lists.osgeo.org/mailman/listinfo/grass-user