Re: [GRASS-user] POW() in SQLite?

2010-03-02 Thread Hamish
> Hamish wrote:
> > I am trying to use POW(x,n) with SQLite but it fails:
...
> > no such function: POW

Glynn:
> Nope; not in SQLite:
> http://www.sqlite.org/lang_corefunc.html
> 
..
> > Similar problem if I try x^n:
> > unrecognized token: "^"
> 
> SQLite doesn't have a power operator:
> http://www.sqlite.org/lang_expr.html#binaryops


 
> > this random webhit suggests that it should be possible:
> >   http://osdir.com/ml/sqlite-users/2009-03/msg00248.html
> 
> That says:
..
> Note: "in addition to the SQLite default". IOW, those
> functions are added by SQLiteSpy, and are not part of SQLite.

ah, skimming error.


Rich:
> I'd manipulate those values first, then pass them to SQLite.


solution:

#no good:
#v.db.update basemap column=volume value="POW(length,3)" --verbose

#good:
v.db.select basemap column=cat,length | awk -F'|' \
  '{printf("UPDATE basemap SET volume=%f WHERE cat=%d;\n", $2^3, $1)}' \
  | db.execute



thanks,
Hamish



  
___
grass-user mailing list
grass-user@lists.osgeo.org
http://lists.osgeo.org/mailman/listinfo/grass-user


Re: [GRASS-user] POW() in SQLite?

2010-03-01 Thread Glynn Clements

Hamish wrote:

> I am trying to use POW(x,n) with SQLite but it fails:
> 
> G65> v.db.select mapname column="POW(length,3)"
> DBMI-SQLite driver error:
> Error in sqlite3_prepare():SELECT POW(length,3) FROM mapname
> no such function: POW

Nope; not in SQLite:

http://www.sqlite.org/lang_corefunc.html

> ERROR: Unable to open select cursor
> 
> 
> Similar problem if I try x^n:
> ...
> unrecognized token: "^"

SQLite doesn't have a power operator:

http://www.sqlite.org/lang_expr.html#binaryops

> this random webhit suggests that it should be possible:
>   http://osdir.com/ml/sqlite-users/2009-03/msg00248.html

That says:

> * Mathematical SQL Functions - The following mathematical SQL functions are
> available in addition to the SQLite default: ACOS(), ASIN(), ATAN(), ATAN(),
> ATAN2(), CEIL(), CEILING(), COS(), COT(), DEGREES(), EXP(), FLOOR(), LN(),
> LOG(), LOG(), LOG2(), LOG10(), MOD(), PI(), POW(), RADIANS(), SIGN(), SIN(),
> SQRT(), TAN(), TRUNCATE().

Note: "in addition to the SQLite default". IOW, those functions are
added by SQLiteSpy, and are not part of SQLite.

-- 
Glynn Clements 
___
grass-user mailing list
grass-user@lists.osgeo.org
http://lists.osgeo.org/mailman/listinfo/grass-user


Re: [GRASS-user] POW() in SQLite?

2010-03-01 Thread Rich Shepard

On Mon, 1 Mar 2010, Hamish wrote:


I am trying to use POW(x,n) with SQLite but it fails:


Hamish,

  Mathematical functions such as POW() are not part of SQL. When you look at
what appear to be mathematical functions, e.g., ABS(). MIN(), MAX(), they
are actually string manipulations.

  SQLite stores most values as text strings so this is not surprising.

  I'd manipulate those values first, then pass them to SQLite.

Rich
___
grass-user mailing list
grass-user@lists.osgeo.org
http://lists.osgeo.org/mailman/listinfo/grass-user