[TST] SpatiaLite DB does not store data of type any geometric type
Apparently, the SpatiaLite DB does not store data of any geometry type. The DB is created and initialized following the GeoAlchemy2 manual.
Even when using the spatialite
command directly geometric data cannot be stored:
spatialite> CREATE TABLE test_geom (
id INTEGER NOT NULL
PRIMARY KEY AUTOINCREMENT,
name TEXT NOT NULL,
measured_value DOUBLE NOT NULL);
spatialite> SELECT AddGeometryColumn('test_geom', 'the_geom',
4326, 'POINT', 'XY');
1
spatialite> .schema test_geom
CREATE TABLE test_geom (
id INTEGER NOT NULL
PRIMARY KEY AUTOINCREMENT,
name TEXT NOT NULL,
measured_value DOUBLE NOT NULL, "the_geom" POINT);
CREATE TRIGGER "ggi_test_geom_the_geom" BEFORE INSERT ON "test_geom"
FOR EACH ROW BEGIN
SELECT RAISE(ROLLBACK, 'test_geom.the_geom violates Geometry constraint [geom-type or SRID not allowed]')
WHERE (SELECT geometry_type FROM geometry_columns
WHERE Lower(f_table_name) = Lower('test_geom') AND Lower(f_geometry_column) = Lower('the_geom')
AND GeometryConstraints(NEW."the_geom", geometry_type, srid) = 1) IS NULL;
END;
CREATE TRIGGER "ggu_test_geom_the_geom" BEFORE UPDATE OF "the_geom" ON "test_geom"
FOR EACH ROW BEGIN
SELECT RAISE(ROLLBACK, 'test_geom.the_geom violates Geometry constraint [geom-type or SRID not allowed]')
WHERE (SELECT geometry_type FROM geometry_columns
WHERE Lower(f_table_name) = Lower('test_geom') AND Lower(f_geometry_column) = Lower('the_geom')
AND GeometryConstraints(NEW."the_geom", geometry_type, srid) = 1) IS NULL;
END;
CREATE TRIGGER "tmd_test_geom_the_geom" AFTER DELETE ON "test_geom"
FOR EACH ROW BEGIN
UPDATE geometry_columns_time SET last_delete = strftime('%Y-%m-%dT%H:%M:%fZ', 'now')
WHERE Lower(f_table_name) = Lower('test_geom') AND Lower(f_geometry_column) = Lower('the_geom');
END;
CREATE TRIGGER "tmi_test_geom_the_geom" AFTER INSERT ON "test_geom"
FOR EACH ROW BEGIN
UPDATE geometry_columns_time SET last_insert = strftime('%Y-%m-%dT%H:%M:%fZ', 'now')
WHERE Lower(f_table_name) = Lower('test_geom') AND Lower(f_geometry_column) = Lower('the_geom');
END;
CREATE TRIGGER "tmu_test_geom_the_geom" AFTER UPDATE ON "test_geom"
FOR EACH ROW BEGIN
UPDATE geometry_columns_time SET last_update = strftime('%Y-%m-%dT%H:%M:%fZ', 'now')
WHERE Lower(f_table_name) = Lower('test_geom') AND Lower(f_geometry_column) = Lower('the_geom');
END;
spatialite> INSERT INTO test_geom
...> (id, name, measured_value, the_geom)
...> VALUES (NULL, 'first point', 1.23456,
...> GeomFromText('POINT(1.01 2.02)', 4326));
spatialite> SELECT *
...> FROM test_geom;
1|first point|1.23456
SpatiaLite version ..: 4.3.0a Supported Extensions:
- 'VirtualShape' [direct Shapefile access]
- 'VirtualDbf' [direct DBF access]
- 'VirtualXL' [direct XLS access]
- 'VirtualText' [direct CSV/TXT access]
- 'VirtualNetwork' [Dijkstra shortest path]
- 'RTree' [Spatial Index - R*Tree]
- 'MbrCache' [Spatial Index - MBR cache]
- 'VirtualSpatialIndex' [R*Tree metahandler]
- 'VirtualElementary' [ElemGeoms metahandler]
- 'VirtualXPath' [XML Path Language - XPath]
- 'VirtualFDO' [FDO-OGR interoperability]
- 'VirtualGPKG' [OGC GeoPackage interoperability]
- 'VirtualBBox' [BoundingBox tables]
- 'SpatiaLite' [Spatial SQL - OGC]
PROJ.4 version ......: Rel. 4.9.3, 15 August 2016
GEOS version ........: 3.6.2-CAPI-1.10.2 4d2925d6
TARGET CPU ..........: x86_64-linux-gnu
the SPATIAL_REF_SYS table already contains some row(s)
SQLite version ......: 3.22.0
Enter ".help" for instructions
SQLite version 3.22.0 2018-01-22 18:45:57
GDAL==2.2.3
GeoAlchemy2==0.6.2
Edited by damb