Math functions in SQLite are available when SQLite’s amalgamation is compiled
with
-DSQLITE_ENABLE_MATH_FUNCTIONS
However, since sqlite3 3.35, in March 2021, that option is on by default. I did
a quick check with the latest released Ubuntu docker image for grass (so you
could compare), and sqrt seems to work. Python has this enabled too for
versions since April 2021, including back ported versions of Python 3.8
https://github.com/python/cpython/issues/86852, so there’s no reason it
shouldn’t work.
echoix /workspace/grass (main) $ docker run -it
osgeo/grass-gis:releasebranch_8_3-ubuntu bash
root@83c468d748e4:/grassdb# grass
Starting GRASS GIS...
WARNING: It appears that the X Windows system is not active.
A graphical based user interface is not supported.
(DISPLAY variable is not set.)
Switching to text based interface mode.
__ ___ _____
/ / __ \/ | / ___/ ___/ / / _/ ___/
/ / __/ /_/ / /| | \__ \\_ \ / / __ / / \__ \
/ /_/ / _, _/ ___ |___/ /__/ / / /_/ // / ___/ /
\/_/ |_/_/ |_/// \/___///
Welcome to GRASS GIS 8.3.2dev (aeb4081)
GRASS GIS homepage: https://grass.osgeo.org
This version running through:Bash Shell (/bin/bash)
Help is available with the command: g.manual -i
See the licence terms with: g.version -c
See citation options with: g.version -x
Start the GUI with: g.gui wxpython
When ready to quit enter:exit
GRASS world_latlong_wgs84/PERMANENT:grassdb > sqlite3
SQLite version 3.37.2 2022-01-06 13:25:41
Enter ".help" for usage hints.
Connected to a transient in-memory database.
Use ".open FILENAME" to reopen on a persistent database.
sqlite> .version
SQLite 3.37.2 2022-01-06 13:25:41
872ba256cbf61d9290b571c0e6d82a20c224ca3ad82971edc46b29818d5dalt1
zlib version 1.2.11
gcc-11.4.0
sqlite> .exit
GRASS world_latlong_wgs84/PERMANENT:grassdb > db.select sql="select sqrt(2)"
sqrt(2)
1.4142135623731
GRASS world_latlong_wgs84/PERMANENT:grassdb >
You could check your versions, and come back if they are recent enough and
should have them enabled, but aren’t. A little bit more info on your
environment might be needed to fully understand in that case
Have a great day!
Edouard Choinière
Le 30 janv. 2024 à 04:41, Markus Neteler a écrit :
Hi Thiago,
On Tue, Jan 30, 2024 at 1:05 AM Thiago Statella via grass-user
wrote:
Hi everyone!
I need to populate a column in attribute table based on the square root of
entries from another column.
I tried the field calculator with no success. It seams that SQRT function is
not supported by SQLite driver.
Any help would be highly appreciated.
Functionalities like sqrt() or log() are not available in base SQLite
(an issue unrelated to GRASS GIS). You will have to install an SQLite extension.
See the v.db.update manual page and these wiki pages:
- https://grasswiki.osgeo.org/wiki/Build_SQLite_extension_on_Linux
- https://grasswiki.osgeo.org/wiki/Build_SQLite_extension_on_windows
Regards,
Markus
--
Markus Neteler, PhD
https://www.mundialis.de - company
https://grass.osgeo.org - FOSS
https://neteler.org - blog & freelancing
___
grass-user mailing list
grass-user@lists.osgeo.org
https://lists.osgeo.org/mailman/listinfo/grass-user